63706c385e4e9a6e01932e4241fa3daf9b8ebd0b.svn-base 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. package xin.glue.ui.B.B01;
  2. import com.posdata.glue.biz.activity.PosActivity;
  3. import com.posdata.glue.biz.constants.PosBizControlConstants;
  4. import com.posdata.glue.context.PosContext;
  5. import com.posdata.glue.dao.PosGenericDao;
  6. import com.posdata.glue.dao.vo.PosParameter;
  7. /**
  8. * 厂内成分参数保存(界面ID: UIB010050)
  9. * @author 梅贵平
  10. * @date 2008-10-15
  11. */
  12. public class SaveFacChemParameter extends PosActivity
  13. {
  14. public String runActivity(PosContext context)
  15. {
  16. PosGenericDao dao = this.getDao("mesdao");
  17. String[] rowStuts0 = (String[])context.get("rowStuts0");//表1的删除、插入标记
  18. String[] rowStuts = (String[])context.get("rowStuts");//表2、3、4、5的更新、删除、插入标记
  19. String[] FAC_STL_GRD = (String[])context.get("FAC_STL_GRD"); //厂内钢号
  20. String[] FAC_CODE = (String[])context.get("FAC_CODE"); //交货状态
  21. //String[] F_CODE = (String[])context.get("F_CODE"); //生产线
  22. String[] HIDDENGRD = (String[])context.get("HIDDENGRD");//更新前的厂内钢号
  23. String[] HIDDENFAC = (String[])context.get("HIDDENFAC");//更新前的厂内钢号
  24. String[] CHEM_CD = (String[])context.get("CHEM_CD");
  25. String[] COMP_YN = (String[])context.get("COMP_YN");
  26. String[] CHEM_AIM = (String[])context.get("CHEM_AIM");
  27. String[] CHEM_MIN = (String[])context.get("CHEM_MIN");
  28. String[] CHEM_MAX = (String[])context.get("CHEM_MAX");
  29. String[] EX = (String[])context.get("EX");
  30. PosParameter param = null;
  31. //用于新增厂内钢号操作的零时中间量,这里new 是为了下面“新增厂内钢号判断”不出现空指针异常
  32. int insertNumber = -1; //用于获取是哪个进行了新增操作
  33. if(rowStuts0 != null)//判断是否对datagrid1表做了更新、删除、插入操作
  34. {
  35. int len0 = rowStuts0.length;
  36. int j = 0;//数组的下标
  37. int m = 0;
  38. for(int i=0; i < len0; i++)
  39. {
  40. if("u".equals(rowStuts0[i]))//更新厂内钢号
  41. {
  42. //更新TBB01_FAC_INGR 表中的厂内钢号
  43. param = new PosParameter();
  44. param.setWhereClauseParameter(0, FAC_STL_GRD[i]);//更新后的厂内钢号
  45. param.setWhereClauseParameter(1, FAC_CODE[i]);//更新后的生产线
  46. param.setWhereClauseParameter(2, HIDDENGRD[i]);//更新钱的厂内钢号
  47. param.setWhereClauseParameter(3, HIDDENFAC[i]);//生产线
  48. dao.update("UIB010050_01.UPDATE", param);
  49. //更新TBB01_MAP_INGR 表中的厂内钢号
  50. param = new PosParameter();
  51. param.setWhereClauseParameter(0, FAC_STL_GRD[i]);//更新后的厂内钢号
  52. param.setWhereClauseParameter(1, FAC_CODE[i]);//更新后的生产线
  53. param.setWhereClauseParameter(2, HIDDENGRD[i]);//更新钱的厂内钢号
  54. param.setWhereClauseParameter(3, HIDDENFAC[i]);//生产线
  55. dao.update("UIB010050.UPDATE.MAPINGR", param);
  56. }
  57. if("d".equals(rowStuts0[i]))//删除厂内钢号
  58. {
  59. param = new PosParameter();
  60. param.setWhereClauseParameter(0, HIDDENGRD[i]);//删除某厂内钢号
  61. param.setWhereClauseParameter(1, FAC_CODE[i]);//生产线
  62. dao.delete("UIB010050_01.DELETE",param);
  63. }
  64. if("i".equals(rowStuts0[i]))//新增厂内钢号,若无异常,则最多只有1个
  65. {
  66. insertNumber = i;
  67. }
  68. }//for end
  69. }//if end
  70. //新增了厂内钢号
  71. if(insertNumber >= 0 )
  72. {
  73. if(rowStuts != null)//判断是否增加了新成分
  74. {
  75. int j=0;
  76. int len = rowStuts.length;
  77. for(int i=0; i < len; i++)
  78. {
  79. j = 0;
  80. param = new PosParameter();
  81. param.setValueParamter(j++, FAC_STL_GRD[insertNumber]);//厂内钢号
  82. param.setValueParamter(j++, FAC_CODE[insertNumber]);//生产线
  83. param.setValueParamter(j++, CHEM_CD[i]);//成分名
  84. param.setValueParamter(j++, COMP_YN[i]);//复合元素区分
  85. param.setValueParamter(j++, CHEM_AIM[i]);//目标成分值
  86. param.setValueParamter(j++, CHEM_MIN[i]);//成分最小值
  87. param.setValueParamter(j++, CHEM_MAX[i]);//成分最大值
  88. //param.setValueParamter(j++, F_CODE[0]);//生产线
  89. dao.insert("UIB010050_01.INSERT", param);
  90. }//for end
  91. }//if end
  92. }//if end
  93. /*
  94. * 非新增厂内钢号(仅仅做了更新,如成分最大,最小值、厂内钢号的更新)
  95. * 厂内钢号的更新不用再考虑,在前面的代码中做了处理
  96. * 若EX为y,表示要进行插入新成分操作,否则为更新成分操作
  97. *
  98. * */
  99. String[] FACPARAM = (String[])context.get("FACPARAM");//获得更新后的厂内钢号,用于更新成分操作
  100. String[] FACCODE = (String[])context.get("FACCODE");//获得生产线
  101. /*
  102. * insertNumber == -1时,说明无新增厂内钢号操作,则允许在大条件(非新增厂内钢号操作)的各种操作
  103. * */
  104. if(rowStuts != null && insertNumber == -1)
  105. {
  106. int j = 0;
  107. int len = rowStuts.length;
  108. for(int i = 0; i < len; i++)
  109. {
  110. j = 0;
  111. if("y".equals(EX[i]) &&( !"".equals(CHEM_AIM[i])|| !"".equals(CHEM_MIN[i]) || !"".equals(CHEM_MAX[i]) ) )//插入新的元素
  112. {
  113. param = new PosParameter();
  114. param.setValueParamter(j++, FACPARAM[0]);
  115. param.setValueParamter(j++, FACCODE[0]);
  116. param.setValueParamter(j++, CHEM_CD[i]);
  117. param.setValueParamter(j++, COMP_YN[i]);
  118. param.setValueParamter(j++, CHEM_AIM[i]);
  119. param.setValueParamter(j++, CHEM_MIN[i]);
  120. param.setValueParamter(j++, CHEM_MAX[i]);
  121. //param.setValueParamter(j++, F_CODE[0]);//生产线
  122. dao.insert("UIB010050_01.INSERT" , param);
  123. }
  124. if("".equals(EX[i]))//对元素信息更新,非插入
  125. {
  126. if("".equals(CHEM_AIM[i])&&"".equals(CHEM_MIN[i])&&"".equals(CHEM_MAX[i]))
  127. {
  128. param = new PosParameter();
  129. param.setWhereClauseParameter(0, FACPARAM[0]);//厂内钢号
  130. param.setWhereClauseParameter(1, FACCODE[0]);//生产线
  131. param.setWhereClauseParameter(2, CHEM_CD[i]);//成分代码
  132. dao.delete("UIB010050_02.DELETE",param);
  133. }
  134. else
  135. {
  136. param = new PosParameter();
  137. param.setWhereClauseParameter(j++, CHEM_AIM[i]);
  138. param.setWhereClauseParameter(j++, CHEM_MIN[i]);
  139. param.setWhereClauseParameter(j++, CHEM_MAX[i]);
  140. param.setWhereClauseParameter(j++, FACPARAM[0]);
  141. param.setWhereClauseParameter(j++, CHEM_CD[i]);
  142. param.setWhereClauseParameter(j++, FACCODE[0]);
  143. dao.update("UIB010050_02.UPDATE", param);
  144. }
  145. }
  146. }//for end
  147. }//if end
  148. /* String[]FAC_DETAIL = (String[])context.get("FAC_DETAIL");
  149. param = new PosParameter();
  150. param.setWhereClauseParameter(0, FAC_DETAIL[0]);
  151. param.setWhereClauseParameter(1, FACPARAM[0]);
  152. param.setWhereClauseParameter(2, FACCODE[0]);
  153. dao.update("UIB010050_03.UPDATE", param);*/
  154. return PosBizControlConstants.SUCCESS;
  155. }
  156. }