e8fa41ba099f0e660a9fd67ecc827e87e5681635.svn-base 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. package xin.glue.ui.J.J02;
  2. import java.math.BigDecimal;
  3. import java.text.DateFormat;
  4. import java.text.SimpleDateFormat;
  5. import java.util.Date;
  6. import com.posdata.glue.biz.activity.PosActivity;
  7. import com.posdata.glue.biz.constants.PosBizControlConstants;
  8. import com.posdata.glue.context.PosContext;
  9. import com.posdata.glue.dao.vo.PosParameter;
  10. import com.posdata.glue.dao.vo.PosRow;
  11. import com.posdata.glue.dao.vo.PosRowSet;
  12. public class saveCoilResult extends PosActivity{
  13. public String runActivity(PosContext context){
  14. //行状态
  15. String[] rowStuts = (String[]) context.get("rowStuts");
  16. //选择项目
  17. String[] CHK = (String[]) context.get("CHK");
  18. //钢卷号
  19. String[] OLD_SAMPL_NO = (String[]) context.get("OLD_SAMPL_NO");
  20. //生产流水号
  21. String[] COIL_NO = (String[]) context.get("COIL_NO");
  22. //炉号
  23. String[] CHARE_NO = (String[]) context.get("CHARE_NO");
  24. //标准牌号
  25. String[] SPEC_STL_GRD = (String[]) context.get("SPEC_STL_GRD");
  26. //订单号
  27. String[] ORD_NO = (String[]) context.get("ORD_NO");
  28. //钢卷重量
  29. String[] ACT_WGT = (String[]) context.get("ACT_WGT");
  30. //钢卷规格
  31. String[] THK_WTH = (String[]) context.get("THK_WTH");
  32. //生产日期
  33. String[] MILL_DTIME = (String[]) context.get("MILL_DTIME");
  34. //标准信息
  35. String[] SPEC_ABBSYM = (String[]) context.get("SPEC_ABBSYM");
  36. //检验员
  37. String[] CHECKER_ID = (String[]) context.get("CHECKER_ID");
  38. //修改后牌号
  39. String[] LICENSE_NO = (String[]) context.get("LICENSE_NO");
  40. //许可证标识
  41. String[] LICENSE_MARK = (String[]) context.get("LICENSE_MARK");
  42. //打印备注,使用的是预留字段1
  43. String[] COIL_MARK_RESVER = (String[]) context.get("COIL_MARK_RESVER");
  44. //操作人
  45. String[] REG_ID = (String[]) context.get("REG_ID");
  46. //发运指示号
  47. String[] DLIV_DIRNO = (String[]) context.get("DLIV_DIRNO");
  48. //打印页数,新增的数据项目。只添加到打印接口表,使用打印接口表的预留字段2
  49. String[] COIL_PAGES = (String[]) context.get("COIL_PAGES");
  50. String[] CHANGE_SPEC_STL_GRD=(String[])context.get("CHANGE_SPEC_STL_GRD");//更改后的牌号
  51. String LICENSE_NO_Auto = "";
  52. //为了防止空指针异常
  53. if(rowStuts != null){
  54. //循环所有的结果,一个一个的录入表中
  55. for(int i=0;i<rowStuts.length;i++){
  56. if(CHK[i].equals("Y")){
  57. //火运和汽运的情况分看来考虑
  58. PosParameter param0 = new PosParameter();
  59. param0.setWhereClauseParameter(0,DLIV_DIRNO[i]);
  60. PosRowSet rows0 = getDao("mesdao").find("UIJ020600_03.select", param0);
  61. String DLIV_TP = null;
  62. PosParameter paramA = new PosParameter();
  63. paramA.setWhereClauseParameter(0,ORD_NO[i]);
  64. PosRowSet rowsA = getDao("mesdao").find("UIJ020600_05.select", paramA);
  65. if(rowsA.hasNext()){
  66. PosRow rowA = rowsA.next();
  67. LICENSE_NO_Auto = rowA.getAttribute("LICENSE_NO") != null ? rowA.getAttribute("LICENSE_NO").toString():"";
  68. }
  69. if(rows0.hasNext()){
  70. PosRow row0 = rows0.next();
  71. DLIV_TP = (String) row0.getAttribute("DLIV_TP");
  72. if(null != DLIV_TP && DLIV_TP.equals("T")){
  73. PosParameter param1 = new PosParameter();
  74. param1.setWhereClauseParameter(0,OLD_SAMPL_NO[i]);
  75. PosRowSet rows = getDao("mesdao").find("UIJ020600_04.select", param1);
  76. if(rows.hasNext()){
  77. //这里需要取出修改前的重量,记录备注
  78. PosRow row = rows.next();
  79. BigDecimal ACT_WGT_HIS = (BigDecimal) row.getAttribute("ACT_WGT");
  80. logger.logDebug("saveCoilResult 里面,获取修改前的重量:"+ACT_WGT_HIS);
  81. //进行更新操作
  82. PosParameter param2 = new PosParameter();
  83. //这里只允许更新系统没有的数据
  84. // param2.setWhereClauseParameter(0, COIL_NO[i]);
  85. // param2.setWhereClauseParameter(1, CHARE_NO[i]);
  86. // param2.setWhereClauseParameter(2, SPEC_STL_GRD[i]);
  87. // param2.setWhereClauseParameter(3, ORD_NO[i]);
  88. // param2.setWhereClauseParameter(4, ACT_WGT[i]);
  89. // param2.setWhereClauseParameter(5, THK_WTH[i]);
  90. // param2.setWhereClauseParameter(6, MILL_DTIME[i]);
  91. // param2.setWhereClauseParameter(7, SPEC_ABBSYM[i]);
  92. param2.setWhereClauseParameter(0, CHANGE_SPEC_STL_GRD[i]);
  93. param2.setWhereClauseParameter(1, CHECKER_ID[i]);
  94. param2.setWhereClauseParameter(2, LICENSE_NO[i]);
  95. param2.setWhereClauseParameter(3, LICENSE_MARK[i]);
  96. param2.setWhereClauseParameter(4, COIL_MARK_RESVER[i]);
  97. param2.setWhereClauseParameter(5, REG_ID[0]);
  98. param2.setWhereClauseParameter(6, ACT_WGT[i]);
  99. param2.setWhereClauseParameter(7, "修改前重量为:"+ACT_WGT_HIS+" 修改后重量为: "+ACT_WGT[i]);
  100. param2.setWhereClauseParameter(8, SPEC_STL_GRD[i]);
  101. param2.setWhereClauseParameter(9, OLD_SAMPL_NO[i]);
  102. getDao("mesdao").update("UIJ020600_02.update", param2);
  103. //把标签需要的数据写入接口表,
  104. PosParameter param3 = new PosParameter();
  105. param3.setValueParamter(0, OLD_SAMPL_NO[i]);
  106. param3.setValueParamter(1, OLD_SAMPL_NO[i].substring(0, 10));
  107. param3.setValueParamter(2, CHARE_NO[i]);
  108. param3.setValueParamter(3, ORD_NO[i]);
  109. param3.setValueParamter(4, MILL_DTIME[i]);
  110. param3.setValueParamter(5, SPEC_ABBSYM[i]);
  111. param3.setValueParamter(6, "".equals(CHANGE_SPEC_STL_GRD[i])?SPEC_STL_GRD[i]:CHANGE_SPEC_STL_GRD[i]);
  112. param3.setValueParamter(7, THK_WTH[i]);
  113. param3.setValueParamter(8, ACT_WGT[i]);
  114. param3.setValueParamter(9, CHECKER_ID[i]);
  115. param3.setValueParamter(10, LICENSE_MARK[i]);
  116. param3.setValueParamter(11, LICENSE_NO[i]);
  117. param3.setValueParamter(12, COIL_MARK_RESVER[i]);
  118. param3.setValueParamter(13, REG_ID[0]);
  119. //做为打印页数使用
  120. param3.setValueParamter(14, COIL_PAGES[i]);
  121. getDao("mesdao").insert("UIJ020600_01.insert", param3);
  122. String Dtime = null;
  123. //在执行完后,清除一次电文表。避免以后主键冲突
  124. DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
  125. Dtime = formatter.format(new Date());
  126. logger.logDebug("saveCoilResult 里面,获取系统时间:"+Dtime);
  127. PosParameter paramT = new PosParameter();
  128. paramT.setWhereClauseParameter(0, String.valueOf((Integer.parseInt(Dtime) -3)));
  129. getDao("mesdao").delete("UIJ020600_01.delete", paramT);
  130. }else{
  131. //抛出异常
  132. logger.logInfo("UIH050500的saveCoilResult类中,实际钢卷号"+OLD_SAMPL_NO[i]+"没有排车不能进行标签打印");
  133. String vtemp="ERRORT";
  134. context.put("rs", vtemp);
  135. }
  136. }else if(null != DLIV_TP && DLIV_TP.equals("C")){
  137. PosParameter param1 = new PosParameter();
  138. param1.setWhereClauseParameter(0,OLD_SAMPL_NO[i]);
  139. PosRowSet rows = getDao("mesdao").find("UIJ020600_02.select", param1);
  140. if(rows.hasNext()){
  141. // 这里需要取出修改前的重量,记录备注
  142. PosRow row = rows.next();
  143. BigDecimal ACT_WGT_HIS = (BigDecimal) row.getAttribute("ACT_WGT");
  144. logger.logDebug("saveCoilResult 里面,获取修改前的重量:"+ACT_WGT_HIS);
  145. //进行更新操作
  146. PosParameter param2 = new PosParameter();
  147. //这里只允许更新系统没有的数据
  148. // param2.setWhereClauseParameter(0, COIL_NO[i]);
  149. // param2.setWhereClauseParameter(1, CHARE_NO[i]);
  150. // param2.setWhereClauseParameter(2, SPEC_STL_GRD[i]);
  151. // param2.setWhereClauseParameter(3, ORD_NO[i]);
  152. // param2.setWhereClauseParameter(4, ACT_WGT[i]);
  153. // param2.setWhereClauseParameter(5, THK_WTH[i]);
  154. // param2.setWhereClauseParameter(6, MILL_DTIME[i]);
  155. // param2.setWhereClauseParameter(7, SPEC_ABBSYM[i]);
  156. param2.setWhereClauseParameter(0, CHANGE_SPEC_STL_GRD[i]);
  157. param2.setWhereClauseParameter(1, CHECKER_ID[i]);
  158. param2.setWhereClauseParameter(2, LICENSE_NO[i]);
  159. param2.setWhereClauseParameter(3, LICENSE_MARK[i]);
  160. param2.setWhereClauseParameter(4, COIL_MARK_RESVER[i]);
  161. param2.setWhereClauseParameter(5, REG_ID[0]);
  162. param2.setWhereClauseParameter(6, SPEC_STL_GRD[i]);
  163. param2.setWhereClauseParameter(7, OLD_SAMPL_NO[i]);
  164. getDao("mesdao").update("UIJ020600_01.update", param2);
  165. //把标签需要的数据写入接口表,
  166. PosParameter param3 = new PosParameter();
  167. param3.setValueParamter(0, OLD_SAMPL_NO[i]);
  168. param3.setValueParamter(1, OLD_SAMPL_NO[i].substring(0, 10));
  169. param3.setValueParamter(2, CHARE_NO[i]);
  170. param3.setValueParamter(3, ORD_NO[i]);
  171. param3.setValueParamter(4, MILL_DTIME[i]);
  172. param3.setValueParamter(5, SPEC_ABBSYM[i]);
  173. param3.setValueParamter(6, "".equals(CHANGE_SPEC_STL_GRD[i])?SPEC_STL_GRD[i]:CHANGE_SPEC_STL_GRD[i]);
  174. param3.setValueParamter(7, THK_WTH[i]);
  175. //这里获取明细修改后的重量,汽运打标签的时候不能改重量
  176. param3.setValueParamter(8, ACT_WGT_HIS);
  177. param3.setValueParamter(9, CHECKER_ID[i]);
  178. param3.setValueParamter(10, LICENSE_MARK[i]);
  179. param3.setValueParamter(11, LICENSE_NO[i]);
  180. param3.setValueParamter(12, COIL_MARK_RESVER[i]);
  181. param3.setValueParamter(13, REG_ID[0]);
  182. param3.setValueParamter(14, COIL_PAGES[i]);
  183. getDao("mesdao").insert("UIJ020600_01.insert", param3);
  184. String Dtime = null;
  185. //在执行完后,清除一次电文表。避免以后主键冲突
  186. DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
  187. Dtime = formatter.format(new Date());
  188. logger.logDebug("saveCoilResult 里面,获取系统时间:"+Dtime);
  189. PosParameter paramT = new PosParameter();
  190. paramT.setWhereClauseParameter(0, String.valueOf((Integer.parseInt(Dtime) -3)));
  191. getDao("mesdao").delete("UIJ020600_01.delete", paramT);
  192. }else{
  193. //抛出异常
  194. logger.logInfo("UIH050500的saveCoilResult类中,实际钢卷号"+OLD_SAMPL_NO[i]+"没有打印出明细不能进行标签打印");
  195. String vtemp="ERRORC";
  196. context.put("rs", vtemp);
  197. }
  198. }else{
  199. // 抛出异常
  200. logger.logInfo("UIH050500的saveCoilResult类中,发运号"+DLIV_DIRNO[i]+"没有区分标志");
  201. String vtemp="DLIV_TP";
  202. context.put("rs", vtemp);
  203. }
  204. }
  205. }else{
  206. //没有选中的行,不进行打印操作
  207. }
  208. }
  209. }
  210. return PosBizControlConstants.SUCCESS;
  211. }
  212. }