2d637f31643112222ba45d78c07302769e1e763c.svn-base 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374
  1. package xin.glue.ui.H.H05;
  2. import com.posdata.glue.PosException;
  3. import com.posdata.glue.biz.activity.PosActivity;
  4. import com.posdata.glue.biz.constants.PosBizControlConstants;
  5. import com.posdata.glue.context.PosContext;
  6. import com.posdata.glue.dao.vo.PosParameter;
  7. import com.posdata.glue.dao.vo.PosRow;
  8. import com.posdata.glue.dao.vo.PosRowSet;
  9. public class XinSaveMoveYard_TWO extends PosActivity{
  10. public String runActivity(PosContext context){
  11. String[] FROM_COIL = (String[]) context.get("FROM_COIL");
  12. String[] FROM_YARD = (String[]) context.get("FROM_YARD");
  13. String[] TO_COIL = (String[]) context.get("TO_COIL");
  14. String[] TO_YARD = (String[]) context.get("TO_YARD");
  15. String[] TMP_YARD = (String[]) context.get("TMP_YARD");
  16. String[] REG_ID = (String[]) context.get("REG_ID");
  17. String[] ENTRY_SHIFT = (String[]) context.get("ENTRY_SHIFT");
  18. String[] ENTRY_GROUP = (String[]) context.get("ENTRY_GROUP");
  19. String[] ENTRY_REG = (String[]) context.get("ENTRY_REG");
  20. String[] ENTRY_DTIME = (String[]) context.get("ENTRY_DTIME");
  21. //判断当前移动的卷的状态,如果是发货完成的。不能进行移垛操作
  22. PosParameter paramA = new PosParameter();
  23. paramA.setWhereClauseParameter(0, FROM_COIL[0]);
  24. PosRowSet rowsA = getDao("mesdao").find("UIH050710_03.select", paramA);
  25. String CUR_PROG_CD = null;
  26. try{
  27. if(rowsA.hasNext()){
  28. PosRow rowA = rowsA.next();
  29. CUR_PROG_CD = (String) rowA.getAttribute("CUR_PROG_CD");
  30. if(!CUR_PROG_CD.equals("SFF")){
  31. Number SEQ = null;
  32. int SEQ_1 = 0;
  33. Number SEQ1 = null;
  34. int SEQ_2 = 0;
  35. //如果临时位置不存在卷,就不需要判断
  36. PosParameter param0 = new PosParameter();
  37. param0.setWhereClauseParameter(0, TO_YARD[0]);
  38. PosRowSet rows = getDao("mesdao").find("UIH050600_05.select", param0);
  39. if(!rows.hasNext()){
  40. logger.logInfo("垛位不存在!");
  41. String vtemp = "COIL_NO";
  42. context.put("rs", vtemp);
  43. return PosBizControlConstants.SUCCESS;
  44. }
  45. if(!(null == TMP_YARD[0] || TMP_YARD[0].equals(""))){
  46. param0 = new PosParameter();
  47. param0.setWhereClauseParameter(0, TMP_YARD[0]);
  48. rows = getDao("mesdao").find("UIH050600_05.select", param0);
  49. if(!rows.hasNext()){
  50. logger.logInfo("垛位不存在!");
  51. String vtemp = "COIL_NO";
  52. context.put("rs", vtemp);
  53. return PosBizControlConstants.SUCCESS;
  54. }
  55. }
  56. PosParameter param1 = new PosParameter();
  57. param1.setWhereClauseParameter(0, TMP_YARD[0]);
  58. rows = getDao("mesdao").find("UIH050700_04.select", param1);
  59. String coil_no = null;
  60. if(rows.hasNext()){
  61. PosRow row = rows.next();
  62. coil_no = (String) row.getAttribute("COIL_NO");
  63. if(null == coil_no){
  64. //可以进行相应的移动,进行清理
  65. if(TO_COIL[0] != null){
  66. PosParameter param2 = new PosParameter();
  67. param2.setWhereClauseParameter(0, TO_COIL[0]);
  68. param2.setWhereClauseParameter(1, "H050070_2");
  69. param2.setWhereClauseParameter(2, TMP_YARD[0].substring(0, 5));
  70. param2.setWhereClauseParameter(3, TMP_YARD[0].substring(5, 7));
  71. param2.setWhereClauseParameter(4, TMP_YARD[0].substring(7, 8));
  72. param2.setWhereClauseParameter(5, TMP_YARD[0].substring(8, 9));
  73. getDao("mesdao").update("UIH050700_04.update", param2);
  74. //更新公共表
  75. PosParameter param3 = new PosParameter();
  76. param3.setWhereClauseParameter(0, TMP_YARD[0]);
  77. param3.setWhereClauseParameter(1, TO_COIL[0]);
  78. getDao("mesdao").update("UIH050700_05.update", param3);
  79. //记录库存移动的情况
  80. PosParameter param11 = new PosParameter();
  81. PosRowSet rows11 = getDao("mesdao").find("UIH050700_05.select", param11);
  82. if(rows11.hasNext()){
  83. PosRow row11 = rows11.next();
  84. SEQ = (Number) row11.getAttribute("ROLL_SEQ");
  85. if(null == SEQ){
  86. SEQ_1 = 1;
  87. }else{
  88. SEQ_1 = SEQ.intValue()+1;
  89. }
  90. //取出主键后,更新移动表
  91. PosParameter param4 = new PosParameter();
  92. param4.setValueParamter(0, new Integer(SEQ_1));
  93. param4.setValueParamter(1, TO_YARD[0]);
  94. param4.setValueParamter(2, TMP_YARD[0]);
  95. param4.setValueParamter(3, TO_COIL[0]);
  96. param4.setValueParamter(4, ENTRY_REG[0]);
  97. param4.setValueParamter(5, ENTRY_SHIFT[0]);
  98. param4.setValueParamter(6, ENTRY_GROUP[0]);
  99. param4.setValueParamter(7, ENTRY_DTIME[0]);
  100. param4.setValueParamter(8, REG_ID[0]);
  101. getDao("mesdao").insert("UIH050700_01.insert", param4);
  102. }
  103. // 再移动来源卷和,清空来源位置
  104. if(FROM_COIL[0] != null){
  105. PosParameter param5 = new PosParameter();
  106. param5.setWhereClauseParameter(0, FROM_COIL[0]);
  107. param5.setWhereClauseParameter(1, "H050070_2");
  108. param5.setWhereClauseParameter(2, TO_YARD[0].substring(0, 5));
  109. param5.setWhereClauseParameter(3, TO_YARD[0].substring(5, 7));
  110. param5.setWhereClauseParameter(4, TO_YARD[0].substring(7, 8));
  111. param5.setWhereClauseParameter(5, TO_YARD[0].substring(8, 9));
  112. getDao("mesdao").update("UIH050700_04.update", param5);
  113. PosParameter param6 = new PosParameter();
  114. param6.setWhereClauseParameter(0, TO_YARD[0]);
  115. param6.setWhereClauseParameter(1, FROM_COIL[0]);
  116. getDao("mesdao").update("UIH050700_05.update", param6);
  117. // 这里还需要清空来源位置的钢卷
  118. PosParameter param9 = new PosParameter();
  119. param9.setWhereClauseParameter(0, FROM_YARD[0].substring(0, 5));
  120. param9.setWhereClauseParameter(1, FROM_YARD[0].substring(5, 7));
  121. param9.setWhereClauseParameter(2, FROM_YARD[0].substring(7, 8));
  122. param9.setWhereClauseParameter(3, FROM_YARD[0].substring(8, 9));
  123. getDao("mesdao").update("UIH050700_06.update", param9);
  124. PosParameter param7 = new PosParameter();
  125. PosRowSet rows7 = getDao("mesdao").find("UIH050700_05.select", param7);
  126. if(rows7.hasNext()){
  127. PosRow row7 = rows7.next();
  128. SEQ1 = (Number) row7.getAttribute("ROLL_SEQ");
  129. if(null == SEQ1 && "".equals(SEQ1)){
  130. SEQ_2 = 1;
  131. }else{
  132. SEQ_2 = SEQ1.intValue()+1;
  133. }
  134. //取出主键后,更新移动表
  135. PosParameter param8 = new PosParameter();
  136. param8.setValueParamter(0, new Integer(SEQ_2));
  137. param8.setValueParamter(1, FROM_YARD[0]);
  138. param8.setValueParamter(2, TO_YARD[0]);
  139. param8.setValueParamter(3, FROM_COIL[0]);
  140. param8.setValueParamter(4, ENTRY_REG[0]);
  141. param8.setValueParamter(5, ENTRY_SHIFT[0]);
  142. param8.setValueParamter(6, ENTRY_GROUP[0]);
  143. param8.setValueParamter(7, ENTRY_DTIME[0]);
  144. param8.setValueParamter(8, REG_ID[0]);
  145. getDao("mesdao").insert("UIH050700_01.insert", param8);
  146. }
  147. }
  148. }else{
  149. //去向位置不存在卷,就直接更新来源到去向
  150. if(FROM_COIL[0] != null){
  151. PosParameter param5 = new PosParameter();
  152. param5.setWhereClauseParameter(0, FROM_COIL[0]);
  153. param5.setWhereClauseParameter(1, "H050070_2");
  154. param5.setWhereClauseParameter(2, TO_YARD[0].substring(0, 5));
  155. param5.setWhereClauseParameter(3, TO_YARD[0].substring(5, 7));
  156. param5.setWhereClauseParameter(4, TO_YARD[0].substring(7, 8));
  157. param5.setWhereClauseParameter(5, TO_YARD[0].substring(8, 9));
  158. getDao("mesdao").update("UIH050700_04.update", param5);
  159. PosParameter param6 = new PosParameter();
  160. param6.setWhereClauseParameter(0, TO_YARD[0]);
  161. param6.setWhereClauseParameter(1, FROM_COIL[0]);
  162. getDao("mesdao").update("UIH050700_05.update", param6);
  163. // 这里还需要清空来源位置的钢卷
  164. PosParameter param9 = new PosParameter();
  165. param9.setWhereClauseParameter(0, FROM_YARD[0].substring(0, 5));
  166. param9.setWhereClauseParameter(1, FROM_YARD[0].substring(5, 7));
  167. param9.setWhereClauseParameter(2, FROM_YARD[0].substring(7, 8));
  168. param9.setWhereClauseParameter(3, FROM_YARD[0].substring(8, 9));
  169. getDao("mesdao").update("UIH050700_06.update", param9);
  170. PosParameter param7 = new PosParameter();
  171. PosRowSet rows7 = getDao("mesdao").find("UIH050700_05.select", param7);
  172. if(rows7.hasNext()){
  173. PosRow row7 = rows7.next();
  174. SEQ1 = (Number) row7.getAttribute("ROLL_SEQ");
  175. if(null == SEQ1 && "".equals(SEQ1)){
  176. SEQ_2 = 1;
  177. }else{
  178. SEQ_2 = SEQ1.intValue()+1;
  179. }
  180. //取出主键后,更新移动表
  181. PosParameter param8 = new PosParameter();
  182. param8.setValueParamter(0, new Integer(SEQ_2));
  183. param8.setValueParamter(1, FROM_YARD[0]);
  184. param8.setValueParamter(2, TO_YARD[0]);
  185. param8.setValueParamter(3, FROM_COIL[0]);
  186. param8.setValueParamter(4, ENTRY_REG[0]);
  187. param8.setValueParamter(5, ENTRY_SHIFT[0]);
  188. param8.setValueParamter(6, ENTRY_GROUP[0]);
  189. param8.setValueParamter(7, ENTRY_DTIME[0]);
  190. param8.setValueParamter(8, REG_ID[0]);
  191. getDao("mesdao").insert("UIH050700_01.insert", param8);
  192. }
  193. }
  194. }
  195. }else{
  196. //不能进行相应的移动
  197. logger.logDebug("XinSaveMoveYard_TWO 希望移动的位置存在钢卷信息! ");
  198. String vtemp="ERROR";
  199. context.put("rs", vtemp);
  200. }
  201. }else{
  202. //临时位置不存在值的话,只判断去向位置就可以了
  203. if(!"".equals(TO_COIL[0])){
  204. //提示,给出希望替换的位置
  205. logger.logDebug("XinSaveMoveYard_TWO 希望移动的位置没有填写,不能移动钢卷! ");
  206. String vtemp="ERROR_TMP";
  207. context.put("rs", vtemp);
  208. }else{
  209. //直接移动
  210. //再移动来源卷和,清空来源位置
  211. if(null != FROM_COIL[0] && !"".equals(FROM_COIL[0])){
  212. if(!"".equals(TO_YARD[0]) && null != TO_YARD[0]){
  213. //给出长度限制,来源垛位不对的情况不能进行清除来源位置的操作
  214. if(FROM_YARD[0].length() == 9){
  215. PosParameter param5 = new PosParameter();
  216. param5.setWhereClauseParameter(0, FROM_COIL[0]);
  217. param5.setWhereClauseParameter(1, "H050070_2");
  218. param5.setWhereClauseParameter(2, TO_YARD[0].substring(0, 5));
  219. param5.setWhereClauseParameter(3, TO_YARD[0].substring(5, 7));
  220. param5.setWhereClauseParameter(4, TO_YARD[0].substring(7, 8));
  221. param5.setWhereClauseParameter(5, TO_YARD[0].substring(8, 9));
  222. getDao("mesdao").update("UIH050700_04.update", param5);
  223. PosParameter param6 = new PosParameter();
  224. param6.setWhereClauseParameter(0, TO_YARD[0]);
  225. param6.setWhereClauseParameter(1, FROM_COIL[0]);
  226. getDao("mesdao").update("UIH050700_05.update", param6);
  227. //这里还需要清空来源位置的钢卷
  228. PosParameter param9 = new PosParameter();
  229. param9.setWhereClauseParameter(0, FROM_YARD[0].substring(0, 5));
  230. param9.setWhereClauseParameter(1, FROM_YARD[0].substring(5, 7));
  231. param9.setWhereClauseParameter(2, FROM_YARD[0].substring(7, 8));
  232. param9.setWhereClauseParameter(3, FROM_YARD[0].substring(8, 9));
  233. getDao("mesdao").update("UIH050700_06.update", param9);
  234. PosParameter param7 = new PosParameter();
  235. PosRowSet rows7 = getDao("mesdao").find("UIH050700_05.select", param7);
  236. if(rows7.hasNext()){
  237. PosRow row7 = rows7.next();
  238. SEQ1 = (Number) row7.getAttribute("ROLL_SEQ");
  239. if(null == SEQ1 && "".equals(SEQ1)){
  240. SEQ_2 = 1;
  241. }else{
  242. SEQ_2 = SEQ1.intValue()+1;
  243. }
  244. //取出主键后,更新移动表
  245. PosParameter param8 = new PosParameter();
  246. param8.setValueParamter(0, new Integer(SEQ_2));
  247. param8.setValueParamter(1, FROM_YARD[0]);
  248. param8.setValueParamter(2, TO_YARD[0]);
  249. param8.setValueParamter(3, FROM_COIL[0]);
  250. param8.setValueParamter(4, ENTRY_REG[0]);
  251. param8.setValueParamter(5, ENTRY_SHIFT[0]);
  252. param8.setValueParamter(6, ENTRY_GROUP[0]);
  253. param8.setValueParamter(7, ENTRY_DTIME[0]);
  254. param8.setValueParamter(8, REG_ID[0]);
  255. getDao("mesdao").insert("UIH050700_01.insert", param8);
  256. }
  257. }else{
  258. logger.logDebug("XinSaveMoveYard_TWO 来源卷垛位信息不正确,不能移动钢卷! ");
  259. String vtemp="FROM_YARD";
  260. context.put("rs", vtemp);
  261. }
  262. }else{
  263. logger.logDebug("XinSaveMoveYard_TWO 去向的位置没有填写,不能移动钢卷! ");
  264. String vtemp="ERROR_TO";
  265. context.put("rs", vtemp);
  266. }
  267. }
  268. }
  269. }
  270. }else{
  271. logger.logDebug("XinSaveMoveYard_TWO 此卷已发货,不能移动钢卷! ");
  272. String vtemp="CUR_PROG_CD";
  273. context.put("rs", vtemp);
  274. }
  275. }
  276. }catch(Exception e){
  277. //e.printStackTrace();
  278. //throw new PosException(e.getMessage());
  279. logger.logDebug(" 移垛异常情况 "+e.getMessage());
  280. String vtemp="XX";
  281. context.put("rs", vtemp);
  282. }
  283. return PosBizControlConstants.SUCCESS;
  284. }
  285. }