| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461 |
- package xin.glue.ui.G.G04;
- import java.math.BigDecimal;
- import java.text.DateFormat;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- 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;
- public class XinInsertNewCutSlab extends PosActivity {
- public String runActivity(PosContext context) {
-
- String[] SLAB_NO = (String[])context.get("SLAB_NO");
- String[] SIZE_DEC_FL = (String[])context.get("SIZE_DEC_FL");
- String[] MODIFY_CD = (String[])context.get("MODIFY_CD");
- String[] SIZE_UPDT_BEF_THK = (String[])context.get("SIZE_UPDT_BEF_THK");
- String[] SIZE_UPDT_BEF_WTH = (String[])context.get("SIZE_UPDT_BEF_WTH");
- String[] SIZE_UPDT_BEF_LEN = (String[])context.get("SIZE_UPDT_BEF_LEN");
- String[] SIZE_UPDT_BEF_WGT = (String[])context.get("SIZE_UPDT_BEF_WGT");
- String[] SLAB_THK = (String[])context.get("SLAB_THK");
- String[] SLAB_WTH = (String[])context.get("SLAB_WTH");
- String[] SLAB_LEN = (String[])context.get("SLAB_LEN");
- String[] SLAB_WGT = (String[])context.get("SLAB_WGT");
- String[] SIZE_UPDT_WKSHIFT = (String[])context.get("SIZE_UPDT_WKSHIFT");
- String[] SIZE_UPDT_WKGROUP = (String[])context.get("SIZE_UPDT_WKGROUP");
- String[] SIZE_UPDT_EMP_NO = (String[])context.get("SIZE_UPDT_EMP_NO");
- String[] UPDT_BEF_SLABNO = (String[])context.get("UPDT_BEF_SLABNO");
- String[] SLAB_YARD_ADDR = (String[])context.get("CUR_LOAD_LOC");
- String[] ORL_YARD_ADDR = (String[])context.get("ORL_LOAD_LOC");
-
- PosParameter param1 = new PosParameter();
- param1.setWhereClauseParameter(0,UPDT_BEF_SLABNO[0]);
-
- PosRowSet slabComVo = getDao("mesdao").find("UIG040070_04.select", param1);
-
- String OrdNo = "";
- String OrdSeq = "";
- String OrdFl = "";
- String CurProgCd = "";
- String BefProgCd = "";
- String BefOrdNo = "";
- String BefOrdSeq = "";
- String NonOrdResCd = "";
- String NonOrdResDate = "";
- String smsYardEntDtime = "";
- String slabStockEntDtime = "";
- String slabRt = "";
-
- if (slabComVo.hasNext()) {
- PosRow slabComROW = slabComVo.next();
- OrdNo = (String)slabComROW.getAttribute("ORD_NO");
- OrdSeq = (String)slabComROW.getAttribute("ORD_SEQ");
- CurProgCd = (String)slabComROW.getAttribute("CUR_PROG_CD");
- OrdFl = (String)slabComROW.getAttribute("ORD_FL");
- smsYardEntDtime = (String)slabComROW.getAttribute("SMS_YARD_ENT_DTIME");
- slabStockEntDtime = (String)slabComROW.getAttribute("SLAB_STOCK_ENT_DTIME");
- slabRt = (String)slabComROW.getAttribute("SLAB_RT");
-
- BefProgCd = CurProgCd;
- BefOrdNo = OrdNo;
- BefOrdSeq = OrdSeq;
- }else{
- context.put("MESSAGES", " 错误,缺少板坯信息! ");
- return PosBizControlConstants.SUCCESS;
- }
-
- if(!(CurProgCd.equals("RBA")||CurProgCd.equals("RRC")||CurProgCd.equals("RGB"))){
- context.put("MESSAGES", " 坯料状态错误,不能操作! ");
- return PosBizControlConstants.SUCCESS;
- }
- //区分炼钢热轧入库
- if(ORL_YARD_ADDR[0].substring(0, 1).equals("L")){
- DateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
- smsYardEntDtime = formatter.format(new Date());
- }else if(ORL_YARD_ADDR[0].substring(0, 1).equals("Z")){
- DateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
- slabStockEntDtime = formatter.format(new Date());
- }else{
- context.put("MESSAGES", " 错误,坯料不在库! ");
- return PosBizControlConstants.SUCCESS;
- }
-
- // 未指示切割 全部降为余材
- if(MODIFY_CD[0].equals("02")){
-
- CurProgCd = slabRt.equals("H")?"RRC":"RGB";
- OrdFl = "2";
- OrdNo = "";
- OrdSeq = "";
- NonOrdResCd = "3A"; //尺寸变更
- DateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
- NonOrdResDate = formatter.format(new Date());
- // 指示切割
- }else if(MODIFY_CD[0].equals("03")){
- CurProgCd = slabRt.equals("H")?"RRC":"RGB";
- OrdFl = "2";
- OrdNo = "";
- OrdSeq = "";
- NonOrdResCd = "3A"; //尺寸变更
- DateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
- NonOrdResDate = formatter.format(new Date());
- }
-
-
- PosParameter param = null;
- if(UPDT_BEF_SLABNO.length > 0 ){
- for(int i = 0 ; i < UPDT_BEF_SLABNO.length ; i++){
- /*
- //指示切割
- if(MODIFY_CD[0].equals("03")){
-
- BigDecimal Wgt = new BigDecimal(SLAB_WGT[i]);
- String RtnSizeDec = SlabSizeDec(new BigDecimal(SLAB_THK[i]),new BigDecimal(SLAB_WTH[i]),new BigDecimal(SLAB_LEN[i]),SLAB_NO[i],Wgt);
- if(RtnSizeDec.equals("Y")){
- SIZE_DEC_FL[i] = "1";
- }else if(RtnSizeDec.equals("N")){
- SIZE_DEC_FL[i] = "2";
- }else if(RtnSizeDec.equals("F")){
- context.put("MESSAGES", " 错误,不能为指示切割! ");
- return PosBizControlConstants.SUCCESS;
- }
-
- //尺寸不合格
- if(SIZE_DEC_FL[i].equals("2")){
- CurProgCd = slabRt.equals("H")?"RRC":"RGB";
- OrdFl = "2";
- OrdNo = "";
- OrdSeq = "";
- NonOrdResCd = "3B"; //尺寸异常
- DateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
- NonOrdResDate = formatter.format(new Date());
- }else if(SIZE_DEC_FL[i].equals("1")){
- if (OrdFl != null && OrdFl.equals("2")) {
- CurProgCd = slabRt.equals("H")?"RRC":"RGB";
- } else if (OrdFl.equals("1")){
- CurProgCd = "RBA"; //轧钢指示待机
- }
- }
- }*/
-
- String storelay = null;
- param = new PosParameter();
- if(SLAB_YARD_ADDR[i]== null&& SLAB_YARD_ADDR[i].equals(""))continue;
- param.setWhereClauseParameter(0, SLAB_YARD_ADDR[i]);
- PosRowSet storelayVo = getDao("mesdao").find("UIG040060_YARD_LAY.select", param);
- if(storelayVo.hasNext()){
- PosRow storelayRow = storelayVo.next();
- storelay = (String)storelayRow.getAttribute("STORELAY");
- }
-
-
-
- param = new PosParameter();
- param.setWhereClauseParameter(0, SLAB_NO[i]);
- param.setWhereClauseParameter(1, "UIG040070");
- param.setWhereClauseParameter(2,SLAB_YARD_ADDR[i]);
- param.setWhereClauseParameter(3, storelay);
-
- this.getDao("mesdao").update("UIG040070_SLAB_YARD.update", param);
-
-
-
- param = new PosParameter();
- param.setValueParamter(0, SLAB_NO[i]);
- param.setValueParamter(1, CurProgCd );
- param.setValueParamter(2, BefOrdNo);
- param.setValueParamter(3, BefOrdSeq );
- param.setValueParamter(4, OrdNo );
- param.setValueParamter(5, OrdSeq );
- param.setValueParamter(6, OrdFl );
- param.setValueParamter(7, SLAB_THK[i]);
- param.setValueParamter(8, SLAB_WTH[i]);
- param.setValueParamter(9, SLAB_LEN[i]);
- param.setValueParamter(10, SLAB_WGT[i]);
- param.setValueParamter(11, MODIFY_CD[i]);
- param.setValueParamter(12, SIZE_UPDT_BEF_THK[i]);
- param.setValueParamter(13, SIZE_UPDT_BEF_WTH[i]);
- param.setValueParamter(14, SIZE_UPDT_BEF_LEN[i]);
- param.setValueParamter(15, SIZE_UPDT_BEF_WGT[i]);
- param.setValueParamter(16, SLAB_THK[i]);
- param.setValueParamter(17, SLAB_WTH[i]);
- param.setValueParamter(18, SLAB_LEN[i]);
- param.setValueParamter(19, SLAB_WGT[i]);
- param.setValueParamter(20, SIZE_UPDT_WKSHIFT[i]);
- param.setValueParamter(21, SIZE_UPDT_WKGROUP[i]);
- param.setValueParamter(22, SIZE_UPDT_EMP_NO[i]);
- param.setValueParamter(23, SIZE_DEC_FL[i]);
- param.setValueParamter(24, NonOrdResCd);
- param.setValueParamter(25, NonOrdResDate);
- param.setValueParamter(26, SLAB_YARD_ADDR[i] + storelay);
- param.setValueParamter(27, smsYardEntDtime);
- param.setValueParamter(28, slabStockEntDtime);
- param.setValueParamter(29, SLAB_NO[i]);
- param.setValueParamter(30, UPDT_BEF_SLABNO[i]);
- this.getDao("mesdao").insert("UIG040070_SHR.insert",param);
-
- param = new PosParameter();
- param.setValueParamter(0, SLAB_NO[i]);
- param.setValueParamter(1, UPDT_BEF_SLABNO[i]);
- this.getDao("mesdao").insert("UIG040070_SHR_COMMD_02.insert",param);
-
- param = new PosParameter();
- param.setValueParamter(0, OrdFl);
- param.setValueParamter(1, SLAB_NO[i]);
- getDao("mesdao").update("UIG040070_SLAB_COMM_D_ORDFL.update", param);
-
- //进程整理
- BigDecimal SlabWgt = new BigDecimal(SLAB_WGT[i]);
- SendProg_NIE012070(SLAB_NO[i],OrdNo,OrdSeq,BefOrdNo,BefOrdSeq,CurProgCd,BefProgCd,"TM",SlabWgt);
- SendProg_NIE012080();
-
- }
-
- //结束母板坯
- param = new PosParameter();
- param.setWhereClauseParameter(0, UPDT_BEF_SLABNO[0]);
- this.getDao("mesdao").update("UIG040070_SLAB_END.update",param);
-
- param = new PosParameter();
- param.setWhereClauseParameter(0, UPDT_BEF_SLABNO[0]);
- this.getDao("mesdao").update("UIG040070_SLAB_COMM.update", param);
-
- //整理垛位
- SendProg_NIG040200(ORL_YARD_ADDR[0].substring(0,(ORL_YARD_ADDR[0].length()-2)));
-
- context.put("MESSAGES", " 操作成功! ");
- }
- return PosBizControlConstants.SUCCESS;
- }
- // 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,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");
- }else return "F";
- 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 PosContext SendProg_NIE012070(String MatNo,String sOrdNo,String sOrdSeq,String sBefOrdNo,String sBefOrdSeq,String sProgCd,String BefProcCd,String sKind,BigDecimal nwgt )
- {
-
-
- PosContext context = new PosContext();
- PosMessage message = new PosMESMessageImpl();
-
-
- 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",BefProcCd);
- message.setObject("PROG_CD",sProgCd);
- message.setObject("MAT_TYPE",sKind);
- message.setObject("MAT_NO",MatNo);
- message.setObject("WGT", nwgt );
- message.setObject("PGMID","UIG040070");
- message.setObject("REG_ID","UIG040070");
- message.setTCID(TcId);
-
- context.setMessage(message);
-
-
- // this.processComponent(PosConstants.CREATE_MESSAGE, context);
- // String transactionCode = context.getMessage().getTC();
-
-
-
- String SERVICE_POSTFIX = "-service";
-
-
- context.put(PosBizControlConstants.SERVICE_NAME, TcId + SERVICE_POSTFIX);
-
-
- // context.setMessage(message);
-
-
- PosBizControlIF controller = PosBizProvider.getController();
-
- controller.doSubController(context,false);
-
-
-
- return null;
- }
- 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);
-
-
-
- }
-
- public String SendProg_NIG040200(String yardAddr)
- {
-
- logger.logInfo("PosSaveSlabCutting---> yardAddr:"+yardAddr );
-
- PosContext context = new PosContext();
- PosMessage message = new PosMESMessageImpl();
-
- String TcId = "NIG040200";
-
- message.setTCID(TcId);
- message.setObject("MSG_ID",TcId);
- message.setObject("YARD_ADDR",yardAddr);
-
- 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;
- }
- }
|