883b72e72e34e2137dab6f83020a06186692f1fe.svn-base 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. package xin.glue.ui.J.J01;
  2. import xin.glue.ui.common.component.PosSiteLog;
  3. import com.posdata.glue.biz.activity.PosActivity;
  4. import com.posdata.glue.biz.constants.PosBizControlConstants;
  5. import com.posdata.glue.biz.control.PosBizControlIF;
  6. import com.posdata.glue.biz.control.PosBizProvider;
  7. import com.posdata.glue.component.PosConstants;
  8. import com.posdata.glue.context.PosContext;
  9. import com.posdata.glue.dao.vo.PosParameter;
  10. import com.posdata.glue.dao.vo.PosRow;
  11. import com.posdata.glue.dao.vo.PosRowSet;
  12. import com.posdata.glue.msg.PosMESMessageImpl;
  13. import com.posdata.glue.msg.PosMessage;
  14. /*
  15. * desc:这里为成品提供换卷的功能,同合同号,同订单号的情况下,可以转换库内已有的卷
  16. * author:唐亮 tangliang
  17. * date:2009-7-21
  18. */
  19. public class F_T_coilNo extends PosActivity{
  20. public String runActivity(PosContext context)
  21. {
  22. // 合同号
  23. String[] ord_no = (String[])context.get("ord_no");
  24. // 订单号
  25. String[] ord_seq = (String[])context.get("ord_seq");
  26. // 原始钢卷号
  27. String[] coil_no = (String[])context.get("coil_no");
  28. // 替换后的钢卷号
  29. String[] coil_back = (String[])context.get("coil_back");
  30. //替换人
  31. String[] reg_id = (String[])context.get("reg_id");
  32. //替换前的规格
  33. String[] T_W = (String[])context.get("T_W");
  34. //替换后的规格
  35. String[] BACK_T_W = (String[])context.get("BACK_T_W");
  36. //公共表中的发货状态
  37. String SHIP_PROG_CD = null;
  38. //发货指示号
  39. String SHIP_DIRNO = null;
  40. //运输指示号
  41. String DLIV_DIRNO = null;
  42. //目的地
  43. String DEST_CD = null;
  44. //是否指示标志
  45. String ISUSED = null;
  46. //下计划时间
  47. String SHIP_DIR_DTIME = null;
  48. //进度代码
  49. String CUR_PROG_CD = null;
  50. //车辆号
  51. String TRANS_CAR_NO = null;
  52. //排车顺序号
  53. String TRAIN_STEP_NO = null;
  54. //火运汽运区分
  55. String DLIV_TP = null;
  56. //替换前的合同备注
  57. String HCOLOUR_REM = null;
  58. //替换后的合同备注
  59. String HCOLOUR_REM_back = null;
  60. //未下计划标志
  61. String[] bool2 = (String[])context.get("bool2");
  62. //已下计划标志
  63. String[] bool1 = (String[])context.get("bool1");
  64. if(bool2[0].equals("true")){
  65. //这里先要查询换上去的合同是否具有颜色标志,如果具有的话要把颜色标志带到公共表
  66. PosParameter param00 = new PosParameter();
  67. param00.setWhereClauseParameter(0, coil_back[0]);
  68. param00.setWhereClauseParameter(0, coil_back[0]);
  69. PosRowSet rows1 = getDao("mesdao").find("UIJ010040_16.select", param00);
  70. if(rows1.hasNext()){
  71. PosRow row1 = rows1.next();
  72. HCOLOUR_REM_back = (String) row1.getAttribute("MK_COIL");
  73. }
  74. //如果选择的是未下计划的卷
  75. //这里需要取出原始钢卷号所带的发货信息,给于现在需要替换的钢卷号
  76. PosParameter param0 = new PosParameter();
  77. param0.setWhereClauseParameter(0,coil_no[0]);
  78. PosRowSet rows = getDao("mesdao").find("UIJ010040_05.select", param0);
  79. logger.logInfo(coil_no[0]+" F_T_coilNo 中需要替换下来的钢卷,合同号和订单号为 : "+ord_no+ord_seq);
  80. if(rows.hasNext()){
  81. PosRow row = rows.next();
  82. SHIP_PROG_CD = (String) row.getAttribute("SHIP_PROG_CD");
  83. SHIP_DIRNO = (String) row.getAttribute("SHIP_DIRNO");
  84. DLIV_DIRNO = (String) row.getAttribute("DLIV_DIRNO");
  85. DEST_CD = (String) row.getAttribute("DEST_CD");
  86. ISUSED = (String) row.getAttribute("ISUSED");
  87. SHIP_DIR_DTIME = (String) row.getAttribute("SHIP_DIR_DTIME");
  88. CUR_PROG_CD = (String) row.getAttribute("CUR_PROG_CD");
  89. TRANS_CAR_NO = (String) row.getAttribute("TRANS_CAR_NO");
  90. TRAIN_STEP_NO = (String) row.getAttribute("TRAIN_STEP_NO");
  91. //为统计新加
  92. DLIV_TP = (String) row.getAttribute("DLIV_TP");
  93. //为外贸合同颜色区分添加
  94. HCOLOUR_REM = (String) row.getAttribute("HCOLOUR_REM");
  95. //更新需要换卷的发货相关信息
  96. PosParameter param1 = new PosParameter();
  97. param1.setWhereClauseParameter(0,SHIP_PROG_CD);
  98. param1.setWhereClauseParameter(1,SHIP_DIRNO);
  99. param1.setWhereClauseParameter(2,DLIV_DIRNO);
  100. param1.setWhereClauseParameter(3,DEST_CD);
  101. param1.setWhereClauseParameter(4,ISUSED);
  102. param1.setWhereClauseParameter(5,SHIP_DIR_DTIME);
  103. param1.setWhereClauseParameter(6,CUR_PROG_CD);
  104. param1.setWhereClauseParameter(7,TRANS_CAR_NO);
  105. param1.setWhereClauseParameter(8,TRAIN_STEP_NO);
  106. param1.setWhereClauseParameter(9,reg_id[0]);
  107. param1.setWhereClauseParameter(10,"规格从"+T_W[0]+"到"+BACK_T_W[0]+"合同备注颜色从:"+HCOLOUR_REM+"到"+HCOLOUR_REM_back);
  108. param1.setWhereClauseParameter(11,DLIV_TP);
  109. param1.setWhereClauseParameter(12,HCOLOUR_REM_back);
  110. param1.setWhereClauseParameter(13,coil_back[0]);
  111. logger.logInfo(coil_back[0]+" F_T_coilNo 中需要替换上去的钢卷,合同号和订单号为 : "+ord_no+ord_seq);
  112. logger.logInfo(" F_T_coilNo 中替换人为:"+reg_id[0]);
  113. logger.logInfo(" F_T_coilNo 中规格从:"+T_W[0]+"到"+BACK_T_W[0]);
  114. logger.logInfo(" F_T_coilNo 中合同颜色初始为:"+HCOLOUR_REM);
  115. logger.logInfo(" F_T_coilNo 中合同颜色后来变为:"+HCOLOUR_REM_back);
  116. getDao("mesdao").update("UIJ010040_07.update", param1);
  117. //清除换下来的钢卷的信息
  118. PosParameter param2 = new PosParameter();
  119. param2.setWhereClauseParameter(0,coil_no[0]);
  120. getDao("mesdao").update("UIJ010040_08.update", param2);
  121. //进行合同内换卷之后,需要进行整理改变相应的进程量
  122. SendProg_NIE012080();
  123. }
  124. }else{
  125. if(bool1[0].equals("true")){
  126. //这里是已下计划的卷之间的互换,所以需要把两个卷的发货信息互换
  127. //这里记录的是替换后的卷的发货信息
  128. String SHIP_PROG_CD_TMP = null;
  129. String SHIP_DIRNO_TMP = null;
  130. String DLIV_DIRNO_TMP = null;
  131. String DEST_CD_TMP = null;
  132. String ISUSED_TMP = null;
  133. String SHIP_DIR_DTIME_TMP = null;
  134. String CUR_PROG_CD_TMP = null;
  135. String TRANS_CAR_NO_TMP = null;
  136. String TRAIN_STEP_NO_TMP = null;
  137. String DLIV_TP_TMP = null;
  138. PosParameter param0 = new PosParameter();
  139. param0.setWhereClauseParameter(0,coil_no[0]);
  140. PosRowSet rows = getDao("mesdao").find("UIJ010040_05.select", param0);
  141. if(rows.hasNext()){
  142. PosRow row = rows.next();
  143. SHIP_PROG_CD = (String) row.getAttribute("SHIP_PROG_CD");
  144. SHIP_DIRNO = (String) row.getAttribute("SHIP_DIRNO");
  145. DLIV_DIRNO = (String) row.getAttribute("DLIV_DIRNO");
  146. DEST_CD = (String) row.getAttribute("DEST_CD");
  147. ISUSED = (String) row.getAttribute("ISUSED");
  148. SHIP_DIR_DTIME = (String) row.getAttribute("SHIP_DIR_DTIME");
  149. CUR_PROG_CD = (String) row.getAttribute("CUR_PROG_CD");
  150. TRANS_CAR_NO = (String) row.getAttribute("TRANS_CAR_NO");
  151. TRAIN_STEP_NO = (String) row.getAttribute("TRAIN_STEP_NO");
  152. DLIV_TP = (String) row.getAttribute("DLIV_TP");
  153. }
  154. PosParameter param00 = new PosParameter();
  155. param00.setWhereClauseParameter(0,coil_back[0]);
  156. PosRowSet rows_TMP = getDao("mesdao").find("UIJ010040_05.select", param00);
  157. if(rows_TMP.hasNext()){
  158. PosRow row_TMP = rows_TMP.next();
  159. SHIP_PROG_CD_TMP = (String) row_TMP.getAttribute("SHIP_PROG_CD");
  160. SHIP_DIRNO_TMP = (String) row_TMP.getAttribute("SHIP_DIRNO");
  161. DLIV_DIRNO_TMP = (String) row_TMP.getAttribute("DLIV_DIRNO");
  162. DEST_CD_TMP = (String) row_TMP.getAttribute("DEST_CD");
  163. ISUSED_TMP = (String) row_TMP.getAttribute("ISUSED");
  164. SHIP_DIR_DTIME_TMP = (String) row_TMP.getAttribute("SHIP_DIR_DTIME");
  165. CUR_PROG_CD_TMP = (String) row_TMP.getAttribute("CUR_PROG_CD");
  166. TRANS_CAR_NO_TMP = (String) row_TMP.getAttribute("TRANS_CAR_NO");
  167. TRAIN_STEP_NO_TMP = (String) row_TMP.getAttribute("TRAIN_STEP_NO");
  168. DLIV_TP_TMP = (String) row_TMP.getAttribute("DLIV_TP");
  169. }
  170. //这里需要根据卷号单独取出合同备注,然后放入各个计划中
  171. PosParameter paramA = new PosParameter();
  172. paramA.setWhereClauseParameter(0, coil_back[0]);
  173. paramA.setWhereClauseParameter(0, coil_back[0]);
  174. PosRowSet rowsA = getDao("mesdao").find("UIJ010040_16.select", paramA);
  175. if(rowsA.hasNext()){
  176. PosRow rowA = rowsA.next();
  177. HCOLOUR_REM_back = (String) rowA.getAttribute("MK_COIL");
  178. }
  179. PosParameter paramB = new PosParameter();
  180. paramB.setWhereClauseParameter(0, coil_no[0]);
  181. paramB.setWhereClauseParameter(0, coil_no[0]);
  182. PosRowSet rowsB = getDao("mesdao").find("UIJ010040_16.select", paramB);
  183. if(rowsB.hasNext()){
  184. PosRow rowB = rowsB.next();
  185. HCOLOUR_REM = (String) rowB.getAttribute("MK_COIL");
  186. }
  187. //先把要换的两个卷的发货信息全部取出来,再进行对调
  188. //更新需要换卷的发货相关信息
  189. PosParameter param1 = new PosParameter();
  190. param1.setWhereClauseParameter(0,SHIP_PROG_CD);
  191. param1.setWhereClauseParameter(1,SHIP_DIRNO);
  192. param1.setWhereClauseParameter(2,DLIV_DIRNO);
  193. param1.setWhereClauseParameter(3,DEST_CD);
  194. param1.setWhereClauseParameter(4,ISUSED);
  195. param1.setWhereClauseParameter(5,SHIP_DIR_DTIME);
  196. param1.setWhereClauseParameter(6,CUR_PROG_CD);
  197. param1.setWhereClauseParameter(7,TRANS_CAR_NO);
  198. param1.setWhereClauseParameter(8,TRAIN_STEP_NO);
  199. param1.setWhereClauseParameter(9,reg_id[0]);
  200. param1.setWhereClauseParameter(10,"规格从"+T_W[0]+"到"+BACK_T_W[0]+"合同备注从"+HCOLOUR_REM+"到"+HCOLOUR_REM_back);
  201. param1.setWhereClauseParameter(11,DLIV_TP);
  202. param1.setWhereClauseParameter(12,HCOLOUR_REM_back);
  203. param1.setWhereClauseParameter(13,coil_back[0]);
  204. logger.logInfo(coil_back[0]+" F_T_coilNo 中需要替换上去的钢卷,合同号和订单号为 : "+ord_no+ord_seq);
  205. logger.logInfo(" F_T_coilNo 中替换人为:"+reg_id[0]);
  206. logger.logInfo(" F_T_coilNo 中规格从:"+T_W[0]+"到"+BACK_T_W[0]);
  207. getDao("mesdao").update("UIJ010040_07.update", param1);
  208. //更新换出的卷
  209. PosParameter param11 = new PosParameter();
  210. param11.setWhereClauseParameter(0,SHIP_PROG_CD_TMP);
  211. param11.setWhereClauseParameter(1,SHIP_DIRNO_TMP);
  212. param11.setWhereClauseParameter(2,DLIV_DIRNO_TMP);
  213. param11.setWhereClauseParameter(3,DEST_CD_TMP);
  214. param11.setWhereClauseParameter(4,ISUSED_TMP);
  215. param11.setWhereClauseParameter(5,SHIP_DIR_DTIME_TMP);
  216. param11.setWhereClauseParameter(6,CUR_PROG_CD_TMP);
  217. param11.setWhereClauseParameter(7,TRANS_CAR_NO_TMP);
  218. param11.setWhereClauseParameter(8,TRAIN_STEP_NO_TMP);
  219. param11.setWhereClauseParameter(9,reg_id[0]);
  220. param11.setWhereClauseParameter(10,"规格从"+BACK_T_W[0]+"到"+T_W[0]+"合同备注从"+HCOLOUR_REM_back+"到"+HCOLOUR_REM);
  221. param11.setWhereClauseParameter(11,DLIV_TP);
  222. param11.setWhereClauseParameter(12,HCOLOUR_REM);
  223. param11.setWhereClauseParameter(13,coil_no[0]);
  224. logger.logInfo(coil_no[0]+" F_T_coilNo 中需要替换下来的钢卷,合同号和订单号为 : "+ord_no+ord_seq);
  225. logger.logInfo(" F_T_coilNo 中替换人为:"+reg_id[0]);
  226. logger.logInfo(" F_T_coilNo 中规格从:"+BACK_T_W[0]+"到"+T_W[0]);
  227. getDao("mesdao").update("UIJ010040_07.update", param11);
  228. // 进行合同内换卷之后,需要进行整理改变相应的进程量
  229. SendProg_NIE012080();
  230. }else{
  231. //这里给出提示,都没有选中就保存是错误的
  232. logger.logInfo("没有选择计划和非计划就点击保存按钮,提示错误");
  233. String vtemp="ERROR";
  234. context.put("rs", vtemp);
  235. }
  236. }
  237. return PosBizControlConstants.SUCCESS;
  238. }
  239. public void SendProg_NIE012080()
  240. {
  241. PosContext context = new PosContext();
  242. PosMessage message = new PosMESMessageImpl();
  243. String TcId = "NIE012080";
  244. message.setTCID(TcId);
  245. message.setObject("MSG_ID",TcId);
  246. message.setObject("AA",null);
  247. context.setMessage(message);
  248. this.processComponent(PosConstants.CREATE_MESSAGE, context);
  249. String transactionCode = context.getMessage().getTC();
  250. message.setTCID(TcId);
  251. String serviceName = "NIE012080";
  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. }
  258. }