677addfdb6481f45dfc353f9c5ee524deea799de.svn-base 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. package xin.glue.ui.B.B02;
  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. import com.posdata.glue.dao.vo.PosRowSet;
  8. /**
  9. *
  10. * @Description 试样号实绩修改{界面ID:UIB020132}
  11. * @author 梅贵平{meiguiping}
  12. * @date 2009-1-19 下午03:10:42
  13. * @JDK Version jdk1.4.2
  14. */
  15. public class SaveSmpQltyAchievement extends PosActivity
  16. {
  17. public String runActivity(PosContext context)
  18. {
  19. ///ready
  20. PosParameter param = null;
  21. PosGenericDao dao = this.getDao("mesdao");
  22. PosRowSet rowset = null;
  23. ///get reqdata
  24. String[] SMPNO = (String[])context.get("SMPNO");//试样号
  25. String[] SMPCUTLOC = (String[])context.get("SMPCUTLOC");//位置
  26. String[] QLTYCD = (String[])context.get("QLTYCD"); //材质代码
  27. String[] QLTY_SEQ = (String[])context.get("QLTY_SEQ");//次数
  28. String[]QLTY_VAL_WK1 = (String[])context.get("QLTY_VAL_WK1");//实绩1
  29. String[]QLTY_UNIT_WK1 = (String[])context.get("QLTY_UNIT_WK1");//单位1
  30. String[]QLTY_VAL_WK2 = (String[])context.get("QLTY_VAL_WK2");//实绩2
  31. String[]QLTY_UNIT_WK2 = (String[])context.get("QLTY_UNIT_WK2");//单位2
  32. String[] rowStatus2 = (String[])context.get("rowStatus2");//对应表格2
  33. String[][] SMP = new String[11][];
  34. SMP[0] = (String[])context.get("SMP1");
  35. SMP[1] = (String[])context.get("SMP2");
  36. SMP[2] = (String[])context.get("SMP3");
  37. SMP[3] = (String[])context.get("SMP4");
  38. SMP[4] = (String[])context.get("SMP5");
  39. SMP[5] = (String[])context.get("SMP6");
  40. SMP[6] = (String[])context.get("SMP7");
  41. SMP[7] = (String[])context.get("SMP8");
  42. SMP[8] = (String[])context.get("SMP9");
  43. SMP[9] = (String[])context.get("SMP10");
  44. SMP[10] = (String[])context.get("SMP11");
  45. if(rowStatus2 == null)
  46. return PosBizControlConstants.SUCCESS;
  47. int len = rowStatus2.length;
  48. int j = 0;
  49. for(int i = 0; i < len; i++)
  50. {
  51. ///若取样位置为W
  52. if("W".equals(SMPCUTLOC[i]))
  53. {
  54. if("".equals(QLTY_SEQ[i]))//若QLTY_SEQ不为空,说明更新的是REWORK表,否则是work表
  55. {
  56. //位置T
  57. j = 0;
  58. param = new PosParameter();
  59. param.setWhereClauseParameter(j++, QLTY_VAL_WK1[i]);//材质实绩值
  60. param.setWhereClauseParameter(j++, QLTY_UNIT_WK1[i]);//材质单位
  61. param.setWhereClauseParameter(j++, SMPNO[i]);//试样号
  62. param.setWhereClauseParameter(j++, "1");//试样位置,1表示T
  63. param.setWhereClauseParameter(j++, QLTYCD[i]);//材质代码
  64. dao.update("UIB020132_02.UPDATE", param);
  65. //位置B
  66. j = 0;
  67. param = new PosParameter();
  68. param.setWhereClauseParameter(j++, QLTY_VAL_WK2[i]); //材质实绩值
  69. param.setWhereClauseParameter(j++, QLTY_UNIT_WK2[i]);//材质单位
  70. param.setWhereClauseParameter(j++, SMPNO[i]); //试样号
  71. param.setWhereClauseParameter(j++, "2"); //2,位置B
  72. param.setWhereClauseParameter(j++, QLTYCD[i]);//材质代码
  73. dao.update("UIB020132_02.UPDATE", param);
  74. //更新对应的式样号的实绩
  75. for(int m = 0; m < 11; m++)
  76. {
  77. System.out.println("########################################"+SMP[m][0]);
  78. if("".equals(SMP[m][0]))
  79. {
  80. break;
  81. }
  82. // System.out.println("#######################################################");
  83. //位置T
  84. j = 0;
  85. param = new PosParameter();
  86. param.setWhereClauseParameter(j++, QLTY_VAL_WK1[i]);//材质实绩值
  87. param.setWhereClauseParameter(j++, QLTY_UNIT_WK1[i]);//材质单位
  88. param.setWhereClauseParameter(j++, SMPNO[i].substring(0, 10)+SMP[m][i]);//试样号
  89. param.setWhereClauseParameter(j++, "1");//试样位置,1表示T
  90. param.setWhereClauseParameter(j++, QLTYCD[i]);//材质代码
  91. dao.update("UIB020132_02.UPDATE", param);
  92. //位置B
  93. j = 0;
  94. param = new PosParameter();
  95. param.setWhereClauseParameter(j++, QLTY_VAL_WK2[i]); //材质实绩值
  96. param.setWhereClauseParameter(j++, QLTY_UNIT_WK2[i]);//材质单位
  97. param.setWhereClauseParameter(j++, SMPNO[i].substring(0, 10)+SMP[m][i]); //试样号
  98. param.setWhereClauseParameter(j++, "2"); //2,位置B
  99. param.setWhereClauseParameter(j++, QLTYCD[i]);//材质代码
  100. dao.update("UIB020132_02.UPDATE", param);
  101. }
  102. }
  103. else//更新rework表示实绩
  104. {
  105. //位置T
  106. j = 0;
  107. param = new PosParameter();
  108. param.setWhereClauseParameter(j++, QLTY_VAL_WK1[i]); //材质实绩值
  109. param.setWhereClauseParameter(j++, QLTY_UNIT_WK1[i]);//材质单位
  110. param.setWhereClauseParameter(j++, SMPNO[i]); //试样号
  111. param.setWhereClauseParameter(j++, "1"); //试样位置,1表示T
  112. param.setWhereClauseParameter(j++, QLTYCD[i]); //材质代码
  113. param.setWhereClauseParameter(j++, QLTY_SEQ[i]);//实验次数
  114. dao.update("UIB020132_03.UPDATE", param);
  115. //位置B
  116. j = 0;
  117. param = new PosParameter();
  118. param.setWhereClauseParameter(j++, QLTY_VAL_WK2[i]); //材质实绩值
  119. param.setWhereClauseParameter(j++, QLTY_UNIT_WK2[i]);//材质单位
  120. param.setWhereClauseParameter(j++, SMPNO[i]); //试样号
  121. param.setWhereClauseParameter(j++, "2"); //2,位置B
  122. param.setWhereClauseParameter(j++, QLTYCD[i]);//材质代码
  123. param.setWhereClauseParameter(j++, QLTY_SEQ[i]);//实验次数
  124. dao.update("UIB020132_03.UPDATE", param);
  125. //更新对应的式样号的实绩
  126. for(int m = 0; m < 11; m++)
  127. {
  128. if("".equals(SMP[m][0]))
  129. {
  130. break;
  131. }
  132. //位置T
  133. j = 0;
  134. param = new PosParameter();
  135. param.setWhereClauseParameter(j++, QLTY_VAL_WK1[i]); //材质实绩值
  136. param.setWhereClauseParameter(j++, QLTY_UNIT_WK1[i]);//材质单位
  137. param.setWhereClauseParameter(j++, SMPNO[i].substring(0, 10)+SMP[m][i]); //试样号
  138. param.setWhereClauseParameter(j++, "1"); //试样位置,1表示T
  139. param.setWhereClauseParameter(j++, QLTYCD[i]); //材质代码
  140. param.setWhereClauseParameter(j++, QLTY_SEQ[i]);//实验次数
  141. dao.update("UIB020132_03.UPDATE", param);
  142. //位置B
  143. j = 0;
  144. param = new PosParameter();
  145. param.setWhereClauseParameter(j++, QLTY_VAL_WK2[i]); //材质实绩值
  146. param.setWhereClauseParameter(j++, QLTY_UNIT_WK2[i]);//材质单位
  147. param.setWhereClauseParameter(j++, SMPNO[i].substring(0, 10)+SMP[m][i]); //试样号
  148. param.setWhereClauseParameter(j++, "2"); //2,位置B
  149. param.setWhereClauseParameter(j++, QLTYCD[i]);//材质代码
  150. param.setWhereClauseParameter(j++, QLTY_SEQ[i]);//实验次数
  151. dao.update("UIB020132_03.UPDATE", param);
  152. }
  153. }
  154. }
  155. else///若取样位置非W
  156. {
  157. j = 0;
  158. param = new PosParameter();
  159. if("".equals(QLTY_SEQ[i]))//更新的是work表
  160. {
  161. param.setWhereClauseParameter(j++, QLTY_VAL_WK1[i]);//材质实绩值
  162. param.setWhereClauseParameter(j++, QLTY_UNIT_WK1[i]);//材质单位
  163. param.setWhereClauseParameter(j++, SMPNO[i]);//试样号
  164. param.setWhereClauseParameter(j++, SMPCUTLOC[i]);//试样位置
  165. param.setWhereClauseParameter(j++, QLTYCD[i]);//材质代码
  166. dao.update("UIB020132_02.UPDATE", param);
  167. //更新对应的式样号的实绩
  168. for(int m = 0; m < 11; m++)
  169. {
  170. if("".equals(SMP[m][0]))
  171. {
  172. break;
  173. }
  174. param = new PosParameter();
  175. param.setWhereClauseParameter(0, QLTY_VAL_WK1[i]);//材质实绩值
  176. param.setWhereClauseParameter(1, QLTY_UNIT_WK1[i]);//材质单位
  177. param.setWhereClauseParameter(2, SMPNO[i].substring(0, 10)+SMP[m][i]);//和上面相比,只有这里不同(试样号)
  178. param.setWhereClauseParameter(3, SMPCUTLOC[i]);//试样位置
  179. param.setWhereClauseParameter(4, QLTYCD[i]);//材质代码
  180. dao.update("UIB020132_02.UPDATE", param);
  181. }
  182. }
  183. else//更新的是rework表
  184. {
  185. param.setWhereClauseParameter(j++, QLTY_VAL_WK1[i]); //材质实绩值
  186. param.setWhereClauseParameter(j++, QLTY_UNIT_WK1[i]);//材质单位
  187. param.setWhereClauseParameter(j++, SMPNO[i]); //试样号
  188. param.setWhereClauseParameter(j++, SMPCUTLOC[i]); //试样位置,1表示T
  189. param.setWhereClauseParameter(j++, QLTYCD[i]); //材质代码
  190. param.setWhereClauseParameter(j++, QLTY_SEQ[i]);//实验次数
  191. dao.update("UIB020132_03.UPDATE", param);
  192. for(int m = 0; m < 11; m++)
  193. {
  194. if("".equals(SMP[m][0]))
  195. {
  196. break;
  197. }
  198. param = new PosParameter();
  199. param.setWhereClauseParameter(0, QLTY_VAL_WK1[i]); //材质实绩值
  200. param.setWhereClauseParameter(1, QLTY_UNIT_WK1[i]);//材质单位
  201. param.setWhereClauseParameter(2, SMPNO[i].substring(0, 10)+SMP[m][i]);//这里不同,试样号
  202. param.setWhereClauseParameter(3, SMPCUTLOC[i]); //试样位置,1表示T
  203. param.setWhereClauseParameter(4, QLTYCD[i]); //材质代码
  204. param.setWhereClauseParameter(5, QLTY_SEQ[i]);//实验次数
  205. dao.update("UIB020132_03.UPDATE", param);
  206. }//for(int m = 0; m < 11; m++)
  207. }//if else end
  208. }//if else end
  209. for(int m = 0; m < 11; m++)
  210. {
  211. if("".equals(SMP[m][0]))
  212. {
  213. break;
  214. }
  215. //SELECT 1 FROM TBB02_WORK_QLTY WHERE SMP_NO = ? AND SMP_CUT_LOC = ? AND QLTY_VAL_WK|| QLTY_UNIT_WK IS NULL
  216. param = new PosParameter();
  217. param.setWhereClauseParameter(0, SMPNO[i].substring(0, 10)+SMP[m][i]);//试样号
  218. // param.setWhereClauseParameter(1, SMPCUTLOC[i]);//试样位置
  219. rowset = dao.find("UIB020132_07.SELECT", param);
  220. if(rowset.count() ==0)//只有所有实绩都有以后,才能修改式样号状态到 判定待机状态“D”
  221. {
  222. param = new PosParameter();
  223. param.setWhereClauseParameter(0, SMPNO[i].substring(0, 10)+SMP[m][i]);//试样号
  224. param.setWhereClauseParameter(1, SMPCUTLOC[i]);//试样位置
  225. dao.update("UIB020132_04.UPDATE", param);
  226. }
  227. }
  228. }//for rowStatus2 end
  229. //SELECT 1 FROM TBB02_WORK_QLTY WHERE SMP_NO = ? AND SMP_CUT_LOC = ? AND QLTY_VAL_WK|| QLTY_UNIT_WK IS NULL
  230. param = new PosParameter();
  231. param.setWhereClauseParameter(0, SMPNO[0]);//试样号
  232. // param.setWhereClauseParameter(1, SMPCUTLOC[0]);//位置
  233. rowset = dao.find("UIB020132_07.SELECT", param);
  234. if(rowset.count() == 0)//只有所有实绩都有后,才能修改试样号的状态到D
  235. {
  236. param = new PosParameter();
  237. param.setWhereClauseParameter(0, SMPNO[0]);//试样号
  238. param.setWhereClauseParameter(1, SMPCUTLOC[0]);//试样位置
  239. dao.update("UIB020132_04.UPDATE", param);
  240. }
  241. return PosBizControlConstants.SUCCESS;
  242. }
  243. }