2103f5700c989e9ae0bb1df33d6081e580166687.svn-base 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. package UIE.UIE01;
  2. import java.sql.SQLException;
  3. import java.util.ArrayList;
  4. import CoreFS.SA01.CoreIComponent;
  5. import CoreFS.SA06.CoreReturnObject;
  6. public class UIE042010 extends CoreIComponent {
  7. public CoreReturnObject query01(String ordNO,String ordSeq,String productNM,String ordProc
  8. ,String abnormalCD,String custNM
  9. ,String hotStlGrd,String coldStlGrd,String delToDateFrom
  10. ,String delToDateTo,String OrdType,String planDateFrom
  11. ,String planDateTo,String transfType,String ordWthFrom,String ordWthTo
  12. ,String ordThkFrom,String ordThkTo,String coldOrdWthFrom,String coldOrdWthTo
  13. ,String coldOrdThkFrom,String coldOrdThkTo,String saleArea) throws SQLException
  14. {
  15. CoreReturnObject cro=new CoreReturnObject();
  16. StringBuffer str = new StringBuffer();
  17. ArrayList<String> paramArray = new ArrayList<String>();
  18. str.append(" SELECT A.ORD_NO, -- 合同号 \n");
  19. str.append(" A.ORD_SEQ, -- 订单号 \n");
  20. str.append(" XB_PACKAGE.GF_COMNNAME_FIND('E01001', A.ORD_PROG_CD) ORD_PROG_CD, -- 订单进度代码 \n");
  21. str.append(" XB_PACKAGE.GF_CUSTOMER_FIND(A.CUST_CD) CUST_CD, -- 客户代码 \n");
  22. str.append(" XB_PACKAGE.GF_COMNNAME_FIND('E01003', A.ABNOR_ORD_CD) ABNOR_ORD_CD, -- 异常订单类型代码 \n");
  23. str.append(" XB_PACKAGE.GF_COMNNAME_FIND('E01005', A.PROD_HOLD_CD) PROD_HOLD_CD, -- 生产保留区分代码 \n");
  24. str.append(" XB_PACKAGE.GF_COMNNAME_FIND('A01001', A.RCVORD_CLF) RCVORD_CLF, -- 订单用途 \n");
  25. str.append(" XB_PACKAGE.GF_COMNNAME_FIND('B01004', A.PROD_LINE) PROD_LINE, -- 产线 \n");
  26. str.append(" XB_PACKAGE.GF_COMNNAME_FIND('A01004', A.PRODNM_CD) PRODNM_CD, -- 交货状态 \n");
  27. str.append(" XB_PACKAGE.GF_COMNNAME_FIND('B01118', B.TRTMTH_TP) TRTMTH_TP, -- 产品代码 \n");
  28. str.append(" A.STL_GRD, -- 厂内牌号 \n");
  29. str.append(" A.H_SPEC_STL_GRD, \n");
  30. str.append(" A.C_SPEC_STL_GRD, --冷轧牌号 \n");
  31. str.append(" A.SPEC_ABBSYM, -- 热轧标准号 \n");
  32. str.append(" A.C_SPEC_ABBSYM, -- 冷轧标准号 \n");
  33. str.append(" XB_PACKAGE.GF_COMNNAME_FIND('A01004', A.ORD_USEAGE_CD) ORD_USEAGE_CD, -- 订单用途 \n");
  34. str.append(" NVL(A.KEEPWARM_YN, 'N') KEEPWARM_YN, -- 是否需要进保温坑 \n");
  35. str.append(" NVL(A.EACHLOT_YN, 'N') EACHLOT_YN, -- 是否需要全部取样 \n");
  36. str.append(" A.ORD_THK, -- 订单厚度 \n");
  37. str.append(" A.ORD_WTH, -- 订单宽度 \n");
  38. str.append(" A.ORD_LEN, -- 订单长度 \n");
  39. str.append(" A.ORD_UNIT_WGT, -- 订单单重量 \n");
  40. str.append(" A.ORD_UNIT_WGT_MIN, -- 订单单重量下限 \n");
  41. str.append(" A.ORD_UNIT_WGT_MAX, -- 订单单重量上限 \n");
  42. str.append(" NVL(A.EMGMTR_NMG_CLF, 'N') EMGMTR_NMG_CLF, -- 紧急材代码 \n");
  43. str.append(" B.ORD_PLAN_DATA, --订单预排期 \n");
  44. str.append(" A.SMS_DUE_DATE, --炼钢完成期限 \n");
  45. str.append(" A.MILL_DUE_DATE, --热轧完成期限 \n");
  46. str.append(" A.PLTCM_DUE_DATE, --酸轧完成期限 \n");
  47. str.append(" A.CAL_DUE_DATE, --连退完成期限 \n");
  48. str.append(" A.DEL_TO_DATE, -- 交货日期(到达) \n");
  49. str.append(" A.ORD_WGT, -- 订单重量 \n");
  50. str.append(" A.WGT_ACVAL_MIN, -- 交付允许误差最小 \n");
  51. str.append(" A.WGT_ACVAL_MAX, -- 交付允许误差最大 \n");
  52. str.append(" PKG_QUALITY_COMM.FID070010(A.ORD_NO, A.ORD_SEQ) SUM_WGT, \n");
  53. str.append(" DECODE(A.ORD_PROG_CD, 'G', 0, A.ORD_REM_WGT) ORD_REM_WGT, -- 订单未生产量 \n");
  54. str.append(" (SELECT SUM(TOT_WGT) \n");
  55. str.append(" FROM TBE02_ORD_PRC_DET \n");
  56. str.append(" WHERE ORD_NO = A.ORD_NO \n");
  57. str.append(" AND ORD_SEQ = A.ORD_SEQ \n");
  58. str.append(" AND PROC_CD IN ('JB', 'JR', 'JC', 'JL')) LG, -- 炼钢 \n");
  59. str.append(" (SELECT SUM(TOT_WGT) \n");
  60. str.append(" FROM TBE02_ORD_PRC_DET \n");
  61. str.append(" WHERE ORD_NO = A.ORD_NO \n");
  62. str.append(" AND ORD_SEQ = A.ORD_SEQ \n");
  63. str.append(" AND PROC_CD = 'JJ') LZ, -- 连铸 \n");
  64. str.append(" (SELECT SUM(TOT_WGT) \n");
  65. str.append(" FROM TBE02_ORD_PRC_DET \n");
  66. str.append(" WHERE ORD_NO = A.ORD_NO \n");
  67. str.append(" AND ORD_SEQ = A.ORD_SEQ \n");
  68. str.append(" AND PROC_CD IN ('RA', 'RB', 'RC')) ZG, -- 轧钢 \n");
  69. str.append(" (SELECT SUM(TOT_WGT) \n");
  70. str.append(" FROM TBE02_ORD_PRC_DET \n");
  71. str.append(" WHERE ORD_NO = A.ORD_NO \n");
  72. str.append(" AND ORD_SEQ = A.ORD_SEQ \n");
  73. str.append(" AND PROC_CD = 'SC') JZ, -- 精整 \n");
  74. str.append(" (SELECT SUM(TOT_WGT) \n");
  75. str.append(" FROM TBE02_ORD_PRC_DET \n");
  76. str.append(" WHERE ORD_NO = A.ORD_NO \n");
  77. str.append(" AND ORD_SEQ = A.ORD_SEQ \n");
  78. str.append(" AND PROC_CD = 'LC') SZ, -- 酸轧 \n");
  79. str.append(" (SELECT SUM(TOT_WGT) \n");
  80. str.append(" FROM TBE02_ORD_PRC_DET \n");
  81. str.append(" WHERE ORD_NO = A.ORD_NO \n");
  82. str.append(" AND ORD_SEQ = A.ORD_SEQ \n");
  83. str.append(" AND PROC_CD = 'LD') LT, -- 连退 \n");
  84. str.append(" (SELECT SUM(TOT_WGT) \n");
  85. str.append(" FROM TBE02_ORD_PRC_DET \n");
  86. str.append(" WHERE ORD_NO = A.ORD_NO \n");
  87. str.append(" AND ORD_SEQ = A.ORD_SEQ \n");
  88. str.append(" AND PROC_CD = 'LE') CJ, -- 重卷 \n");
  89. str.append(" (SELECT SUM(TOT_WGT) \n");
  90. str.append(" FROM TBE02_ORD_PRC_DET \n");
  91. str.append(" WHERE ORD_NO = A.ORD_NO \n");
  92. str.append(" AND ORD_SEQ = A.ORD_SEQ \n");
  93. str.append(" AND PROC_CD = 'LF') BZ, -- 包装 \n");
  94. str.append(" (SELECT SUM(TOT_WGT) \n");
  95. str.append(" FROM TBE02_ORD_PRC_DET \n");
  96. str.append(" WHERE ORD_NO = A.ORD_NO \n");
  97. str.append(" AND ORD_SEQ = A.ORD_SEQ \n");
  98. str.append(" AND PROC_CD IN ('SB', 'SD', 'SE')) ZH, -- 综合判定 \n");
  99. str.append(" (SELECT SUM(INS_WGT + WRK_WGT) \n");
  100. str.append(" FROM TBE02_ORD_PRC_DET \n");
  101. str.append(" WHERE ORD_NO = A.ORD_NO \n");
  102. str.append(" AND ORD_SEQ = A.ORD_SEQ \n");
  103. str.append(" AND PROC_CD = 'SF') DD, -- 发货等待 \n");
  104. str.append(" A.SHIP_END_WGT, -- 发货完重量 \n");
  105. str.append(" DECODE(A.ORD_PROG_CD, 'G', 0, (A.ORD_WGT - A.SHIP_END_WGT)) SHIP_REM_WGT -- 剩余发货量 \n");
  106. str.append(" , \n");
  107. str.append(" XB_PACKAGE.GF_COMNNAME_FIND('A01012', B.DLIV_TP) DLIV_TP, \n");
  108. str.append(" DECODE(K.DSN_KIND, '1', 'Y', 'N') AS INGR_YN, \n");
  109. str.append(" decode(ROUND(A.SHIP_END_WGT / A.ORD_WGT * 100, 2) || '%', \n");
  110. str.append(" '0%', \n");
  111. str.append(" '', \n");
  112. str.append(" ROUND(A.SHIP_END_WGT / A.ORD_WGT * 100, 2) || '%') ORD_RATE --合同兑现率 \n");
  113. str.append(" , \n");
  114. str.append(" M.WGT_IN_DEL OVER_DATE_WGT, --超交货期量 \n");
  115. str.append(" CASE \n");
  116. str.append(" WHEN B.DLIV_TP = 'T' THEN \n");
  117. str.append(" DECODE(A.SHIP_END_WGT, 0, '', A.SHIP_END_WGT) \n");
  118. str.append(" END CALZADA_WGT, --火车交货 \n");
  119. str.append(" CASE \n");
  120. str.append(" WHEN B.DLIV_TP = 'C' THEN \n");
  121. str.append(" DECODE(A.SHIP_END_WGT, 0, '', A.SHIP_END_WGT) \n");
  122. str.append(" END TRAIN_WGT, --汽车交货 \n");
  123. str.append(" DECODE(A.ORD_PROG_CD, 'G', A.SHIP_END_DATE, A.PROD_END_DATE) PROD_END_DATE, \n");
  124. str.append(" B.MK_COIL, \n");
  125. str.append(" B.XSQY --销售区域 \n");
  126. str.append(" FROM TBE02_ORD_PRC A, \n");
  127. str.append(" TBA01_ORD_LINE B -- 订单进程表 \n");
  128. str.append(" , \n");
  129. str.append(" TBZ00_CUSTOMER C --客户公共表 \n");
  130. str.append(" , \n");
  131. str.append(" (SELECT DISTINCT ORD_NO, ORD_SEQ, DSN_KIND \n");
  132. str.append(" FROM TBB01_ORD_INGR \n");
  133. str.append(" WHERE DSN_KIND = '1') K, \n");
  134. str.append(" (SELECT A.ORD_NO, A.ORD_SEQ, SUM(A.ACT_WGT) WGT_IN_DEL \n");
  135. str.append(" FROM TBH02_COIL_COMM A, TBE02_ORD_PRC B \n");
  136. str.append(" WHERE A.ORD_NO = B.ORD_NO \n");
  137. str.append(" AND A.ORD_SEQ = B.ORD_SEQ \n");
  138. str.append(" AND A.ORD_FL = '1' \n");
  139. str.append(" AND A.TRNF_DTIME > B.DEL_TO_DATE \n");
  140. str.append(" GROUP BY (A.ORD_NO, A.ORD_SEQ)) M \n");
  141. str.append(" WHERE '1' = '1' \n");
  142. str.append(" AND A.ORD_NO = B.ORD_NO(+) \n");
  143. str.append(" AND A.ORD_SEQ = B.ORD_SEQ(+) \n");
  144. str.append(" AND A.ORD_NO = K.ORD_NO(+) \n");
  145. str.append(" AND A.ORD_SEQ = K.ORD_SEQ(+) \n");
  146. str.append(" AND A.ORD_NO = M.ORD_NO(+) \n");
  147. str.append(" AND A.ORD_SEQ = M.ORD_SEQ(+) \n");
  148. str.append(" AND A.CUST_CD = C.CUST_CD(+) \n");
  149. str.append(" AND A.ORD_NO LIKE '41%' \n");
  150. if(!ordNO.equals("")){
  151. str.append(" and A.ORD_NO LIKE :1||'%' -- 参数:合同号 \n");
  152. paramArray.add(ordNO);
  153. }
  154. if(!ordSeq.equals("")){
  155. str.append(" AND A.ORD_SEQ LIKE :2 ||'%' -- 参数:订单号 \n");
  156. paramArray.add(ordSeq);
  157. }
  158. if(!productNM.equals("")){
  159. str.append(" AND A.PROD_LINE LIKE :3 || '%' -- 参数:产品代码 \n");
  160. paramArray.add(productNM);
  161. }
  162. if(!ordProc.equals("")){
  163. str.append(" AND (:4 IS NULL OR A.ORD_PROG_CD IN \n");
  164. str.append(" (SELECT COLUMN_VALUE FROM TABLE(CAST(XB_PACKAGE.GF_TABSTR(:5) AS TABSTR_T)))) \n");
  165. paramArray.add(ordProc);
  166. paramArray.add(ordProc);
  167. }
  168. if(!abnormalCD.equals("")){
  169. str.append(" AND A.ABNOR_ORD_CD || '&' LIKE :6 || '%' -- 参数:异常订单类型代码 \n");
  170. paramArray.add(abnormalCD);
  171. }
  172. if(!custNM.equals("")){
  173. str.append(" AND C.CUST_NM LIKE '%' || :7 || '%' --参数:客户名称 \n");
  174. paramArray.add(custNM);
  175. }
  176. if(!hotStlGrd.equals("")){
  177. str.append(" AND A.H_SPEC_STL_GRD || '&' LIKE :8 || '%' -- 参数:钢号 \n");
  178. paramArray.add(hotStlGrd);
  179. }
  180. if(!coldStlGrd.equals("")){
  181. str.append(" AND A.C_SPEC_STL_GRD || '&' LIKE :9 || '%' -- 参数:钢号 \n");
  182. paramArray.add(coldStlGrd);
  183. }
  184. if(!(delToDateFrom.equals("")||delToDateTo.equals(""))){
  185. str.append(" AND A.DEL_TO_DATE BETWEEN :10 AND :11 -- 参数:交货日期(到达) \n");
  186. paramArray.add(delToDateFrom);
  187. paramArray.add(delToDateTo);
  188. }
  189. if(!OrdType.equals("")){
  190. str.append(" AND (:12 IS NULL OR A.RCVORD_CLF IN \n");
  191. str.append(" (SELECT COLUMN_VALUE \n");
  192. str.append(" FROM TABLE(CAST(XB_PACKAGE.GF_TABSTR(:13) AS TABSTR_T)))) \n");
  193. paramArray.add(OrdType);
  194. paramArray.add(OrdType);
  195. }
  196. if(!(planDateFrom.equals("")||planDateTo.equals(""))){
  197. str.append(" AND NVL(B.ORD_PLAN_DATA, A.DEL_TO_DATE) BETWEEN NVL(:14, '0000000') AND \n");
  198. str.append(" NVL(:15, '99999999') \n");
  199. paramArray.add(planDateFrom);
  200. paramArray.add(planDateTo);
  201. }
  202. if(!transfType.equals("")){
  203. str.append(" AND B.DLIV_TP || '&' LIKE :16 || '%' --运输方式,查询条件TL 091209 \n");
  204. paramArray.add(transfType);
  205. }
  206. if(!(ordWthFrom.equals("")||ordWthTo.equals(""))){
  207. str.append(" AND A.ORD_WTH BETWEEN NVL(:17, 0) AND NVL(:18, 99999999) \n");
  208. paramArray.add(ordWthFrom);
  209. paramArray.add(ordWthTo);
  210. }
  211. if(!(ordThkFrom.equals("")||ordThkTo.equals(""))){
  212. str.append(" AND A.ORD_THK BETWEEN NVL(:19, 0) AND NVL(:20, 99999999) \n");
  213. paramArray.add(ordThkFrom);
  214. paramArray.add(ordThkTo);
  215. }
  216. if(!(coldOrdWthFrom.equals("")||coldOrdWthTo.equals(""))){
  217. str.append(" AND A.C_ORD_WTH BETWEEN NVL(:21, 0) AND NVL(:22, 99999999) \n");
  218. paramArray.add(coldOrdWthFrom);
  219. paramArray.add(coldOrdWthTo);
  220. }
  221. if(!(coldOrdThkFrom.equals("")||coldOrdThkTo.equals(""))){
  222. str.append(" AND A.C_ORD_THK BETWEEN NVL(:23, 0) AND NVL(:24, 99999999) \n");
  223. paramArray.add(coldOrdThkFrom);
  224. paramArray.add(coldOrdThkTo);
  225. }
  226. if(!saleArea.equals("")){
  227. str.append(" AND B.XSQY || '&' LIKE :25 || '%' \n");
  228. paramArray.add(saleArea);
  229. }
  230. str.append(" ORDER BY A.ORD_NO, A.ORD_SEQ \n");
  231. String sql = str.toString();
  232. System.out.println(sql);
  233. for(String i:paramArray){
  234. System.out.println(i);
  235. }
  236. cro=this.getDao("KgDao").ExcuteQuery(sql,paramArray.toArray());
  237. System.out.println(cro);
  238. return cro;
  239. }
  240. }