0b445918684b43842a9142447b25b8cdabe2f24c.svn-base 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481
  1. package xin.glue.ui.H.H01;
  2. /********
  3. 这里为卷板移送板加单独做个类处理 TL 091223
  4. ************/
  5. import java.math.BigDecimal;
  6. import com.posdata.glue.biz.activity.PosActivity;
  7. import com.posdata.glue.biz.constants.PosBizControlConstants;
  8. import com.posdata.glue.biz.control.PosBizControlIF;
  9. import com.posdata.glue.biz.control.PosBizProvider;
  10. import com.posdata.glue.component.PosConstants;
  11. import com.posdata.glue.context.PosContext;
  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 saveBJTransf extends PosActivity{
  18. public String runActivity(PosContext context)
  19. {
  20. // 从页面获取参数数据,供更新页面使用
  21. //行状态
  22. String[] rowStuts = (String[])context.get("rowStatus");
  23. //选择标志
  24. String[] CHK = (String[])context.get("CHK");
  25. //钢卷号
  26. String[] OLD_SAMPL_NO = (String[])context.get("OLD_SAMPL_NO");
  27. //钢号
  28. String[] SPEC_STL_GRD = (String[])context.get("SPEC_STL_GRD");
  29. //合同号
  30. String[] ORD_NO = (String[])context.get("ORD_NO");
  31. //订单号
  32. String[] ORD_SEQ = (String[])context.get("ORD_SEQ");
  33. //板坯号
  34. String[] SLAB_NO = (String[])context.get("SLAB_NO");
  35. //钢卷厚度
  36. String[] COIL_THK = (String[])context.get("COIL_THK");
  37. //钢卷宽度
  38. String[] COIL_WTH = (String[])context.get("COIL_WTH");
  39. //钢卷长度
  40. String[] COIL_LEN = (String[])context.get("COIL_LEN");
  41. //钢卷重量
  42. String[] ACT_WGT = (String[])context.get("ACT_WGT");
  43. //钢卷内径
  44. String[] COIL_INDIA = (String[])context.get("COIL_INDIA");
  45. //钢卷外径
  46. String[] COIL_OUTDIA = (String[])context.get("COIL_OUTDIA");
  47. //车号
  48. String[] TRANS_CAR_NO = (String[])context.get("TRANS_CAR_NO");
  49. //移送单号
  50. //String[] SHIP_INVNO = (String[])context.get("SHIP_INVNO");
  51. //移送目的地
  52. String[] ROUTE = (String[])context.get("ROUTE");
  53. //移送状态
  54. //String[] MOVE_ST = (String[])context.get("MOVE_ST");
  55. //交货期
  56. String[] DEVLMT_DTIME = (String[])context.get("DEVLMT_DTIME");
  57. //客户
  58. String[] ORDCUST_CD = (String[])context.get("ORDCUST_CD");
  59. //目的地
  60. String[] DEST_PCD = (String[])context.get("DEST_PCD");
  61. //产品代码
  62. String[] PRODNM_CD = (String[])context.get("PRODNM_CD");
  63. //标准号
  64. String[] SPEC_ABBSYM = (String[])context.get("SPEC_ABBSYM");
  65. //轧制时间
  66. String[] MILL_DTIME = (String[])context.get("MILL_DTIME");
  67. //订单厚度
  68. String[] INSTR_COIL_THK = (String[])context.get("INSTR_COIL_THK");
  69. //订单宽度
  70. String[] INSTR_COIL_WTH = (String[])context.get("INSTR_COIL_WTH");
  71. //订单长度
  72. String[] INSTR_COIL_LEN = (String[])context.get("INSTR_COIL_LEN");
  73. //订单重量
  74. String[] INSTR_COIL_WGT = (String[])context.get("INSTR_COIL_WGT");
  75. //订单内径
  76. String[] INSTR_COIL_INDIA = (String[])context.get("INSTR_COIL_INDIA");
  77. //订单外径
  78. String[] INSTR_COIL_OUTDIA = (String[])context.get("INSTR_COIL_OUTDIA");
  79. //外观等级
  80. String[] EXTSHAPE_DEC_GRD = (String[])context.get("EXTSHAPE_DEC_GRD");
  81. //成份等级
  82. String[] INGR_DEC_GRD = (String[])context.get("INGR_DEC_GRD");
  83. //材质等级
  84. String[] MATLQLTY_DEC_GRD = (String[])context.get("MATLQLTY_DEC_GRD");
  85. //尺寸判定
  86. String[] SIZE_DEC_RST = (String[])context.get("SIZE_DEC_RST");
  87. //重量判定
  88. String[] WGT_DEC_RST = (String[])context.get("WGT_DEC_RST");
  89. //综合判定
  90. String[] TOT_DEC_GRD = (String[])context.get("TOT_DEC_GRD");
  91. //暇疵代码1
  92. String[] CRK_CD1 = (String[])context.get("CRK_CD1");
  93. //暇疵代码2
  94. String[] CRK_CD2 = (String[])context.get("CRK_CD2");
  95. //暇疵代码3
  96. String[] CRK_CD3 = (String[])context.get("CRK_CD3");
  97. //暇疵代码4
  98. String[] CRK_CD4 = (String[])context.get("CRK_CD4");
  99. //暇疵代码5
  100. String[] CRK_CD5 = (String[])context.get("CRK_CD5");
  101. //登录人
  102. String[] REG_ID = (String[])context.get("REG_ID");
  103. //移送班次
  104. String[] MOVE_SHIFT = (String[])context.get("MOVE_SHIFT");
  105. //移送班组
  106. String[] MOVE_GROUP = (String[])context.get("MOVE_GROUP");
  107. //移送人
  108. String[] ENTRY_REG = (String[])context.get("ENTRY_REG");
  109. //移送时间
  110. String[] ENTRY_DTIME = (String[])context.get("ENTRY_DTIME");
  111. //流水号,整理进程用
  112. String[] COIL_NO = (String[])context.get("COIL_NO");
  113. String SHIP_INVNO = null;
  114. //这里需要获取移送板加的发运明细编号
  115. PosParameter param0 = new PosParameter();
  116. PosRowSet SHIP_INVNOVo = getDao("mesdao").find("UIH070010_03.select", param0);
  117. if(SHIP_INVNOVo.hasNext()){
  118. PosRow SHIP_INVNORow = SHIP_INVNOVo.next();
  119. SHIP_INVNO = (String) SHIP_INVNORow.getAttribute("SHIP_INVNO");
  120. logger.logInfo("saveBJTransf 移送板加的发货明细编号为"+SHIP_INVNO);
  121. }
  122. String SHIP_INVNO_CR = null;
  123. //这里需要获取移送冷轧的发运明细编号
  124. PosParameter paramA = new PosParameter();
  125. PosRowSet SHIP_INVNO_CRVo = getDao("mesdao").find("UIH070010_05.select", paramA);
  126. if(SHIP_INVNO_CRVo.hasNext()){
  127. PosRow SHIP_INVNO_CRRow = SHIP_INVNO_CRVo.next();
  128. SHIP_INVNO_CR = (String) SHIP_INVNO_CRRow.getAttribute("SHIP_INVNO_CR");
  129. logger.logInfo("saveBJTransf 移送板加的发货明细编号为"+SHIP_INVNO_CR);
  130. }
  131. for(int i=0;i<rowStuts.length;i++){
  132. //选中的情况,才能够把需要移送的卷迁入移送接口表
  133. if(CHK[i].equals("Y")){
  134. if(null != ROUTE[i] && ROUTE[i].equals("B")){
  135. //这里在进行移送操作前需要进行卷的下车状态效验,如果此卷已经做了发运计划不能进行移送操作
  136. PosParameter param00 = new PosParameter();
  137. param00.setWhereClauseParameter(0, OLD_SAMPL_NO[i]);
  138. PosRowSet CUR_PROG_CDVo = getDao("mesdao").find("UIH070010_06.select", param00);
  139. String CUR_PROG_CD = null;
  140. if(CUR_PROG_CDVo.hasNext()){
  141. PosRow CUR_PROG_CDRow = CUR_PROG_CDVo.next();
  142. CUR_PROG_CD = (String) CUR_PROG_CDRow.getAttribute("CUR_PROG_CD");
  143. if(null != CUR_PROG_CD && CUR_PROG_CD.equals("SFA")){
  144. //这里做效验,只有是发货待机的才能进行移送操作
  145. //这里进行的是板加的移送操作
  146. PosParameter param1 = new PosParameter();
  147. param1.setValueParamter(0, OLD_SAMPL_NO[i]);
  148. param1.setValueParamter(1, SPEC_STL_GRD[i]);
  149. param1.setValueParamter(2, ORD_NO[i]);
  150. param1.setValueParamter(3, ORD_SEQ[i]);
  151. param1.setValueParamter(4, SLAB_NO[i]);
  152. param1.setValueParamter(5, COIL_THK[i]);
  153. param1.setValueParamter(6, COIL_WTH[i]);
  154. param1.setValueParamter(7, COIL_LEN[i]);
  155. param1.setValueParamter(8, ACT_WGT[i]);
  156. param1.setValueParamter(9, COIL_INDIA[i]);
  157. param1.setValueParamter(10, COIL_OUTDIA[i]);
  158. param1.setValueParamter(11, TRANS_CAR_NO[i]);
  159. //这里每保存一次做为一次移送,生成一次发运明细号
  160. param1.setValueParamter(12, SHIP_INVNO);
  161. param1.setValueParamter(13, ROUTE[i]);
  162. //这里板加移送的,默认接收状态都为0
  163. param1.setValueParamter(14, "0");
  164. param1.setValueParamter(15, DEVLMT_DTIME[i]);
  165. param1.setValueParamter(16, ORDCUST_CD[i]);
  166. param1.setValueParamter(17, DEST_PCD[i]);
  167. param1.setValueParamter(18, PRODNM_CD[i]);
  168. param1.setValueParamter(19, SPEC_ABBSYM[i]);
  169. param1.setValueParamter(20, MILL_DTIME[i]);
  170. param1.setValueParamter(21, INSTR_COIL_THK[i]);
  171. param1.setValueParamter(22, INSTR_COIL_WTH[i]);
  172. param1.setValueParamter(23, INSTR_COIL_LEN[i]);
  173. param1.setValueParamter(24, INSTR_COIL_WGT[i]);
  174. param1.setValueParamter(25, INSTR_COIL_INDIA[i]);
  175. param1.setValueParamter(26, INSTR_COIL_OUTDIA[i]);
  176. param1.setValueParamter(27, EXTSHAPE_DEC_GRD[i]);
  177. param1.setValueParamter(28, INGR_DEC_GRD[i]);
  178. param1.setValueParamter(29, MATLQLTY_DEC_GRD[i]);
  179. param1.setValueParamter(30, SIZE_DEC_RST[i]);
  180. param1.setValueParamter(31, WGT_DEC_RST[i]);
  181. param1.setValueParamter(32, TOT_DEC_GRD[i]);
  182. param1.setValueParamter(33, CRK_CD1[i]);
  183. param1.setValueParamter(34, CRK_CD2[i]);
  184. param1.setValueParamter(35, CRK_CD3[i]);
  185. param1.setValueParamter(36, CRK_CD4[i]);
  186. param1.setValueParamter(37, CRK_CD5[i]);
  187. param1.setValueParamter(38, REG_ID[0]);
  188. //执行标准,板加使用
  189. param1.setValueParamter(39, SPEC_ABBSYM[i]);
  190. //轧批号
  191. param1.setValueParamter(40, OLD_SAMPL_NO[i].substring(0, 9));
  192. //炉号
  193. param1.setValueParamter(41, SLAB_NO[i].substring(0, 9));
  194. //移送产线
  195. param1.setValueParamter(42, "热轧");
  196. //到达产线
  197. param1.setValueParamter(43, "板加");
  198. //移送班次
  199. param1.setValueParamter(44, MOVE_SHIFT[0]);
  200. //移送班组
  201. param1.setValueParamter(45, MOVE_GROUP[0]);
  202. //移送人
  203. param1.setValueParamter(46, ENTRY_REG[0]);
  204. //移送时间
  205. param1.setValueParamter(47, ENTRY_DTIME[0]);
  206. //钢卷流水号
  207. param1.setValueParamter(48, COIL_NO[i]);
  208. getDao("mesdao").insert("UIH070010_01.insert", param1);
  209. logger.logInfo("saveBJTransf 数据迁移到接口表"+param1);
  210. //更新钢卷公共表, 这里需要结束钢卷的状态。
  211. PosParameter param2 = new PosParameter();
  212. param2.setWhereClauseParameter(0,SHIP_INVNO);
  213. param2.setWhereClauseParameter(1,TRANS_CAR_NO[i]);
  214. param2.setWhereClauseParameter(2,ROUTE[i]);
  215. param2.setWhereClauseParameter(3,OLD_SAMPL_NO[i]);
  216. getDao("mesdao").update("UIH070010_01.update", param2);
  217. //更新钢卷垛位表
  218. PosParameter param3 = new PosParameter();
  219. param3.setWhereClauseParameter(0,OLD_SAMPL_NO[i]);
  220. getDao("mesdao").update("UIH070010_05.update", param3);
  221. //String - BigDecimal
  222. BigDecimal bd =new BigDecimal(ACT_WGT[i]);
  223. SendProg_NIE012070( COIL_NO[i] ,ORD_NO[i],ORD_SEQ[i],"SFF","SFA","AR",bd);
  224. //进行进程整理,这里改变了进程状态
  225. SendProg_NIE012080();
  226. }else{
  227. //给出提示,此卷的状态不为发货待机。不能进行移送操作
  228. logger.logDebug("saveYSreturn 此卷的状态不为SFA,不能进行移送操作 "+CUR_PROG_CD);
  229. String vtemp="CUR_PROG_CD";
  230. context.put("rs", vtemp);
  231. //有一个不符合条件的,全体不能移送
  232. this.rollbackTransaction("tx1");
  233. }
  234. }
  235. }else if(null != ROUTE[i] && ROUTE[i].equals("C")){
  236. // //这里在进行移送操作前需要进行卷的下车状态效验,如果此卷已经做了发运计划不能进行移送操作
  237. // PosParameter param00 = new PosParameter();
  238. //
  239. // param00.setWhereClauseParameter(0, OLD_SAMPL_NO[i]);
  240. // PosRowSet CUR_PROG_CDVo = getDao("mesdao").find("UIH070010_06.select", param00);
  241. //
  242. // String CUR_PROG_CD = null;
  243. //
  244. // if(CUR_PROG_CDVo.hasNext()){
  245. // PosRow CUR_PROG_CDRow = CUR_PROG_CDVo.next();
  246. //
  247. // CUR_PROG_CD = (String) CUR_PROG_CDRow.getAttribute("CUR_PROG_CD");
  248. //
  249. // if(null != CUR_PROG_CD && CUR_PROG_CD.equals("SFA")){
  250. // //这里是对冷轧移送进行的处理,只在移送表记录一条记录。冷轧原料库与热轧成品库公用钢卷公共表
  251. //
  252. // //这里进行的是板加的移送操作
  253. // PosParameter param1 = new PosParameter();
  254. //
  255. // param1.setValueParamter(0, OLD_SAMPL_NO[i]);
  256. // param1.setValueParamter(1, SPEC_STL_GRD[i]);
  257. // param1.setValueParamter(2, ORD_NO[i]);
  258. // param1.setValueParamter(3, ORD_SEQ[i]);
  259. // param1.setValueParamter(4, SLAB_NO[i]);
  260. // param1.setValueParamter(5, COIL_THK[i]);
  261. // param1.setValueParamter(6, COIL_WTH[i]);
  262. // param1.setValueParamter(7, COIL_LEN[i]);
  263. // param1.setValueParamter(8, ACT_WGT[i]);
  264. // param1.setValueParamter(9, COIL_INDIA[i]);
  265. // param1.setValueParamter(10, COIL_OUTDIA[i]);
  266. // param1.setValueParamter(11, TRANS_CAR_NO[i]);
  267. // //这里每保存一次做为一次移送,生成一次发运明细号
  268. // param1.setValueParamter(12, SHIP_INVNO_CR);
  269. // param1.setValueParamter(13, ROUTE[i]);
  270. // //这里冷轧移送的,默认接收状态都为4
  271. // param1.setValueParamter(14, "4");
  272. // param1.setValueParamter(15, DEVLMT_DTIME[i]);
  273. // param1.setValueParamter(16, ORDCUST_CD[i]);
  274. // param1.setValueParamter(17, DEST_PCD[i]);
  275. // param1.setValueParamter(18, PRODNM_CD[i]);
  276. // param1.setValueParamter(19, SPEC_ABBSYM[i]);
  277. // param1.setValueParamter(20, MILL_DTIME[i]);
  278. // param1.setValueParamter(21, INSTR_COIL_THK[i]);
  279. // param1.setValueParamter(22, INSTR_COIL_WTH[i]);
  280. // param1.setValueParamter(23, INSTR_COIL_LEN[i]);
  281. // param1.setValueParamter(24, INSTR_COIL_WGT[i]);
  282. // param1.setValueParamter(25, INSTR_COIL_INDIA[i]);
  283. // param1.setValueParamter(26, INSTR_COIL_OUTDIA[i]);
  284. // param1.setValueParamter(27, EXTSHAPE_DEC_GRD[i]);
  285. // param1.setValueParamter(28, INGR_DEC_GRD[i]);
  286. // param1.setValueParamter(29, MATLQLTY_DEC_GRD[i]);
  287. // param1.setValueParamter(30, SIZE_DEC_RST[i]);
  288. // param1.setValueParamter(31, WGT_DEC_RST[i]);
  289. // param1.setValueParamter(32, TOT_DEC_GRD[i]);
  290. // param1.setValueParamter(33, CRK_CD1[i]);
  291. // param1.setValueParamter(34, CRK_CD2[i]);
  292. // param1.setValueParamter(35, CRK_CD3[i]);
  293. // param1.setValueParamter(36, CRK_CD4[i]);
  294. // param1.setValueParamter(37, CRK_CD5[i]);
  295. // param1.setValueParamter(38, REG_ID[0]);
  296. // //执行标准,板加使用
  297. // param1.setValueParamter(39, SPEC_ABBSYM[i]);
  298. // //轧批号
  299. // param1.setValueParamter(40, OLD_SAMPL_NO[i].substring(0, 9));
  300. // //炉号
  301. // param1.setValueParamter(41, SLAB_NO[i].substring(0, 9));
  302. // //移送产线
  303. // param1.setValueParamter(42, "热轧");
  304. // //到达产线
  305. // param1.setValueParamter(43, "冷轧");
  306. // //移送班次
  307. // param1.setValueParamter(44, MOVE_SHIFT[0]);
  308. // //移送班组
  309. // param1.setValueParamter(45, MOVE_GROUP[0]);
  310. // //移送人
  311. // param1.setValueParamter(46, ENTRY_REG[0]);
  312. // //移送时间
  313. // param1.setValueParamter(47, ENTRY_DTIME[0]);
  314. // //钢卷流水号
  315. // param1.setValueParamter(48, COIL_NO[i]);
  316. //
  317. // getDao("mesdao").insert("UIH070010_02.insert", param1);
  318. //
  319. // logger.logInfo("saveBJTransf 数据迁移到接口表"+param1);
  320. //
  321. // //更新钢卷公共表, 这里需要结束钢卷的状态。
  322. // PosParameter param2 = new PosParameter();
  323. //
  324. // param2.setWhereClauseParameter(0,SHIP_INVNO_CR);
  325. // param2.setWhereClauseParameter(1,TRANS_CAR_NO[i]);
  326. // param2.setWhereClauseParameter(2,ROUTE[i]);
  327. // param2.setWhereClauseParameter(3,OLD_SAMPL_NO[i]);
  328. //
  329. // getDao("mesdao").update("UIH070010_08.update", param2);
  330. //
  331. // //更新钢卷垛位表
  332. // PosParameter param3 = new PosParameter();
  333. //
  334. // param3.setWhereClauseParameter(0,OLD_SAMPL_NO[i]);
  335. //
  336. // getDao("mesdao").update("UIH070010_05.update", param3);
  337. //
  338. // //进行进程整理,这里改变了进程状态
  339. // SendProg_NIE012080();
  340. // }else{
  341. // //给出提示,此卷的状态不为发货待机。不能进行移送操作
  342. // logger.logDebug("saveYSreturn 此卷的状态不为SFA,不能进行移送操作 "+CUR_PROG_CD);
  343. // String vtemp="CUR_PROG_CD";
  344. // context.put("rs", vtemp);
  345. // }
  346. // }
  347. }else{
  348. //给出提示,没有选中移送目的地。不能进行移送操作
  349. //这个垛位实际不存在,在界面给出提示
  350. logger.logDebug("saveYSreturn 移送目的地没有选中,不能进行移送操作 "+ROUTE[i]);
  351. String vtemp="ROUTE";
  352. context.put("rs", vtemp);
  353. }
  354. }
  355. }
  356. return PosBizControlConstants.SUCCESS;
  357. }
  358. public void SendProg_NIE012070(String MatNo,String sOrdNo,String sOrdSeq,String sProgCd,String sBefProgCd,String sKind,BigDecimal wgt )
  359. {
  360. logger.logDebug("saveBJTransf SendProg_NIE012070 " );
  361. PosContext context = new PosContext();
  362. PosMessage message = new PosMESMessageImpl();
  363. String TcId = "NIE012070";
  364. message.setTCID(TcId);
  365. message.setObject("MSG_ID",TcId);
  366. message.setObject("BEF_ORD_NO",null);
  367. message.setObject("BEF_ORD_SEQ",null);
  368. message.setObject("ORD_NO",sOrdNo);
  369. message.setObject("ORD_SEQ",sOrdSeq);
  370. message.setObject("BEF_PROG_CD",sBefProgCd);
  371. message.setObject("PROG_CD",sProgCd);
  372. message.setObject("MAT_TYPE",sKind);
  373. message.setObject("MAT_NO",MatNo);
  374. message.setObject("WGT", wgt );
  375. message.setObject("PGMID","saveBJTransf");
  376. message.setObject("REG_ID", "UIH070010");
  377. context.setMessage(message);
  378. this.processComponent(PosConstants.CREATE_MESSAGE, context);
  379. String transactionCode = context.getMessage().getTC();
  380. message.setTCID(TcId);
  381. String serviceName = "NIE012070";
  382. String SERVICE_POSTFIX = "-service";
  383. context.put(PosBizControlConstants.SERVICE_NAME, serviceName + SERVICE_POSTFIX);
  384. context.setMessage(message);
  385. PosBizControlIF controller = PosBizProvider.getController();
  386. controller.doSubController(context,false);
  387. }
  388. public void SendProg_NIE012080(){
  389. PosContext context = new PosContext();
  390. PosMessage message = new PosMESMessageImpl();
  391. String TcId = "NIE012080";
  392. message.setTCID(TcId);
  393. message.setObject("MSG_ID",TcId);
  394. message.setObject("AA",null);
  395. context.setMessage(message);
  396. this.processComponent(PosConstants.CREATE_MESSAGE, context);
  397. String transactionCode = context.getMessage().getTC();
  398. message.setTCID(TcId);
  399. String serviceName = "NIE012080";
  400. String SERVICE_POSTFIX = "-service";
  401. context.put(PosBizControlConstants.SERVICE_NAME, serviceName + SERVICE_POSTFIX);
  402. context.setMessage(message);
  403. PosBizControlIF controller = PosBizProvider.getController();
  404. controller.doSubController(context,false);
  405. }
  406. }