| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380 |
- package xin.glue.ui.H.H02;
- import java.sql.CallableStatement;
- import java.sql.SQLException;
- import xin.glue.ui.common.ProduceFactory;
- 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.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;
- /*
- * desc:板坯缺号,修改,插入
- * author:王小炎
- * date:2008-10-7
- */
- public class PosSaveMissionNo extends PosActivity
- {
- public String runActivity(PosContext context)
- {
- // 从页面获取参数数据,供更新页面使用
- String[] slabNo = (String[])context.get("SLAB_NO");
- String[] coilNo = (String[])context.get("COIL_NO");
- String[] missionDtime = (String[])context.get("MISSNO_DTIME");
- String[] missionClf = (String[])context.get("MISSNO_CLF");
- String[] missionCauseCd = (String[])context.get("MISSNO_CAUSE_CD");
- String[] WkShift = (String[])context.get("WK_SHIFT3");
- String[] WkGroup = (String[])context.get("WK_GROUP3");
- String[] RegId = (String[])context.get("WK_EMP_NO3");
- //轧回宽度
- String[] MISSNO_WTH = (String[])context.get("MISSNO_WTH");
- //轧回厚度
- String[] MISSNO_THK = (String[])context.get("MISSNO_THK");
- //轧回板坯放入辊道位置
- String[] MISSNO_YARD = (String[])context.get("MISSNO_YARD");
- //炉前取消坯入库的垛位
- String[] MISSNO_SLAB = (String[])context.get("MISSNO_SLAB");
- //登陆用户名
- String[] REG_ID = (String[])context.get("REG_ID");
-
- //这里做为是否调用品质的标志
- String RHF_STAT = null;
- String MsgChk = null;
-
- logger.logInfo("PosSaveMissionNo slabNo[0] 1:("+slabNo[0]+")"+coilNo[0]);
-
- //这里判断板坯号与钢卷号是否在轧制计划中匹配,不匹配的话给予相应的提示
- PosParameter parama = new PosParameter();
- parama.setWhereClauseParameter(0,slabNo[0]);
- parama.setWhereClauseParameter(1,coilNo[0]);
- PosRowSet SpecMillVoa = getDao("mesdao").find("NIH020020_SPEC_MILL.select", parama);
-
- if (SpecMillVoa.hasNext()) {
- PosRow specMillROWa = SpecMillVoa.next();
- String SpecCoilNo = (String)specMillROWa.getAttribute("COIL_NO");
-
- if(SpecCoilNo.equals(coilNo[0]) && SpecCoilNo != null){
- //查询结果如果已经有值,则进行修改操作,否则插入
- String sql = "select * from TBH02_RHF_MISSNO where slab_no = ? AND coil_no = ?";
- PosParameter param1 = new PosParameter();
- param1.setWhereClauseParameter(0,slabNo[0] );
- param1.setWhereClauseParameter(1,coilNo[0] );
-
- PosRowSet rowset0 = getDao("mesdao").findByQueryStatement(sql, param1);
-
- PosParameter param3 = new PosParameter();
- PosParameter param2 = new PosParameter();
- if(rowset0.hasNext())
- {
- //如果是更新吊销实际,说明多次使用吊销
- RHF_STAT = "2";
- param3.setWhereClauseParameter(0,coilNo[0]);
- param3.setWhereClauseParameter(1,missionDtime[0]);
- param3.setWhereClauseParameter(2,missionClf[0]);
- param3.setWhereClauseParameter(3,missionCauseCd[0]);
- param3.setWhereClauseParameter(4,WkShift[0]);
- param3.setWhereClauseParameter(5,WkGroup[0]);
- param3.setWhereClauseParameter(6,RegId[0]);
- param3.setWhereClauseParameter(7,REG_ID[0]);
- param3.setWhereClauseParameter(8,slabNo[0]);
- param3.setWhereClauseParameter(9,coilNo[0]);
-
- getDao("mesdao").update("UIH020020_06.update", param3);
- }
- else
- {
- param2.setValueParamter(0,slabNo[0]);
- param2.setValueParamter(1,coilNo[0]);
- param2.setValueParamter(2,missionDtime[0]);
- param2.setValueParamter(3,missionClf[0]);
- param2.setValueParamter(4,missionCauseCd[0]);
- param2.setValueParamter(5,WkShift[0]);
- param2.setValueParamter(6,WkGroup[0]);
- param2.setValueParamter(7,RegId[0]);
- param2.setValueParamter(8,REG_ID[0]);
- getDao("mesdao").insert("UIH020020_05.insert",param2);
- }
-
- //更新tbg02_slab_comm表
- PosParameter param0 = new PosParameter();
- param0.setWhereClauseParameter(0, "2");
- param0.setWhereClauseParameter(1, missionClf[0]);
- param0.setWhereClauseParameter(2, missionCauseCd[0]);
- param0.setWhereClauseParameter(3, missionDtime[0]);
- param0.setWhereClauseParameter(4, RegId[0]);
- param0.setWhereClauseParameter(5, slabNo[0]);
- getDao("mesdao").update("UIH020020_04.update", param0);
-
-
- //调用存货异动点存储过程
- //ProduceFactory PD= new ProduceFactory();
- //PD.ErpDataCover("HSLAB", slabNo[0],"11AZ","0","O",RegId[0],"加回轧回");
- //如果出现多次吊销的情况,只在第一次的时候给予处理
- PosParameter param9 = new PosParameter();
- String sql9 = "select RHF_STAT from TBH02_REHEATFUR where slab_no = ? and coil_no = ? ";
- param9.setWhereClauseParameter(0, slabNo[0]);
- param9.setWhereClauseParameter(1, coilNo[0]);
- //这里做为是否调用品质的标志
- String slab_stat = null;
- PosRowSet rowset9 = getDao("mesdao").findByQueryStatement(sql9, param9);
- if(rowset9.hasNext()){
- PosRow row9 = rowset9.next();
- slab_stat = (String) row9.getAttribute("RHF_STAT");
- if(!slab_stat.equals("3")){
- //调用存货异动点存储过程
- ProduceFactory PD= new ProduceFactory();
- PD.ErpDataCover("HSLAB", slabNo[0],"11AZ","0","O","人工吊销","加回轧回");
- }
- }
-
-
-
- PosParameter param4 = new PosParameter();
- //TL 缺号,这里用板坯号和钢卷号作为联合主键。为了处理板坯回送的情况
- param4.setWhereClauseParameter(0, "3");
- param4.setWhereClauseParameter(1, slabNo[0]);
- param4.setWhereClauseParameter(2, coilNo[0]);
- getDao("mesdao").update("UIH020020_07.update", param4);
-
-
- // TBH02_COIL_COMM UPDATE
- PosParameter param8 = new PosParameter();
- param8.setWhereClauseParameter(0, "");
- param8.setWhereClauseParameter(1,"S");
- param8.setWhereClauseParameter(2,missionCauseCd[0]);
- param8.setWhereClauseParameter(3,missionDtime[0]);
- param8.setWhereClauseParameter(4, coilNo[0]);
- //改变板坯公共表中的板坯状态信息
- getDao("mesdao").update("NIH020030_COIL.update", param8);
-
- if(!MISSNO_WTH[0].equals("") && MISSNO_WTH[0] != null && !MISSNO_THK[0].equals("") && MISSNO_THK[0] != null){
- //只有轧回坯才能够改变板坯的宽度和厚度
- if(missionClf[0].equals("3")){
- //这里根据体积不变的原则来改变板坯长度
- //这里先要取出板坯的以前宽度、厚度、长度、再通过现在的宽度、厚度来反算长度
- Number slab_THK_TMP = null;
- Number slab_WTH_TMP = null;
- Number slab_LEN_TMP = null;
- String SlabLth = null;
-
- PosParameter paramx = new PosParameter();
-
- String sqlCalx = "select A.SLAB_THK,A.SLAB_WTH,A.SLAB_LEN from tbg02_slab_comm A WHERE A.SLAB_NO = ?";
- paramx.setWhereClauseParameter(0, slabNo[0]);
-
- PosRowSet VoX = getDao("mesdao").findByQueryStatement(sqlCalx, paramx);
- if(VoX.hasNext()){
- PosRow RowX = VoX.next();
- slab_THK_TMP = (Number) RowX.getAttribute("SLAB_THK");
- slab_WTH_TMP = (Number) RowX.getAttribute("SLAB_WTH");
- slab_LEN_TMP = (Number) RowX.getAttribute("SLAB_LEN");
- }
-
- String sqlCal = "SELECT TO_CHAR(ROUND((?*?*?)/(?*?),1)) COIL_LTH from dual ";
- PosParameter paramu = new PosParameter();
- paramu.setWhereClauseParameter(0,slab_THK_TMP);
- paramu.setWhereClauseParameter(1,slab_WTH_TMP);
- paramu.setWhereClauseParameter(2,slab_LEN_TMP);
- paramu.setWhereClauseParameter(3,MISSNO_WTH[0]);
- paramu.setWhereClauseParameter(4,MISSNO_THK[0]);
-
- PosRowSet calVo = getDao("mesdao").findByQueryStatement(sqlCal, paramu);
-
- if (calVo.hasNext()) {
- PosRow calROW = calVo.next();
-
- SlabLth = (String)calROW.getAttribute("COIL_LTH");
- logger.logInfo("PosSaveMissionNo 轧回板坯长度的计算公式:slab_thk*slab_wth*slab_len/coil_thk*coil_wth 单位为mm");
- logger.logInfo("PosSaveMissionNo 轧回板坯长度为空的情况下,长度为 :"+SlabLth);
- }
-
- //这里用来处理轧回板坯入库的相应信息
- PosParameter param88 = new PosParameter();
- param88.setWhereClauseParameter(0, MISSNO_WTH[0]);
- param88.setWhereClauseParameter(1, MISSNO_THK[0]);
- param88.setWhereClauseParameter(2, SlabLth);
- param88.setWhereClauseParameter(3, slabNo[0]);
-
- getDao("mesdao").update("UIH020020_09.update", param88);
- }
- }
-
- if(!MISSNO_YARD[0].equals("") && MISSNO_YARD[0] != null){
- //这里加回和轧回可以录入相应的滚道位置
- if(missionClf[0].equals("2") || missionClf[0].equals("3")){
- PosParameter param77 = new PosParameter();
- param77.setWhereClauseParameter(0, slabNo[0]);
- param77.setWhereClauseParameter(1, RegId[0]);
- param77.setWhereClauseParameter(2, MISSNO_YARD[0]);
-
- getDao("mesdao").update("UIH020020_10.update", param77);
- }
- }
-
- //这里把炉前取消的坯子录入临时垛位
- if(MISSNO_SLAB[0] != null && !MISSNO_SLAB[0].equals("")){
- //只有炉前取消的坯子可以入临时垛位
- if(missionClf[0].equals("1")){
- PosParameter param99 = new PosParameter();
- param99.setWhereClauseParameter(0, slabNo[0]);
- param99.setWhereClauseParameter(1, RegId[0]);
- param99.setWhereClauseParameter(2, MISSNO_SLAB[0].substring(0, 3));
- param99.setWhereClauseParameter(3, MISSNO_SLAB[0].substring(3, MISSNO_SLAB[0].length()));
-
- getDao("mesdao").update("UIH020020_11.update", param99);
- }
- }
-
- //调用存货异动点存储过程
- //ProduceFactory PD= new ProduceFactory();
- //PD.ErpDataCover("HSLAB", slabNo[0],"11AZ","0","O",RegId[0],"加回轧回");
-
- //与NIH同步,改变轧制计划内容
- //由计划修改,SendProg_NIF024060
- // PosParameter param33 = new PosParameter();
- // param33.setWhereClauseParameter(0,slabNo[0]);
- // param33.setWhereClauseParameter(1,coilNo[0]);
- // PosRowSet specMillVo = getDao("mesdao").find("NIH020020_SPEC_MILL.select", param33);
- // if (specMillVo.hasNext()) {
- // PosRow specMillROW = specMillVo.next();
- // Number SLAB_EDT_SEQ = (Number)specMillROW.getAttribute("SLAB_EDT_SEQ");
- //
- // PosParameter param5 = new PosParameter();
- // param5.setWhereClauseParameter(0, "C" );
- // param5.setWhereClauseParameter(1, slabNo[0] );
- // param5.setWhereClauseParameter(2, coilNo[0] );
- // getDao("mesdao").update("NIH020020_SPEC_MILL.update", param5);
- //
- // PosParameter param6 = new PosParameter();
- // param6.setWhereClauseParameter(0, "C" );
- // param6.setWhereClauseParameter(1, SLAB_EDT_SEQ );
- // getDao("mesdao").update("NIH020020_SPEC_MILL_D.update", param6);
- //
- // PosParameter param7 = new PosParameter();
- // param7.setWhereClauseParameter(0, "C" );
- // param7.setWhereClauseParameter(1, SLAB_EDT_SEQ );
- // getDao("mesdao").update("NIH020020_MILL_IDX.update", param7);
- // }
- if(RHF_STAT == null){
- //这里是清楚轧制计划中的相关板坯
- SendProg_NIF024060( slabNo[0] );
-
- //调用品质的存储过程
- logger.logInfo("PosSaveMissionNo---> NIB027010 TC sql call" );
-
- CallableStatement PlRtn = getDao("mesdao").getCallableStatement("NIH020020_NIB027010");
- logger.logInfo("PosSaveMissionNo---> NIB027010 TC try" );
-
- try {
- if(PlRtn != null) {
- PlRtn.setString(1,coilNo[0]);
- //新增加一个字段,为了废弃的时候使用
- PlRtn.setString(2,"S");
- PlRtn.registerOutParameter(3, java.sql.Types.VARCHAR);
- PlRtn.registerOutParameter(4, java.sql.Types.VARCHAR);
-
- PlRtn.execute();
-
- String sRetCode = PlRtn.getString(3);
- String sRetMsg = PlRtn.getString(4);
-
- logger.logInfo("PosSaveMissionNo---> NIB027010 TC PlRtn1:["+sRetCode+"]:"+ sRetMsg);
-
-
- } else {
- logger.logInfo("PosSaveMissionNo---> NIB027010 PlRtn2:"+PlRtn );
-
- }
- } catch (SQLException e) {
-
- throw new PosException(e.getMessage());
- }finally
- {
- if (PlRtn != null)
- {
- try
- {
- PlRtn.close();
- }
- catch (SQLException e)
- {
- logger.logWarn(e.getMessage(), e);
-
- logger.logInfo("PosSaveMissionNo---> NIB027010 SQLException:"+e );
- }
- }
- }
- }else{
- //吊销过一次的板坯,不能再次调用品质和进程
- logger.logInfo("PosSaveMissionNo---> 加热炉多次吊销时不允许调用品质和进程:"+RHF_STAT);
- }
- }else{
- logger.logInfo("PosSaveMissionNo Coil_No_Spec 1:("+SpecCoilNo+")::::"+coilNo[0]);
- //这里出现的异常情况是板坯号与钢卷号不匹配
- String vtemp="MissionNoPart";
- context.put("rs", vtemp);
- }
-
- }else{
- logger.logInfo("PosSaveMissionNo Failed ");
- MsgChk = "NOT";
- context.put("MsgChk",MsgChk);
- }
-
- return PosBizControlConstants.SUCCESS;
- }
- public void SendProg_NIF024060(String SlabNo )
- {
-
- 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","C");
- message.setObject("FROM",SlabNo);
- message.setObject("TO",SlabNo);
- message.setObject("REG_ID","UIH020020");
- message.setTCID(TcId);
- context.setMessage(message);
- // this.processComponent(PosConstants.CREATE_MESSAGE, context);
- // String transactionCode = context.getMessage().getTC();
-
-
-
- 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);
-
- }
- }
|