| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539 |
- package xin.glue.ui.H.H02;
- import java.math.BigDecimal;
- 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;
- /*
- * author:王小炎
- * date:2008-10-7
- * desc:加热炉出炉操作,修改,插入
- */
- public class PosSaveOutHeatFurnace extends PosActivity
- {
- public String runActivity(PosContext context)
- {
- //从页面获取参数数据,供更新页面使用
- String[] slabNo = (String[])context.get("SLAB_NO");
- String[] devNo = (String[])context.get("DEVNO");
- String[] coilNo = (String[])context.get("COIL_NO");
- //出炉时刻
- String[] extractDtime = (String[])context.get("EXTRACT_DTIME");
- //在炉时间
- String[] infurHour = (String[])context.get("INFUR_HOUR");
- //出炉平均温度
- String[] extractAvgTemp = (String[])context.get("EXTRACT_AVG_TEMP");
- //均热台在炉时间
- String[] eqHtInfurHour = (String[])context.get("EQ_HT_INFUR_HOUR");
- //均热台温度
- String[] eqHtTemp = (String[])context.get("EQ_HT_TEMP");
- String[] WkShift = (String[])context.get("WK_SHIFT2");
- String[] WkGroup = (String[])context.get("WK_GROUP2");
- String[] RegId = (String[])context.get("WK_EMP_NO2");
-
- //从TBF02_SPEC_MILL_D中获取的将要插入到TBH02_COIL_COMM_D中的字段
- 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 ordNo = "";
- String ordSeq = "";
- String ordFl = "";
-
- /*
- * COIL_NO为条件对COIL公用TANBLE 进行SELECT之后是 KEY NOT FOUND时
- * 1. 轧制SPEC TABLE(TBF02_SPEC_MILL) DATA录入到钢卷公共表(TBH02_COIL_COMM)中
- * 录入DATA: 钢号, 规格略号, 交货期, 订单用途代码, 订单去向
- * 2. 板坯公共表(tbg02_slab_comm) data 录入到钢卷公共表(TBH02_COIL_COMM)中
- * 录入data: 产品代码
- * 3. 轧制SPEC详细TABLE(TBF02_SPEC_MILL_D) DATA录入处理到COIL公用详细TABLE
- * (TBH02_COIL_COMM_D)中
- *
- */
-
- //1. 轧制SPEC TABLE(TBF02_SPEC_MILL) DATA录入到钢卷公共表(TBH02_COIL_COMM)中
- //录入DATA: 钢号, 规格略号, 交货期, 订单用途代码, 订单去向
- String SPEC_STL_GRD = null;
- String SPEC_SPEC_ABBSYM = null;
- String SPEC_ORD_NO = null;
- String SPEC_ORD_SEQ = null;
- String SPEC_ORD_USE_CD = null;
- String SPEC_PRODNM_CD = null;
- String SPEC_ORD_FL = null;
- String SPM_PROC_YN = null;
- String SPEC_ORD_CUST_CD = null;
- String SPEC_DEVLMT_DTIME = 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;
- String route = ""; //订单去向
- String STATUS_CD = null;
- String MsgChk = null;
- String CUST_CD = "";
- PosParameter param3 = new PosParameter();
- param3.setWhereClauseParameter(0,slabNo[0] );
- param3.setWhereClauseParameter(1,coilNo[0] );
- PosRowSet SpecMillVo = getDao("mesdao").find("NIH020020_SPEC_MILL.select", param3);
-
- //这里钢卷号不存在轧制信息表的话,不允许把空值放入钢卷信息表中
- //这里把存在于轧制计划作为先决条件,不存在话下面的操作就都不能进行
- if(SpecMillVo.hasNext())
- {
-
- //从TBF02_SPEC_MILL中获取的将要插入到TBH02_COIL_COMM中的字段赋值
- PosRow SpecMillROW = SpecMillVo.next();
-
- STATUS_CD = (String)SpecMillROW.getAttribute("STATUS_CD");
-
- //这里判断一次钢卷号与板坯号是否配对,如果输入的板坯号与钢卷号不是在轧制计划中配对的。给出错误提示
- String Coil_No_Spec = (String)SpecMillROW.getAttribute("COIL_NO");
-
- if(Coil_No_Spec.equals(coilNo[0]) && Coil_No_Spec != null){
- if (STATUS_CD.equals("B")) {
- //钢号
- SPEC_STL_GRD = (String)SpecMillROW.getAttribute("STL_GRD");
- //标准号
- SPEC_SPEC_ABBSYM = (String)SpecMillROW.getAttribute("SPEC_ABBSYM");
- //合同号
- SPEC_ORD_NO = (String)SpecMillROW.getAttribute("ORD_NO");
- //订单号
- SPEC_ORD_SEQ = (String)SpecMillROW.getAttribute("ORD_SEQ");
- //订单用途代码
- SPEC_ORD_USE_CD = (String)SpecMillROW.getAttribute("ORD_USEAGE_CD");
- //产品代码
- SPEC_PRODNM_CD = (String)SpecMillROW.getAttribute("PRODNM_CD");
- //产品余材区分 这里黄次长写明为1,在管制表中具体代表的东西不确定
- SPEC_ORD_FL = "1";
- //平整分卷判定
- SPM_PROC_YN = (String)SpecMillROW.getAttribute("SPM_PROC_YN");
- //需要进行平整分卷标志的转换
- String SpmYn = null;
- if (SPM_PROC_YN != null && SPM_PROC_YN.equals("Y")) {
- SpmYn = "1";
- } else {
- SpmYn = "";
- }
- //客户代码
- SPEC_ORD_CUST_CD = (String)SpecMillROW.getAttribute("ORD_CUST_CD");
- //交货期
- SPEC_DEVLMT_DTIME = (String)SpecMillROW.getAttribute("DELV_REQ_DATE");
- //轧制工艺流程
- SPEC_PATH_MILL_CD = (String)SpecMillROW.getAttribute("PATH_MILL_CD");
- //包装方法
- SPEC_PACK_METHOD = (String)SpecMillROW.getAttribute("PACK_METHOD");
- //订单内径
- SPEC_ORD_INDIA = (Number)SpecMillROW.getAttribute("ORD_INDIA");
- //订单外径
- SPEC_ORD_OUTDIA = (Number)SpecMillROW.getAttribute("ORD_OUTDIA");
- //订单厚度
- SPEC_ORD_THK = (Number)SpecMillROW.getAttribute("ORD_THK");
- //订单宽度
- SPEC_ORD_WTH = (Number)SpecMillROW.getAttribute("ORD_WTH");
- //订单重量
- SPEC_ORD_WGT = (Number)SpecMillROW.getAttribute("ORD_WGT");
- //目的地代码
- SPEC_DEST_CD = (String)SpecMillROW.getAttribute("DEST_CD");
- //去向信息没有处理 在自动接收中存在,所以添加进来
- route = (String)SpecMillROW.getAttribute("ROUTE");
-
- CUST_CD = (String)SpecMillROW.getAttribute("CUST_CD");
-
- //轧制计划没有取SQL中的而是在下面再取了一次 slabEditSeq
- //2. 板坯公共表(tbg02_slab_comm) data 录入到钢卷公共表(TBH02_COIL_COMM)中
- //录入data: 产品代码
- Number SlabWgt = null;
- String BefProgCd = null;
- PosParameter param6 = new PosParameter();
- param6.setWhereClauseParameter(0,slabNo[0] );
- PosRowSet rowset5 = getDao("mesdao").find("UIH020020_05.select", param6);
-
- if (rowset5.hasNext())
- {
- //用于发送进程的信息SendProg_NIE012070
- PosRow row1 = rowset5.next();
- SlabWgt = (Number)row1.getAttribute("SLAB_WGT");
- BefProgCd = (String)row1.getAttribute("CUR_PROG_CD");
-
-
- //3. 轧制SPEC详细TABLE(TBF02_SPEC_MILL_D) DATA录入处理到COIL公用详细TABLE(TBH02_COIL_COMM_D)中
- String sql5 = "select SLAB_EDT_SEQ from TBF02_SPEC_MILL where COIL_NO = ? and SLAB_no = ? ";
- PosParameter param7 = new PosParameter();
- BigDecimal slabEditSeq = null;
- param7.setWhereClauseParameter(0,coilNo[0] );
- param7.setWhereClauseParameter(1,slabNo[0] );
- PosRowSet rowset6 = getDao("mesdao").findByQueryStatement(sql5, param7);
-
- while(rowset6.hasNext())
- {
- PosRow row2 = rowset6.next();
- slabEditSeq = (BigDecimal)row2.getAttribute("SLAB_EDT_SEQ");
-
- }
-
- //查询 TBH02_COIL_COMM 如果已经有值,则进行修改操作,否则插入
- String sql3 = "select * from TBH02_COIL_COMM where COIL_NO = ?";
- PosParameter param4 = new PosParameter();
- param4.setWhereClauseParameter(0,coilNo[0] );
- PosRowSet rowset4 = getDao("mesdao").findByQueryStatement(sql3, param4);
-
- PosParameter param5 = new PosParameter();
- PosParameter param9 = new PosParameter();
-
- //从TBF02_SPEC_MILL 到 TBH02_COIL_COMM
- if(!rowset4.hasNext())
- {
- //不存在的情况下新增记录
- param5.setValueParamter(0,coilNo[0] );
- param5.setValueParamter(1,slabNo[0] );
- param5.setValueParamter(2,SPEC_STL_GRD );
- param5.setValueParamter(3,SPEC_SPEC_ABBSYM );
- param5.setValueParamter(4,SPEC_ORD_NO );
- param5.setValueParamter(5,SPEC_ORD_SEQ );
- param5.setValueParamter(6,SPEC_ORD_USE_CD );
- param5.setValueParamter(7,SPEC_PRODNM_CD );
- param5.setValueParamter(8,SPEC_ORD_FL );
- //这里使用转换后的平整分卷标志
- param5.setValueParamter(9,SpmYn );
- param5.setValueParamter(10,SPEC_ORD_CUST_CD );
- param5.setValueParamter(11,SPEC_DEVLMT_DTIME );
- param5.setValueParamter(12,SPEC_PATH_MILL_CD );
- param5.setValueParamter(13,SPEC_PACK_METHOD );
- param5.setValueParamter(14,SPEC_ORD_INDIA );
- param5.setValueParamter(15,SPEC_ORD_OUTDIA );
- param5.setValueParamter(16,SPEC_ORD_THK );
- param5.setValueParamter(17,SPEC_ORD_WTH );
- param5.setValueParamter(18,SPEC_ORD_WGT );
- param5.setValueParamter(19,SPEC_DEST_CD );
- param5.setValueParamter(20,route );
- param5.setValueParamter(21,CUST_CD );
- param5.setValueParamter(22,SPEC_ORD_NO );
- param5.setValueParamter(23,SPEC_ORD_SEQ );
-
- getDao("mesdao").insert("UIH020020_03.insert", param5);
-
-
- PosParameter param8 = new PosParameter();
- param8.setWhereClauseParameter(0, slabEditSeq);
- PosRowSet rowset7 = getDao("mesdao").find("UIH020020_04.select", param8);
-
- //从TBF02_SPEC_MILL_D表插到TBH02_COIL_COMM_D
- while(rowset7.hasNext())
- {
- PosRow row3 = rowset7.next();
-
- coilCutSeq = (String)row3.getAttribute("COIL_CUT_SEQ");
- ordThk = (BigDecimal)row3.getAttribute("ORD_THK");
- ordWth = (BigDecimal)row3.getAttribute("ORD_WTH");
- ordLen = (BigDecimal)row3.getAttribute("ORD_LEN");
- ordWgt = (BigDecimal)row3.getAttribute("ORD_WGT");
- ordWgtMin = (BigDecimal)row3.getAttribute("ORD_WGT_MIN");
- ordWgtMax = (BigDecimal)row3.getAttribute("ORD_WGT_MAX");
- ordIndia = (BigDecimal)row3.getAttribute("ORD_INDIA");
- ordOutdia = (BigDecimal)row3.getAttribute("ORD_OUTDIA");
- ordNo = (String)row3.getAttribute("ORD_NO");
- ordSeq = (String)row3.getAttribute("ORD_SEQ");
- ordFl = (String)row3.getAttribute("ORD_FL");
-
- param9.setValueParamter(0, coilNo[0]);
- param9.setValueParamter(1, coilCutSeq);
- param9.setValueParamter(2, ordThk);
- param9.setValueParamter(3, ordWth);
- param9.setValueParamter(4, ordLen);
- param9.setValueParamter(5, ordWgt);
- param9.setValueParamter(6, ordWgtMin);
- param9.setValueParamter(7, ordWgtMax);
- param9.setValueParamter(8, ordIndia);
- param9.setValueParamter(9, ordOutdia);
- param9.setValueParamter(10, ordNo);
- param9.setValueParamter(11, ordSeq);
- param9.setValueParamter(12, ordFl);
-
- getDao("mesdao").insert("UIH020020_04.insert", param9);
- }
- } else {
- PosParameter param10 = new PosParameter();
- param10.setWhereClauseParameter(0, "1");
- param10.setWhereClauseParameter(1, coilNo[0]);
-
- getDao("mesdao").update("UIH020020_COIL_COMM.update", param10);
-
- }
-
- /*
- * SLAB_NO和钢卷号为条件对加热炉TABLE(TBH02_REHEATFUR) 进行select
- * 之后是 NOT FOUND的话INSERT不是的话进行UPDATE处理
- */
- //这里需要获取加热炉状态,在为入炉1的情况下调用品质。在为出炉2的情况下不能调用品质,只更新页面数据
- String sql = "select RHF_STAT from TBH02_REHEATFUR where slab_no = ? and coil_no = ? ";
- //这里做为是否调用品质的标志
- String RHF_STAT = null;
- PosParameter param0 = new PosParameter();
- param0.setWhereClauseParameter(0,slabNo[0] );
- param0.setWhereClauseParameter(1,coilNo[0] );
-
- PosRowSet rowset0 = getDao("mesdao").findByQueryStatement(sql, param0);
-
- PosParameter param1 = new PosParameter();
- PosParameter param2 = new PosParameter();
- //判断板坯信息是否存在于TBH02_REHEATFUR
- if(rowset0.hasNext()){
- PosRow row0 = rowset0.next();
- RHF_STAT = (String) row0.getAttribute("RHF_STAT");
- logger.logInfo("PosSAveOutHeatFurnace---> TBH02_REHEATFUR更新的炉内状态:"+ RHF_STAT);
- param1.setWhereClauseParameter(0,extractDtime[0]);
- param1.setWhereClauseParameter(1,infurHour[0]);
- param1.setWhereClauseParameter(2,extractAvgTemp[0]);
- param1.setWhereClauseParameter(3,eqHtInfurHour[0]);
- param1.setWhereClauseParameter(4,eqHtTemp[0]);
- param1.setWhereClauseParameter(5,WkShift[0]);
- param1.setWhereClauseParameter(6,WkGroup[0]);
- param1.setWhereClauseParameter(7,RegId[0]);
- param1.setWhereClauseParameter(8,"2");
- param1.setWhereClauseParameter(9,slabNo[0]);
- param1.setWhereClauseParameter(10,coilNo[0]);
- getDao("mesdao").update("UIH020020_05.update", param1);
- }
- else{
- PosRow row0 = rowset0.next();
- RHF_STAT = (String) row0.getAttribute("RHF_STAT");
- logger.logInfo("PosSAveOutHeatFurnace---> TBH02_REHEATFUR插入的炉内状态:"+ RHF_STAT);
- param1.setValueParamter(0,slabNo[0]);
- param1.setValueParamter(1,devNo[0]);
- param1.setValueParamter(2,coilNo[0]);
- param1.setValueParamter(3,extractDtime[0]);
- param1.setValueParamter(4,infurHour[0]);
- param1.setValueParamter(5,extractAvgTemp[0]);
- param1.setValueParamter(6,eqHtInfurHour[0]);
- param1.setValueParamter(7,eqHtTemp[0]);
- param1.setValueParamter(8,WkShift[0]);
- param1.setValueParamter(9,WkGroup[0]);
- param1.setValueParamter(10,RegId[0]);
- //这里没用
- //param1.setValueParamter(11,"2");
-
- getDao("mesdao").insert("UIH020020_02.insert",param1);
- }
-
- //修改板坯公共表中的状态
- param2.setWhereClauseParameter(0, "UIH020020");
- param2.setWhereClauseParameter(1, slabNo[0]);
- getDao("mesdao").update("UIH020020_03.update", param2);
-
- //通过加热炉状态判断是否调用品质存储过程和进程
-
-
-
- if(RHF_STAT.equals("1")){
-
- //此方法用来传送异动点数据
- ProduceFactory PD= new ProduceFactory();
- PD.ErpDataCover("HSLAB",slabNo[0],"41A","0","O","加热炉二级丢料","热轧轧制");
-
-
- SendProg_NIE012070( slabNo[0] ,BefProgCd,SPEC_ORD_NO,SPEC_ORD_SEQ,SlabWgt,RegId[0] );
- SendProg_NIE012080();
-
- /*
-
- CallableStatement PlRtn = getDao("mesdao").getCallableStatement("NIH020020_NIB027010");
-
- try {
- if(PlRtn != null) {
- PlRtn.setString(1,coilNo[0]);
- //新增加一个字段,为了废弃的时候使用
- PlRtn.setString(2,"");
- 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("PosSAveOutHeatFurnace---> NIB027010 TC PlRtn1:["+sRetCode+"]:"+ sRetMsg);
-
-
- }
- } catch (SQLException e) {
- throw new PosException(e.getMessage());
- }finally
- {
- if (PlRtn != null)
- {
- try
- {
- PlRtn.close();
- }
- catch (SQLException e)
- {
- logger.logWarn(e.getMessage(), e);
- }
- }
- }
- */
-
-
- }else{
- //多次出炉的情况不做处理
- logger.logInfo("PosSAveOutHeatFurnace---> 多次出炉的情况,只改变TBH02_REHEATFUR里的数据:"+ RHF_STAT);
- }
-
-
-
- } else {
-
- logger.logDebug("PosSaveOutHeatFurnace 输入的钢卷号在轧制计划表 TBG02_SLAB_COMM 中不存在! ");
- String vtemp="PosSaveOutHeatFurnace";
- context.put("rs", vtemp);
-
-
- }
- } else {
- logger.logInfo("PosSaveOutHeatFurnace Failed TBF02_SPEC_MILL STATUS_CD:("+STATUS_CD+")");
- MsgChk = "N";
- }
- }else{
- logger.logInfo("PosSaveOutHeatFurnace Coil_No_Spec 1:("+Coil_No_Spec+")::::"+coilNo[0]);
- //这里出现的异常情况是板坯号与钢卷号不匹配
- String vtemp="OutHeatFurnacePart";
- context.put("rs", vtemp);
- }
- }else{
- //这里返回前台,给出钢卷号不在轧制计划中的提示
- logger.logDebug("PosSaveOutHeatFurnace 输入的钢卷号在轧制计划表 TBF02_SPEC_MILL 中不存在! ");
- String vtemp="PosSaveOutHeatFurnace";
- context.put("rs", vtemp);
- }
-
- context.put("MsgChk",MsgChk);
- return PosBizControlConstants.SUCCESS;
- }
- public void SendProg_NIE012070(String SlabNo,String BefProg,String OrdNo,String OrdSeq,Number wgt,String RegId )
- {
-
- logger.logInfo("PosSAveOutHeatFurnace---> wgt:"+wgt );
-
- // BigDecimal wgt = new BigDecimal();
- PosContext context = new PosContext();
- PosMessage message = new PosMESMessageImpl();
-
-
- String TcId = "NIE012070";
-
-
- message.setTCID(TcId);
- message.setObject("MSG_ID",TcId);
- message.setObject("BEF_ORD_NO",null);
- message.setObject("BEF_ORD_SEQ",null);
- message.setObject("ORD_NO",OrdNo);
- message.setObject("ORD_SEQ",OrdSeq);
- message.setObject("BEF_PROG_CD",BefProg);
- message.setObject("PROG_CD","RCB");
- message.setObject("MAT_TYPE","TM");
- message.setObject("MAT_NO",SlabNo);
- message.setObject("WGT", wgt );
- message.setObject("PGMID","PosSaveOutHeatFur");
- message.setObject("REG_ID",RegId);
-
- context.setMessage(message);
- this.processComponent(PosConstants.CREATE_MESSAGE, context);
- String transactionCode = context.getMessage().getTC();
-
-
- logger.logInfo("PosSAveOutHeatFurnace---> transactionCode:("+transactionCode+")" );
-
- message.setTCID(TcId);
-
- String serviceName = "NIE012070";
-
- String SERVICE_POSTFIX = "-service";
-
-
- context.put(PosBizControlConstants.SERVICE_NAME, serviceName + SERVICE_POSTFIX);
-
-
- context.setMessage(message);
-
-
- PosBizControlIF controller = PosBizProvider.getController();
-
- controller.doSubController(context,false);
-
-
- logger.logInfo("PosSAveOutHeatFurnace---> NIE012070 TC SendProgress end" );
-
-
-
-
- }
- public void 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);
- this.processComponent(PosConstants.CREATE_MESSAGE, context);
- String transactionCode = context.getMessage().getTC();
-
-
- message.setTCID(TcId);
-
- String serviceName = "NIE012080";
-
- String SERVICE_POSTFIX = "-service";
-
-
- context.put(PosBizControlConstants.SERVICE_NAME, serviceName + SERVICE_POSTFIX);
-
-
- context.setMessage(message);
-
-
- PosBizControlIF controller = PosBizProvider.getController();
-
- controller.doSubController(context,false);
-
-
-
-
- }
- }
|