4fb6f89f892d4249cdbb73ab155fdc6c2182dbf9.svn-base 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  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. /**
  10. * 标准交付条件项目保存(界面ID:UIB010270)
  11. * @author 梅贵平{meiguiping}
  12. * @date 2008-10-25
  13. */
  14. public class SaveSpecDelItem extends PosActivity
  15. {
  16. public String runActivity(PosContext context)
  17. {
  18. PosGenericDao dao = this.getDao("mesdao");
  19. PosParameter param= null;
  20. String INFID = "UIB010270";
  21. //datagrid1
  22. String[] DEV_SPEC_CD = (String[])context.get("DEV_SPEC_CD");//外形尺寸标准号
  23. //datagrid2
  24. String[] DEV_DGR_CD = (String[])context.get("DEV_DGR_CD");//等级代码
  25. String[]DEL_TOL_CD = (String[])context.get("DEL_TOL_CD");//公差名
  26. String[]THK_MIN = (String[])context.get("THK_MIN");//厚度最小
  27. String[]THK_MAX = (String[])context.get("THK_MAX");//厚度最大
  28. String[]WTH_MIN = (String[])context.get("WTH_MIN");//宽度最小
  29. String[]WTH_MAX = (String[])context.get("WTH_MAX");//宽度最大
  30. String[]TOL_MIN_SYM = (String[])context.get("TOL_MIN_SYM");//下限符号
  31. String[]TOL_MIN = (String[])context.get("TOL_MIN");//下限值
  32. String[]TOL_MAX_SYM = (String[])context.get("TOL_MAX_SYM");//上限符号
  33. String[]TOL_MAX = (String[])context.get("TOL_MAX");//上限值
  34. String[]TOL_UNIT = (String[])context.get("TOL_UNIT");//其他单位
  35. String[]TOL_VAL = (String[])context.get("TOL_VAL");//其它值
  36. String[]DEV_RMK = (String[])context.get("DEV_RMK");//备注
  37. String[]EMEC_TP = (String[])context.get("EMEC_TP");//是否切边
  38. //主键被修改时起作用
  39. String[] DEV_DGR_CD1 = (String[])context.get("DEV_DGR_CD1");//等级代码
  40. String[]DEL_TOL_CD1 = (String[])context.get("DEL_TOL_CD1");//公差名
  41. String[]THK_MIN1 = (String[])context.get("THK_MIN1");//厚度最小
  42. String[]THK_MAX1 = (String[])context.get("THK_MAX1");//厚度最大
  43. String[]WTH_MIN1 = (String[])context.get("WTH_MIN1");//宽度最小
  44. String[]WTH_MAX1 = (String[])context.get("WTH_MAX1");//宽度最大
  45. String[]EMEC_TP1 = (String[])context.get("EMEC_TP1");//是否切边
  46. String[] rowStuts1 = (String[])context.get("rowStuts1");//对应datagrid1
  47. String[] REG_NM = (String[])context.get("REG_NM");//操作人
  48. String[] CHK = (String[])context.get("CHK");
  49. int j = 0;
  50. if(rowStuts1 != null)//grid2被变更后的操作
  51. {
  52. int len = rowStuts1.length;
  53. for(int i = 0; i < len; i++)
  54. {
  55. j = 0;
  56. //不允许为空
  57. if("".equals(DEV_SPEC_CD[0]) || "".equals(DEV_DGR_CD[0]) )
  58. {
  59. break;//若为空则直接退出循环
  60. }
  61. else if("".equals(DEL_TOL_CD[i])||"".equals(THK_MIN[i]) ||"".equals(THK_MAX[i])
  62. || "".equals(WTH_MIN[i]) || "".equals(WTH_MAX[i]) )
  63. {
  64. continue;
  65. }
  66. else if("u".equals(rowStuts1[i]) && "Y".equals(CHK[i]))
  67. {
  68. param = new PosParameter();
  69. param.setWhereClauseParameter(j++, DEL_TOL_CD[i]);
  70. param.setWhereClauseParameter(j++, DEV_DGR_CD[i]);
  71. param.setWhereClauseParameter(j++, THK_MIN[i]);
  72. param.setWhereClauseParameter(j++, THK_MAX[i]);
  73. param.setWhereClauseParameter(j++, WTH_MIN[i]);
  74. param.setWhereClauseParameter(j++, WTH_MAX[i]);
  75. param.setWhereClauseParameter(j++, "T2".equals(DEL_TOL_CD[i])?EMEC_TP[i]:"EM");
  76. param.setWhereClauseParameter(j++, TOL_MIN_SYM[i]);
  77. param.setWhereClauseParameter(j++, TOL_MIN[i]);
  78. param.setWhereClauseParameter(j++, TOL_MAX_SYM[i]);
  79. param.setWhereClauseParameter(j++, TOL_MAX[i]);
  80. param.setWhereClauseParameter(j++, TOL_UNIT[i]);
  81. param.setWhereClauseParameter(j++, TOL_VAL[i]);
  82. param.setWhereClauseParameter(j++, DEV_RMK[i]);//备注
  83. param.setWhereClauseParameter(j++, REG_NM[0]);
  84. //下面是UPDATE的条件
  85. param.setWhereClauseParameter(j++, DEV_SPEC_CD[0]);
  86. param.setWhereClauseParameter(j++, DEV_DGR_CD1[i]);
  87. param.setWhereClauseParameter(j++, DEL_TOL_CD1[i]);
  88. param.setWhereClauseParameter(j++, THK_MIN1[i]);
  89. param.setWhereClauseParameter(j++, THK_MAX1[i]);
  90. param.setWhereClauseParameter(j++, WTH_MIN1[i]);
  91. param.setWhereClauseParameter(j++, WTH_MAX1[i]);
  92. param.setWhereClauseParameter(j++, "T2".equals(DEL_TOL_CD1[i])?EMEC_TP1[i]:"EM");
  93. dao.update("UIB010270_01.UPDATE", param);
  94. SaveModifyHistory.writeLog(dao, INFID, "U", "UIB010270_01.UPDATE", param.getWhereClauseParamters(), "", REG_NM[0]);
  95. }
  96. else if("i".equals(rowStuts1[i]) && "Y".equals(CHK[i]))
  97. {
  98. param = new PosParameter();
  99. param.setValueParamter(j++, DEV_SPEC_CD[0]);
  100. param.setValueParamter(j++, DEV_DGR_CD[i]);
  101. param.setValueParamter(j++, DEL_TOL_CD[i]);
  102. param.setValueParamter(j++, THK_MIN[i]);
  103. param.setValueParamter(j++, THK_MAX[i]);
  104. param.setValueParamter(j++, WTH_MIN[i]);
  105. param.setValueParamter(j++, WTH_MAX[i]);
  106. param.setValueParamter(j++, "T2".equals(DEL_TOL_CD[i])?EMEC_TP[i]:"EM");
  107. param.setValueParamter(j++, TOL_MIN_SYM[i]);
  108. param.setValueParamter(j++, TOL_MIN[i]);
  109. param.setValueParamter(j++, TOL_MAX_SYM[i]);
  110. param.setValueParamter(j++, TOL_MAX[i]);
  111. param.setValueParamter(j++, TOL_UNIT[i]);
  112. param.setValueParamter(j++, TOL_VAL[i]);
  113. param.setValueParamter(j++, DEV_RMK[i]);
  114. param.setValueParamter(j++, REG_NM[0]);
  115. dao.insert("UIB010270_01.INSERT", param);
  116. SaveModifyHistory.writeLog(dao, INFID, "I", "UIB010270_01.INSERT", param.getValueParameters(), "", REG_NM[0]);
  117. }
  118. else if("d".equals(rowStuts1[i]) && "Y".equals(CHK[i]))
  119. {
  120. param = new PosParameter();
  121. param.setWhereClauseParameter(j++, DEV_SPEC_CD[0]);
  122. param.setWhereClauseParameter(j++, DEV_DGR_CD[i]);
  123. param.setWhereClauseParameter(j++, DEL_TOL_CD[i]);
  124. param.setWhereClauseParameter(j++, THK_MIN[i]);
  125. param.setWhereClauseParameter(j++, THK_MAX[i]);
  126. param.setWhereClauseParameter(j++, WTH_MIN[i]);
  127. param.setWhereClauseParameter(j++, WTH_MAX[i]);
  128. param.setWhereClauseParameter(j++, EMEC_TP[i]);
  129. dao.delete("UIB010270_02.DELETE", param);
  130. SaveModifyHistory.writeLog(dao, INFID, "D", "UIB010270_02.DELETE", param.getWhereClauseParamters(), "", REG_NM[0]);
  131. }
  132. }
  133. }
  134. String[]rowStatusD = (String[])context.get("rowStatusD");
  135. if(rowStatusD != null)//针对grid1删除操作
  136. {
  137. param = new PosParameter();
  138. param.setWhereClauseParameter(0, DEV_SPEC_CD[0]);
  139. param.setWhereClauseParameter(1, DEV_DGR_CD[0]);
  140. dao.update("UIB010270_01.DELETE", param);
  141. SaveModifyHistory.writeLog(dao, INFID, "D", "UIB010270_01.DELETE", param.getWhereClauseParamters(), "", REG_NM[0]);
  142. }
  143. //复制
  144. String[]CALL = (String[])context.get("CALL");
  145. if(CALL != null)
  146. {
  147. String[]NeedGrd = (String[])context.get("NeedGrd");//等级代码
  148. String[]delSpec = (String[])context.get("delSpec");//外形尺寸标准
  149. CallableStatement cstm = null;
  150. cstm = dao.getCallableStatement("UIB010270_01.CALL");
  151. try
  152. {
  153. cstm.setString(1, DEV_SPEC_CD[0]);
  154. cstm.setString(2, DEV_DGR_CD[0]);
  155. cstm.setString(3, delSpec[0]);
  156. cstm.setString(4, NeedGrd[0]);
  157. cstm.setString(6, REG_NM[0]);
  158. cstm.registerOutParameter(7, java.sql.Types.VARCHAR);
  159. cstm.execute();
  160. }catch(Exception ex)
  161. {
  162. try
  163. {
  164. if(cstm != null) cstm.close();
  165. }catch(Exception e)
  166. {
  167. e.printStackTrace();
  168. }
  169. }
  170. }
  171. return PosBizControlConstants.SUCCESS;
  172. }
  173. }