6baf92d1e47cbf24fb06ef560559339b71d1bef5.svn-base 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. package xin.glue.ui.B.B01;
  2. import java.sql.CallableStatement;
  3. import xin.glue.ui.B.common.SaveModifyHistory;
  4. import com.posdata.glue.biz.activity.PosActivity;
  5. import com.posdata.glue.biz.constants.PosBizControlConstants;
  6. import com.posdata.glue.context.PosContext;
  7. import com.posdata.glue.dao.PosGenericDao;
  8. import com.posdata.glue.dao.vo.PosParameter;
  9. import com.posdata.glue.dao.vo.PosRowSet;
  10. /**
  11. *
  12. * @Description 内控成分录入{界面ID:UIB010052}
  13. * @author 梅贵平{meiguiping}
  14. * @date 2009-12-3 下午12:01:20
  15. * @JDK Version jdk1.4.2
  16. */
  17. public class SaveNewFacChemParameter extends PosActivity
  18. {
  19. public String runActivity(PosContext context)
  20. {
  21. String INFID = "UIB010052";
  22. String[] FAC_STL_GRD = (String[])context.get("FAC_STL_GRD");//牌号
  23. String[] FAC_CODE = (String[])context.get("FAC_CODE");//产线
  24. String[] CHEM_CD = (String[])context.get("CHEM_CD");//元素代码
  25. String[] CHEM_AIM = (String[])context.get("CHEM_AIM");//目标值
  26. String[] CHEM_MIN = (String[])context.get("CHEM_MIN");//最小值
  27. String[] CHEM_MAX = (String[])context.get("CHEM_MAX");//最大值
  28. String[] COMP_YN = (String[])context.get("COMP_YN");//是否为复合元素
  29. String[] rowStatus = (String[])context.get("rowStatus");//标记
  30. String[] REG_NM = (String[])context.get("REG_NM");//用户
  31. PosParameter param = null;
  32. PosGenericDao dao = this.getDao("mesdao");
  33. PosRowSet rowset = null;
  34. //主要是UPDATE 操作,若某元素不存在则进行INSERT操作
  35. if(rowStatus != null)
  36. {
  37. int len = rowStatus.length;
  38. for(int i = 0 ; i < len; i++)
  39. {
  40. rowset = null;//重新初始化
  41. if("u".equals(rowStatus[i]))
  42. {
  43. if("".equals(CHEM_MIN[i]) && "".equals(CHEM_MAX[i]) )
  44. {
  45. param = new PosParameter();
  46. param.setWhereClauseParameter(0, FAC_STL_GRD[0]);
  47. param.setWhereClauseParameter(1, FAC_CODE[0]);
  48. param.setWhereClauseParameter(2, CHEM_CD[i]);
  49. dao.delete("UIB010052_01.DELETE", param);
  50. SaveModifyHistory.writeLog(dao, INFID, "D", "UIB010052_01.DELETE", param.getWhereClauseParamters(), "", REG_NM[0]);
  51. continue;//进行下一次循环
  52. }
  53. param = new PosParameter();
  54. param.setWhereClauseParameter(0, FAC_STL_GRD[0]);
  55. param.setWhereClauseParameter(1, FAC_CODE[0]);
  56. param.setWhereClauseParameter(2, CHEM_CD[i]);
  57. rowset = dao.find("UIB010052_05.SELECT", param);
  58. if(rowset.count() == 0)//无该元素,进行INSERT
  59. {
  60. param = new PosParameter();
  61. param.setValueParamter(0, FAC_STL_GRD[0]);
  62. param.setValueParamter(1, FAC_CODE[0]);
  63. param.setValueParamter(2, CHEM_CD[i]);
  64. param.setValueParamter(3, COMP_YN[i]);
  65. param.setValueParamter(4, CHEM_AIM[i]);
  66. param.setValueParamter(5, CHEM_MIN[i]);
  67. param.setValueParamter(6, CHEM_MAX[i]);
  68. param.setValueParamter(7, REG_NM[0]);
  69. dao.insert("UIB010052_01.INSERT", param);
  70. SaveModifyHistory.writeLog(dao, INFID, "I", "UIB010052_01.INSERT", param.getValueParameters(), "", REG_NM[0]);
  71. }
  72. else//含有该元素,执行UPDATE
  73. {
  74. param = new PosParameter();
  75. param.setWhereClauseParameter(0, CHEM_AIM[i]);
  76. param.setWhereClauseParameter(1, CHEM_MIN[i]);
  77. param.setWhereClauseParameter(2, CHEM_MAX[i]);
  78. param.setWhereClauseParameter(3, REG_NM[0]);
  79. param.setWhereClauseParameter(4, FAC_STL_GRD[0]);
  80. param.setWhereClauseParameter(5, FAC_CODE[0]);
  81. param.setWhereClauseParameter(6, CHEM_CD[i]);
  82. dao.update("UIB010052_01.UPDATE", param);
  83. SaveModifyHistory.writeLog(dao, INFID, "U", "UIB010052_01.UPDATE", param.getWhereClauseParamters(), "", REG_NM[0]);
  84. }
  85. }
  86. }
  87. }
  88. String[] CALL = (String[])context.get("CALL");
  89. if(CALL != null)
  90. {
  91. String[]stlGrd = (String[])context.get("stlGrd");//需要复制到的内控牌号
  92. // String[]facCode = (String[])context.get("facCode");//产线
  93. CallableStatement cstm = null;
  94. cstm = dao.getCallableStatement("UIB010052_01.CALL");
  95. try
  96. {
  97. cstm.setString(1, FAC_STL_GRD[0]);//原牌号
  98. cstm.setString(2, FAC_CODE[0]);
  99. cstm.setString(3, stlGrd[0]);//目标牌号
  100. // cstm.setString(4, facCode[0]);
  101. cstm.setString(4, CALL[0]);
  102. cstm.setString(5, REG_NM[0]);
  103. cstm.registerOutParameter(6, java.sql.Types.VARCHAR);
  104. cstm.execute();
  105. }catch(Exception ex)
  106. {
  107. ex.printStackTrace();
  108. }
  109. finally
  110. {
  111. if(cstm != null)
  112. try
  113. {
  114. cstm.close();
  115. }catch(Exception e)
  116. {
  117. e.printStackTrace();
  118. }
  119. }
  120. }
  121. //增加备注
  122. String[] DETAIL = (String[])context.get("DETAIL");//注释
  123. String[]ADD_REMARK = (String[])context.get("ADD_REMARK");//是否增加备注
  124. if(ADD_REMARK != null)
  125. {
  126. CallableStatement cstm = null;
  127. cstm = dao.getCallableStatement("UIB010052_03.CALL");
  128. try
  129. {
  130. cstm.setString(1, FAC_STL_GRD[0]);//原牌号
  131. cstm.setString(2, FAC_CODE[0]);
  132. cstm.setString(3, DETAIL[0]);//备注信息
  133. cstm.setString(4, REG_NM[0]);
  134. cstm.registerOutParameter(5, java.sql.Types.VARCHAR);
  135. cstm.execute();
  136. }catch(Exception ex)
  137. {
  138. ex.printStackTrace();
  139. }
  140. finally
  141. {
  142. if(cstm != null)
  143. try
  144. {
  145. cstm.close();
  146. }catch(Exception e)
  147. {
  148. e.printStackTrace();
  149. }
  150. }
  151. }
  152. //删除牌号操作
  153. String[]L2Flag = (String[])context.get("L2Flag");//删除
  154. if(L2Flag != null && L2Flag[0].equals("D"))
  155. {
  156. param = new PosParameter();
  157. param.setWhereClauseParameter(0, FAC_STL_GRD[0]);//牌号
  158. param.setWhereClauseParameter(1, FAC_CODE[0]);
  159. dao.delete("UIB010052_02.DELETE", param);
  160. SaveModifyHistory.writeLog(dao, INFID, "D", "UIB010052_02.DELETE", param.getWhereClauseParamters(), "", REG_NM[0]);
  161. }
  162. return PosBizControlConstants.SUCCESS;
  163. }
  164. }