0d309bd1dedc0db79161cc47556e3a638e5df04a.svn-base 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. package xin.glue.nui.H.H02;
  2. import java.math.BigDecimal;
  3. import com.posdata.glue.biz.activity.PosActivity;
  4. import com.posdata.glue.biz.constants.PosBizControlConstants;
  5. import com.posdata.glue.context.PosContext;
  6. import com.posdata.glue.dao.vo.PosParameter;
  7. import com.posdata.glue.dao.vo.PosRow;
  8. import com.posdata.glue.dao.vo.PosRowSet;
  9. import com.posdata.glue.msg.PosMessage;
  10. public class XinSaveCoilComm extends PosActivity
  11. {
  12. public String runActivity(PosContext context)
  13. {
  14. // 获取从二级接收过来的数据
  15. String slabNo = (String)context.get("slabNo");
  16. String coilNo = (String)context.get("coilNo");
  17. //这里在XinInitRhfOut中已经把真实钢卷号转换成流水号,所以这里不需要再次转换
  18. /*
  19. * 从TBF02_SPEC_MILL中取得被 SELECT的轧钢参数table
  20. * 轧钢参数data编辑 ( COIL公用 <-轧钢参数data)
  21. * 牌号 .,标准号, 交货期, 合同号, 订单号, 订单用途代码, 产品代码 订单去向
  22. * 需要插入到TBH02_COIL_COMM表中
  23. * 板坯编制号用于查询TBF02_SPEC_MILL_D表时 作为查询条件
  24. */
  25. // 真实钢号,品质需要
  26. String specstlGrd = "";
  27. String stlGrd = ""; //牌号
  28. String specAbbsym = ""; //标准号
  29. String delvReqData = ""; //交货期
  30. String ordNo = ""; //合同号
  31. String ordSeq = ""; //订单号
  32. String ordUseageCd = ""; //订单用途代码
  33. String route = ""; //订单去向
  34. BigDecimal slabEdtSeq = null; //板坯编制号,TBF02_SPEC_MILL表主键
  35. //对应加热炉出炉情况增加的
  36. String SPEC_ORD_FL = null; //产品余材区分
  37. String SPM_PROC_YN = null; //平整分卷判定
  38. String SPEC_ORD_CUST_CD = null; //客户代码
  39. String SPEC_PATH_MILL_CD = null; //轧制产线工艺流程
  40. String SPEC_PACK_METHOD = null; //包装方法
  41. Number SPEC_ORD_INDIA = null; //钢卷定单内径
  42. Number SPEC_ORD_OUTDIA = null; //钢卷定单外径
  43. Number SPEC_ORD_THK = null; //定单厚度
  44. Number SPEC_ORD_WTH = null; //定单宽度
  45. Number SPEC_ORD_WGT = null; //定单重量
  46. String SPEC_DEST_CD = null; //目的地代码
  47. /*
  48. * 从TBG02_SLAB_COMM中取得 产品代码 需要插入到TBH02_COIL_COMM表中
  49. */
  50. //String prodnmCd = ""; //产品代码 这里没有取到具体的数据
  51. /*
  52. * 从TBF02_SPEC_MILL_D中取得被 SELECT的轧钢参数详细table
  53. * 轧钢参数详细data编辑 (COIL详细 <- 轧钢参数详细data)
  54. */
  55. String coilCutSeq = ""; //切割顺序
  56. BigDecimal ordThk = null; //订单厚度
  57. BigDecimal ordWth = null; //订单宽度
  58. BigDecimal ordLen = null; //订单长度
  59. BigDecimal ordWgt = null; //订单重量
  60. BigDecimal ordWgtMin = null; //订单单重下限
  61. BigDecimal ordWgtMax = null; //订单单重上限
  62. BigDecimal ordIndia = null; //订单内径
  63. BigDecimal ordOutdia = null; //订单外径
  64. String ordNo1 = ""; //合同号 用于详细表
  65. String ordSeq1 = ""; //订单号 用于详细表
  66. String ordFl = ""; //订单余才区分
  67. //String statusCd = ""; //状态区分 后面没有用到
  68. String ProdnmCd = ""; //产品代码 TL 后面用到了。
  69. String CUST_CD = "";
  70. PosParameter param0 = new PosParameter();
  71. //PosParameter param1 = new PosParameter();
  72. PosParameter param2 = new PosParameter();
  73. PosParameter param3 = new PosParameter();
  74. PosParameter param4 = new PosParameter();
  75. PosParameter param5 = new PosParameter();
  76. // 从TBH02_SPEC_MILL中取得数据 需要插入到TBH02_COIL_COMM表中
  77. param0.setWhereClauseParameter(0, coilNo);
  78. PosRowSet rowset0 = this.getDao("mesdao").find("NIH020020_02.select", param0);
  79. if(rowset0.hasNext())
  80. {
  81. PosRow row0 = rowset0.next();
  82. specstlGrd = (String)row0.getAttribute("SPEC_STL_GRD"); //标准牌号
  83. stlGrd = (String)row0.getAttribute("STL_GRD"); //牌号
  84. specAbbsym = (String)row0.getAttribute("SPEC_ABBSYM"); //标准号
  85. delvReqData = (String)row0.getAttribute("DELV_REQ_DATE"); //交货期
  86. ordNo = (String)row0.getAttribute("ORD_NO"); //合同号
  87. ordSeq = (String)row0.getAttribute("ORD_SEQ"); //订单号
  88. ordUseageCd = (String)row0.getAttribute("ORD_USEAGE_CD"); //订单用途代码
  89. route = (String)row0.getAttribute("ROUTE"); //订单去向
  90. slabEdtSeq = (BigDecimal)row0.getAttribute("SLAB_EDT_SEQ"); //板坯编制号
  91. ProdnmCd = (String)row0.getAttribute("PRODNM_CD"); //产品代码 冷卷、厚板、冷轧题、热板
  92. SPEC_ORD_FL = "1";
  93. SPM_PROC_YN = (String)row0.getAttribute("SPM_PROC_YN");
  94. SPEC_ORD_CUST_CD = (String)row0.getAttribute("ORD_CUST_CD");
  95. SPEC_PATH_MILL_CD = (String)row0.getAttribute("PATH_MILL_CD");
  96. SPEC_PACK_METHOD = (String)row0.getAttribute("PACK_METHOD");
  97. SPEC_ORD_INDIA = (Number)row0.getAttribute("ORD_INDIA");
  98. SPEC_ORD_OUTDIA = (Number)row0.getAttribute("ORD_OUTDIA");
  99. SPEC_ORD_THK = (Number)row0.getAttribute("ORD_THK");
  100. SPEC_ORD_WTH = (Number)row0.getAttribute("ORD_WTH");
  101. SPEC_ORD_WGT = (Number)row0.getAttribute("ORD_WGT");
  102. SPEC_DEST_CD = (String)row0.getAttribute("DEST_CD");
  103. CUST_CD = (String)row0.getAttribute("CUST_CD");
  104. }
  105. String SpmYn = null;
  106. if (SPM_PROC_YN != null && SPM_PROC_YN.equals("Y")) {
  107. SpmYn = "1";
  108. } else {
  109. SpmYn = "";
  110. }
  111. // 用钢卷号作为条件查询钢卷公共表,以决定插入或修改操作
  112. param3.setWhereClauseParameter(0, coilNo);
  113. param3.setWhereClauseParameter(1, slabNo);
  114. PosRowSet rowset3 = this.getDao("mesdao").find("NIH020020_05.select", param3);
  115. if(!rowset3.hasNext())
  116. {
  117. //
  118. // 用轧钢参数表 TBF02_SPEC_MILL 查询出来的数据项 INERT 钢卷公告表 TBG02_COIL_COMM
  119. param4.setValueParamter(0, coilNo);
  120. param4.setValueParamter(1, slabNo);
  121. param4.setValueParamter(2, stlGrd);
  122. param4.setValueParamter(3, "1");
  123. param4.setValueParamter(4, specAbbsym);
  124. param4.setValueParamter(5, delvReqData);
  125. param4.setValueParamter(6, ordNo);
  126. param4.setValueParamter(7, ordSeq);
  127. param4.setValueParamter(8, ordUseageCd);
  128. param4.setValueParamter(9, route);
  129. param4.setValueParamter(10, ProdnmCd);
  130. param4.setValueParamter(11, SPEC_ORD_FL);
  131. param4.setValueParamter(12, SpmYn);
  132. param4.setValueParamter(13, SPEC_ORD_CUST_CD);
  133. param4.setValueParamter(14, SPEC_PATH_MILL_CD);
  134. param4.setValueParamter(15, SPEC_PACK_METHOD);
  135. param4.setValueParamter(16, SPEC_ORD_INDIA);
  136. param4.setValueParamter(17, SPEC_ORD_OUTDIA);
  137. param4.setValueParamter(18, SPEC_ORD_THK);
  138. param4.setValueParamter(19, SPEC_ORD_WTH);
  139. param4.setValueParamter(20, SPEC_ORD_WGT);
  140. param4.setValueParamter(21, SPEC_DEST_CD);
  141. param4.setValueParamter(22, SPEC_ORD_INDIA);
  142. param4.setValueParamter(23, "XinSaveCoilComm");
  143. param4.setValueParamter(24, CUST_CD);
  144. param4.setValueParamter(25, ordNo);
  145. param4.setValueParamter(26, ordSeq);
  146. param4.setValueParamter(27, specstlGrd);
  147. int rowset4 = this.getDao("mesdao").insert("NIH020020_02.insert", param4);
  148. // 从TBF02_SPEC_MILL_D中取得数据 需要插入到TBH02_COIL_COMM_d表中
  149. param2.setWhereClauseParameter(0, slabEdtSeq);
  150. PosRowSet rowset2 = this.getDao("mesdao").find("NIH020020_04.select",param2);
  151. while(rowset2.hasNext())
  152. {
  153. PosRow row2 = rowset2.next();
  154. coilCutSeq = (String)row2.getAttribute("COIL_CUT_SEQ"); //切割顺序
  155. ordThk = (BigDecimal)row2.getAttribute("ORD_THK"); //订单厚度
  156. ordWth = (BigDecimal)row2.getAttribute("ORD_WTH"); //订单宽度
  157. ordLen = (BigDecimal)row2.getAttribute("ORD_LEN"); //订单长度
  158. ordWgt = (BigDecimal)row2.getAttribute("ORD_WGT"); //订单重量
  159. ordWgtMin = (BigDecimal)row2.getAttribute("ORD_WGT_MIN"); //订单单重下限
  160. ordWgtMax = (BigDecimal)row2.getAttribute("ORD_WGT_MAX"); //订单单重上限
  161. ordIndia = (BigDecimal)row2.getAttribute("ORD_INDIA"); //订单内径
  162. ordOutdia = (BigDecimal)row2.getAttribute("ORD_OUTDIA"); //订单外径
  163. ordNo1 = (String)row2.getAttribute("ORD_NO"); //合同号 TL
  164. ordSeq1 = (String)row2.getAttribute("ORD_SEQ"); //订单号 TL
  165. ordFl = (String)row2.getAttribute("ORD_FL"); //订单材余材区分
  166. //这里没有用到
  167. //statusCd = (String)row2.getAttribute("STATUS_CD"); //状态区分
  168. // 用轧钢详细参数表 TBF02_SPEC_MILL_D 查询出来的数据项 INERT 钢卷详细表 TBG02_COIL_COMM_D
  169. param5.setValueParamter(0, coilNo);
  170. param5.setValueParamter(1, coilCutSeq);
  171. param5.setValueParamter(2, ordThk);
  172. param5.setValueParamter(3, ordWth);
  173. param5.setValueParamter(4, ordLen);
  174. param5.setValueParamter(5, ordWgt);
  175. param5.setValueParamter(6, ordWgtMin);
  176. param5.setValueParamter(7, ordWgtMax);
  177. param5.setValueParamter(8, ordIndia);
  178. param5.setValueParamter(9, ordOutdia);
  179. param5.setValueParamter(10, ordNo1);
  180. param5.setValueParamter(11, ordSeq1);
  181. param5.setValueParamter(12, ordFl);
  182. int rowset5 = this.getDao("mesdao").insert("NIH020020_03.insert",param5);
  183. }
  184. } else {
  185. PosParameter param6 = new PosParameter();
  186. param6.setWhereClauseParameter(0, "1");
  187. param6.setWhereClauseParameter(1, coilNo);
  188. getDao("mesdao").update("UIH020020_COIL_COMM.update", param6);
  189. }
  190. return PosBizControlConstants.SUCCESS;
  191. }
  192. }