a31738a6fcd6af2a2ae05bcb5b7e8a433820e51b.svn-base 72 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014
  1. package UIJ.UIJ05;
  2. import java.sql.CallableStatement;
  3. import java.sql.Connection;
  4. import java.sql.PreparedStatement;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. import java.sql.Statement;
  8. import java.sql.Types;
  9. import java.util.ArrayList;
  10. import java.util.Calendar;
  11. import java.util.Date;
  12. import java.util.HashMap;
  13. import java.util.HashSet;
  14. import java.util.List;
  15. import java.util.Map;
  16. import java.util.Set;
  17. import java.text.SimpleDateFormat;
  18. import UIJ.UIJ03.UIJ030052;
  19. import UIJ.UIJ03.UIJ030060;
  20. import org.apache.commons.lang.StringUtils;
  21. import com.alibaba.fastjson.JSON;
  22. import com.alibaba.fastjson.JSONObject;
  23. import com.alibaba.fastjson.TypeReference;
  24. import xin.glue.cargocnHttpClient.WayBill;
  25. import UIB.COM.ProduceFactory;
  26. import UIB.COM.XmlSqlParsersFactory;
  27. import CoreFS.SA01.CoreIComponent;
  28. import CoreFS.SA06.CoreReturnObject;
  29. public class UIJ050010 extends CoreIComponent {
  30. public CoreReturnObject queryTransPlanLt(String shipProgCd,
  31. String fromDate, String toDate, String shipDirNo, String curProgCd,
  32. String shipCompNm, String dlivTp, String laneTp, String enteranceSeq)
  33. throws SQLException {
  34. CoreReturnObject cro = null;
  35. StringBuffer sqlBuffer = new StringBuffer();
  36. sqlBuffer.append("SELECT '' CHK,\n");
  37. sqlBuffer.append(" B.SHIP_DIRNO,\n");
  38. // sqlBuffer.append(" B.GET_ON_PCD,\n");
  39. sqlBuffer.append(" B.DEST_PCD,\n");
  40. sqlBuffer
  41. .append(" (SELECT sm_cfnm FROM TBZ00_COMMCD WHERE LG_CD = 'A01009' AND b.DEST_PCD = SM_CD) DEST_PCD_DESC,\n");
  42. sqlBuffer.append(" B.EXLV_LINE_CD,\n");
  43. sqlBuffer
  44. .append(" (SELECT x.SM_CFNM FROM TBZ00_COMMCD x WHERE LG_CD = 'A01015' AND b.EXLV_LINE_CD = SM_CD) EXLV_LINE_CD_DESC,\n");
  45. sqlBuffer
  46. .append(" (select CUST_NM FROM TBZ00_CUSTOMER WHERE CUST_CD = b.CUST_CD and REC_TP='01') CUST_NM, \n");
  47. sqlBuffer
  48. .append(" (select CUST_NM ORD_NM FROM TBZ00_CUSTOMER WHERE CUST_CD = b.ORD_CUST_CD and REC_TP='02') ORD_NM,\n");
  49. sqlBuffer.append(" B.GET_OFF_PCD,\n");
  50. sqlBuffer.append(" B.DLIV_TP,\n");
  51. sqlBuffer.append(" D.SM_CFNM AS DLIV_TP_NM,\n");
  52. sqlBuffer.append(" B.SHIP_COMP_CD,\n");
  53. sqlBuffer.append(" C.SHIP_COMP_NM SM_CFNM,\n");
  54. sqlBuffer.append(" B.TRAIN_DLIVNO,\n");
  55. sqlBuffer.append(" B.DLIV_DIRNO,\n");
  56. sqlBuffer.append(" NVL(B.CNT,0) AS CNT,\n");
  57. sqlBuffer.append(" NVL(B.ACT_WGT,0) AS ACT_WGT,\n");
  58. sqlBuffer.append(" B.ALLOC_SEQ,\n");
  59. sqlBuffer.append(" B.TRANS_CAR_NO,\n");
  60. sqlBuffer.append(" B.LANE_TP,\n");
  61. sqlBuffer.append(" B.ENTERANCE_SEQ,\n");
  62. sqlBuffer.append(" B.ORD_NO,\n");
  63. sqlBuffer.append(" B.ORD_SEQ,\n");
  64. sqlBuffer.append(" B.SPEC_STL_GRD,\n");
  65. sqlBuffer.append(" B.INSTR_COIL_THK||'*'||B.INSTR_COIL_WTH T_W \n");
  66. sqlBuffer.append(" FROM(SELECT *\n");
  67. sqlBuffer.append(" FROM TBJ01_SHIP_DIR\n");
  68. sqlBuffer.append(" WHERE 1 = 1\n");
  69. sqlBuffer
  70. .append(" AND SHIP_PROG_CD = ? -- SHIP_PROG_CD = '03' 发货指示状态\n");
  71. sqlBuffer
  72. .append(" AND SHIP_DIRNO BETWEEN NVL(?,'00000101')||'0000' AND NVL(?,'99991231')||'9999'\n");
  73. sqlBuffer.append(" AND SHIP_DIRNO LIKE ?||'%') A \n");
  74. sqlBuffer
  75. .append(" ,(SELECT X.*, Y.CNT CNT, Y.ACT_WGT ACT_WGT,Y.ORD_NO,Y.ORD_SEQ,Y.SPEC_STL_GRD,Y.INSTR_COIL_THK,Y.INSTR_COIL_WTH \n");
  76. sqlBuffer.append(" FROM TBJ01_DLIV_DIR X\n");
  77. sqlBuffer.append(" ,(SELECT DLIV_DIRNO\n");
  78. sqlBuffer.append(" , COUNT(*) AS CNT\n");
  79. sqlBuffer.append(" , NVL(SUM(ACT_WGT),0) AS ACT_WGT\n");
  80. sqlBuffer.append(" , MAX(ORD_NO) AS ORD_NO\n");
  81. sqlBuffer.append(" , MAX(ORD_SEQ) AS ORD_SEQ\n");
  82. sqlBuffer.append(" , MAX(SPEC_STL_GRD) AS SPEC_STL_GRD\n");
  83. sqlBuffer.append(" , MAX(INSTR_COIL_THK) AS INSTR_COIL_THK\n");
  84. sqlBuffer.append(" , MAX(INSTR_COIL_WTH) AS INSTR_COIL_WTH\n");
  85. sqlBuffer.append(" FROM C_TBC02_COIL_COMM\n");
  86. sqlBuffer.append(" WHERE 1 = 1\n");
  87. sqlBuffer
  88. .append(" AND CUR_PROG_CD like ?||'%' -- CUR_PROG_CD = 'SFB'(物料进度)\n");
  89. sqlBuffer
  90. .append(" AND SHIP_DIRNO BETWEEN NVL(?,'00000101')||'0000' AND NVL(?,'99991231')||'9999'\n");
  91. sqlBuffer.append(" GROUP BY DLIV_DIRNO) Y\n");
  92. sqlBuffer.append(" WHERE X.DLIV_DIRNO = Y.DLIV_DIRNO\n");
  93. sqlBuffer.append(" AND X.DLIV_TP LIKE ?||'%'\n");
  94. sqlBuffer.append(" AND NVL(X.LANE_TP,'*') LIKE ?||'%'\n");
  95. sqlBuffer.append(" AND NVL(X.ENTERANCE_SEQ,0) = NVL(?,0)) B\n");
  96. sqlBuffer.append(" ,(SELECT *\n");
  97. sqlBuffer.append(" FROM TBJ00_SHIP_COMP\n");
  98. sqlBuffer.append(" WHERE SHIP_COMP_CD LIKE ?||'%') C\n");
  99. sqlBuffer
  100. .append(" ,(SELECT SM_CD, SM_CFNM FROM TBZ00_COMMCD WHERE LG_CD = 'A01012' AND SM_CD LIKE ?||'%') D\n");
  101. sqlBuffer.append(" WHERE A.SHIP_DIRNO = B.SHIP_DIRNO(+)\n");
  102. sqlBuffer.append(" AND B.SHIP_COMP_CD = C.SHIP_COMP_CD(+)\n");
  103. sqlBuffer.append(" AND D.SM_CD = B.DLIV_TP \n");
  104. sqlBuffer.append(" AND B.ISDELETED = 0\n");
  105. sqlBuffer.append(" AND B.ISCANCEL = 0\n");
  106. sqlBuffer.append(" ORDER BY B.ALLOC_SEQ,B.DLIV_DIRNO\n");
  107. cro = this.getDao("KgDao").ExcuteQuery(
  108. sqlBuffer.toString(),
  109. new Object[] { shipProgCd, fromDate, toDate, shipDirNo,
  110. curProgCd, fromDate, toDate, dlivTp, laneTp,
  111. enteranceSeq, shipCompNm, dlivTp, });
  112. return cro;
  113. }
  114. //20131112火车排车
  115. public CoreReturnObject saveSHIPDIRTRAINLt(ArrayList<String[]> list)
  116. throws SQLException{
  117. CoreReturnObject cro = new CoreReturnObject();
  118. Connection conn = null;
  119. PreparedStatement pSta = null;
  120. try {
  121. conn = this.getDao("KgDao").getConnection();
  122. conn.setAutoCommit(false);
  123. StringBuffer sqlBuffer = null;
  124. for (int i = 0; i < list.size(); i++) {
  125. // 判断是否全部选择的标志位
  126. boolean flag = true;
  127. String[] param = list.get(i);
  128. // 查询钢卷公共表中的SHIP_PROG_CD状态
  129. sqlBuffer = new StringBuffer();
  130. sqlBuffer.append("select a.SHIP_PROG_CD from C_TBC02_COIL_COMM a where a.ship_dirno = '"
  131. + param[5] + "'\n");
  132. Statement sta = conn.createStatement();
  133. ResultSet rs = sta.executeQuery(sqlBuffer.toString());
  134. while (rs.next()) {
  135. String shipProgCd = rs.getString("SHIP_PROG_CD");
  136. if (!"03".equals(shipProgCd)) {
  137. flag = false;
  138. cro.setV_errCode(-1);
  139. cro.setV_errMsg("指示号"+param[4]+"已装车或明细已打印,请检查相应钢卷信息,再进行操作!!!");
  140. break;
  141. }
  142. }
  143. rs.close();
  144. sta.close();
  145. if (flag) {
  146. // 把车厢号和排车顺序号放入运输表,不改变运输表的状态
  147. sqlBuffer = new StringBuffer();
  148. sqlBuffer.append(" update tbj01_dliv_dir\n");
  149. sqlBuffer.append(" set \n");
  150. sqlBuffer.append(" ALLOC_SEQ = ?,\n");
  151. sqlBuffer.append(" TRANS_CAR_NO = ? ,\n");
  152. sqlBuffer.append(" LANE_TP = ?,\n");
  153. sqlBuffer.append(" ENTERANCE_SEQ = ?\n");
  154. sqlBuffer.append(" WHERE DLIV_DIRNO = ?\n");
  155. pSta = conn.prepareStatement(sqlBuffer.toString());
  156. pSta.setString(1, param[0]);
  157. pSta.setString(2, param[1]);
  158. pSta.setString(3, param[2]);
  159. pSta.setString(4, param[3]);
  160. pSta.setString(5, param[4]);
  161. pSta.executeUpdate();
  162. pSta.close();
  163. // 更新钢卷公共表中的车辆号,排车顺序号
  164. sqlBuffer = new StringBuffer();
  165. sqlBuffer.append(" update C_TBC02_COIL_COMM\n");
  166. sqlBuffer.append(" set \n");
  167. sqlBuffer.append(" TRAIN_STEP_NO = ?,\n");
  168. sqlBuffer.append(" TRANS_CAR_NO = ?,\n");
  169. sqlBuffer.append(" SHIP_PROG_CD = '04'\n");
  170. sqlBuffer.append(" where DLIV_DIRNO =?\n");
  171. pSta = conn.prepareStatement(sqlBuffer.toString());
  172. pSta.setString(1, param[0]);
  173. pSta.setString(2, param[1]);
  174. pSta.setString(3, param[4]);
  175. pSta.executeUpdate();
  176. pSta.close();
  177. // 更新发货表发货状态
  178. sqlBuffer = new StringBuffer();
  179. sqlBuffer.append(" UPDATE TBJ01_SHIP_DIR \n");
  180. sqlBuffer.append(" SET \n");
  181. sqlBuffer.append(" SHIP_PROG_CD = '04' \n");
  182. sqlBuffer.append(" WHERE SHIP_DIRNO=?\n");
  183. pSta = conn.prepareStatement(sqlBuffer.toString());
  184. pSta.setString(1, param[5]);
  185. pSta.executeUpdate();
  186. pSta.close();
  187. }
  188. }
  189. conn.commit();
  190. } catch (SQLException ex) {
  191. if(conn != null){
  192. conn.rollback();
  193. }
  194. cro.setV_errCode(-1);
  195. cro.setV_errMsg("装车失败,请检查钢卷信息后重新操作!");
  196. } finally{
  197. if(conn != null && !conn.isClosed()){
  198. conn.close();
  199. }
  200. }
  201. return cro;
  202. }
  203. public CoreReturnObject saveSHIPDIRCARLt(ArrayList<String[]> list)
  204. throws SQLException {
  205. CoreReturnObject cro = new CoreReturnObject();
  206. Connection conn = null;
  207. PreparedStatement pSta = null;
  208. try {
  209. conn = this.getDao("KgDao").getConnection();
  210. conn.setAutoCommit(false);
  211. StringBuffer sqlBuffer = null;
  212. for (int i = 0; i < list.size(); i++) {
  213. // 判断是否全部选择的标志位
  214. boolean flag = true;
  215. String ysr="",url="";
  216. String[] param = list.get(i);
  217. /* sqlBuffer = new StringBuffer();
  218. sqlBuffer
  219. .append("SELECT nvl(t1.ysr,'0') ysr from tba01_ord_line t, sel_test t1 " +
  220. "where t.DEST_PCD = t1.stationcode and t.ORD_NO='"+param[4]+"' and t.ORD_SEQ='"+param[5]+"' and rownum=1");
  221. ArrayList xslist = (ArrayList) this.getDao("KgDao")
  222. .ExcuteQueryReturnList(sqlBuffer.toString(),
  223. new String[] {});
  224. for (int j = 0; j < xslist.size(); j++) {
  225. Map map1 = (Map) xslist.get(j);
  226. ysr = map1.get("ysr").toString();
  227. }
  228. if("0".equals(ysr))
  229. {
  230. UIJ030052 uij030052 = new UIJ030052();
  231. url="http://172.16.0.49/xg56/webservice/webWaybill/queryIsChecked/"+param[2];
  232. String retr=uij030052.jsonPost(url, param[2]);
  233. //retr="["+retr+"]";
  234. JSONObject jsonObject1 =JSONObject.parseObject(retr);
  235. JSONObject jsonObj = new JSONObject(jsonObject1);
  236. String RET_CODE = jsonObj.getString("RET_CODE");
  237. if("0".equals(RET_CODE))
  238. {
  239. cro.setV_errCode(new Integer(-1));
  240. cro.setV_errMsg("司机身份未核对!");
  241. return cro;
  242. }
  243. }
  244. */
  245. // 查询钢卷公共表中的SHIP_PROG_CD状态
  246. sqlBuffer = new StringBuffer();
  247. sqlBuffer
  248. .append("select a.SHIP_PROG_CD from C_TBC02_COIL_COMM a where a.ship_dirno = '"
  249. + param[3] + "'\n");
  250. Statement sta = conn.createStatement();
  251. ResultSet rs = sta.executeQuery(sqlBuffer.toString());
  252. while (rs.next()) {
  253. String shipProgCd = rs.getString("SHIP_PROG_CD");
  254. if (!"03".equals(shipProgCd)) {
  255. flag = false;
  256. cro.setV_errCode(-1);
  257. cro.setV_errMsg("指示号"+param[2]+"已装车或明细已打印,请检查相应钢卷信息,再进行操作!!!");
  258. break;
  259. }
  260. }
  261. rs.close();
  262. sta.close();
  263. if (flag) {
  264. // 把车厢号和排车顺序号放入运输表,不改变运输表的状态
  265. sqlBuffer = new StringBuffer();
  266. sqlBuffer.append(" update tbj01_dliv_dir\n");
  267. sqlBuffer.append(" set \n");
  268. sqlBuffer.append(" ALLOC_SEQ = ?,\n");
  269. sqlBuffer.append(" TRANS_CAR_NO = ? \n");
  270. sqlBuffer.append(" where DLIV_DIRNO = ?\n");
  271. pSta = conn.prepareStatement(sqlBuffer.toString());
  272. pSta.setString(1, param[0]);
  273. pSta.setString(2, param[1]);
  274. pSta.setString(3, param[2]);
  275. pSta.executeUpdate();
  276. pSta.close();
  277. // 更新钢卷公共表中的车辆号,排车顺序号
  278. sqlBuffer = new StringBuffer();
  279. sqlBuffer.append(" update C_TBC02_COIL_COMM\n");
  280. sqlBuffer.append(" set \n");
  281. sqlBuffer.append(" TRAIN_STEP_NO = ?,\n");
  282. sqlBuffer.append(" TRANS_CAR_NO = ?,\n");
  283. sqlBuffer.append(" SHIP_PROG_CD = '04'\n");
  284. sqlBuffer.append(" where DLIV_DIRNO =?\n");
  285. pSta = conn.prepareStatement(sqlBuffer.toString());
  286. pSta.setString(1, param[0]);
  287. pSta.setString(2, param[1]);
  288. pSta.setString(3, param[2]);
  289. pSta.executeUpdate();
  290. pSta.close();
  291. // 更新发货表发货状态
  292. sqlBuffer = new StringBuffer();
  293. sqlBuffer.append(" update tbj01_ship_dir\n");
  294. sqlBuffer.append(" set \n");
  295. sqlBuffer.append(" ship_prog_cd = '04' \n");
  296. sqlBuffer.append(" where ship_dirno =?\n");
  297. pSta = conn.prepareStatement(sqlBuffer.toString());
  298. pSta.setString(1, param[3]);
  299. pSta.executeUpdate();
  300. pSta.close();
  301. }
  302. }
  303. conn.commit();
  304. } catch (SQLException ex) {
  305. if(conn != null){
  306. conn.rollback();
  307. }
  308. cro.setV_errCode(-1);
  309. cro.setV_errMsg("装车失败,请检查钢卷信息后重新操作!");
  310. } finally{
  311. if(conn != null && !conn.isClosed()){
  312. conn.close();
  313. }
  314. }
  315. return cro;
  316. }
  317. /**
  318. * 待装车取消
  319. *
  320. * @param list
  321. * @return
  322. * @throws SQLException
  323. */
  324. public CoreReturnObject returnSHIPDIRCARLt(ArrayList<String[]> list)
  325. throws SQLException {
  326. CoreReturnObject cro = new CoreReturnObject();
  327. String[] param = null;
  328. Connection conn = null;
  329. Statement sta = null;
  330. PreparedStatement pSta = null;
  331. try {
  332. conn = this.getDao("KgDao").getConnection();
  333. conn.setAutoCommit(false);
  334. for (int i = 0; i < list.size(); i++) {
  335. param = (String[]) list.get(i);
  336. boolean flag = true;
  337. StringBuffer sqlBuffer = new StringBuffer();
  338. sqlBuffer
  339. .append("select a.SHIP_PROG_CD from C_TBC02_COIL_COMM a where a.DLIV_DIRNO = '"
  340. + param[0] + "'\n");
  341. sta = conn.createStatement();
  342. ResultSet rs = sta.executeQuery(sqlBuffer.toString());
  343. while (rs.next()) {
  344. String shipProgCd = rs.getString("SHIP_PROG_CD");
  345. if (!"04".equals(shipProgCd)) {
  346. flag = false;
  347. break;
  348. }
  349. }
  350. rs.close();
  351. sta.close();
  352. if (flag) {
  353. // 取消放入运输表的车厢号和排车顺序号,不能改变运输表的状态
  354. sqlBuffer = new StringBuffer();
  355. sqlBuffer.append("update tbj01_dliv_dir\n");
  356. sqlBuffer.append(" set \n");
  357. sqlBuffer.append(" ALLOC_SEQ = '',\n");
  358. sqlBuffer.append(" TRANS_CAR_NO = '',\n");
  359. sqlBuffer.append(" LANE_TP = '',\n");
  360. sqlBuffer.append(" ENTERANCE_SEQ = '' \n");
  361. sqlBuffer.append(" where DLIV_DIRNO = ? \n");
  362. pSta = conn.prepareStatement(sqlBuffer.toString());
  363. pSta.setString(1, param[0]);
  364. pSta.executeUpdate();
  365. pSta.close();
  366. // 取消钢卷公共表中的车辆号,排车顺序号
  367. sqlBuffer = new StringBuffer();
  368. sqlBuffer.append(" update C_TBC02_COIL_COMM\n");
  369. sqlBuffer.append(" set \n");
  370. sqlBuffer.append(" TRAIN_STEP_NO = '',\n");
  371. sqlBuffer.append(" TRANS_CAR_NO = '',\n");
  372. sqlBuffer.append(" SHIP_PROG_CD = '03' \n");
  373. sqlBuffer.append(" where DLIV_DIRNO =?\n");
  374. pSta = conn.prepareStatement(sqlBuffer.toString());
  375. pSta.setString(1, param[0]);
  376. pSta.executeUpdate();
  377. pSta.close();
  378. // 更新发货表状态标志
  379. sqlBuffer = new StringBuffer();
  380. sqlBuffer.append(" update tbj01_ship_dir\n");
  381. sqlBuffer.append(" set \n");
  382. sqlBuffer.append(" ship_prog_cd = '03' \n");
  383. sqlBuffer.append(" where ship_dirno =?\n");
  384. pSta = conn.prepareStatement(sqlBuffer.toString());
  385. pSta.setString(1, param[1]);
  386. pSta.executeUpdate();
  387. pSta.close();
  388. }
  389. }
  390. conn.commit();
  391. } catch (SQLException ex) {
  392. if(conn != null){
  393. conn.rollback();
  394. }
  395. cro.setV_errCode(-1);
  396. cro.setV_errMsg("取消装车失败,请重新操作!");
  397. } finally{
  398. if(conn != null && !conn.isClosed()){
  399. conn.close();
  400. }
  401. }
  402. return cro;
  403. }
  404. public CoreReturnObject queryTransPlanlt(String shipProgCd,
  405. String fromDate, String toDate, String shipDirNo, String curProgCd,
  406. String shipCompNm, String dlivTp, String laneTp, String enteranceSeq)
  407. throws SQLException {
  408. CoreReturnObject cro = null;
  409. StringBuffer sqlBuffer = new StringBuffer();
  410. sqlBuffer.append("SELECT '' CHK,\n");
  411. sqlBuffer.append(" B.SHIP_DIRNO,\n");
  412. sqlBuffer.append(" B.GET_ON_PCD,\n");
  413. sqlBuffer.append(" B.DEST_PCD,\n");
  414. sqlBuffer
  415. .append(" (SELECT sm_cfnm FROM TBZ00_COMMCD WHERE LG_CD = 'A01009' AND b.DEST_PCD = SM_CD) DEST_PCD_DESC,\n");
  416. sqlBuffer.append(" B.EXLV_LINE_CD,\n");
  417. sqlBuffer
  418. .append(" (SELECT x.SM_CFNM FROM TBZ00_COMMCD x WHERE LG_CD = 'A01015' AND b.EXLV_LINE_CD = SM_CD) EXLV_LINE_CD_DESC,\n");
  419. sqlBuffer
  420. .append(" (select CUST_NM FROM TBZ00_CUSTOMER WHERE CUST_CD = b.CUST_CD and REC_TP='01') CUST_NM, \n");
  421. sqlBuffer
  422. .append(" (select CUST_NM ORD_NM FROM TBZ00_CUSTOMER WHERE CUST_CD = b.ORD_CUST_CD and REC_TP='02') ORD_NM,\n");
  423. sqlBuffer.append(" B.GET_OFF_PCD,\n");
  424. sqlBuffer.append(" B.DLIV_TP,\n");
  425. sqlBuffer.append(" D.SM_CFNM AS DLIV_TP_NM,\n");
  426. sqlBuffer.append(" B.SHIP_COMP_CD,\n");
  427. sqlBuffer.append(" C.SHIP_COMP_NM SM_CFNM,\n");
  428. sqlBuffer.append(" B.TRAIN_DLIVNO,\n");
  429. sqlBuffer.append(" B.DLIV_DIRNO,\n");
  430. sqlBuffer.append(" NVL(B.CNT,0) AS CNT,\n");
  431. sqlBuffer.append(" NVL(B.ACT_WGT,0) AS ACT_WGT,\n");
  432. sqlBuffer.append(" B.ALLOC_SEQ,\n");
  433. sqlBuffer.append(" B.TRANS_CAR_NO,\n");
  434. sqlBuffer.append(" B.LANE_TP,\n");
  435. sqlBuffer.append(" B.ENTERANCE_SEQ,\n");
  436. sqlBuffer.append(" B.ORD_NO,\n");
  437. sqlBuffer.append(" B.ORD_SEQ,\n");
  438. sqlBuffer.append(" B.SPEC_STL_GRD,\n");
  439. sqlBuffer.append(" B.INSTR_COIL_THK||'*'||B.INSTR_COIL_WTH T_W \n");
  440. sqlBuffer.append(" FROM(SELECT *\n");
  441. sqlBuffer.append(" FROM TBJ01_SHIP_DIR\n");
  442. sqlBuffer.append(" WHERE 1 = 1\n");
  443. sqlBuffer
  444. .append(" AND SHIP_PROG_CD = ? -- SHIP_PROG_CD = '03' 发货指示状态\n");
  445. sqlBuffer
  446. .append(" AND SHIP_DIRNO BETWEEN NVL(?,'00000101')||'0000' AND NVL(?,'99991231')||'9999'\n");
  447. sqlBuffer.append(" AND SHIP_DIRNO LIKE ?||'%') A \n");
  448. sqlBuffer
  449. .append(" ,(SELECT X.*, Y.CNT CNT, Y.ACT_WGT ACT_WGT,Y.ORD_NO,Y.ORD_SEQ,Y.SPEC_STL_GRD,Y.INSTR_COIL_THK,Y.INSTR_COIL_WTH \n");
  450. sqlBuffer.append(" FROM TBJ01_DLIV_DIR X\n");
  451. sqlBuffer.append(" ,(SELECT DLIV_DIRNO\n");
  452. sqlBuffer.append(" , COUNT(*) AS CNT\n");
  453. sqlBuffer.append(" , NVL(SUM(ACT_WGT),0) AS ACT_WGT\n");
  454. sqlBuffer.append(" , MAX(ORD_NO) AS ORD_NO\n");
  455. sqlBuffer.append(" , MAX(ORD_SEQ) AS ORD_SEQ\n");
  456. sqlBuffer.append(" , MAX(SPEC_STL_GRD) AS SPEC_STL_GRD\n");
  457. sqlBuffer.append(" , MAX(INSTR_COIL_THK) AS INSTR_COIL_THK\n");
  458. sqlBuffer.append(" , MAX(INSTR_COIL_WTH) AS INSTR_COIL_WTH\n");
  459. sqlBuffer.append(" FROM C_TBC02_COIL_COMM\n");
  460. sqlBuffer.append(" WHERE 1 = 1\n");
  461. sqlBuffer
  462. .append(" AND CUR_PROG_CD like ?||'%' -- CUR_PROG_CD = 'SFB'(物料进度)\n");
  463. sqlBuffer
  464. .append(" AND SHIP_DIRNO BETWEEN NVL(?,'00000101')||'0000' AND NVL(?,'99991231')||'9999'\n");
  465. sqlBuffer.append(" GROUP BY DLIV_DIRNO) Y\n");
  466. sqlBuffer.append(" WHERE X.DLIV_DIRNO = Y.DLIV_DIRNO\n");
  467. sqlBuffer.append(" AND X.DLIV_TP LIKE ?||'%'\n");
  468. sqlBuffer.append(" AND NVL(X.LANE_TP,'*') LIKE ?||'%'\n");
  469. sqlBuffer.append(" AND NVL(X.ENTERANCE_SEQ,0) = NVL(?,0)) B\n");
  470. sqlBuffer.append(" ,(SELECT *\n");
  471. sqlBuffer.append(" FROM TBJ00_SHIP_COMP\n");
  472. sqlBuffer.append(" WHERE SHIP_COMP_CD LIKE ?||'%') C\n");
  473. sqlBuffer
  474. .append(" ,(SELECT SM_CD, SM_CFNM FROM TBZ00_COMMCD WHERE LG_CD = 'A01012' AND SM_CD LIKE ?||'%') D\n");
  475. sqlBuffer.append(" WHERE A.SHIP_DIRNO = B.SHIP_DIRNO(+)\n");
  476. sqlBuffer.append(" AND B.SHIP_COMP_CD = C.SHIP_COMP_CD(+)\n");
  477. sqlBuffer.append(" AND D.SM_CD = B.DLIV_TP \n");
  478. sqlBuffer.append(" AND B.ISDELETED = 0\n");
  479. sqlBuffer.append(" AND B.ISCANCEL = 0\n");
  480. sqlBuffer.append(" ORDER BY B.ALLOC_SEQ,B.DLIV_DIRNO\n");
  481. cro = this.getDao("KgDao").ExcuteQuery(
  482. sqlBuffer.toString(),
  483. new Object[] { shipProgCd, fromDate, toDate, shipDirNo,
  484. curProgCd, fromDate, toDate, dlivTp, laneTp,
  485. enteranceSeq, shipCompNm, dlivTp, });
  486. return cro;
  487. }
  488. /**
  489. * 查询下达排车计划时排车计划对应的钢卷信息
  490. *
  491. * @param dlivNo
  492. * @return
  493. */
  494. public CoreReturnObject queryPlanCoilLt(String dlivNo) throws SQLException {
  495. CoreReturnObject cro = null;
  496. StringBuffer sqlBuffer = new StringBuffer();
  497. sqlBuffer
  498. .append("SELECT substr(A.DLIV_NO,5,8) DLIV_NO,A.COIL_NO,A.COIL_STEEL,A.COIL_HEIGHT||'*'||A.COIL_WIDTH T_W FROM TBJ01_DLIVNO_COIL A \n");
  499. sqlBuffer.append(" WHERE A.DLIV_NO = ? \n");
  500. sqlBuffer.append(" order by a.COIL_NO\n");
  501. cro = this.getDao("KgDao").ExcuteQuery(sqlBuffer.toString(),
  502. new Object[] { dlivNo });
  503. return cro;
  504. }
  505. /**
  506. * 查询待装车钢卷
  507. *
  508. * @param dlivTp
  509. * @return
  510. */
  511. public CoreReturnObject queryShipDir(String dlivTp) throws SQLException {
  512. CoreReturnObject cro = null;
  513. StringBuffer sqlBuffer = new StringBuffer();
  514. sqlBuffer.append("SELECT '' CHK,\n");
  515. sqlBuffer.append(" A.OLD_SAMPL_NO,\n");
  516. sqlBuffer.append(" A.COIL_NO,\n");
  517. sqlBuffer
  518. .append(" DECODE(A.TOT_DEC_GRD,'1','合格','2','次品',' ') TOT_DEC_GRD,\n");
  519. sqlBuffer.append(" a.instr_coil_wth COIL_WTH,\n");
  520. sqlBuffer.append(" a.instr_coil_thk COIL_THK,\n");
  521. sqlBuffer.append(" a.ORD_NO,\n");
  522. sqlBuffer.append(" a.ORD_SEQ,\n");
  523. sqlBuffer.append(" a.spec_stl_grd,\n");
  524. sqlBuffer.append(" A.COIL_OUTDIA,\n");
  525. sqlBuffer.append(" NVL(A.ACT_WGT,0) ACT_WGT,\n");
  526. sqlBuffer.append(" NVL(A.CAL_WGT,0) CAL_WGT,\n");
  527. sqlBuffer.append(" A.CUR_LOAD_LOC,\n");
  528. sqlBuffer.append(" B.DEST_PCD,\n");
  529. sqlBuffer.append(" B.ALLOC_SEQ,\n");
  530. sqlBuffer.append(" B.TRANS_CAR_NO,\n");
  531. sqlBuffer.append(" B.DLIV_DIRNO,\n");
  532. sqlBuffer.append(" B.SHIP_DIRNO,\n");
  533. sqlBuffer
  534. .append(" (SELECT sm_cfnm FROM TBZ00_COMMCD WHERE LG_CD = 'A01009' AND b.DEST_PCD = SM_CD) DEST_PCD_DESC,\n");
  535. sqlBuffer
  536. .append(" (select CUST_NM FROM TBZ00_CUSTOMER WHERE CUST_CD = B.CUST_CD and REC_TP='01') CUST_NM, \n");
  537. sqlBuffer
  538. .append(" (select CUST_NM ORD_NM FROM TBZ00_CUSTOMER WHERE CUST_CD = B.ORD_CUST_CD and REC_TP='02') ORD_NM,\n");
  539. sqlBuffer.append(" A.HCOLOUR_REM \n");
  540. sqlBuffer
  541. .append(" FROM C_TBC02_COIL_COMM A,TBJ01_DLIV_DIR B,TBJ01_SHIP_DIR C\n");
  542. sqlBuffer.append(" WHERE A.DLIV_DIRNO = B.DLIV_DIRNO\n");
  543. sqlBuffer.append(" AND B.SHIP_DIRNO = C.SHIP_DIRNO\n");
  544. sqlBuffer.append(" AND A.SHIP_PROG_CD = '04'\n");
  545. sqlBuffer.append(" AND B.DLIV_TP = ? \n");
  546. sqlBuffer.append(" ORDER BY B.ALLOC_SEQ\n");
  547. cro = this.getDao("KgDao").ExcuteQuery(sqlBuffer.toString(),
  548. new Object[] { dlivTp });
  549. return cro;
  550. }
  551. public CoreReturnObject queryShippingResultLt(String dlivTp,
  552. String curProgCd, String transCarNo, String dlivDirNo,
  553. String shipProgCd, String tranfDTime) throws SQLException {
  554. CoreReturnObject cro = null;
  555. StringBuffer sqlBuffer = new StringBuffer();
  556. sqlBuffer.append("SELECT 'N' AS CHK\n");
  557. sqlBuffer.append(" , 'FALSE' CY\n");
  558. sqlBuffer.append(" , A.SHIP_PROG_CD\n");
  559. sqlBuffer.append(" , Z.SM_CFNM AS SHIP_PROG_NM\n");
  560. sqlBuffer.append(" , A.SHIP_DIRNO\n");
  561. sqlBuffer
  562. .append(" ,(select CUST_NM FROM TBZ00_CUSTOMER WHERE CUST_CD = (SELECT CUST_CD FROM TBA01_ORD_COMM WHERE ORD_NO = A.ORD_NO) and REC_TP='01') CUST_NM \n");
  563. sqlBuffer
  564. .append(" ,(select CUST_NM ORD_NM FROM TBZ00_CUSTOMER WHERE CUST_CD = C.ORD_CUST_CD and REC_TP='02') ORD_NM\n");
  565. sqlBuffer
  566. .append(" ,(select SM_CFNM FROM TBZ00_COMMCD WHERE SM_CD = A.ORD_USE_CD and LG_CD = 'A01007') SM_CFNM\n");
  567. sqlBuffer.append(" , A.ORD_USE_CD\n");
  568. sqlBuffer.append(" , A.SPEC_ABBSYM\n");
  569. //sqlBuffer.append(" , A.SPEC_STL_GRD\n");
  570. sqlBuffer.append(" , nvl((SELECT T.DDC_STL_GRD FROM tba01_ord_line T WHERE T.ORD_NO = A.ORD_NO AND T.ORD_SEQ = A.ORD_SEQ and rownum = 1), A.SPEC_STL_GRD) SPEC_STL_GRD \n");
  571. sqlBuffer.append(" , A.DLIV_DIRNO\n");
  572. sqlBuffer.append(" , C.DLIV_TP\n");
  573. sqlBuffer.append(" , C.DLIV_TP_DESC\n");
  574. sqlBuffer.append(" , C.SHIP_COMP_CD\n");
  575. sqlBuffer.append(" , NVL(C.SHIP_COMP_NM,C.SHIP_COMP_CD) SHIP_COMP_NM\n");
  576. sqlBuffer.append(" , C.TRANS_CAR_NO\n");
  577. sqlBuffer.append(" , C.GET_ON_PCD\n");
  578. sqlBuffer.append(" , C.DEST_PCD\n");
  579. sqlBuffer.append(" , C.DEST_PCD_DESC\n");
  580. sqlBuffer.append(" , C.EXLV_LINE_CD\n");
  581. sqlBuffer.append(" , C.EXLV_LINE_CD_DESC\n");
  582. sqlBuffer.append(" , C.GET_OFF_PCD\n");
  583. sqlBuffer.append(" , C.BY_SEA_YN\n");
  584. sqlBuffer.append(" , C.ARRIVAL_CD \n");
  585. sqlBuffer.append(" , C.ARRIVAL_CD_DESC\n");
  586. sqlBuffer.append(" , A.OLD_SAMPL_NO OLD_SAMPL_NO\n");
  587. sqlBuffer.append(" , A.COIL_NO \n");
  588. sqlBuffer.append(" , A.TOT_DEC_GRD \n");
  589. sqlBuffer
  590. .append(" , DECODE(A.TOT_DEC_GRD,'1','合格','2','不合格',null) as TOT_DEC_GRD_DESC\n");
  591. sqlBuffer.append(" , NVL(A.ACT_WGT,0) COIL_WGT\n");
  592. sqlBuffer.append(" , NVL(A.CAL_WGT,0) CAL_WGT\n");
  593. sqlBuffer.append(" , A.COIL_OUTDIA\n");
  594. sqlBuffer.append(" , A.SHIP_INVNO\n");
  595. sqlBuffer.append(" , A.CRET_NO\n");
  596. sqlBuffer
  597. .append(" , NVL(TO_CHAR(TO_DATE(A.TRNF_DTIME,'YYYYMMDDHH24MISS'),'YYYY-MM-DD HH24:MI:SS'),'-') AS TRNF_DTIME\n");
  598. sqlBuffer.append(" ,'3' AS COIL_STAT\n");
  599. sqlBuffer.append(" ,'DFF' AS CUR_PROG_CD\n");
  600. sqlBuffer.append(" ,'UIJ050010' AS CUR_PROG_CD_PGM\n");
  601. sqlBuffer.append(" , A.CUR_PROG_CD AS BEF_PROG_CD\n");
  602. sqlBuffer.append(" , A.CUR_PROG_CD_DTIME AS BEF_PROG_CD_DTIME\n");
  603. sqlBuffer.append(" , A.CUR_PROG_CD_PGM AS BEF_PROG_CD_PGM\n");
  604. sqlBuffer.append(" , A.ORD_NO, A.ORD_SEQ\n");
  605. sqlBuffer.append(" ,A.MATLQLTY_DEC_GRD \n");
  606. sqlBuffer
  607. .append(" , DECODE(A.MATLQLTY_DEC_GRD,'1','合格','2','不合格',null) as MATLQLTY_DEC_GRD_DESC\n");
  608. sqlBuffer.append(" , A.COIL_THK||'*'||COIL_WTH C_W\n");
  609. sqlBuffer.append(" , A.INSTR_COIL_THK||'*'||A.INSTR_COIL_WTH T_W\n");
  610. sqlBuffer.append(" , TO_CHAR(SYSDATE,'YYYY-MM-DD') SYS_TIME\n");
  611. sqlBuffer.append(" , A.CZD_WGT\n");
  612. sqlBuffer
  613. .append(" , DECODE(A.TRNF_SHIFT,'1','早','2','中','3','晚') TRNF_SHIFT\n");
  614. sqlBuffer
  615. .append(" , DECODE(A.TRNF_GROUP,'A','甲','B','乙','C','丙','D','丁') TRNF_GROUP\n");
  616. sqlBuffer.append(" , A.TRNF_USE_TIME\n");
  617. sqlBuffer.append(" ,A.HCOLOUR_REM\n");
  618. sqlBuffer.append(" ,A.SLAB_NO --板加添加,以下相同\n");
  619. sqlBuffer
  620. .append(" ,(SELECT T.DEL_TO_DATE FROM TBE02_ORD_PRC T WHERE T.ORD_NO = A.ORD_NO AND T.ORD_SEQ = A.ORD_SEQ) DEVLMT_DTIME\n");
  621. sqlBuffer.append(" ,A.INSTR_COIL_THK\n");
  622. sqlBuffer.append(" ,A.INSTR_COIL_WTH\n");
  623. sqlBuffer.append(" ,A.INSTR_COIL_LEN\n");
  624. sqlBuffer.append(" ,A.INSTR_COIL_OUTDIA\n");
  625. sqlBuffer.append(" ,A.INSTR_COIL_INDIA\n");
  626. sqlBuffer.append(" ,A.INSTR_COIL_WGT\n");
  627. sqlBuffer.append(" ,C.SM_CD\n");
  628. sqlBuffer
  629. .append(" ,(select CUST_CD ORD_CD FROM TBZ00_CUSTOMER WHERE CUST_CD = C.ORD_CUST_CD and REC_TP='02') ORD_CD \n");
  630. sqlBuffer.append(" ,A.COIL_LEN\n");
  631. sqlBuffer.append(" ,A.COIL_INDIA\n");
  632. sqlBuffer.append(" ,A.COIL_THK\n");
  633. sqlBuffer.append(" ,A.COIL_WTH\n");
  634. sqlBuffer.append(" ,A.PRODNM_CD\n");
  635. sqlBuffer.append(" ,A.PATH_MILL_CD\n");
  636. sqlBuffer.append(" ,A.INGR_DEC_DTIME --成份判定\n");
  637. sqlBuffer.append(" ,A.MATLQLTY_DEC_DTIME --材质判定\n");
  638. sqlBuffer.append(" ,A.EXTSHAPE_DEC_DTIME --外观判定\n");
  639. sqlBuffer.append(" ,A.TOT_DEC_DTIME --综合判定时间\n");
  640. sqlBuffer.append(" ,A.INGR_DEC_GRD\n");
  641. sqlBuffer.append(" ,A.SIZE_DEC_RST\n");
  642. sqlBuffer.append(" ,A.EXTSHAPE_DEC_GRD\n");
  643. sqlBuffer.append(" ,A.WGT_DEC_RST\n");
  644. sqlBuffer.append(" ,A.EXTSHAPE_QUALITY\n");
  645. //新加字段 包装等级
  646. sqlBuffer.append(",(SELECT C.SM_CFNM FROM TBZ00_COMMCD C WHERE C.LG_CD = 'A01010' AND SM_CD = A.PACKAGE_LEVEL AND ROWNUM=1) PACKING_GRADE \n");
  647. sqlBuffer.append(" ,A.CRK_CD3\n");
  648. sqlBuffer.append(" ,A.CRK_CD1\n");
  649. sqlBuffer.append(" ,A.CRK_CD2\n");
  650. sqlBuffer.append(" ,A.CRK_CD3\n");
  651. sqlBuffer.append(" ,A.CRK_CD4\n");
  652. sqlBuffer.append(" ,A.CRK_CD5\n");
  653. // sqlBuffer.append("
  654. // ,DECODE(NVL(A.PACKAGE_LEVEL,1),'2','22','3','110','4','120','0')
  655. // PKG_WGT\n");
  656. sqlBuffer.append(" FROM C_TBC02_COIL_COMM A\n");
  657. sqlBuffer.append(" , TBJ01_SHIP_DIR B\n");
  658. sqlBuffer
  659. .append(" ,(SELECT X.*, Y.SHIP_COMP_NM, Z.SM_CFNM AS DLIV_TP_DESC\n");
  660. sqlBuffer.append(" , Z1.SM_CFNM AS DEST_PCD_DESC\n");
  661. sqlBuffer.append(" , Z2.SM_CFNM AS EXLV_LINE_CD_DESC\n");
  662. sqlBuffer.append(" , Z3.SM_CFNM AS ARRIVAL_CD_DESC\n");
  663. sqlBuffer.append(" , Z1.SM_CD --板加 目的地代码\n");
  664. sqlBuffer.append(" FROM TBJ01_DLIV_DIR X\n");
  665. sqlBuffer.append(" , TBJ00_SHIP_COMP Y\n");
  666. sqlBuffer
  667. .append(" ,(SELECT * FROM TBZ00_COMMCD WHERE LG_CD = 'A01012') Z\n");
  668. sqlBuffer
  669. .append(" ,(SELECT * FROM TBZ00_COMMCD WHERE LG_CD = 'A01009') Z1\n");
  670. sqlBuffer
  671. .append(" ,(SELECT * FROM TBZ00_COMMCD WHERE LG_CD = 'A01015') Z2 \n");
  672. sqlBuffer
  673. .append(" ,(SELECT * FROM TBZ00_COMMCD WHERE LG_CD = 'A01009') Z3\n");
  674. sqlBuffer.append(" WHERE 1 = 1\n");
  675. sqlBuffer.append(" AND X.SHIP_COMP_CD = Y.SHIP_COMP_CD(+)\n");
  676. sqlBuffer.append(" AND X.DLIV_TP = Z.SM_CD(+)\n");
  677. sqlBuffer.append(" AND X.DEST_PCD = Z1.SM_CD(+)\n");
  678. sqlBuffer.append(" AND X.EXLV_LINE_CD = Z2.SM_CD(+)\n");
  679. sqlBuffer.append(" AND X.ARRIVAL_CD = Z3.SM_CD(+)\n");
  680. sqlBuffer.append(" AND X.DLIV_TP LIKE ?||'%') C\n");
  681. sqlBuffer
  682. .append(" ,(SELECT * FROM TBZ00_COMMCD WHERE LG_CD = 'J01005' AND SM_CD IN ('05','06','07','08','09')) Z\n");
  683. sqlBuffer.append(" WHERE 1 = 1\n");
  684. sqlBuffer.append(" AND A.SHIP_DIRNO = B.SHIP_DIRNO\n");
  685. sqlBuffer.append(" AND A.DLIV_DIRNO = C.DLIV_DIRNO\n");
  686. sqlBuffer.append(" AND A.SHIP_PROG_CD = Z.SM_CD(+)\n");
  687. sqlBuffer.append(" AND A.SHIP_PROG_CD IN ('06','07','08')\n");
  688. sqlBuffer.append(" AND A.CUR_PROG_CD LIKE ?||'%'\n");
  689. sqlBuffer.append(" AND A.TRANS_CAR_NO||'&' LIKE ?||'%'\n");
  690. sqlBuffer.append(" AND A.DLIV_DIRNO LIKE ?||'%'\n");
  691. sqlBuffer.append(" AND A.SHIP_PROG_CD LIKE ?||'%'\n");
  692. sqlBuffer.append(" AND A.TRNF_DTIME||'&' LIKE ?||'%'\n");
  693. sqlBuffer.append(" ORDER BY A.SHIP_DIRNO, A.DLIV_DIRNO\n");
  694. cro = this.getDao("KgDao").ExcuteQuery(
  695. sqlBuffer.toString(),
  696. new Object[] { dlivTp, curProgCd, transCarNo, dlivDirNo,
  697. shipProgCd, tranfDTime });
  698. System.out.println(cro);
  699. return cro;
  700. }
  701. /**
  702. * 生成发货实绩
  703. *
  704. * @param trnfShift
  705. * @param trnfGroup
  706. * @param trnfRegId
  707. * @param trnfDTime
  708. * @param czdWgt
  709. * @param params
  710. * @return
  711. * @throws SQLException
  712. */
  713. public CoreReturnObject saveShippingResultLt(String trnfShift,
  714. String trnfGroup, String trnfRegId, String trnfDTime,
  715. String czdWgt, ArrayList<String[]> params) throws SQLException {
  716. CoreReturnObject cro = new CoreReturnObject();
  717. Connection conn = null;
  718. Statement sta = null;
  719. ArrayList<String[]> params1 = new ArrayList<String[]>();
  720. ArrayList<String> list=new ArrayList<String>();
  721. try {
  722. conn = this.getDao("KgDao").getConnection();
  723. conn.setAutoCommit(false);
  724. // 修改钢卷发运状态
  725. updateCoilProgStatus(conn,trnfShift, trnfGroup, trnfRegId, trnfDTime,
  726. params);
  727. // 调用进程管理进程整理
  728. // 修改钢卷表发运状态及发运相关信息 、发运表发运状态
  729. updateShipProgStatus(conn,czdWgt, params);
  730. // for (int i = 0; i < params.size(); i++) {
  731. // String[] param = params.get(i);
  732. // String dlno=param[1];
  733. // String sql2 = "select * from TBB01_CARGOCN_DATA a where DLIV_DIRNO = '"
  734. // + param[1] + "' ";
  735. // sta = conn.createStatement();
  736. // ResultSet rs = sta.executeQuery(sql2);
  737. // while (rs.next()) {
  738. // list.add(i, dlno);
  739. // String sql4 = XmlSqlParsersFactory.getSql("UIJ030030_cargocn_01.delete");
  740. // this.getDao("KgDao").ExcuteNonQuery(sql4,new Object[] { dlno });
  741. // }
  742. // rs.close();
  743. // sta.close();
  744. // }
  745. // //保存发货明细状态的同时把钢卷数据保存到货运中国中间表去
  746. // saveCargocnData(params,czdWgt,trnfDTime,list);
  747. conn.commit();
  748. } catch (Exception ex) {
  749. if(conn != null){
  750. conn.rollback();
  751. }
  752. cro.setV_errCode(-1);
  753. cro.setV_errMsg("发货实绩生成失败,请重新操作!");
  754. } finally{
  755. if(conn != null && !conn.isClosed()){
  756. conn.close();
  757. }
  758. }
  759. return cro;
  760. }
  761. /**
  762. * 修改钢卷发运状态
  763. *
  764. * @param trnfShift
  765. * @param trnfGroup
  766. * @param trnfRegId
  767. * @param trnfDTime
  768. * @param params
  769. * @return
  770. * @throws SQLException
  771. */
  772. private void updateCoilProgStatus(Connection conn,String trnfShift, String trnfGroup,
  773. String trnfRegId, String trnfDTime, ArrayList<String[]> params)
  774. throws SQLException {
  775. PreparedStatement pSta = null;
  776. String flag=null;
  777. String trnftime ;
  778. Date d = new Date();
  779. SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
  780. trnftime = sdf.format(d);
  781. for (int i = 0; i < params.size(); i++) {
  782. String[] param = params.get(i);
  783. // 更新钢卷公共表发货状态
  784. StringBuffer updSql1 = new StringBuffer();
  785. updSql1.append("UPDATE C_TBC02_COIL_COMM\n");
  786. updSql1.append(" SET COIL_STAT = ?\n");
  787. updSql1.append(" , CUR_PROG_CD = ?\n");
  788. updSql1
  789. .append(" , CUR_PROG_CD_DTIME = TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS')\n");
  790. updSql1.append(" , CUR_PROG_CD_PGM = ?\n");
  791. updSql1.append(" , BEF_PROG_CD = ?\n");
  792. updSql1.append(" , BEF_PROG_CD_DTIME = ?\n");
  793. updSql1.append(" , BEF_PROG_CD_PGM = ?\n");
  794. updSql1.append(" , TRANS_CAR_NO = ?\n");
  795. updSql1.append(" , TRNF_SHIFT = ?\n");
  796. updSql1.append(" , TRNF_GROUP = ?\n");
  797. updSql1.append(" , TRNF_REG = ?\n");
  798. updSql1.append(" , TRNF_DTIME = ?\n");
  799. updSql1
  800. .append(" , OUT_YARD_KIND = decode(substr(nvl(BEF_LOAD_LOC,'0'),0,1),'3','2','4','2','5','3',decode(length(OLD_SAMPL_NO),17,'3','2'))\n");
  801. updSql1.append(" --记录修改前重量\n");
  802. // updSql1.append(" , BEF_ACT_WGT = ACT_WGT\n");
  803. updSql1.append(" , ACT_WGT = ?\n");
  804. updSql1.append(" WHERE OLD_SAMPL_NO = ?\n");
  805. pSta = conn.prepareStatement(updSql1.toString());
  806. pSta.setString(1, param[25]);
  807. pSta.setString(2, param[26]);
  808. pSta.setString(3, param[27]);
  809. pSta.setString(4, param[19]);
  810. pSta.setString(5, param[20]);
  811. pSta.setString(6, param[21]);
  812. pSta.setString(7, param[2]);
  813. pSta.setString(8,trnfShift);
  814. pSta.setString(9, trnfGroup);
  815. pSta.setString(10, trnfRegId);
  816. pSta.setString(11, trnfDTime);
  817. pSta.setString(12, param[12]);
  818. //pSta.setString(13, trnftime);
  819. pSta.setString(13, param[10]);
  820. pSta.executeUpdate();
  821. pSta.close();
  822. //保持同一指示号下面所有卷操作时间一致 20190411
  823. StringBuffer updSql3 = new StringBuffer();
  824. updSql3.append("UPDATE C_TBC02_COIL_COMM\n");
  825. updSql3.append(" SET TRNF_USE_TIME = ?\n");
  826. updSql3.append(" WHERE DLIV_DIRNO = ?\n");
  827. pSta = conn.prepareStatement(updSql3.toString());
  828. pSta.setString(1, trnftime);
  829. pSta.setString(2, param[1]);
  830. pSta.executeUpdate();
  831. pSta.close();
  832. //添加记录
  833. String sql = XmlSqlParsersFactory.getSql("UIL010020_02_CALL.CALL");
  834. if(!param[10].substring(14,15).equals("0")){
  835. flag="C";
  836. }
  837. else{
  838. flag="L";
  839. }
  840. CallableStatement cstm = conn.prepareCall(sql);
  841. cstm.setString(1,flag);
  842. cstm.setString(2,param[10]);
  843. cstm.setString(3,trnfRegId);
  844. cstm.setString(4,"明细打印");
  845. cstm.setString(5,"UIJ050030");
  846. cstm.setString(6,"明细打印后");
  847. cstm.registerOutParameter(7,Types.VARCHAR);
  848. cstm.execute();
  849. cstm.close();
  850. // 更新发运表车辆号
  851. StringBuffer updSql2 = new StringBuffer();
  852. updSql2.append("UPDATE tbj01_dliv_dir\n");
  853. updSql2.append(" SET TRANS_CAR_NO = ?\n");
  854. updSql2.append(" WHERE DLIV_DIRNO = ?\n");
  855. pSta = conn.prepareStatement(updSql2.toString());
  856. pSta.setString(1, param[2]);
  857. pSta.setString(2, param[1]);
  858. pSta.executeUpdate();
  859. pSta.close();
  860. }
  861. }
  862. /**
  863. * 修改钢卷表发运状态及发运相关信息
  864. *
  865. * @param czdWgt
  866. * @param params
  867. * @throws SQLException
  868. */
  869. private void updateShipProgStatus(Connection conn,String czdWgt, ArrayList<String[]> params)
  870. throws SQLException {
  871. PreparedStatement pSta = null;
  872. Statement sta = null;
  873. //double dczdWgt = new Double(czdWgt);
  874. //dczdWgt=dczdWgt * params.size();
  875. for (int i = 0; i < params.size(); i++) {
  876. String[] param = params.get(i);
  877. // 更新钢卷公共表发运状态及发运相关信息
  878. StringBuffer sqlBuffer = new StringBuffer();
  879. sqlBuffer.append("UPDATE C_TBC02_COIL_COMM\n");
  880. sqlBuffer.append(" SET SHIP_PROG_CD = ?\n");
  881. sqlBuffer.append(" ,TRANS_CAR_NO = ?\n");
  882. sqlBuffer.append(" ,ACT_WGT = ?\n");
  883. sqlBuffer.append(" ,CZD_WGT = ? \n");
  884. sqlBuffer.append(" WHERE OLD_SAMPL_NO = ?\n");
  885. pSta = conn.prepareStatement(sqlBuffer.toString());
  886. pSta.setString(1, param[17]);
  887. pSta.setString(2, param[2]);
  888. pSta.setString(3, param[12]);
  889. pSta.setString(4, czdWgt);
  890. pSta.setString(5, param[10]);
  891. pSta.executeUpdate();
  892. pSta.close();
  893. }
  894. for (int i = 0; i < params.size(); i++) {
  895. String[] param = params.get(i);
  896. // 查询钢卷公共表中SHIP_PROG_CD状态,看是否全部改变
  897. boolean flag = true;
  898. String sql = "select a.SHIP_PROG_CD from C_TBC02_COIL_COMM a where a.ship_dirno = '"
  899. + param[0] + "' ";
  900. sta = conn.createStatement();
  901. ResultSet rs = sta.executeQuery(sql);
  902. while (rs.next()) {
  903. String shipProgCd = rs.getString("SHIP_PROG_CD");
  904. //&& !"09".equals(shipProgCd)
  905. if (!"07".equals(shipProgCd) && !"08".equals(shipProgCd)
  906. ) {
  907. flag = false;
  908. }
  909. }
  910. rs.close();
  911. sta.close();
  912. // 判断同一发货指示下的钢卷是否全部保存,如果没有的话不能改变发货指示的状态
  913. if (flag) {
  914. StringBuffer sqlBuffer = new StringBuffer();
  915. sqlBuffer.append("UPDATE TBJ01_SHIP_DIR\n");
  916. sqlBuffer.append(" SET SHIP_PROG_CD = ?\n");
  917. sqlBuffer.append(" WHERE SHIP_DIRNO = ?\n");
  918. pSta = conn.prepareStatement(sqlBuffer.toString());
  919. pSta.setString(1, param[17]);
  920. pSta.setString(2, param[0]);
  921. pSta.executeUpdate();
  922. pSta.close();
  923. }
  924. }
  925. }
  926. /**
  927. * 保存发货明细状态的同时把钢卷数据保存到货运中国中间表去
  928. * @param params
  929. public void saveCargocnData(ArrayList<String[]> params,String czdWgt,String trnfDTime,ArrayList<String> list) {
  930. try {
  931. for (int i = 0; i < params.size(); i++) {
  932. String[] param = params.get(i);
  933. String sql3 = XmlSqlParsersFactory.getSql("UIJ030030_cargocn.select");
  934. String flat="1";
  935. ArrayList coilList = (ArrayList) this.getDao("KgDao").ExcuteQueryReturnList(sql3,new Object[]{param[10]});
  936. //若表中存在该钢卷则删除
  937. if(null != coilList && 0 != coilList.size()){
  938. String sql4 = XmlSqlParsersFactory.getSql("UIJ030030_cargocn.delete");
  939. this.getDao("KgDao").ExcuteNonQuery(sql4, new Object[]{param[10]});
  940. flat="0";
  941. }
  942. String sql2 = XmlSqlParsersFactory.getSql("UIJ030030_cargocn.insert");
  943. Object[] param2 = new Object[25];
  944. param2[0] = param[10]; //真实钢卷号
  945. param2[1] = param[1]; //发运指示号
  946. param2[2] = param[18]; //牌号
  947. param2[3] = param[2]; //车牌号
  948. param2[4] = param[12]; //重量
  949. param2[5] = trnfDTime; //发货时间
  950. param2[6] = param[33]; //收货单位
  951. param2[7] = param[34]; //到站
  952. param2[8] = param[32]; //合同单位
  953. String SHIP_COMP = param[35];
  954. if(StringUtils.isEmpty(SHIP_COMP))
  955. SHIP_COMP = param[24];
  956. param2[9] = SHIP_COMP; //运输公司
  957. param2[10] = param[36]; //产品名称
  958. param2[11] = "新余市"; //发货城市
  959. param2[12] = "冷轧厂"; //发货地点
  960. param2[13] = 1; //订单类型
  961. //通过到站地点从产销数据库查收货城市、收货人、电话
  962. String receiveCity = param[34];
  963. String dlivno = param[1];
  964. // String sql5 = "SELECT CX.UNLOADDOCK,CX.SHR,CX.SHRDH FROM SEL_STATIONINFO@XGCX CX WHERE CX.STATIONNAME LIKE '"
  965. // + receiveCity + "%' ";
  966. String sql5="select a.UNLOADDOCK, a.SHR, a.SHRDH from sel_stationinfo a where a.STATIONCODE = (select DEST_PCD from tbj01_dliv_dir b where b.DLIV_DIRNO='"+dlivno+"' and rownum = 1)";
  967. String receiveNM = "";
  968. String receivePhone = "";
  969. ResultSet rs = this.getDao("KgDao").ExceuteQueryForResultSet(sql5);
  970. if (rs.next()) {
  971. receiveNM = rs.getString("SHR"); //收货人
  972. receivePhone = rs.getString("SHRDH"); //收货人电话
  973. if(StringUtils.isEmpty(receiveNM))
  974. receiveNM="";
  975. if(StringUtils.isEmpty(receivePhone))
  976. receivePhone="";
  977. if(!StringUtils.isEmpty(rs.getString("UNLOADDOCK")))
  978. receiveCity = rs.getString("UNLOADDOCK"); //收货城市
  979. }
  980. this.getDao("KgDao").closeRs(rs);
  981. param2[14] = receiveCity; //收货城市
  982. param2[15] = receiveNM; //收货联系人
  983. param2[16] = receivePhone; //收货联系人电话
  984. param2[17] = "6"; //未发送状态
  985. param2[18] = "LZMES_UIJ050010"; //程序id
  986. param2[19] = param[28]; //操作人
  987. param2[20]= param[29]; // 运输方式
  988. param2[21]= "A"; // 修改标示
  989. param2[22]= param[22]; // 合同号
  990. String sql4 = XmlSqlParsersFactory.getSql("UIJ030030_cargocn.dlivselect");
  991. ArrayList dlivList = (ArrayList) this.getDao("KgDao").ExcuteQueryReturnList(sql4,new Object[]{param[1]});
  992. //若表中存在该钢卷则删除
  993. if(null != dlivList && 0 != dlivList.size())
  994. {
  995. param2[23]="0";
  996. }
  997. else
  998. {
  999. param2[23]= czdWgt; // 草支垫扣重
  1000. }
  1001. param2[24]= param[37]; // 包装扣重
  1002. this.getDao("KgDao").ExcuteNonQuery(sql2, param2);
  1003. if("0".equals(flat)){
  1004. String sql = XmlSqlParsersFactory.getSql("UIJ030030_cargocn_01.update");
  1005. this.getDao("KgDao").ExcuteNonQuery(sql, new Object[]{param2[1]});
  1006. }
  1007. }
  1008. if(!list.isEmpty())
  1009. {
  1010. for (int i = 0; i < list.size(); i++) {
  1011. String sql = XmlSqlParsersFactory.getSql("UIJ030030_cargocn_02.update");
  1012. this.getDao("KgDao").ExcuteNonQuery(sql, new Object[]{list.get(i)});
  1013. }
  1014. }
  1015. } catch (Exception e) {
  1016. e.printStackTrace();
  1017. }
  1018. }
  1019. */
  1020. public void saveCargocnData(Connection conn,ArrayList<String[]> params,String czdWgt,String trnfDTime,ArrayList<String> list) {
  1021. try {
  1022. for (int i = 0; i < params.size(); i++) {
  1023. String[] param = params.get(i);
  1024. Double wgt=Double.parseDouble(param[12]);
  1025. String sql = XmlSqlParsersFactory.getSql("UIJ030030_12.CALL");
  1026. CallableStatement cstm = conn.prepareCall(sql);
  1027. cstm.setString(1, "1");//标志
  1028. cstm.setString(2, param[10]);
  1029. cstm.setString(3, param[1]);
  1030. cstm.setString(4, param[18]);
  1031. cstm.setString(5, param[2]);
  1032. cstm.setString(6, wgt.toString());
  1033. cstm.setString(7, trnfDTime);
  1034. cstm.setString(8, czdWgt);
  1035. cstm.setString(9, param[37]);
  1036. cstm.setString(10, "L");
  1037. cstm.setString(11, param[28]);
  1038. cstm.execute();
  1039. cstm.close();
  1040. }
  1041. } catch (Exception e) {
  1042. e.printStackTrace();
  1043. }
  1044. }
  1045. /**
  1046. * 打印发货明细后修改相关状态
  1047. *
  1048. * @param trnfShift
  1049. * @param trnfGroup
  1050. * @param trnfRegId
  1051. * @param trnfDTime
  1052. * @param czdWgt
  1053. * @param params
  1054. * @return
  1055. * @throws SQLException
  1056. */
  1057. public CoreReturnObject printShippingResultLt(String trnfShift,
  1058. String trnfGroup, String trnfRegId, String trnfDTime,
  1059. String czdWgt, ArrayList<String[]> params) throws SQLException {
  1060. CoreReturnObject cro = new CoreReturnObject();
  1061. ArrayList<String[]> params1 = new ArrayList<String[]>();
  1062. Connection conn = null;
  1063. Statement sta = null;
  1064. int a=0;
  1065. ArrayList<String> list=new ArrayList<String>();
  1066. try {
  1067. conn = this.getDao("KgDao").getConnection();
  1068. conn.setAutoCommit(false);
  1069. UIJ030060 uij030060 = new UIJ030060();
  1070. updateInvoiceInfoOfDelivery(conn,params);
  1071. // 修改钢卷表发运状态及发运相关信息 、发运表发运状态
  1072. //updateShipProgStatus(conn, czdWgt, params);
  1073. updateShipProgStatusOfPrint(conn,czdWgt, params);
  1074. for (int i = 0; i < params.size(); i++) {
  1075. String[] param = params.get(i);
  1076. String coilno=param[10];
  1077. //调用存货异动点存储过程
  1078. ProduceFactory PD= new ProduceFactory();
  1079. //PD.ErpDataCover("LTCOIL",coilno,"11AC","1","O",trnfRegId,"连退综判");
  1080. PD.ErpDataCover("LTCOIL",coilno,"69A","1","O",trnfRegId,"连退发货");
  1081. }
  1082. /*
  1083. //保存发货明细状态的同时把钢卷数据保存到货运中国中间表去
  1084. for (int i = 0; i < params.size(); i++) {
  1085. String[] param = params.get(i);
  1086. String coilno=param[10];
  1087. String sql2 = "select * from TBB01_CARGOCN_DATA a where COIL_NO = '"
  1088. + param[10] + "' ";
  1089. sta = conn.createStatement();
  1090. ResultSet rs = sta.executeQuery(sql2);
  1091. while (rs.next()) {
  1092. list.add(a, coilno);
  1093. if(a==0)
  1094. {
  1095. String sql = XmlSqlParsersFactory.getSql("UIJ030030_cargocn_03.update");
  1096. this.getDao("KgDao").ExcuteNonQuery(sql, new Object[]{param[1]});
  1097. }
  1098. String sql4 = XmlSqlParsersFactory.getSql("UIJ030030_cargocn.delete");
  1099. this.getDao("KgDao").ExcuteNonQuery(sql4,new Object[] { coilno });
  1100. a++;
  1101. }
  1102. rs.close();
  1103. sta.close();
  1104. }
  1105. */
  1106. //数据发送到优特钢
  1107. // for (int i = 0; i < params.size(); i++) {
  1108. // String[] param = params.get(i);
  1109. //
  1110. // if("20180703S115".equals(param[1])) {
  1111. // params1.add(params.get(i));
  1112. // }
  1113. // }
  1114. // uij030060.saveYouTeTbcData(params1);
  1115. saveCargocnData(conn,params,czdWgt,trnfDTime,list);
  1116. //数据发送到铁前
  1117. addshipdetail(conn,czdWgt,params);
  1118. //数据发送到中冶新材
  1119. addzycoil(conn,params);
  1120. conn.commit();
  1121. } catch (Exception ex) {
  1122. if(conn != null){
  1123. conn.rollback();
  1124. }
  1125. cro.setV_errCode(-1);
  1126. cro.setV_errMsg("发货实绩生成失败,请重新操作!");
  1127. } finally{
  1128. if(conn != null && !conn.isClosed()){
  1129. conn.close();
  1130. }
  1131. }
  1132. return cro;
  1133. }
  1134. private void addshipdetail(Connection conn,String czdWgt,ArrayList<String[]> params)
  1135. throws SQLException {
  1136. //boolean flag = true;
  1137. for (int i = 0; i < params.size(); i++) {
  1138. String[] param = params.get(i);
  1139. String rtMsg = "";
  1140. Double wgt=Double.parseDouble(param[12])/1000;
  1141. String sql = XmlSqlParsersFactory.getSql("UIJ030030_09.CALL");
  1142. CallableStatement cstm = conn.prepareCall(sql);
  1143. cstm.setString(1, "1");//标志
  1144. cstm.setString(2, param[1]);
  1145. cstm.setString(3, param[2]);
  1146. cstm.setString(4, param[18]);
  1147. cstm.setString(5, param[30]);
  1148. cstm.setString(6, "1");
  1149. cstm.setString(7, wgt.toString());
  1150. cstm.setString(8, czdWgt);
  1151. cstm.setString(9, "4001LT1");
  1152. cstm.setString(10, "连退线");
  1153. //cstm.registerOutParameter(10, java.sql.Types.VARCHAR);
  1154. cstm.execute();
  1155. //rtMsg = cstm.getString(10);
  1156. cstm.close();
  1157. // return rtMsg;
  1158. }
  1159. }
  1160. //发送中冶新材数据 20150710
  1161. private void addzycoil(Connection conn,ArrayList<String[]> params)
  1162. throws SQLException {
  1163. //boolean flag = true;
  1164. for (int i = 0; i < params.size(); i++) {
  1165. String[] param = params.get(i);
  1166. String rtMsg = "";
  1167. if(param[31].equals("224902")||param[31].equals("243187")){ //中冶新材客户代码
  1168. String sql = XmlSqlParsersFactory.getSql("UIJ030030_11.CALL");
  1169. CallableStatement cstm = conn.prepareCall(sql);
  1170. cstm.setString(1, param[10]);//钢卷号
  1171. cstm.execute();
  1172. cstm.close();
  1173. }
  1174. }
  1175. }
  1176. private void updateInvoiceInfoOfDelivery(Connection conn,ArrayList<String[]> params)
  1177. throws SQLException {
  1178. PreparedStatement pSta = null;
  1179. StringBuffer sqlBuffer = new StringBuffer();
  1180. sqlBuffer.append("UPDATE TBJ01_DLIV_DIR\n");
  1181. sqlBuffer.append(" SET TRANS_CAR_NO = ?\n");
  1182. sqlBuffer.append(" , INV_PRNCNT = NVL(INV_PRNCNT,0) + 1\n");
  1183. sqlBuffer.append(" WHERE DLIV_DIRNO = ?\n");
  1184. String dlivDirNo = "";
  1185. for (int i = 0; i < params.size(); i++) {
  1186. String[] param = params.get(i);
  1187. if (i > 0) {
  1188. if (dlivDirNo.equals(param[1])) {
  1189. continue;
  1190. } else {
  1191. pSta = conn.prepareStatement(sqlBuffer.toString());
  1192. pSta.setString(1, param[2]);
  1193. pSta.setString(2, param[1]);
  1194. pSta.executeUpdate();
  1195. pSta.close();
  1196. }
  1197. } else {
  1198. pSta = conn.prepareStatement(sqlBuffer.toString());
  1199. pSta.setString(1, param[2]);
  1200. pSta.setString(2, param[1]);
  1201. pSta.executeUpdate();
  1202. pSta.close();
  1203. }
  1204. dlivDirNo = param[1];
  1205. }
  1206. }
  1207. /**
  1208. * 修改钢卷表发运状态及发运相关信息
  1209. *
  1210. * @param czdWgt
  1211. * @param params
  1212. * @throws SQLException
  1213. */
  1214. private void updateShipProgStatusOfPrint(Connection conn,String czdWgt,
  1215. ArrayList<String[]> params) throws SQLException {
  1216. PreparedStatement pSta = null;
  1217. Statement sta = null;
  1218. for (int i = 0; i < params.size(); i++) {
  1219. String[] param = params.get(i);
  1220. // 更新钢卷公共表发运状态及发运相关信息
  1221. StringBuffer sqlBuffer = new StringBuffer();
  1222. sqlBuffer.append("UPDATE C_TBC02_COIL_COMM\n");
  1223. sqlBuffer.append(" SET SHIP_PROG_CD = ?\n");
  1224. sqlBuffer.append(" ,TRANS_CAR_NO = ?\n");
  1225. sqlBuffer.append(" ,ACT_WGT = ?\n");
  1226. sqlBuffer.append(" ,CZD_WGT = ? \n");
  1227. sqlBuffer.append(" WHERE OLD_SAMPL_NO = ?\n");
  1228. pSta = conn.prepareStatement(sqlBuffer.toString());
  1229. pSta.setString(1, param[17]);
  1230. pSta.setString(2, param[2]);
  1231. pSta.setString(3, param[12]);
  1232. pSta.setString(4, czdWgt);
  1233. pSta.setString(5, param[10]);
  1234. pSta.executeUpdate();
  1235. pSta.close();
  1236. }
  1237. for (int i = 0; i < params.size(); i++) {
  1238. String[] param = params.get(i);
  1239. // 查询钢卷公共表中SHIP_PROG_CD状态,看是否全部改变
  1240. boolean flag = true;
  1241. String sql = "select a.SHIP_PROG_CD from C_TBC02_COIL_COMM a where a.ship_dirno = '"
  1242. + param[0] + "' ";
  1243. sta = conn.createStatement();
  1244. ResultSet rs = sta.executeQuery(sql);
  1245. while (rs.next()) {
  1246. String shipProgCd = rs.getString("SHIP_PROG_CD");
  1247. // && !"09".equals(shipProgCd)
  1248. if (!"08".equals(shipProgCd)) {
  1249. flag = false;
  1250. }
  1251. }
  1252. rs.close();
  1253. sta.close();
  1254. // 判断同一发货指示下的钢卷是否全部保存,如果没有的话不能改变发货指示的状态
  1255. if (flag) {
  1256. StringBuffer sqlBuffer = new StringBuffer();
  1257. sqlBuffer.append("UPDATE TBJ01_SHIP_DIR\n");
  1258. sqlBuffer.append(" SET SHIP_PROG_CD = ?\n");
  1259. sqlBuffer.append(" WHERE SHIP_DIRNO = ?\n");
  1260. pSta = conn.prepareStatement(sqlBuffer.toString());
  1261. pSta.setString(1, param[17]);
  1262. pSta.setString(2, param[0]);
  1263. pSta.executeUpdate();
  1264. pSta.close();
  1265. }
  1266. }
  1267. }
  1268. /**
  1269. * 查询发运计划信息
  1270. *
  1271. * @param fromDate
  1272. * @param toDate
  1273. * @param dlivTp
  1274. * @param dlivDirNo
  1275. * @param isCancel
  1276. * @return
  1277. * @throws SQLException
  1278. */
  1279. public CoreReturnObject queryDlivPlanLt(String fromDate, String toDate,
  1280. String dlivTp, String dlivDirNo, String isCancel)
  1281. throws SQLException {
  1282. CoreReturnObject cro = null;
  1283. StringBuffer sqlBuffer = new StringBuffer();
  1284. sqlBuffer.append("SELECT '' CHK,\n");
  1285. sqlBuffer.append(" B.SHIP_DIRNO,\n");
  1286. sqlBuffer.append(" B.GET_ON_PCD,\n");
  1287. sqlBuffer.append(" B.DEST_PCD,\n");
  1288. sqlBuffer
  1289. .append(" (SELECT sm_cfnm FROM TBZ00_COMMCD WHERE LG_CD = 'A01009' AND b.DEST_PCD = SM_CD) DEST_PCD_DESC,\n");
  1290. sqlBuffer.append(" B.EXLV_LINE_CD,\n");
  1291. sqlBuffer
  1292. .append(" (SELECT x.SM_CFNM FROM TBZ00_COMMCD x WHERE LG_CD = 'A01015' AND b.EXLV_LINE_CD = SM_CD) EXLV_LINE_CD_DESC,\n");
  1293. sqlBuffer
  1294. .append(" (select CUST_NM FROM TBZ00_CUSTOMER WHERE CUST_CD = b.CUST_CD and REC_TP='01') CUST_NM, \n");
  1295. sqlBuffer
  1296. .append(" (select CUST_NM ORD_NM FROM TBZ00_CUSTOMER WHERE CUST_CD = b.ORD_CUST_CD and REC_TP='02') ORD_NM,\n");
  1297. sqlBuffer.append(" B.GET_OFF_PCD,\n");
  1298. // sqlBuffer.append(" B.DLIV_TP,\n");
  1299. sqlBuffer.append(" D.SM_CFNM AS DLIV_TP_NM,\n");
  1300. // sqlBuffer.append(" B.SHIP_COMP_CD,\n");
  1301. sqlBuffer.append(" C.SHIP_COMP_NM SM_CFNM,\n");
  1302. sqlBuffer.append(" B.TRAIN_DLIVNO,\n");
  1303. sqlBuffer.append(" B.DLIV_DIRNO,\n");
  1304. sqlBuffer.append(" NVL(B.CNT,0) AS CNT,\n");
  1305. sqlBuffer.append(" NVL(B.ACT_WGT,0) AS ACT_WGT,\n");
  1306. sqlBuffer.append(" B.ALLOC_SEQ,\n");
  1307. sqlBuffer.append(" B.TRANS_CAR_NO,\n");
  1308. sqlBuffer.append(" B.LANE_TP,\n");
  1309. sqlBuffer.append(" B.ENTERANCE_SEQ,\n");
  1310. sqlBuffer.append(" B.ORD_NO,\n");
  1311. sqlBuffer.append(" B.ORD_SEQ,\n");
  1312. sqlBuffer.append(" B.SPEC_STL_GRD,\n");
  1313. sqlBuffer.append(" B.INSTR_COIL_THK||'*'||B.INSTR_COIL_WTH T_W,\n");
  1314. sqlBuffer.append(" ISCANCEL \n");
  1315. sqlBuffer.append(" FROM(SELECT *\n");
  1316. sqlBuffer.append(" FROM TBJ01_SHIP_DIR\n");
  1317. sqlBuffer.append(" WHERE 1 = 1\n");
  1318. sqlBuffer.append(" AND SHIP_PROG_CD = '03'\n");
  1319. sqlBuffer
  1320. .append(" AND SHIP_DIRNO BETWEEN NVL(?,'00000101')||'0000' AND NVL(?,'99991231')||'9999'\n");
  1321. sqlBuffer.append(" AND SHIP_DIRNO LIKE ''||'%') A \n");
  1322. sqlBuffer
  1323. .append(" ,(SELECT X.*, Y.CNT CNT, Y.ACT_WGT ACT_WGT,Y.ORD_NO,Y.ORD_SEQ,Y.SPEC_STL_GRD,Y.INSTR_COIL_THK,Y.INSTR_COIL_WTH \n");
  1324. sqlBuffer.append(" FROM TBJ01_DLIV_DIR X\n");
  1325. sqlBuffer.append(" ,(SELECT DLIV_DIRNO\n");
  1326. sqlBuffer.append(" , COUNT(*) AS CNT\n");
  1327. sqlBuffer.append(" , NVL(SUM(ACT_WGT),0) AS ACT_WGT\n");
  1328. sqlBuffer.append(" , MAX(ORD_NO) AS ORD_NO\n");
  1329. sqlBuffer.append(" , MAX(ORD_SEQ) AS ORD_SEQ\n");
  1330. sqlBuffer.append(" , MAX(SPEC_STL_GRD) AS SPEC_STL_GRD\n");
  1331. sqlBuffer.append(" , MAX(INSTR_COIL_THK) AS INSTR_COIL_THK\n");
  1332. sqlBuffer.append(" , MAX(INSTR_COIL_WTH) AS INSTR_COIL_WTH\n");
  1333. sqlBuffer.append(" FROM C_TBC02_COIL_COMM\n");
  1334. sqlBuffer.append(" WHERE 1 = 1\n");
  1335. sqlBuffer.append(" AND CUR_PROG_CD like 'DFB'||'%'\n");
  1336. sqlBuffer
  1337. .append(" AND SHIP_DIRNO BETWEEN NVL(?,'00000101')||'0000' AND NVL(?,'99991231')||'9999'\n");
  1338. sqlBuffer.append(" GROUP BY DLIV_DIRNO) Y\n");
  1339. sqlBuffer.append(" WHERE X.DLIV_DIRNO = Y.DLIV_DIRNO\n");
  1340. sqlBuffer.append(" AND X.DLIV_TP LIKE ?||'%'\n");
  1341. sqlBuffer.append(" AND NVL(X.LANE_TP,'*') LIKE ''||'%'\n");
  1342. sqlBuffer.append(" AND NVL(X.ENTERANCE_SEQ,0) = NVL('',0)) B\n");
  1343. sqlBuffer.append(" ,(SELECT *\n");
  1344. sqlBuffer.append(" FROM TBJ00_SHIP_COMP\n");
  1345. sqlBuffer.append(" WHERE SHIP_COMP_CD LIKE ''||'%') C\n");
  1346. sqlBuffer
  1347. .append(" ,(SELECT SM_CD, SM_CFNM FROM TBZ00_COMMCD WHERE LG_CD = 'A01012' AND SM_CD LIKE ?||'%') D\n");
  1348. sqlBuffer.append(" WHERE A.SHIP_DIRNO = B.SHIP_DIRNO(+)\n");
  1349. sqlBuffer.append(" AND B.SHIP_COMP_CD = C.SHIP_COMP_CD(+)\n");
  1350. sqlBuffer.append(" AND D.SM_CD = B.DLIV_TP \n");
  1351. sqlBuffer.append(" AND B.ISDELETED = 0\n");
  1352. sqlBuffer.append(" AND B.ISCANCEL = ?\n");
  1353. sqlBuffer.append(" AND B.DLIV_DIRNO LIKE ?||'%'\n");
  1354. sqlBuffer.append(" ORDER BY B.ALLOC_SEQ,B.DLIV_DIRNO \n");
  1355. cro = this.getDao("KgDao").ExcuteQuery(
  1356. sqlBuffer.toString(),
  1357. new Object[] { fromDate, toDate, fromDate, toDate, dlivTp,
  1358. dlivTp, isCancel, dlivDirNo });
  1359. return cro;
  1360. }
  1361. /**
  1362. * 发运计划回退
  1363. *
  1364. * @param regId
  1365. * @param params
  1366. * @return
  1367. * @throws SQLException
  1368. */
  1369. public CoreReturnObject returnShipDirLt(String regId,
  1370. ArrayList<String> params) throws SQLException {
  1371. CoreReturnObject cro = new CoreReturnObject();
  1372. StringBuffer sqlBuffer = new StringBuffer();
  1373. sqlBuffer.append("update TBJ01_DLIV_DIR a\n");
  1374. sqlBuffer.append(" set A.RETURN_GED = ?,\n");
  1375. sqlBuffer
  1376. .append("A.RETURN_DTIME = TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS'),\n");
  1377. sqlBuffer.append(" A.ISCANCEL = '1',\n");
  1378. sqlBuffer.append(" A.DLIV_PROG_CD = '02' \n");
  1379. sqlBuffer.append(" WHERE A.DLIV_DIRNO = ? \n");
  1380. Connection conn = null;
  1381. PreparedStatement pSta = null;
  1382. try {
  1383. conn = this.getDao("KgDao").getConnection();
  1384. conn.setAutoCommit(false);
  1385. for (int i = 0; i < params.size(); i++) {
  1386. String dlivDirNo = params.get(i);
  1387. pSta = conn.prepareStatement(sqlBuffer.toString());
  1388. pSta.setString(1, regId);
  1389. pSta.setString(2, dlivDirNo);
  1390. pSta.executeUpdate();
  1391. pSta.close();
  1392. }
  1393. conn.commit();
  1394. } catch (Exception ex) {
  1395. if(conn != null){
  1396. conn.rollback();
  1397. }
  1398. cro.setV_errCode(-1);
  1399. cro.setV_errMsg("发运计划回退失败!");
  1400. }finally{
  1401. if(conn != null && !conn.isClosed()){
  1402. conn.close();
  1403. }
  1404. }
  1405. return cro;
  1406. }
  1407. /**
  1408. * 根据发运指示号查询可回退的发运明细
  1409. *
  1410. * @param dlivDirNo
  1411. * 发运指示号
  1412. * @return CoreReturnObject
  1413. * @throws SQLException
  1414. */
  1415. public CoreReturnObject queryShipRetRsLt(String dlivDirNo)
  1416. throws SQLException {
  1417. String shipProgCd = "08";// 发货明细结束
  1418. CoreReturnObject cro = this.query(dlivDirNo, shipProgCd);
  1419. return cro;
  1420. }
  1421. /**
  1422. * 查询没有车号的发货明细的卷
  1423. *
  1424. * @param dlivDirNo
  1425. * @return
  1426. * @throws SQLException
  1427. */
  1428. public CoreReturnObject queryShipRetRsNoCarNoLt(String dlivDirNo)
  1429. throws SQLException {
  1430. String shipProgCd = "03";
  1431. CoreReturnObject cro = this.query(dlivDirNo, shipProgCd);
  1432. return cro;
  1433. }
  1434. private CoreReturnObject query(String dlivDirNo, String shipProgCd)
  1435. throws SQLException {
  1436. CoreReturnObject cro = null;
  1437. StringBuffer sqlBuffer = new StringBuffer();
  1438. sqlBuffer.append("SELECT A.OLD_SAMPL_NO\n");
  1439. sqlBuffer.append(" ,A.DLIV_DIRNO\n");
  1440. sqlBuffer.append(" ,A.SHIP_DIRNO\n");
  1441. sqlBuffer.append(" ,A.SHIP_INVNO\n");
  1442. sqlBuffer.append(" ,A.CUR_PROG_CD\n");
  1443. sqlBuffer.append(" ,A.COIL_STAT\n");
  1444. sqlBuffer.append(" ,A.SHIP_PROG_CD\n");
  1445. sqlBuffer.append(" ,A.TRNF_DTIME\n");
  1446. sqlBuffer.append(" ,DECODE(C.DLIV_TP,'C','汽运','T','火运') DLIV_TP \n");
  1447. sqlBuffer.append(" ,A.TRANS_CAR_NO\n");
  1448. sqlBuffer.append(" ,A.TRNF_REG\n");
  1449. sqlBuffer.append(" ,A.ORD_NO\n");
  1450. sqlBuffer.append(" ,A.ORD_SEQ\n");
  1451. sqlBuffer
  1452. .append(" ,DECODE(A.TRNF_SHIFT,'1','早','2','中','3','晚') TRNF_SHIFT\n");
  1453. sqlBuffer
  1454. .append(" ,DECODE(A.TRNF_GROUP,'A','甲','B','乙','C','丙','D','丁') TRNF_GROUP\n");
  1455. sqlBuffer.append(" ,A.TRNF_USE_TIME\n");
  1456. sqlBuffer
  1457. .append(" ,(select CUST_NM FROM TBZ00_CUSTOMER WHERE CUST_CD = (SELECT CUST_CD FROM TBA01_ORD_COMM WHERE ORD_NO = A.ORD_NO) and REC_TP='01') CUST_NM \n");
  1458. sqlBuffer
  1459. .append(" ,(select CUST_NM ORD_NM FROM TBZ00_CUSTOMER WHERE CUST_CD = C.ORD_CUST_CD and REC_TP='02') ORD_NM\n");
  1460. sqlBuffer
  1461. .append(" ,(SELECT A.SM_CFNM FROM TBZ00_COMMCD A WHERE A.LG_CD = 'A01009' AND A.SM_CD = C.DEST_PCD) DEST_PCD_DESC\n");
  1462. sqlBuffer.append(" FROM C_TBC02_COIL_COMM A,TBJ01_DLIV_DIR C \n");
  1463. sqlBuffer.append(" WHERE A.DLIV_DIRNO = C.DLIV_DIRNO \n");
  1464. sqlBuffer.append(" AND A.DLIV_DIRNO = ? \n");
  1465. sqlBuffer.append(" AND A.COIL_STAT = '3' \n");
  1466. sqlBuffer.append(" AND A.CUR_PROG_CD = 'DFF'\n");
  1467. sqlBuffer.append(" AND A.SHIP_PROG_CD = ?\n");
  1468. sqlBuffer.append(" AND A.TRNF_DTIME IS NOT NULL\n");
  1469. cro = this.getDao("KgDao").ExcuteQuery(sqlBuffer.toString(),
  1470. new Object[] { dlivDirNo, shipProgCd });
  1471. return cro;
  1472. }
  1473. /**
  1474. * 发运明细回退
  1475. *
  1476. * @param dlivDirNo
  1477. * @param regId
  1478. * @return
  1479. * @throws SQLException
  1480. */
  1481. public CoreReturnObject returnShipResultLt(String dlivDirNo, String regId,String return_reson)
  1482. throws SQLException {
  1483. CoreReturnObject cro = new CoreReturnObject();
  1484. Connection conn = null;
  1485. PreparedStatement pSta = null;
  1486. Statement sta = null;
  1487. String strValue;
  1488. String url;
  1489. String cod1,cod2;
  1490. try {
  1491. /*
  1492. UIJ030052 uij030052 = new UIJ030052();
  1493. url="http://172.16.0.49/xg56/webservice/mesWaybillService/queryIsLock/"+dlivDirNo;
  1494. String retr=uij030052.jsonPost(url, dlivDirNo);
  1495. int loc=retr.indexOf("IS_LOCK");
  1496. int loc1=retr.indexOf("RET_CODE");
  1497. cod1=retr.substring(loc1+11, loc1+12);
  1498. cod2=retr.substring(loc+10, loc+11);
  1499. //if("9".equals(cod2) ||("0".equals(cod2)&&"0".equals(cod1)))
  1500. if("0".equals(cod1)&&"1".equals(cod2))
  1501. {
  1502. cro.setV_errCode(new Integer(-1));
  1503. cro.setV_errMsg("明细数据已经锁定,如要解锁,请联系物流中心!");
  1504. }else
  1505. {*/
  1506. String sqlOut = "select DLIV_DIRNO from tbj01_dliv_dir where DLIV_DIRNO = ? AND LAST_MAN IS NULL";
  1507. List listOut = this.getDao("KgDao").ExcuteQueryReturnList(sqlOut,
  1508. new Object[] { dlivDirNo });
  1509. UIJ030052 uij030052 = new UIJ030052();
  1510. url="http://172.16.0.18:9090/TieQianinterface/services/MaterialOutInfo/materialoutinfo/"+dlivDirNo;
  1511. String retr=uij030052.jsonPost(url, dlivDirNo);
  1512. //if("9".equals(cod2) ||("0".equals(cod2)&&"0".equals(cod1)))
  1513. if(retr.contains("false")&&listOut.size()>0)
  1514. {
  1515. cro.setV_errCode(new Integer(-1));
  1516. cro.setV_errMsg("车辆已出厂,如要退回,请先审批!");
  1517. }else
  1518. {
  1519. conn = this.getDao("KgDao").getConnection();
  1520. conn.setAutoCommit(false);
  1521. CallableStatement cstmt = conn
  1522. .prepareCall("{?=call SqListNumbRollBack(?)}");
  1523. cstmt.registerOutParameter(1, Types.VARCHAR);
  1524. cstmt.setString(2, dlivDirNo);
  1525. //cstmt.registerOutParameter(3, Types.INTEGER);
  1526. cstmt.execute();
  1527. strValue = cstmt.getString(1);
  1528. cstmt.close();
  1529. boolean isClearing = false;// 销售是否已结算
  1530. if ( !"1".equals(strValue)) {
  1531. isClearing = true;
  1532. }
  1533. if (isClearing) {
  1534. cro.setV_errCode(-2);
  1535. cro.setV_errMsg("明细数据已经发送到销售,请联系销售退明细后成品才能进行明细回退!");
  1536. } else {
  1537. // 更新钢卷公共表钢卷状态及发运状态
  1538. StringBuffer sqlBuffer = new StringBuffer();
  1539. sqlBuffer.append("UPDATE C_TBC02_COIL_COMM A SET \n");
  1540. sqlBuffer.append(" A.COIL_STAT = '2'\n");
  1541. sqlBuffer.append(" ,A.CUR_PROG_CD = 'DFB'\n");
  1542. sqlBuffer.append(" ,A.SHIP_PROG_CD = '03'\n");
  1543. sqlBuffer.append(" ,A.TRNF_DTIME = ''\n");
  1544. sqlBuffer.append(" ,A.TRANS_CAR_NO = ''\n");
  1545. sqlBuffer.append(" ,A.TRNF_REG = ''\n");
  1546. sqlBuffer.append(" ,A.TRNF_SHIFT = ''\n");
  1547. sqlBuffer.append(" ,A.TRNF_GROUP = ''\n");
  1548. sqlBuffer.append(" ,A.TRNF_USE_TIME = ''\n");
  1549. sqlBuffer.append(" ,A.CUR_LOAD_LOC = A.BEF_LOAD_LOC\n");
  1550. sqlBuffer.append(" ,A.BEF_SHIP_INVNO = A.SHIP_INVNO\n");
  1551. sqlBuffer.append(" ,A.BEF_CRET_NO = A.CRET_NO\n");
  1552. sqlBuffer.append(" ,A.RETURN_SHIP_REG = ?\n");
  1553. sqlBuffer
  1554. .append(" ,A.RETURN_SHIP_DTIME = TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS')\n");
  1555. sqlBuffer.append(" WHERE A.DLIV_DIRNO = ?\n");
  1556. pSta = conn.prepareStatement(sqlBuffer.toString());
  1557. pSta.setString(1, regId);
  1558. pSta.setString(2, dlivDirNo);
  1559. pSta.executeUpdate();
  1560. pSta.close();
  1561. // 清除发运表发运信息
  1562. sqlBuffer = new StringBuffer();
  1563. sqlBuffer.append("UPDATE TBJ01_DLIV_DIR A SET \n");
  1564. sqlBuffer.append(" A.LANE_TP = ''\n");
  1565. sqlBuffer.append(" ,A.ENTERANCE_SEQ = ''\n");
  1566. sqlBuffer.append(" ,A.ALLOC_SEQ = ''\n");
  1567. sqlBuffer.append(" ,a.TRANS_CAR_NO = ''\n");
  1568. sqlBuffer.append(" WHERE A.DLIV_DIRNO = ?\n");
  1569. pSta = conn.prepareStatement(sqlBuffer.toString());
  1570. pSta.setString(1, dlivDirNo);
  1571. pSta.executeUpdate();
  1572. pSta.close();
  1573. // 更新运送表运送状态
  1574. sqlBuffer = new StringBuffer();
  1575. sqlBuffer.append("UPDATE TBJ01_SHIP_DIR A SET \n");
  1576. sqlBuffer.append(" A.SHIP_PROG_CD = '03'\n");
  1577. sqlBuffer
  1578. .append(" WHERE A.SHIP_DIRNO = (SELECT T.SHIP_DIRNO FROM TBJ01_DLIV_DIR T WHERE T.DLIV_DIRNO = ?)\n");
  1579. pSta = conn.prepareStatement(sqlBuffer.toString());
  1580. pSta.setString(1, dlivDirNo);
  1581. pSta.executeUpdate();
  1582. pSta.close();
  1583. // 删除结算接口表数据
  1584. sqlBuffer = new StringBuffer();
  1585. sqlBuffer
  1586. .append("DELETE TBJ02_COIL_COMM A WHERE A.DLIV_DIRNO = ? \n");
  1587. pSta = conn.prepareStatement(sqlBuffer.toString());
  1588. pSta.setString(1, dlivDirNo);
  1589. pSta.executeUpdate();
  1590. pSta.close();
  1591. // 还原出库前垛位
  1592. sqlBuffer = new StringBuffer();
  1593. sqlBuffer.append("UPDATE C_TBC02_COIL_COMM T \n");
  1594. sqlBuffer.append(" SET T.CUR_LOAD_LOC = (SELECT MIN(CUR_LOAD_LOC_F) FROM c_tbk08_coil_move T1 WHERE T1.COIL_NO = T.OLD_SAMPL_NO AND T1.MOVE_TYPE = '12') \n");
  1595. sqlBuffer.append(" WHERE T.DLIV_DIRNO =? \n");
  1596. pSta = conn.prepareStatement(sqlBuffer.toString());
  1597. pSta.setString(1, dlivDirNo);
  1598. pSta.executeUpdate();
  1599. pSta.close();
  1600. //删除铁前接口数据
  1601. String sql6 = XmlSqlParsersFactory
  1602. .getSql("UIJ030030_09.CALL");
  1603. this.getDao("KgDao").ExcuteProcedure(sql6,new String[] {"3",dlivDirNo,"","","","","","","4001LZ1","冷轧线"},
  1604. new String[0]);
  1605. //更新货运中国标识
  1606. String sql7 = XmlSqlParsersFactory
  1607. .getSql("UIJ030030_12.CALL");
  1608. this.getDao("KgDao").ExcuteProcedure(sql7,new String[] {"3","",dlivDirNo,"","","","","","","C",regId},
  1609. new String[0]);
  1610. //插入日志
  1611. String sql8 = XmlSqlParsersFactory
  1612. .getSql("UIJ030030_13.CALL");
  1613. this.getDao("KgDao").ExcuteProcedure(sql8,new String[] {"3","",dlivDirNo,"","","","","",return_reson,"L",regId},
  1614. new String[0]);
  1615. //调用存货异动点存储过程
  1616. ProduceFactory PD= new ProduceFactory();
  1617. PD.ErpDataCover("LTDLIVNO",dlivDirNo,"69A","1","N",regId,"连退退货");
  1618. //PD.ErpDataCover("LTDLIVNO",dlivDirNo,"11AC","0","N",regId,"连退退货取消判定");
  1619. }
  1620. conn.commit();
  1621. }
  1622. }catch (SQLException ex) {
  1623. if(conn != null){
  1624. conn.rollback();
  1625. }
  1626. cro.setV_errCode(-1);
  1627. cro.setV_errMsg("发货明细回退失败!");
  1628. } finally{
  1629. if(conn != null && !conn.isClosed()){
  1630. conn.close();
  1631. }
  1632. }
  1633. return cro;
  1634. }
  1635. public CoreReturnObject resend(ArrayList<String[]> pDlivDirNos, String regId)
  1636. throws SQLException {
  1637. CoreReturnObject cro = new CoreReturnObject();
  1638. Connection conn = null;
  1639. PreparedStatement pSta = null;
  1640. Statement sta = null;
  1641. String strValue,dlivDirNo;
  1642. //汇总处理
  1643. for (int i = 0; i < pDlivDirNos.size(); i++) {
  1644. String[] param = pDlivDirNos.get(i);
  1645. try {
  1646. dlivDirNo=param[0];
  1647. conn = this.getDao("KgDao").getConnection();
  1648. conn.setAutoCommit(false);
  1649. CallableStatement cstmt = conn.prepareCall("{call HYZGMX.HYMX_ADD(?,?,?)}");
  1650. cstmt.setString(1, dlivDirNo);
  1651. cstmt.setString(2, "连退线");
  1652. cstmt.registerOutParameter(3, Types.VARCHAR);
  1653. //cstmt.registerOutParameter(3, Types.INTEGER);
  1654. cstmt.execute();
  1655. strValue = cstmt.getString(3);
  1656. cstmt.close();
  1657. boolean isClearing = false;// 销售是否已结算
  1658. if ( !"1".equals(strValue)) {
  1659. isClearing = true;
  1660. }
  1661. conn.commit();
  1662. }
  1663. catch (SQLException ex) {
  1664. if(conn != null){
  1665. conn.rollback();
  1666. }
  1667. cro.setV_errCode(-1);
  1668. cro.setV_errMsg("补发明细失败!");
  1669. }
  1670. finally{
  1671. if(conn != null && !conn.isClosed()){
  1672. conn.close();
  1673. }
  1674. }
  1675. }
  1676. return cro;
  1677. }
  1678. /**
  1679. * 确认排车操作
  1680. *
  1681. * @param regId
  1682. * @param list
  1683. * @return
  1684. * @throws SQLException
  1685. */
  1686. public CoreReturnObject saveDLIVDIRCAR(String regId, String regOrder,
  1687. String regGroup, ArrayList<String[]> list) throws SQLException {
  1688. CoreReturnObject cro = new CoreReturnObject();
  1689. Connection conn = null;
  1690. try {
  1691. conn = this.getDao("KgDao").getConnection();
  1692. conn.setAutoCommit(false);
  1693. String[] param = null;
  1694. ArrayList<String> dlivDirNoList = new ArrayList<String>();
  1695. StringBuffer sqlBuffer = null;
  1696. // 根据运输指示号的个数来生成发货清单号
  1697. for (int i = 0; i < list.size(); i++) {
  1698. param = list.get(i);
  1699. boolean flag = false;// 运输号是否重复标识
  1700. for (int j = 0; j < dlivDirNoList.size(); j++) {
  1701. if (param[2].equals(dlivDirNoList.get(i))) {
  1702. flag = true;
  1703. break;
  1704. }
  1705. }
  1706. // 生成发货清单号
  1707. if (!flag) {
  1708. sqlBuffer = new StringBuffer();
  1709. sqlBuffer.append("UPDATE TBJ01_DLIV_DIR\n");
  1710. sqlBuffer
  1711. .append(" SET INV_NO = (SELECT 'LZ'||SUBSTR(TO_CHAR(SYSDATE, 'YYYY'), 4) ||'-'||TO_CHAR(TO_NUMBER(SUBSTRB(INV_NO, 5)) + 1, 'FM000000')\n");
  1712. sqlBuffer
  1713. .append(" FROM (SELECT ROW_NUMBER() OVER (ORDER BY NVL(INV_NO,'LZ'||SUBSTR(TO_CHAR(SYSDATE, 'YYYY'), 4)||'-0000000') DESC) AS RN\n");
  1714. sqlBuffer.append(" ,INV_DTIME\n");
  1715. sqlBuffer.append(" ,INV_NO\n");
  1716. sqlBuffer.append(" FROM TBJ01_DLIV_DIR \n");
  1717. sqlBuffer.append(" WHERE INV_NO LIKE 'LZ'||SUBSTR(TO_CHAR(SYSDATE, 'YYYY'), 4) ||'%') A\n");
  1718. sqlBuffer.append(" WHERE A.RN = 1) \n");
  1719. sqlBuffer
  1720. .append(" , INV_DTIME = TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS')\n");
  1721. sqlBuffer.append(" WHERE DLIV_DIRNO = ?\n");
  1722. PreparedStatement ps1 = conn.prepareStatement(sqlBuffer
  1723. .toString());
  1724. ps1.setString(1, param[2]);
  1725. ps1.executeUpdate();
  1726. ps1.close();
  1727. }
  1728. // 将发货清单号更新到钢卷公共表
  1729. sqlBuffer = new StringBuffer();
  1730. sqlBuffer
  1731. .append("SELECT A.INV_NO FROM TBJ01_DLIV_DIR A WHERE A.DLIV_DIRNO = '"
  1732. + param[2] + "'\n");
  1733. Statement sta1 = conn.createStatement();
  1734. ResultSet rs = sta1.executeQuery(sqlBuffer.toString());
  1735. if (rs.next()) {
  1736. String invNo = rs.getString("INV_NO");
  1737. sqlBuffer = new StringBuffer();
  1738. sqlBuffer.append("update c_tbc02_coil_comm X SET \n");
  1739. sqlBuffer.append(" X.SHIP_INVNO = ?\n");
  1740. sqlBuffer.append(" WHERE X.DLIV_DIRNO = ?\n");
  1741. PreparedStatement ps2 = conn.prepareStatement(sqlBuffer
  1742. .toString());
  1743. ps2.setString(1, invNo);
  1744. ps2.setString(2, param[2]);
  1745. ps2.executeUpdate();
  1746. ps2.close();
  1747. }
  1748. rs.close();
  1749. sta1.close();
  1750. // 插入移垛记录
  1751. sqlBuffer = new StringBuffer();
  1752. sqlBuffer.append("INSERT INTO C_TBK08_COIL_MOVE (ROLL_SEQ\n");
  1753. sqlBuffer
  1754. .append(",CUR_LOAD_LOC_F,CUR_LOAD_LOC_T,COIL_NO,REG_ID\n");
  1755. sqlBuffer
  1756. .append(",REG_SHIFT,REG_GROUP,REG_DTIME,REG_USE_DTIME,MOVE_TYPE)\n");
  1757. sqlBuffer
  1758. .append("VALUES((SELECT MAX(ROLL_SEQ)+1 ROLL_SEQ FROM C_TBK08_COIL_MOVE)\n");
  1759. sqlBuffer
  1760. .append(",?,?,?,?,?,?,TO_CHAR(SYSDATE,'YYYYMMDD'),TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS'),'12')\n");
  1761. PreparedStatement pStaI = conn.prepareStatement(sqlBuffer
  1762. .toString());
  1763. pStaI.setString(1, param[7]);// 垛位
  1764. pStaI.setString(2, "");
  1765. pStaI.setString(3, param[4]);// 钢卷号
  1766. pStaI.setString(4, regId);
  1767. pStaI.setString(5, regOrder);
  1768. pStaI.setString(6, regGroup);
  1769. pStaI.executeUpdate();
  1770. pStaI.close();
  1771. // 根据钢卷号更新车厢号和排车顺序
  1772. sqlBuffer = new StringBuffer();
  1773. sqlBuffer.append("update c_tbc02_coil_comm\n");
  1774. sqlBuffer.append(" set \n");
  1775. sqlBuffer.append(" TRANS_CAR_NO = ?,\n");
  1776. sqlBuffer.append(" TRAIN_STEP_NO = ?,\n");
  1777. sqlBuffer.append(" DLIV_DIRNO = ?,\n");
  1778. sqlBuffer.append(" SHIP_DIRNO = ?,\n");
  1779. sqlBuffer.append(" ACT_WGT = ?,\n");
  1780. sqlBuffer.append(" SHIP_PROG_CD = '06',\n");
  1781. sqlBuffer.append(" BEF_LOAD_LOC = CUR_LOAD_LOC, \n");
  1782. sqlBuffer.append(" CUR_LOAD_LOC = '' \n");
  1783. sqlBuffer.append(" where OLD_SAMPL_NO =? \n");
  1784. PreparedStatement ps3 = conn.prepareStatement(sqlBuffer
  1785. .toString());
  1786. ps3.setString(1, param[1]);
  1787. ps3.setString(2, param[0]);
  1788. ps3.setString(3, param[2]);
  1789. ps3.setString(4, param[3]);
  1790. ps3.setString(5, param[6]);
  1791. ps3.setString(6, param[4]);
  1792. ps3.executeUpdate();
  1793. ps3.close();
  1794. // 清除垛位表钢卷信息 (成品库未写垛位表数据)
  1795. // sqlBuffer = new StringBuffer();
  1796. // sqlBuffer.append("update C_TBK08_COIL_YARD A SET \n");
  1797. // sqlBuffer.append(" A.COIL_NO = '',\n");
  1798. // sqlBuffer.append(" A.MOD_ID = '',\n");
  1799. // sqlBuffer.append(" A.MOD_TIME = ''\n");
  1800. // sqlBuffer.append(" WHERE A.COIL_NO = ?\n");
  1801. //
  1802. // PreparedStatement ps4 = conn.prepareStatement(sqlBuffer
  1803. // .toString());
  1804. // ps4.setString(1, param[4]);
  1805. // ps4.executeUpdate();
  1806. // ps4.close();
  1807. flag = true;
  1808. // 查询钢卷发运状态
  1809. sqlBuffer = new StringBuffer();
  1810. sqlBuffer
  1811. .append("select a.SHIP_PROG_CD from c_tbc02_coil_comm a where a.ship_dirno = '"
  1812. + param[3] + "'\n");
  1813. Statement sta2 = conn.createStatement();
  1814. rs = sta2.executeQuery(sqlBuffer.toString());
  1815. while (rs.next()) {
  1816. String tmpShipProgCd = rs.getString("SHIP_PROG_CD");
  1817. if ("03".equals(tmpShipProgCd)
  1818. || "04".equals(tmpShipProgCd)) {
  1819. flag = false;
  1820. break;
  1821. }
  1822. }
  1823. rs.close();
  1824. sta2.close();
  1825. if (flag) {
  1826. // 更新发运表发运状态
  1827. sqlBuffer = new StringBuffer();
  1828. sqlBuffer.append("update tbj01_ship_dir\n");
  1829. sqlBuffer.append(" set \n");
  1830. sqlBuffer.append(" ship_prog_cd = '05'\n");
  1831. sqlBuffer.append(" where ship_dirno =?\n");
  1832. PreparedStatement ps5 = conn.prepareStatement(sqlBuffer
  1833. .toString());
  1834. ps5.setString(1, param[3]);
  1835. ps5.executeUpdate();
  1836. ps5.close();
  1837. // 开具质保书
  1838. String[] inparams = new String[] { param[3] };
  1839. String sCRET_NO = "";
  1840. String sRETURN_CD = "YY";
  1841. String sRETURN_MSG = null;
  1842. if ("YY".equals(sRETURN_CD)) {
  1843. String sqlString = "{call ZL_LIANT_DCS01.CRET_BOOK_GENT(?,?,?)}";
  1844. CallableStatement cstm = conn.prepareCall(sqlString);
  1845. cstm.setString(1, param[3]);
  1846. cstm.registerOutParameter(2, java.sql.Types.VARCHAR);
  1847. cstm.registerOutParameter(3, java.sql.Types.VARCHAR);
  1848. cstm.execute();
  1849. sRETURN_MSG = cstm.getString(3);
  1850. cstm.close();
  1851. if ("XX".equals(sRETURN_MSG)) {
  1852. // 这里出现的异常情况是板坯号与钢卷号不匹配
  1853. cro.setV_errMsg("开具质保书失败,请联系管理员!");
  1854. throw new SQLException();
  1855. }
  1856. }
  1857. }
  1858. }
  1859. conn.commit();
  1860. } catch (SQLException ex) {
  1861. if (conn != null) {
  1862. conn.rollback();
  1863. }
  1864. } finally {
  1865. if (conn != null && !conn.isClosed()) {
  1866. conn.close();
  1867. }
  1868. }
  1869. return cro;
  1870. }
  1871. public CoreReturnObject queryTransCoils(String dlivDirNo)
  1872. throws SQLException {
  1873. CoreReturnObject cro = null;
  1874. StringBuffer sqlBuffer = new StringBuffer();
  1875. sqlBuffer.append("SELECT D.OLD_SAMPL_NO\n");
  1876. sqlBuffer.append(" ,D.SPEC_STL_GRD\n");
  1877. sqlBuffer.append(" ,D.INSTR_COIL_THK||'*'||D.INSTR_COIL_WTH ORD_SIZE\n");
  1878. sqlBuffer.append(" ,D.SPEC_STL_GRD\n");
  1879. sqlBuffer.append(" ,D.INSTR_COIL_THK||'*'||D.INSTR_COIL_WTH ORD_SIZE\n");
  1880. sqlBuffer.append(" ,D.ACT_WGT\n");
  1881. sqlBuffer.append(" ,D.CUR_LOAD_LOC\n");
  1882. sqlBuffer.append(" FROM C_TBC02_COIL_COMM d WHERE d.DLIV_DIRNO=?\n");
  1883. cro = this.getDao("KgDao").ExcuteQuery(sqlBuffer.toString(),
  1884. new Object[] { dlivDirNo });
  1885. return cro;
  1886. }
  1887. public CoreReturnObject updateCarNo(String dlivDirNo,String carNo) throws SQLException {
  1888. CoreReturnObject cro = new CoreReturnObject();
  1889. Map result = this.getDao("KgDao").CoreBeginTranscation();
  1890. String sql = XmlSqlParsersFactory.getSql("UIJ050030_01.UPDATE");
  1891. this.getDao("KgDao").ExcuteNonQuery(sql, new Object[]{carNo,dlivDirNo});
  1892. sql = XmlSqlParsersFactory.getSql("UIJ030030_08.UPDATE");
  1893. this.getDao("KgDao").ExcuteNonQuery(sql, new Object[]{carNo,dlivDirNo});
  1894. sql = XmlSqlParsersFactory.getSql("UIJ030030_09.UPDATE");
  1895. this.getDao("KgDao").ExcuteNonQuery(sql, new Object[]{carNo,dlivDirNo});
  1896. this.getDao("KgDao").CoreCommit(result);
  1897. return cro;
  1898. }
  1899. }