2a383952c5bb075e6bf751f51bebaded08f038f8.svn-base 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. package xin.glue.ui.H.H05;
  2. import java.sql.CallableStatement;
  3. import java.sql.SQLException;
  4. import com.posdata.glue.PosException;
  5. import com.posdata.glue.biz.activity.PosActivity;
  6. import com.posdata.glue.biz.constants.PosBizControlConstants;
  7. import com.posdata.glue.context.PosContext;
  8. import com.posdata.glue.dao.vo.PosParameter;
  9. import com.posdata.glue.dao.vo.PosRow;
  10. import com.posdata.glue.dao.vo.PosRowSet;
  11. public class CoilMILLDATA extends PosActivity{
  12. public String runActivity(PosContext context) {
  13. //钢卷厚度
  14. String[] COIL_THK = (String[])context.get("COIL_THK");
  15. //宽度
  16. String[] COIL_WTH = (String[])context.get("COIL_WTH");
  17. //长度
  18. String[] COIL_LEN = (String[])context.get("COIL_LEN");
  19. //磅重
  20. String[] ACT_WGT = (String[])context.get("ACT_WGT");
  21. //理论重量
  22. String[] CAL_WGT = (String[])context.get("CAL_WGT");
  23. //瑕疵代码
  24. String[] CRK_CD1 = (String[])context.get("CRK_CD1");
  25. String[] CRK_CD2 = (String[])context.get("CRK_CD2");
  26. String[] CRK_CD3 = (String[])context.get("CRK_CD3");
  27. String[] CRK_CD4 = (String[])context.get("CRK_CD4");
  28. String[] CRK_CD5 = (String[])context.get("CRK_CD5");
  29. //备注
  30. String[] REM = (String[])context.get("REM");
  31. //班次
  32. String[] ENTRY_SHIFT = (String[])context.get("ENTRY_SHIFT");
  33. String[] ENTRY_GROUP = (String[])context.get("ENTRY_GROUP");
  34. String[] ENTRY_REG = (String[])context.get("ENTRY_REG");
  35. String[] ENTRY_DTIME = (String[])context.get("ENTRY_DTIME");
  36. //操作人
  37. String[] REG_ID = (String[])context.get("REG_ID");
  38. //钢卷号
  39. String[] coil_no = (String[])context.get("coil_no");
  40. //判断瑕疵代码,如果没有就不更新
  41. String coil_no_tmp = null;
  42. PosParameter param2 = new PosParameter();
  43. String sql2 = "select a.coil_no from tbh02_coil_comm a where a.old_sampl_no = ?";
  44. param2.setWhereClauseParameter(0,coil_no[0] );
  45. PosRowSet CoilVo = getDao("mesdao").findByQueryStatement(sql2, param2);
  46. if(CoilVo.hasNext()){
  47. PosRow CoilRow = CoilVo.next();
  48. coil_no_tmp = (String) CoilRow.getAttribute("coil_no");
  49. }
  50. String colil_wgt_tmp = null;
  51. String CUR_PROG_CD = null;
  52. PosParameter param22 = new PosParameter();
  53. String sql22 = "select TO_CHAR(a.ACT_WGT) ACT_WGT,A.CUR_PROG_CD from tbh02_coil_comm a where a.old_sampl_no = ?";
  54. param22.setWhereClauseParameter(0,coil_no[0] );
  55. PosRowSet CoilVo22 = getDao("mesdao").findByQueryStatement(sql22, param22);
  56. if(CoilVo22.hasNext()){
  57. PosRow CoilRow22 = CoilVo22.next();
  58. colil_wgt_tmp = (String) CoilRow22.getAttribute("ACT_WGT");
  59. CUR_PROG_CD = (String) CoilRow22.getAttribute("CUR_PROG_CD");
  60. }
  61. //这里更新修改的内容,如果磅重为空的话,记录理论重量为磅重
  62. if(null == colil_wgt_tmp || colil_wgt_tmp.equals("0")){
  63. PosParameter param1 = new PosParameter();
  64. param1.setWhereClauseParameter(0, COIL_THK[0]);
  65. param1.setWhereClauseParameter(1, COIL_WTH[0]);
  66. param1.setWhereClauseParameter(2, COIL_LEN[0]);
  67. param1.setWhereClauseParameter(3, ACT_WGT[0]);
  68. param1.setWhereClauseParameter(4, CAL_WGT[0]);
  69. //成品不允许录入瑕疵代码,tl 091221
  70. //param1.setWhereClauseParameter(5, CRK_CD1[0]);
  71. //param1.setWhereClauseParameter(6, CRK_CD2[0]);
  72. //param1.setWhereClauseParameter(7, CRK_CD3[0]);
  73. //param1.setWhereClauseParameter(8, CRK_CD4[0]);
  74. //param1.setWhereClauseParameter(9, CRK_CD5[0]);
  75. param1.setWhereClauseParameter(5, ENTRY_SHIFT[0]);
  76. param1.setWhereClauseParameter(6, ENTRY_GROUP[0]);
  77. param1.setWhereClauseParameter(7, ENTRY_REG[0]);
  78. param1.setWhereClauseParameter(8, ENTRY_DTIME[0]);
  79. param1.setWhereClauseParameter(9, REM[0]);
  80. param1.setWhereClauseParameter(10, REG_ID[0]);
  81. param1.setWhereClauseParameter(11, coil_no[0]);
  82. getDao("mesdao").update("UIH051500_01.update", param1);
  83. //因为更新了卷重,调用取消判定程序
  84. //需要转换钢卷号为流水号
  85. logger.logInfo("CoilMILLDATA---> PKG_TOTL_DCS01 TC sql call" );
  86. CallableStatement PlRtn = getDao("mesdao").getCallableStatement("PKG_TOTL_DCS01");
  87. logger.logInfo("CoilMILLDATA---> PKG_TOTL_DCS01 TC try" );
  88. try {
  89. if(PlRtn != null) {
  90. PlRtn.setString(1,coil_no_tmp);
  91. PlRtn.setString(2,REG_ID[0]);
  92. //新增加一个字段,为了废弃的时候使用
  93. PlRtn.registerOutParameter(3, java.sql.Types.VARCHAR);
  94. PlRtn.execute();
  95. logger.logInfo("CoilMILLDATA---> PKG_TOTL_DCS01 TC PlRtn1:");
  96. } else {
  97. logger.logInfo("CoilMILLDATA---> PKG_TOTL_DCS01 PlRtn2:"+PlRtn );
  98. }
  99. } catch (SQLException e) {
  100. throw new PosException(e.getMessage());
  101. }finally
  102. {
  103. if (PlRtn != null)
  104. {
  105. try
  106. {
  107. PlRtn.close();
  108. }
  109. catch (SQLException e)
  110. {
  111. logger.logWarn(e.getMessage(), e);
  112. logger.logInfo("CoilMILLDATA---> NIB027010 SQLException:"+e );
  113. }
  114. }
  115. }
  116. }else{
  117. //卷重不为空的情况下。再加一步判断,发货完成的也不取消判定
  118. if(CUR_PROG_CD.equals("SFF") || CUR_PROG_CD.equals("SFB")){
  119. logger.logInfo("操作人:REG_ID ::: "+REG_ID[0]);
  120. logger.logInfo("CoilMILLDATA 发货完成/已下计划的情况下改变卷重,不能调用取消判定程序!!!!"+colil_wgt_tmp+" 系统记录卷重/实际修改卷重 "+ACT_WGT[0]);
  121. String vtemp="CUR_PROG_CD_1";
  122. context.put("rs", vtemp);
  123. }else{
  124. if(!colil_wgt_tmp.equals(ACT_WGT[0]) ){
  125. //重量不相等的情况下,调用
  126. //因为更新了卷重,调用取消判定程序
  127. //需要转换钢卷号为流水号
  128. logger.logInfo("CoilMILLDATA---> PKG_TOTL_DCS01 TC sql call ACT_WGT" );
  129. CallableStatement PlRtn = getDao("mesdao").getCallableStatement("PKG_TOTL_DCS01");
  130. logger.logInfo("CoilMILLDATA---> PKG_TOTL_DCS01 TC try" );
  131. try {
  132. if(PlRtn != null) {
  133. PlRtn.setString(1,coil_no_tmp);
  134. PlRtn.setString(2,REG_ID[0]);
  135. //新增加一个字段,为了废弃的时候使用
  136. PlRtn.registerOutParameter(3, java.sql.Types.VARCHAR);
  137. PlRtn.execute();
  138. logger.logInfo("CoilMILLDATA---> PKG_TOTL_DCS01 TC PlRtn1:");
  139. } else {
  140. logger.logInfo("CoilMILLDATA---> PKG_TOTL_DCS01 PlRtn2:"+PlRtn );
  141. }
  142. } catch (SQLException e) {
  143. throw new PosException(e.getMessage());
  144. }finally
  145. {
  146. if (PlRtn != null)
  147. {
  148. try
  149. {
  150. PlRtn.close();
  151. }
  152. catch (SQLException e)
  153. {
  154. logger.logWarn(e.getMessage(), e);
  155. logger.logInfo("CoilMILLDATA---> NIB027010 SQLException:"+e );
  156. }
  157. }
  158. }
  159. PosParameter param1 = new PosParameter();
  160. param1.setWhereClauseParameter(0, COIL_THK[0]);
  161. param1.setWhereClauseParameter(1, COIL_WTH[0]);
  162. param1.setWhereClauseParameter(2, COIL_LEN[0]);
  163. param1.setWhereClauseParameter(3, ACT_WGT[0]);
  164. param1.setWhereClauseParameter(4, CAL_WGT[0]);
  165. // 成品不允许录入瑕疵代码,tl 091221
  166. //param1.setWhereClauseParameter(5, CRK_CD1[0]);
  167. //param1.setWhereClauseParameter(6, CRK_CD2[0]);
  168. //param1.setWhereClauseParameter(7, CRK_CD3[0]);
  169. //param1.setWhereClauseParameter(8, CRK_CD4[0]);
  170. //param1.setWhereClauseParameter(9, CRK_CD5[0]);
  171. param1.setWhereClauseParameter(5, ENTRY_SHIFT[0]);
  172. param1.setWhereClauseParameter(6, ENTRY_GROUP[0]);
  173. param1.setWhereClauseParameter(7, ENTRY_REG[0]);
  174. param1.setWhereClauseParameter(8, ENTRY_DTIME[0]);
  175. param1.setWhereClauseParameter(9, REM[0]);
  176. param1.setWhereClauseParameter(10, REG_ID[0]);
  177. param1.setWhereClauseParameter(11, coil_no[0]);
  178. getDao("mesdao").update("UIH051500_01.update", param1);
  179. }else{
  180. //在重量一致的情况下,需要记录可对重量的操作人和操作时间。
  181. PosParameter param1 = new PosParameter();
  182. param1.setWhereClauseParameter(0, ENTRY_SHIFT[0]);
  183. param1.setWhereClauseParameter(1, ENTRY_GROUP[0]);
  184. param1.setWhereClauseParameter(2, ENTRY_REG[0]);
  185. param1.setWhereClauseParameter(3, ENTRY_DTIME[0]);
  186. param1.setWhereClauseParameter(4, REM[0]);
  187. param1.setWhereClauseParameter(5, REG_ID[0]);
  188. param1.setWhereClauseParameter(6, coil_no[0]);
  189. getDao("mesdao").update("UIH051500_06.update", param1);
  190. logger.logInfo("CoilMILLDATA 实际卷重没有修改,不能调用取消判定程序!!!!"+colil_wgt_tmp+" 系统记录卷重/实际修改卷重 "+ACT_WGT[0]);
  191. }
  192. }
  193. }
  194. return PosBizControlConstants.SUCCESS;
  195. }
  196. }