3118de799a33d1765d44b3d78903a5c34433fef0.svn-base 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365
  1. package xin.glue.ui.G.G03;
  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. /*
  18. * 炼钢工序管理修改工序类
  19. * @author 王小炎
  20. * @date 2008.08.11
  21. */
  22. public class PosSaveSmsProg extends PosActivity
  23. {
  24. public String runActivity(PosContext context)
  25. {
  26. PosGenericDao dao = getDao("mesdao");
  27. PosParameter param ;
  28. PosRowSet rowset;
  29. PosRow row;
  30. XTBGCOMM xtbgcom = new XTBGCOMM(dao);
  31. XTBGCreateMaterial xtbcm = new XTBGCreateMaterial(dao);
  32. //从页面获取参数数据,供更新数据用
  33. String[] status = (String[]) context.get("rowStuts");
  34. String[] mChargeNo = (String[]) context.get("CHARGE_NO");
  35. String[] mPlanChargeNo = (String[]) context.get("PLAN_CHARGE_NO");
  36. String[] mEventCd = (String[]) context.get("SM_CD");
  37. String[] mTreatDtime = (String[]) context.get("TREAT_DTIME");
  38. String[] mProcCd = (String[]) context.get("PROC_CD");
  39. if(mProcCd == null || mTreatDtime == null){
  40. return PosBizControlConstants.SUCCESS;
  41. }
  42. //status为空,则前台没有数据传送过来,返回
  43. if (status == null){
  44. context.put("MESSAGES", "请选择工序");
  45. return PosBizControlConstants.SUCCESS;
  46. }
  47. for (int i = 0; i < status.length; i++)
  48. {
  49. String sBOF_STA_DTIME = null;
  50. String sBOF_END_DTIME = null;
  51. String sRH_STA_DTIME = null;
  52. String sRH_END_DTIME = null;
  53. String sLF_STA_DTIME = null;
  54. String sLF_END_DTIME = null;
  55. String sCAS_STA_DTIME = null;
  56. String sCAS_END_DTIME = null;
  57. String sLT_ARRV_DTIME = null;
  58. String sCASTING_STA_DTIME = null;
  59. String sCASTING_END_DTIME = null;
  60. String sCCM_DEP_DTIME = null;
  61. BigDecimal chargeWgt = null; //炉次重量
  62. BigDecimal tappingWgt = null; //转炉出钢重量
  63. String befProgCd = null; //前进程
  64. String progCd = null;
  65. String chargeStat = null;
  66. BigDecimal sCastChargeSeq = null;
  67. BigDecimal sCastEdtChargeCnt = null;
  68. String sStlGrd = null;
  69. BigDecimal sPrevChargeWgt = null;
  70. //计划板坯号
  71. if(mPlanChargeNo[i] == null || mPlanChargeNo[i].equals("")){
  72. mPlanChargeNo[i] = "3" + mChargeNo[i].substring(1, 10);
  73. }
  74. param = new PosParameter();
  75. param.setWhereClauseParameter(0,mPlanChargeNo[i]);
  76. PosRowSet L2Send = dao.find("UIG020020_L2_SEND_CHARGE.select", param);
  77. if(!L2Send.hasNext()){
  78. context.put("MESSAGES", "指示没有下发2级,不能操作");
  79. return PosBizControlConstants.SUCCESS;
  80. }
  81. if (chargeStat != null && chargeStat.equals("3")){
  82. context.put("MESSAGES", "炉次已经结束,不能操作");
  83. return PosBizControlConstants.SUCCESS;
  84. }
  85. param = new PosParameter();
  86. param.setWhereClauseParameter(0, mPlanChargeNo[i]);
  87. rowset = dao.find("NIG020200_SPEC_CHARGE.select",param);
  88. if(rowset.hasNext()){
  89. row = rowset.next();
  90. sCastChargeSeq = (BigDecimal)row.getAttribute("CAST_CHARGE_SEQ"); //浇次内顺序
  91. sCastEdtChargeCnt = (BigDecimal)row.getAttribute("CAST_EDT_CHARGE_CNT"); //浇次内炉次数
  92. sStlGrd = (String)row.getAttribute("STL_GRD"); //牌号
  93. sPrevChargeWgt = (BigDecimal)row.getAttribute("PREV_CHARGE_WGT");
  94. }
  95. if (mEventCd[i].equals("B03")) {sBOF_STA_DTIME = mTreatDtime[i];
  96. } else if (mEventCd[i].equals("B04")) {sBOF_END_DTIME = mTreatDtime[i];
  97. } else if (mEventCd[i].equals("R03")) {sRH_STA_DTIME = mTreatDtime[i];
  98. } else if (mEventCd[i].equals("R04")) {sRH_END_DTIME = mTreatDtime[i];
  99. } else if (mEventCd[i].equals("L02")) {sLF_STA_DTIME = mTreatDtime[i];
  100. } else if (mEventCd[i].equals("L03")) {sLF_END_DTIME = mTreatDtime[i];
  101. } else if (mEventCd[i].equals("C02")) {sCAS_STA_DTIME = mTreatDtime[i];
  102. } else if (mEventCd[i].equals("C03")) {sCAS_END_DTIME = mTreatDtime[i];
  103. } else if (mEventCd[i].equals("J01")) {sLT_ARRV_DTIME = mTreatDtime[i];sCASTING_END_DTIME = mTreatDtime[i];
  104. } else if (mEventCd[i].equals("J02")) {sCASTING_STA_DTIME = mTreatDtime[i];sCASTING_END_DTIME = mTreatDtime[i];
  105. } else if (mEventCd[i].equals("J03")) {sCASTING_END_DTIME = mTreatDtime[i];
  106. } else if (mEventCd[i].equals("J04")) {
  107. sCCM_DEP_DTIME = mTreatDtime[i];sCASTING_END_DTIME = mTreatDtime[i];
  108. PosParameter pram = new PosParameter();
  109. pram.setWhereClauseParameter(0, sCCM_DEP_DTIME);
  110. pram.setWhereClauseParameter(1,mChargeNo[i]);
  111. getDao("mesdao").update("NIG020200_LD_CCM_DEP_DTIME.update", pram);
  112. }
  113. //中包,结晶器修改
  114. String TdNo = null;
  115. String MdNo1 = null;
  116. String MdNo2 = null;
  117. param = new PosParameter();
  118. if (mProcCd[i].substring(0,1).equals("J")) {
  119. String sMC = mProcCd[i].substring(1,2);
  120. param.setWhereClauseParameter(0, "2");
  121. param.setWhereClauseParameter(1, "2");
  122. param.setWhereClauseParameter(2, sMC);
  123. param.setWhereClauseParameter(3, sMC);
  124. rowset = this.getDao("mesdao").find("NIG020200_TD_MD.select", param);
  125. if (rowset.hasNext() ) {
  126. row = rowset.next();
  127. TdNo = (String)row.getAttribute("TD_NO");
  128. MdNo1 = (String)row.getAttribute("MD_NO1");
  129. MdNo2 = (String)row.getAttribute("MD_NO2");
  130. }
  131. }
  132. // 回送炉次信息修改
  133. String RtnChNo = null;
  134. Number RtnChWgt = null;
  135. if (mEventCd[i].substring(0,1).equals("B")) {
  136. PosParameter paramB = new PosParameter();
  137. String sql1 = "select CHARGE_NO,RTN_CHARGE_WGT from tbg02_charge_comm where NEW_PLAN_CHARGE_NO = ?";
  138. paramB.setWhereClauseParameter(0, mPlanChargeNo[i]);
  139. PosRowSet rtnChVO = this.getDao("mesdao").findByQueryStatement(sql1,paramB);
  140. if(rtnChVO.hasNext()) {
  141. PosRow rtnChROW = rtnChVO.next();
  142. RtnChNo = (String)rtnChROW.getAttribute("CHARGE_NO");
  143. RtnChWgt = (Number)rtnChROW.getAttribute("RTN_CHARGE_WGT");
  144. }
  145. }
  146. //检查炉次,板坯记录是否存在
  147. String sql = "select * from tbg02_charge_comm where CHARGE_NO = ?";
  148. param = new PosParameter();
  149. param.setWhereClauseParameter(0, mChargeNo[i]);
  150. rowset = this.getDao("mesdao").findByQueryStatement(sql,param);
  151. if(!rowset.hasNext()){
  152. xtbcm.CreateCharge(mPlanChargeNo[i]);
  153. xtbcm.CreateSlab(mPlanChargeNo[i]);
  154. }else{
  155. row = rowset.next();
  156. chargeStat = (String)row.getAttribute("CHARGE_STAT");
  157. tappingWgt = (BigDecimal)row.getAttribute("BOF_TAPPING_WGT"); //转炉出钢量
  158. chargeWgt = (BigDecimal)row.getAttribute("CHARGE_WGT"); //装入量
  159. progCd = (String)row.getAttribute("CUR_PROG_CD");
  160. befProgCd = (String)row.getAttribute("BEF_PROG_CD");
  161. sBOF_STA_DTIME = (sBOF_STA_DTIME != null && !sBOF_STA_DTIME.equals(""))?sBOF_STA_DTIME:(String)row.getAttribute("BOF_STA_DTIME");
  162. sBOF_END_DTIME = (sBOF_END_DTIME != null && !sBOF_END_DTIME.equals(""))?sBOF_END_DTIME:(String)row.getAttribute("BOF_STA_DTIME");
  163. sRH_STA_DTIME = (sRH_STA_DTIME != null && !sRH_STA_DTIME.equals(""))?sRH_STA_DTIME:(String)row.getAttribute("BOF_STA_DTIME");
  164. sRH_END_DTIME = (sRH_END_DTIME != null && !sRH_END_DTIME.equals(""))?sRH_END_DTIME:(String)row.getAttribute("BOF_STA_DTIME");
  165. sLF_STA_DTIME = (sLF_STA_DTIME != null && !sLF_STA_DTIME.equals(""))?sLF_STA_DTIME:(String)row.getAttribute("BOF_STA_DTIME");
  166. sLF_END_DTIME = (sLF_END_DTIME != null && !sLF_END_DTIME.equals(""))?sLF_END_DTIME:(String)row.getAttribute("BOF_STA_DTIME");
  167. sCAS_STA_DTIME = (sCAS_STA_DTIME != null && !sCAS_STA_DTIME.equals(""))?sCAS_STA_DTIME:(String)row.getAttribute("BOF_STA_DTIME");
  168. sCAS_END_DTIME = (sCAS_END_DTIME != null && !sCAS_END_DTIME.equals(""))?sCAS_END_DTIME:(String)row.getAttribute("BOF_STA_DTIME");
  169. sLT_ARRV_DTIME = (sLT_ARRV_DTIME != null && !sLT_ARRV_DTIME.equals(""))?sLT_ARRV_DTIME:(String)row.getAttribute("BOF_STA_DTIME");
  170. sCASTING_STA_DTIME = (sCASTING_STA_DTIME != null && !sCASTING_STA_DTIME.equals(""))?sCASTING_STA_DTIME:(String)row.getAttribute("BOF_STA_DTIME");
  171. sCASTING_END_DTIME = (sCASTING_END_DTIME != null && !sCASTING_END_DTIME.equals(""))?sCASTING_END_DTIME:(String)row.getAttribute("BOF_STA_DTIME");
  172. }
  173. //steel making progress table and Steel making tracking table update
  174. xtbgcom.steelEventUpt(mChargeNo[i], mProcCd[i], mEventCd[i], new BigDecimal(0), chargeWgt, mTreatDtime[i], "2", sStlGrd, sCastEdtChargeCnt, sCastChargeSeq);
  175. //炉次事件实绩修改
  176. param = new PosParameter();
  177. param.setWhereClauseParameter(0,TdNo); //中包号
  178. param.setWhereClauseParameter(1,MdNo1); //结晶器1
  179. param.setWhereClauseParameter(2,MdNo2); //结晶器2
  180. param.setWhereClauseParameter(3,sBOF_STA_DTIME);
  181. param.setWhereClauseParameter(4,sBOF_END_DTIME);
  182. param.setWhereClauseParameter(5,sRH_STA_DTIME);
  183. param.setWhereClauseParameter(6,sRH_END_DTIME);
  184. param.setWhereClauseParameter(7,sCAS_STA_DTIME);
  185. param.setWhereClauseParameter(8,sCAS_END_DTIME);
  186. param.setWhereClauseParameter(9,sLF_STA_DTIME);
  187. param.setWhereClauseParameter(10,sLF_END_DTIME);
  188. param.setWhereClauseParameter(11,sLT_ARRV_DTIME);
  189. param.setWhereClauseParameter(12,sCASTING_STA_DTIME);
  190. param.setWhereClauseParameter(13,sCASTING_END_DTIME);
  191. param.setWhereClauseParameter(14,RtnChNo); //回送炉号
  192. param.setWhereClauseParameter(15,RtnChWgt); //回送重量
  193. param.setWhereClauseParameter(16,chargeWgt); //装入量
  194. param.setWhereClauseParameter(17,tappingWgt); //转炉出钢重量
  195. param.setWhereClauseParameter(18,mChargeNo[i]);
  196. this.getDao("mesdao").update("UIG030010_TREAT_DTIME_UPT_01", param);
  197. //炉次信息修改
  198. String PgmId = null;
  199. if(mEventCd[i].equals("J02")) {
  200. PgmId = "XinCcmStart";
  201. } else {
  202. PgmId = "ManSaveChargeProc";
  203. }
  204. if(mEventCd[i].substring(0,1).equals("B")||mEventCd[i].substring(0,1).equals("J")){
  205. if (mEventCd[i].substring(0,1).equals("B")){
  206. if (progCd == null || progCd.equals("") || progCd.equals("JBB")){
  207. progCd = "JBB";
  208. befProgCd = "JBA";
  209. }
  210. }else{
  211. if (progCd == null || progCd.equals("")){
  212. progCd = "JJB";
  213. }
  214. }
  215. }
  216. //计划信息修改
  217. xtbgcom.specChargeProcUpt(mPlanChargeNo[i], "B", progCd);
  218. xtbgcom.specSlabProcUpt(mPlanChargeNo[i], "B");
  219. xtbgcom.chargeProcUpt(mChargeNo[i], "2", progCd, PgmId);
  220. //进程调用
  221. SendProg_NIE012070( mPlanChargeNo[i],befProgCd,progCd,sPrevChargeWgt,PgmId);
  222. SendProg_NIE012080();
  223. }
  224. context.put("MESSAGES", "操作成功!");
  225. return PosBizControlConstants.SUCCESS;
  226. }
  227. public PosContext SendProg_NIE012070(String ChargeNo ,String befProgCd,String ProgCD,Number prevChargeWgt,String PgmId)
  228. {
  229. logger.logDebug("XinSaveChargeProc SendProg_NIE012070 " );
  230. PosContext context = new PosContext();
  231. PosMessage message = new PosMESMessageImpl();
  232. String TcId = "NIE012070";
  233. message.setTCID(TcId);
  234. message.setObject("MSG_ID",TcId);
  235. message.setObject("BEF_ORD_NO",null);
  236. message.setObject("BEF_ORD_SEQ",null);
  237. message.setObject("ORD_NO",null);
  238. message.setObject("ORD_SEQ",null);
  239. message.setObject("BEF_PROG_CD",befProgCd);
  240. message.setObject("PROG_CD",ProgCD);
  241. message.setObject("MAT_TYPE","CH");
  242. message.setObject("MAT_NO",ChargeNo);
  243. message.setObject("WGT",prevChargeWgt);
  244. message.setObject("PGMID",PgmId);
  245. message.setObject("REG_ID","LEVEL2");
  246. context.setMessage(message);
  247. this.processComponent(PosConstants.CREATE_MESSAGE, context);
  248. String transactionCode = context.getMessage().getTC();
  249. logger.logDebug("XinSaveChargeProc---> transactionCode:("+transactionCode+")" );
  250. message.setTCID(TcId);
  251. String serviceName = "NIE012070";
  252. String SERVICE_POSTFIX = "-service";
  253. context.put(PosBizControlConstants.SERVICE_NAME, serviceName + SERVICE_POSTFIX);
  254. context.setMessage(message);
  255. PosBizControlIF controller = PosBizProvider.getController();
  256. controller.doSubController(context,false);
  257. logger.logDebug("XinSaveChargeProc---> NIE012070 TC SendProgress end" );
  258. return null;
  259. }
  260. public PosContext SendProg_NIE012080()
  261. {
  262. logger.logDebug("XinSaveChargeProc SendProg_NIE012080 " );
  263. PosContext context = new PosContext();
  264. PosMessage message = new PosMESMessageImpl();
  265. String TcId = "NIE012080";
  266. message.setTCID(TcId);
  267. message.setObject("MSG_ID",TcId);
  268. message.setObject("AA",null);
  269. context.setMessage(message);
  270. this.processComponent(PosConstants.CREATE_MESSAGE, context);
  271. String transactionCode = context.getMessage().getTC();
  272. logger.logDebug("XinSaveChargeProc---> transactionCode:("+transactionCode+")" );
  273. message.setTCID(TcId);
  274. String serviceName = "NIE012080";
  275. String SERVICE_POSTFIX = "-service";
  276. context.put(PosBizControlConstants.SERVICE_NAME, serviceName + SERVICE_POSTFIX);
  277. context.setMessage(message);
  278. PosBizControlIF controller = PosBizProvider.getController();
  279. controller.doSubController(context,false);
  280. String SERVICE_ERR_MSG = (String) context.get("SERVICE_ERR_MSG");
  281. logger.logDebug("XinSaveChargeProc SERVICE_ERR_MSG:"+SERVICE_ERR_MSG );
  282. return null;
  283. }
  284. }