2aa2578bc9043a382f9867a636889bca56495c3c.svn-base 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. package xin.glue.ui.B.B01;
  2. import xin.glue.ui.B.common.SaveModifyHistory;
  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.PosGenericDao;
  7. import com.posdata.glue.dao.vo.PosParameter;
  8. import com.posdata.glue.dao.vo.PosRowSet;
  9. /**
  10. * 标准成分信息录入、删除、更新(界面ID:UIB010040)
  11. * @author 梅贵平
  12. * @date 2008-9-15
  13. */
  14. public class SaveSpecChemParameter extends PosActivity
  15. {
  16. public String runActivity(PosContext context)
  17. {
  18. PosGenericDao dao = this.getDao("mesdao");
  19. String INFID = "UIB010040";
  20. String[] rowStuts0 = (String[])context.get("rowStuts0");//表1的删除、插入标记
  21. String[] rowStuts = (String[])context.get("rowStuts");//表2、3、4、5的更新、删除、插入标记
  22. //datagrid1中可能被更新的信息
  23. String[] PRDNM_CD = (String[])context.get("PRDNM_CD");//品名
  24. String[] SPEC_ABBSYM = (String[])context.get("SPEC_ABBSYM");//标准号
  25. String[] SPEC_STL_GRD= (String[])context.get("SPEC_STL_GRD"); //可能被更新的标准钢号
  26. String[] THK_MIN = (String[])context.get("THK_MIN");//厚度min
  27. String[] THK_MAX = (String[])context.get("THK_MAX");//厚度max
  28. String[] CHEM_CD = (String[])context.get("CHEM_CD");//成分ID
  29. String[] CHEM_MIN = (String[])context.get("CHEM_MIN");//成分最小值
  30. String[] CHEM_MAX = (String[])context.get("CHEM_MAX");//成分最大值
  31. String[] CHEM_DEC_CD = (String[])context.get("CHEM_DEC_CD"); //检验类型
  32. String[] COMP_YN = (String[])context.get("COMP_YN");//是否为复合元素
  33. String[] REG_NM = (String[])context.get("REG_NM");//登陆ID
  34. PosParameter param = null;
  35. PosRowSet rowset = null;
  36. int j = 0;
  37. if(rowStuts != null)//表2、3、4、5的更新、删除、插入标记
  38. {
  39. int len = rowStuts.length;
  40. for(int i = 0 ; i < len ; i++)
  41. {
  42. //主键不允许为空
  43. if("".equals(PRDNM_CD[0]) || "".equals(SPEC_ABBSYM[0]) || "".equals(SPEC_STL_GRD[0])
  44. ||"".equals(THK_MIN[0]) || "".equals(THK_MAX[0]) )
  45. {
  46. break;
  47. }
  48. j = 0;
  49. if("".equals(CHEM_MIN[i]) && "".equals(CHEM_MAX[i]))//删除某元素
  50. {
  51. param = new PosParameter();
  52. param.setWhereClauseParameter(j++, PRDNM_CD[0]);
  53. param.setWhereClauseParameter(j++, SPEC_ABBSYM[0]);
  54. param.setWhereClauseParameter(j++, SPEC_STL_GRD[0]);
  55. param.setWhereClauseParameter(j++, THK_MIN[0]);
  56. param.setWhereClauseParameter(j++, THK_MAX[0]);
  57. param.setWhereClauseParameter(j++, CHEM_CD[i]);
  58. dao.delete("UIB010040_02.DELETE", param);
  59. SaveModifyHistory.writeLog(dao, INFID, "D", "UIB010040_02.DELETE", param.getWhereClauseParamters(), "", REG_NM[0]);
  60. continue;
  61. }
  62. //判断某元素是否存在
  63. param = new PosParameter();
  64. param.setWhereClauseParameter(j++, PRDNM_CD[0]);
  65. param.setWhereClauseParameter(j++, SPEC_ABBSYM[0]);
  66. param.setWhereClauseParameter(j++, SPEC_STL_GRD[0]);
  67. param.setWhereClauseParameter(j++, THK_MIN[0]);
  68. param.setWhereClauseParameter(j++, THK_MAX[0]);
  69. param.setWhereClauseParameter(j++, CHEM_CD[i]);
  70. rowset = dao.find("UIB010040_05.SELECT", param);
  71. j = 0;
  72. if(rowset.count() == 0)//insert
  73. {
  74. param = new PosParameter();
  75. param.setValueParamter(j++, PRDNM_CD[0]);
  76. param.setValueParamter(j++, SPEC_ABBSYM[0]);
  77. param.setValueParamter(j++, SPEC_STL_GRD[0]);
  78. param.setValueParamter(j++, THK_MIN[0]);
  79. param.setValueParamter(j++, THK_MAX[0]);
  80. param.setValueParamter(j++, CHEM_CD[i]);
  81. param.setValueParamter(j++, CHEM_MIN[i]);
  82. param.setValueParamter(j++, CHEM_MAX[i]);
  83. param.setValueParamter(j++, COMP_YN[i]);
  84. param.setValueParamter(j++, CHEM_DEC_CD[i]);
  85. param.setValueParamter(j++, REG_NM[0]);
  86. dao.insert("UIB010040_01.INSERT", param);
  87. SaveModifyHistory.writeLog(dao, INFID, "I", "UIB010040_01.INSERT", param.getValueParameters(), "", REG_NM[0]);
  88. }
  89. else//update
  90. {
  91. param = new PosParameter();
  92. param.setWhereClauseParameter(j++, CHEM_MIN[i]);
  93. param.setWhereClauseParameter(j++, CHEM_MAX[i]);
  94. param.setWhereClauseParameter(j++, CHEM_DEC_CD[i]);
  95. param.setWhereClauseParameter(j++, REG_NM[0]);
  96. param.setWhereClauseParameter(j++, PRDNM_CD[0]);
  97. param.setWhereClauseParameter(j++, SPEC_ABBSYM[0]);
  98. param.setWhereClauseParameter(j++, SPEC_STL_GRD[0]);
  99. param.setWhereClauseParameter(j++, THK_MIN[0]);
  100. param.setWhereClauseParameter(j++, THK_MAX[0]);
  101. param.setWhereClauseParameter(j++, CHEM_CD[i]);
  102. dao.update("UIB010040_02.UPDATE", param);
  103. SaveModifyHistory.writeLog(dao, INFID, "U", "UIB010040_02.UPDATE", param.getWhereClauseParamters(), "", REG_NM[0]);
  104. }
  105. }
  106. }
  107. if(rowStuts0 != null)//针对grid1的删除
  108. {
  109. param = new PosParameter();
  110. param.setWhereClauseParameter(0, PRDNM_CD[0]);
  111. param.setWhereClauseParameter(1, SPEC_ABBSYM[0]);
  112. param.setWhereClauseParameter(2, SPEC_STL_GRD[0]);
  113. param.setWhereClauseParameter(3, THK_MIN[0]);
  114. param.setWhereClauseParameter(4, THK_MAX[0]);
  115. dao.delete("UIB010040_01.DELETE", param);
  116. SaveModifyHistory.writeLog(dao, INFID, "D", "UIB010040_01.DELETE", param.getWhereClauseParamters(), "", REG_NM[0]);
  117. }
  118. return PosBizControlConstants.SUCCESS;
  119. }
  120. }