4716fc107acf73ae978051bea065d13c2e2ae544.svn-base 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. package xin.glue.ui.H.H05;
  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("UIH050500_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("UIH050500_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("UIH050500_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("UIH050500_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("UIH050500_01.insert", param3);
  122. getDao("mesdao").insert("UIH050500_01bak.insert", param3);//日志
  123. String Dtime = null;
  124. //在执行完后,清除一次电文表。避免以后主键冲突
  125. DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
  126. Dtime = formatter.format(new Date());
  127. logger.logDebug("saveCoilResult 里面,获取系统时间:"+Dtime);
  128. PosParameter paramT = new PosParameter();
  129. paramT.setWhereClauseParameter(0, String.valueOf((Integer.parseInt(Dtime) -3)));
  130. getDao("mesdao").delete("UIH050500_01.delete", paramT);
  131. }else{
  132. //抛出异常
  133. logger.logInfo("UIH050500的saveCoilResult类中,实际钢卷号"+OLD_SAMPL_NO[i]+"没有排车不能进行标签打印");
  134. String vtemp="ERRORT";
  135. context.put("rs", vtemp);
  136. }
  137. }else if(null != DLIV_TP && DLIV_TP.equals("C")){
  138. PosParameter param1 = new PosParameter();
  139. param1.setWhereClauseParameter(0,OLD_SAMPL_NO[i]);
  140. PosRowSet rows = getDao("mesdao").find("UIH050500_02.select", param1);
  141. if(rows.hasNext()){
  142. // 这里需要取出修改前的重量,记录备注
  143. PosRow row = rows.next();
  144. BigDecimal ACT_WGT_HIS = (BigDecimal) row.getAttribute("ACT_WGT");
  145. logger.logDebug("saveCoilResult 里面,获取修改前的重量:"+ACT_WGT_HIS);
  146. //进行更新操作
  147. PosParameter param2 = new PosParameter();
  148. //这里只允许更新系统没有的数据
  149. // param2.setWhereClauseParameter(0, COIL_NO[i]);
  150. // param2.setWhereClauseParameter(1, CHARE_NO[i]);
  151. // param2.setWhereClauseParameter(2, SPEC_STL_GRD[i]);
  152. // param2.setWhereClauseParameter(3, ORD_NO[i]);
  153. // param2.setWhereClauseParameter(4, ACT_WGT[i]);
  154. // param2.setWhereClauseParameter(5, THK_WTH[i]);
  155. // param2.setWhereClauseParameter(6, MILL_DTIME[i]);
  156. // param2.setWhereClauseParameter(7, SPEC_ABBSYM[i]);
  157. param2.setWhereClauseParameter(0, CHANGE_SPEC_STL_GRD[i]);
  158. param2.setWhereClauseParameter(1, CHECKER_ID[i]);
  159. param2.setWhereClauseParameter(2, LICENSE_NO[i]);
  160. param2.setWhereClauseParameter(3, LICENSE_MARK[i]);
  161. param2.setWhereClauseParameter(4, COIL_MARK_RESVER[i]);
  162. param2.setWhereClauseParameter(5, REG_ID[0]);
  163. param2.setWhereClauseParameter(6, SPEC_STL_GRD[i]);
  164. param2.setWhereClauseParameter(7, OLD_SAMPL_NO[i]);
  165. getDao("mesdao").update("UIH050500_01.update", param2);
  166. //把标签需要的数据写入接口表,
  167. PosParameter param3 = new PosParameter();
  168. param3.setValueParamter(0, OLD_SAMPL_NO[i]);
  169. param3.setValueParamter(1, OLD_SAMPL_NO[i].substring(0, 10));
  170. param3.setValueParamter(2, "");//CHARE_NO[i]
  171. param3.setValueParamter(3, ORD_NO[i]);
  172. param3.setValueParamter(4, MILL_DTIME[i]);
  173. param3.setValueParamter(5, SPEC_ABBSYM[i]);
  174. param3.setValueParamter(6, "".equals(CHANGE_SPEC_STL_GRD[i])?SPEC_STL_GRD[i]:CHANGE_SPEC_STL_GRD[i]);
  175. param3.setValueParamter(7, THK_WTH[i]);
  176. //这里获取明细修改后的重量,汽运打标签的时候不能改重量
  177. param3.setValueParamter(8, ACT_WGT_HIS);
  178. param3.setValueParamter(9, CHECKER_ID[i]);
  179. param3.setValueParamter(10, LICENSE_MARK[i]);
  180. param3.setValueParamter(11, LICENSE_NO[i]);
  181. param3.setValueParamter(12, COIL_MARK_RESVER[i]);
  182. param3.setValueParamter(13, REG_ID[0]);
  183. param3.setValueParamter(14, COIL_PAGES[i]);
  184. getDao("mesdao").insert("UIH050500_01.insert", param3);
  185. getDao("mesdao").insert("UIH050500_01bak.insert", param3);//日志
  186. String Dtime = null;
  187. //在执行完后,清除一次电文表。避免以后主键冲突
  188. DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
  189. Dtime = formatter.format(new Date());
  190. logger.logDebug("saveCoilResult 里面,获取系统时间:"+Dtime);
  191. PosParameter paramT = new PosParameter();
  192. paramT.setWhereClauseParameter(0, String.valueOf((Integer.parseInt(Dtime) -3)));
  193. getDao("mesdao").delete("UIH050500_01.delete", paramT);
  194. }else{
  195. //抛出异常
  196. logger.logInfo("UIH050500的saveCoilResult类中,实际钢卷号"+OLD_SAMPL_NO[i]+"没有打印出明细不能进行标签打印");
  197. String vtemp="ERRORC";
  198. context.put("rs", vtemp);
  199. }
  200. }else{
  201. // 抛出异常
  202. logger.logInfo("UIH050500的saveCoilResult类中,发运号"+DLIV_DIRNO[i]+"没有区分标志");
  203. String vtemp="DLIV_TP";
  204. context.put("rs", vtemp);
  205. }
  206. }
  207. }else{
  208. //没有选中的行,不进行打印操作
  209. }
  210. }
  211. }
  212. return PosBizControlConstants.SUCCESS;
  213. }
  214. }