53f5f732c71a5f86a61333bd74c85ba2a2ac6950.svn-base 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362
  1. package xin.glue.nui.G.G02;
  2. import java.math.BigDecimal;
  3. import xin.glue.ui.G.G01.XTBGCOMM;
  4. import xin.glue.ui.G.G01.XTBGCreateMaterial;
  5. import com.posdata.glue.biz.activity.PosActivity;
  6. import com.posdata.glue.biz.constants.PosBizControlConstants;
  7. import com.posdata.glue.biz.control.PosBizControlIF;
  8. import com.posdata.glue.biz.control.PosBizProvider;
  9. import com.posdata.glue.component.PosConstants;
  10. import com.posdata.glue.context.PosContext;
  11. import com.posdata.glue.dao.PosGenericDao;
  12. import com.posdata.glue.dao.vo.PosParameter;
  13. import com.posdata.glue.dao.vo.PosRow;
  14. import com.posdata.glue.dao.vo.PosRowSet;
  15. import com.posdata.glue.msg.PosMESMessageImpl;
  16. import com.posdata.glue.msg.PosMessage;
  17. public class XinSaveChargeProc extends PosActivity
  18. {
  19. public String runActivity(PosContext context)
  20. {
  21. PosGenericDao dao = getDao("mesdao");
  22. PosParameter param;
  23. PosRowSet rowset;
  24. PosRow row;
  25. XTBGCOMM xtbgcom = new XTBGCOMM(dao);
  26. XTBGCreateMaterial xtbcm = new XTBGCreateMaterial(dao);
  27. PosMessage message = context.getMessage();
  28. String mChargeNo = (String)message.get("CHARGE_NO"); // 炉次号
  29. String mPlanChargeNo = (String)message.get("PLAN_CHARGE_NO"); // 计划炉次号
  30. String mProcCd = (String)message.get("TREAT_NO"); // 处理站号
  31. String mEventCd = (String)message.get("EVENT_CD"); // 工序号
  32. String mTreatDtime = (String)message.get("EVENT_DTIME"); // 钢水重量
  33. BigDecimal mEventQty = (BigDecimal)message.get("EVENT_WGT"); // 钢水重量
  34. BigDecimal mTreatTemp = (BigDecimal)message.get("EVENT_TEMP"); // 处理温度
  35. BigDecimal sCastChargeSeq = null; //浇次内顺序
  36. BigDecimal sCastEdtChargeCnt = null; //板坯去向
  37. BigDecimal sPrevChargeWgt = null; //炉次重量
  38. String sStlGrd = null;
  39. String sBOF_STA_DTIME = null;
  40. String sBOF_END_DTIME = null;
  41. String sRH_STA_DTIME = null;
  42. String sRH_END_DTIME = null;
  43. String sLF_STA_DTIME = null;
  44. String sLF_END_DTIME = null;
  45. String sCAS_STA_DTIME = null;
  46. String sCAS_END_DTIME = null;
  47. String sLT_ARRV_DTIME = null;
  48. String sCASTING_STA_DTIME = null;
  49. String sCASTING_END_DTIME = null;
  50. String sCCM_DEP_DTIME = null;
  51. BigDecimal chargeWgt = null; //炉次重量
  52. BigDecimal tappingWgt = null; //转炉出钢重量
  53. String befProgCd = null; //前进程
  54. String progCd = null; //当前进程
  55. String chargeStat = null;
  56. BigDecimal ROW_BOF_TAPPING_WGT = null;
  57. BigDecimal ROW_CHARGE_WGT = null;
  58. if (mEventCd.equals("B01")) {
  59. if(sBOF_STA_DTIME == null ||sBOF_STA_DTIME.equals("")){
  60. sBOF_STA_DTIME = mTreatDtime;
  61. }
  62. } else if (mEventCd.equals("B02")) {
  63. if(sBOF_STA_DTIME == null ||sBOF_STA_DTIME.equals("")){
  64. sBOF_STA_DTIME = mTreatDtime;
  65. }
  66. } else if (mEventCd.equals("B03")) {
  67. if(sBOF_STA_DTIME == null ||sBOF_STA_DTIME.equals("")){
  68. sBOF_STA_DTIME = mTreatDtime;
  69. }
  70. } else if (mEventCd.equals("B04")) {
  71. sBOF_END_DTIME = mTreatDtime;
  72. if(sBOF_STA_DTIME == null ||sBOF_STA_DTIME.equals("")){
  73. sBOF_STA_DTIME = mTreatDtime;
  74. }
  75. } else if (mEventCd.equals("R03")) {sRH_STA_DTIME = mTreatDtime;
  76. } else if (mEventCd.equals("R04")) {sRH_END_DTIME = mTreatDtime;
  77. } else if (mEventCd.equals("L02")) {sLF_STA_DTIME = mTreatDtime;
  78. } else if (mEventCd.equals("L03")) {sLF_END_DTIME = mTreatDtime;
  79. } else if (mEventCd.equals("C02")) {sCAS_STA_DTIME = mTreatDtime;
  80. } else if (mEventCd.equals("C03")) {sCAS_END_DTIME = mTreatDtime;
  81. } else if (mEventCd.equals("J01")) {sLT_ARRV_DTIME = mTreatDtime;sCASTING_END_DTIME = mTreatDtime;
  82. } else if (mEventCd.equals("J02")) {sCASTING_STA_DTIME = mTreatDtime;sCASTING_END_DTIME = mTreatDtime;
  83. } else if (mEventCd.equals("J03")) {sCASTING_END_DTIME = mTreatDtime;
  84. } else if (mEventCd.equals("J04")) {
  85. sCCM_DEP_DTIME = mTreatDtime;sCASTING_END_DTIME = mTreatDtime;
  86. PosParameter pram = new PosParameter();
  87. pram.setWhereClauseParameter(0, sCCM_DEP_DTIME);
  88. pram.setWhereClauseParameter(1,mChargeNo);
  89. getDao("mesdao").update("NIG020200_LD_CCM_DEP_DTIME.update", pram);
  90. }
  91. //通过电文中接收的炉次号查询炉次参数表 TBF01_SPEC_CHARGE 取得的数据项 ,修改炼钢公共表 TBF02_CHARGE_COMM
  92. rowset = context.getRowSet("specCharge");
  93. if(rowset.hasNext()){
  94. row = rowset.next();
  95. sCastChargeSeq = (BigDecimal)row.getAttribute("CAST_CHARGE_SEQ"); //浇次内顺序
  96. sCastEdtChargeCnt = (BigDecimal)row.getAttribute("CAST_EDT_CHARGE_CNT"); //浇次内炉次数
  97. sPrevChargeWgt = (BigDecimal)row.getAttribute("PREV_CHARGE_WGT");
  98. sStlGrd = (String)row.getAttribute("STL_GRD");
  99. }
  100. String sql = "select * from tbg02_charge_comm where CHARGE_NO = ?";
  101. param = new PosParameter();
  102. param.setWhereClauseParameter(0, mChargeNo);
  103. rowset = this.getDao("mesdao").findByQueryStatement(sql,param);
  104. if(!rowset.hasNext()){
  105. xtbcm.CreateCharge("3"+mChargeNo.substring(1, 10));
  106. xtbcm.CreateSlab("3"+mChargeNo.substring(1, 10));
  107. }else{
  108. row = rowset.next();
  109. ROW_BOF_TAPPING_WGT = (BigDecimal)row.getAttribute("BOF_TAPPING_WGT");
  110. ROW_CHARGE_WGT = (BigDecimal)row.getAttribute("CHARGE_WGT");
  111. chargeStat = (String)row.getAttribute("CHARGE_STAT");
  112. if (chargeWgt == null) {chargeWgt = ROW_CHARGE_WGT;}
  113. if (tappingWgt == null) {tappingWgt = ROW_BOF_TAPPING_WGT;}
  114. if(chargeStat.equals("3")){
  115. return PosBizControlConstants.SUCCESS;
  116. }
  117. }
  118. if (mEventQty != null ) {chargeWgt = mEventQty;}
  119. if (mEventCd.equals("B04")) {tappingWgt = mEventQty;}
  120. param = new PosParameter();
  121. param.setWhereClauseParameter(0,"3" + mChargeNo.substring(1,10));
  122. PosRowSet L2Send = dao.find("UIG020020_L2_SEND_CHARGE.select", param);
  123. if(!L2Send.hasNext()){
  124. context.put("MESSAGES", "指示没有下发2级,不能操作");
  125. return PosBizControlConstants.SUCCESS;
  126. }
  127. //if( mEventCd.equals("J01") || mEventCd.equals("J02") || mEventCd.equals("J03") || mEventCd.equals("J04"))return PosBizControlConstants.SUCCESS;
  128. int chLth = mChargeNo.trim().length();
  129. if (chLth < 10 ) {
  130. return PosBizControlConstants.SUCCESS;
  131. }
  132. //steel making progress table and Steel making tracking table update
  133. xtbgcom.steelEventUpt(mChargeNo, mProcCd, mEventCd, mTreatTemp, chargeWgt, mTreatDtime, "2", sStlGrd, sCastEdtChargeCnt, sCastChargeSeq);
  134. //td md update
  135. String TdNo = null;
  136. String MdNo1 = null;
  137. String MdNo2 = null;
  138. if (mProcCd.substring(0,1).equals("J")) {
  139. param = new PosParameter();
  140. String sMC = mProcCd.substring(1,2);
  141. param.setWhereClauseParameter(0, "2");
  142. param.setWhereClauseParameter(1, "2");
  143. param.setWhereClauseParameter(2, sMC);
  144. param.setWhereClauseParameter(3, sMC);
  145. PosRowSet TdMdVo = this.getDao("mesdao").find("NIG020200_TD_MD.select", param);
  146. if (TdMdVo.hasNext() ) {
  147. PosRow TdMdROW = TdMdVo.next();
  148. TdNo = (String)TdMdROW.getAttribute("TD_NO");
  149. MdNo1 = (String)TdMdROW.getAttribute("MD_NO1");
  150. MdNo2 = (String)TdMdROW.getAttribute("MD_NO2");
  151. }
  152. }
  153. //Return Charge Search for setting return charge and return weight to the new charge no
  154. String RtnChNo = null;
  155. Number RtnChWgt = null;
  156. if (mEventCd.substring(0,1).equals("B")) {
  157. PosParameter paramB = new PosParameter();
  158. String sql1 = "select CHARGE_NO,RTN_CHARGE_WGT from tbg02_charge_comm where NEW_PLAN_CHARGE_NO = ?";
  159. paramB.setWhereClauseParameter(0, mPlanChargeNo);
  160. PosRowSet rtnChVO = this.getDao("mesdao").findByQueryStatement(sql1,paramB);
  161. if(rtnChVO.hasNext()) {
  162. PosRow rtnChROW = rtnChVO.next();
  163. RtnChNo = (String)rtnChROW.getAttribute("CHARGE_NO");
  164. RtnChWgt = (Number)rtnChROW.getAttribute("RTN_CHARGE_WGT");
  165. }
  166. }
  167. //炉次事件实绩修改
  168. param = new PosParameter();
  169. param.setWhereClauseParameter(0,TdNo); //中包号
  170. param.setWhereClauseParameter(1,MdNo1); //结晶器1
  171. param.setWhereClauseParameter(2,MdNo2); //结晶器2
  172. param.setWhereClauseParameter(3,sBOF_STA_DTIME);
  173. param.setWhereClauseParameter(4,sBOF_END_DTIME);
  174. param.setWhereClauseParameter(5,sRH_STA_DTIME);
  175. param.setWhereClauseParameter(6,sRH_END_DTIME);
  176. param.setWhereClauseParameter(7,sCAS_STA_DTIME);
  177. param.setWhereClauseParameter(8,sCAS_END_DTIME);
  178. param.setWhereClauseParameter(9,sLF_STA_DTIME);
  179. param.setWhereClauseParameter(10,sLF_END_DTIME);
  180. param.setWhereClauseParameter(11,sLT_ARRV_DTIME);
  181. param.setWhereClauseParameter(12,sCASTING_STA_DTIME);
  182. param.setWhereClauseParameter(13,sCASTING_END_DTIME);
  183. param.setWhereClauseParameter(14,RtnChNo); //回送炉号
  184. param.setWhereClauseParameter(15,RtnChWgt); //回送重量
  185. param.setWhereClauseParameter(16,chargeWgt); //装入量
  186. param.setWhereClauseParameter(17,tappingWgt); //转炉出钢重量
  187. param.setWhereClauseParameter(18,mChargeNo);
  188. this.getDao("mesdao").update("UIG030010_TREAT_DTIME_UPT_01", param);
  189. //炉次信息修改
  190. String PgmId = null;
  191. if(mEventCd.equals("J02")){
  192. PgmId = "XinCcmStart";
  193. }else{
  194. PgmId = mEventCd+"|SaveChrgProc";
  195. }
  196. if (mEventCd.substring(0,1).equals("L")){
  197. progCd = "JLF";
  198. }else if (mEventCd.substring(0,1).equals("R")){
  199. progCd = "JRF";
  200. }else if (mEventCd.substring(0,1).equals("V")){
  201. progCd = "JVF";
  202. }else if (mEventCd.substring(0,1).equals("C")){
  203. progCd = "JCF";
  204. }
  205. if(mEventCd.substring(0,1).equals("B")||mEventCd.substring(0,1).equals("J")){
  206. if (mEventCd.substring(0,1).equals("B")){
  207. if (progCd == null || progCd.equals("") || progCd.equals("JBB")){
  208. progCd = "JBB";
  209. befProgCd = "JBA";
  210. }
  211. }else{
  212. if (progCd == null || progCd.equals("")){
  213. progCd = "JJB";
  214. }
  215. }
  216. }
  217. //计划信息修改
  218. xtbgcom.specChargeProcUpt(mPlanChargeNo, "B", progCd);
  219. xtbgcom.specSlabProcUpt(mPlanChargeNo, "B");
  220. xtbgcom.chargeProcUpt(mChargeNo, "2", progCd, PgmId);
  221. //MODIFY BY WXY 20111121
  222. //SendProg_NIE012070( mPlanChargeNo,befProgCd,progCd,sPrevChargeWgt,PgmId);
  223. //SendProg_NIE012080();
  224. return PosBizControlConstants.SUCCESS;
  225. }
  226. public PosContext SendProg_NIE012070(String ChargeNo ,String befProgCd,String ProgCD,Number prevChargeWgt,String PgmId)
  227. {
  228. logger.logDebug("XinSaveChargeProc SendProg_NIE012070 " );
  229. PosContext context = new PosContext();
  230. PosMessage message = new PosMESMessageImpl();
  231. String TcId = "NIE012070";
  232. message.setTCID(TcId);
  233. message.setObject("MSG_ID",TcId);
  234. message.setObject("BEF_ORD_NO",null);
  235. message.setObject("BEF_ORD_SEQ",null);
  236. message.setObject("ORD_NO",null);
  237. message.setObject("ORD_SEQ",null);
  238. message.setObject("BEF_PROG_CD",befProgCd);
  239. message.setObject("PROG_CD",ProgCD);
  240. message.setObject("MAT_TYPE","CH");
  241. message.setObject("MAT_NO",ChargeNo);
  242. message.setObject("WGT",prevChargeWgt);
  243. message.setObject("PGMID",PgmId);
  244. message.setObject("REG_ID","LEVEL2");
  245. context.setMessage(message);
  246. this.processComponent(PosConstants.CREATE_MESSAGE, context);
  247. String transactionCode = context.getMessage().getTC();
  248. logger.logDebug("XinSaveChargeProc---> transactionCode:("+transactionCode+")" );
  249. message.setTCID(TcId);
  250. String serviceName = "NIE012070";
  251. String SERVICE_POSTFIX = "-service";
  252. context.put(PosBizControlConstants.SERVICE_NAME, serviceName + SERVICE_POSTFIX);
  253. context.setMessage(message);
  254. PosBizControlIF controller = PosBizProvider.getController();
  255. controller.doSubController(context,false);
  256. logger.logDebug("XinSaveChargeProc---> NIE012070 TC SendProgress end" );
  257. return null;
  258. }
  259. public PosContext SendProg_NIE012080()
  260. {
  261. logger.logDebug("XinSaveChargeProc SendProg_NIE012080 " );
  262. PosContext context = new PosContext();
  263. PosMessage message = new PosMESMessageImpl();
  264. String TcId = "NIE012080";
  265. message.setTCID(TcId);
  266. message.setObject("MSG_ID",TcId);
  267. message.setObject("AA",null);
  268. context.setMessage(message);
  269. this.processComponent(PosConstants.CREATE_MESSAGE, context);
  270. String transactionCode = context.getMessage().getTC();
  271. logger.logDebug("XinSaveChargeProc---> transactionCode:("+transactionCode+")" );
  272. message.setTCID(TcId);
  273. String serviceName = "NIE012080";
  274. String SERVICE_POSTFIX = "-service";
  275. context.put(PosBizControlConstants.SERVICE_NAME, serviceName + SERVICE_POSTFIX);
  276. context.setMessage(message);
  277. PosBizControlIF controller = PosBizProvider.getController();
  278. controller.doSubController(context,false);
  279. String SERVICE_ERR_MSG = (String) context.get("SERVICE_ERR_MSG");
  280. logger.logDebug("XinSaveChargeProc SERVICE_ERR_MSG:"+SERVICE_ERR_MSG );
  281. return null;
  282. }
  283. }