0b3a47c2d5c48ee32922ce41136188ec1d55a1b6.svn-base 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355
  1. package xin.glue.ui.H.H05;
  2. import java.math.BigDecimal;
  3. import java.sql.CallableStatement;
  4. import java.sql.SQLException;
  5. import java.sql.Types;
  6. import xin.glue.ui.common.ProduceFactory;
  7. import xin.glue.ui.common.component.PosSiteLog;
  8. import com.posdata.glue.PosException;
  9. import com.posdata.glue.biz.activity.PosActivity;
  10. import com.posdata.glue.biz.constants.PosBizControlConstants;
  11. import com.posdata.glue.biz.control.PosBizControlIF;
  12. import com.posdata.glue.biz.control.PosBizProvider;
  13. import com.posdata.glue.component.PosConstants;
  14. import com.posdata.glue.context.PosContext;
  15. import com.posdata.glue.dao.vo.PosParameter;
  16. import com.posdata.glue.dao.vo.PosRow;
  17. import com.posdata.glue.dao.vo.PosRowSet;
  18. import com.posdata.glue.msg.PosMESMessageImpl;
  19. import com.posdata.glue.msg.PosMessage;
  20. /*
  21. * 冷轧移送处理
  22. * @author siy
  23. * @date 2010-08-24
  24. */
  25. public class SEND_ZY extends PosActivity {
  26. public String runActivity(PosContext context) {
  27. // 钢卷号
  28. String[] COIL_NOS = (String[]) context.get("COIL_NOS");
  29. // 重量
  30. String[] ACT_WGTS = (String[]) context.get("ACT_WGTS");
  31. // 合同号
  32. String[] ORD_NOS = (String[]) context.get("ORD_NOS");
  33. // 订单号
  34. String[] ORD_SEQS = (String[]) context.get("ORD_SEQS");
  35. // 当前进程状态
  36. String[] CUR_PROG_CDS = (String[]) context.get("CUR_PROG_CDS");
  37. // 流水号
  38. String[] LSHS = (String[]) context.get("LSHS");
  39. // 移送顺序
  40. String[] TRANSSEQS = (String[]) context.get("TRANSSEQS");
  41. // 班次
  42. String[] TRNF_SHIFT = (String[]) context.get("TRNF_SHIFT");
  43. // 班组
  44. String[] TRNF_GROUP = (String[]) context.get("TRNF_GROUP");
  45. // 操作人
  46. String[] TRNF_REG = (String[]) context.get("TRNF_REG");
  47. // 操作时间
  48. String[] TRNF_DTIME = (String[]) context.get("TRNF_DTIME");
  49. // 移送方式
  50. String[] TRANSFER_TYPE = (String[]) context.get("TRANSFER_TYPE");
  51. // 步进梁号/车辆号
  52. String[] TRANSFER_NO = (String[]) context.get("TRANSFER_NO");
  53. if (null != COIL_NOS) {
  54. String[] coilNos = COIL_NOS[0].split("\\|");
  55. String[] actWgts = ACT_WGTS[0].split("\\|");
  56. String[] ordNos = ORD_NOS[0].split("\\|");
  57. String[] ordSeqs = ORD_SEQS[0].split("\\|");
  58. String[] curProgCds = CUR_PROG_CDS[0].split("\\|");
  59. String[] lshs = LSHS[0].split("\\|");
  60. String[] transSeqs = TRANSSEQS[0].split("\\|");
  61. String transFlag = "N";// 是否移送确认
  62. for (int i = 0; i < coilNos.length; i++) {
  63. if (null != coilNos[i] && !"".equals(coilNos[i])) {
  64. String showJudge = "";
  65. String sizeJudge = "";
  66. PosParameter param1 = new PosParameter();
  67. param1.setWhereClauseParameter(0, coilNos[i]);
  68. PosRowSet rowSet = getDao("mesdao").find(
  69. "UIH052400_08.select", param1);
  70. while (rowSet.hasNext()) {
  71. PosRow row = rowSet.next();
  72. showJudge = row.getAttribute("EXTSHAPE_DEC_GRD")
  73. .toString();
  74. sizeJudge = row.getAttribute("SIZE_DEC_RST").toString();
  75. }
  76. if (showJudge.equals("1") && sizeJudge.equals("1")) {
  77. SENDCHCOIL(coilNos[i]);//发送常化
  78. transFlag = "Y";
  79. }
  80. }
  81. // 更新热轧库出库信息
  82. updateHCoilTrnfInfo(TRNF_SHIFT[0], TRNF_GROUP[0], TRNF_REG[0],
  83. TRNF_DTIME[0], TRANSFER_TYPE[0], TRANSFER_NO[0],
  84. transSeqs[i], transFlag, coilNos[i]);
  85. // 插入步进梁接口表
  86. if ("B".equals(TRANSFER_TYPE[0])) {
  87. PosParameter param = new PosParameter();
  88. param.setValueParamter(0, String.valueOf(i + 1));
  89. param.setValueParamter(1, coilNos[i]);
  90. param.setValueParamter(2, TRANSFER_NO[0]);// 步进梁号
  91. param.setValueParamter(3, "1");// 鞍座号
  92. getDao("mesdao").insert("UIH052400_05.insert", param);
  93. }
  94. // 新增钢卷移送记录
  95. addTransRecord(coilNos[i], TRNF_SHIFT[0], TRNF_GROUP[0],
  96. TRNF_REG[0], TRNF_DTIME[0], TRANSFER_TYPE[0],
  97. TRANSFER_NO[0], transSeqs[i]);
  98. long coilWgt = 0;
  99. try {
  100. coilWgt = new Long(actWgts[i]).longValue();
  101. } catch (Exception e) {
  102. // TODO: handle exception
  103. }
  104. NIE012070_CALL(lshs[i], coilWgt, ordNos[i], ordSeqs[i], "", "",
  105. curProgCds[i], "SGF", "AR", TRNF_REG[0]);
  106. }
  107. NIE012080_CALL();
  108. }
  109. return PosBizControlConstants.SUCCESS;
  110. }
  111. /**
  112. * 更新热轧库移送出库信息
  113. *
  114. * @param trnfShift
  115. * 班次
  116. * @param trnfGroup
  117. * 班组
  118. * @param trnfReg
  119. * 操作人
  120. * @param trnfTime
  121. * 操作时间
  122. * @param transferType
  123. * 移送区分
  124. * @param transferNo
  125. * 移送步进梁号/车辆号
  126. * @param coilNo
  127. * 钢卷号
  128. * @return boolean
  129. */
  130. private boolean updateHCoilTrnfInfo(String trnfShift, String trnfGroup,
  131. String trnfReg, String trnfTime, String transferType,
  132. String transferNo, String transSeq, String transFlag, String coilNo) {
  133. try {
  134. boolean updRs = false;
  135. if (null != coilNo && !"".equals(coilNo)) {
  136. PosParameter param = new PosParameter();
  137. param.setValueParamter(0, trnfShift);
  138. param.setValueParamter(1, trnfGroup);
  139. param.setValueParamter(2, trnfReg);
  140. param.setValueParamter(3, trnfTime);
  141. param.setValueParamter(4, "Z");
  142. param.setValueParamter(5, transferNo);
  143. param.setValueParamter(6, trnfTime);
  144. param.setValueParamter(7, transSeq);
  145. param.setValueParamter(8, transFlag);
  146. param.setWhereClauseParameter(0, coilNo);
  147. int count = getDao("mesdao").update("UIH052402_03.update",
  148. param);
  149. if (0 < count) {
  150. // 把钢卷信息清除垛位表
  151. PosParameter param2 = new PosParameter();
  152. param2.setWhereClauseParameter(0, coilNo);
  153. getDao("mesdao").update("UIH052400_04.update", param2);
  154. updRs = true;
  155. logger
  156. .logInfo("updateColdTrnfInfo success ---SEND_LZ.java ");
  157. }
  158. System.out.println(count + "---------------------");
  159. return updRs;
  160. } else {
  161. return updRs;
  162. }
  163. } catch (Exception e) {
  164. logger.logError(e.getMessage(), e);
  165. // TODO: handle exception
  166. }
  167. return false;
  168. }
  169. /**
  170. * 新增移送记录
  171. *
  172. * @param coilNo
  173. * @param yardAddr
  174. * @param regOrder
  175. * @param regGroup
  176. * @param regId
  177. * @param regDtime
  178. * @return
  179. */
  180. private boolean addTransRecord(String coilNo, String regOrder,
  181. String regGroup, String regId, String regDtime, String transClf,
  182. String transNo, String transSeq) {
  183. boolean flag = true;
  184. try {
  185. PosParameter param = new PosParameter();
  186. param.setValueParamter(0, coilNo);
  187. param.setValueParamter(1, coilNo);
  188. param.setValueParamter(2, regId);
  189. param.setValueParamter(3, regOrder);
  190. param.setValueParamter(4, regGroup);
  191. param.setValueParamter(5, regDtime);
  192. param.setValueParamter(6, transClf);
  193. param.setValueParamter(7, transNo);
  194. param.setValueParamter(8, transSeq);
  195. int count = getDao("mesdao").insert("UIH052400_03.insert", param);
  196. if (count < 1) {
  197. flag = false;
  198. }
  199. } catch (Exception e) {
  200. // TODO: handle exception
  201. logger.logError(e.getMessage(), e);
  202. }
  203. return flag;
  204. }
  205. public void SENDCHCOIL(String OLD_SAMPL_NO ) {
  206. CallableStatement cstm = null;
  207. try {
  208. cstm = getDao("mesdao").getCallableStatement("UIH052402_01.CALL");
  209. cstm.setString(1, OLD_SAMPL_NO );
  210. cstm.execute();
  211. ProduceFactory PD= new ProduceFactory();
  212. PD.ErpDataCover("HCOIL",OLD_SAMPL_NO,"55A","1","O","蔡伟平","热轧转出");
  213. PD.ErpDataCover("HCOIL",OLD_SAMPL_NO,"55A","1","N","CHUA","常化转入");
  214. } catch (Exception ex) {
  215. ex.printStackTrace();
  216. System.out.println("明细数据发送到常化接口表数据库执行失败UIJ010060_02.CALL**********");
  217. } finally {
  218. if (cstm != null)
  219. try {
  220. cstm.close();
  221. System.out.println("明细数据发送到常化接口表数据库成功执行UIJ010060_02.CALL-------------------");
  222. } catch (Exception e) {
  223. e.printStackTrace();
  224. }
  225. }
  226. }
  227. /**
  228. * 订单进程标记
  229. *
  230. * @param P_MAT_NO
  231. * 钢卷号
  232. * @param V_WGT
  233. * 重量
  234. * @param V_ORD_NO
  235. * 合同号
  236. * @param V_ORD_SEQ
  237. * 订单号
  238. * @param P_BEF_ORD_NO
  239. * ''
  240. * @param P_BEF_ORD_SEQ
  241. * ''
  242. * @param P_BEF_PROG_CD
  243. * 前进程状态
  244. * @param P_CUR_PROG_CD
  245. * 当前进程状态
  246. * @param P_MAT_TYPE
  247. * 'AR'
  248. * @param V_REG_ID
  249. * 用户ID
  250. * @return
  251. */
  252. public PosContext NIE012070_CALL(String P_MAT_NO, long V_WGT,
  253. String V_ORD_NO, String V_ORD_SEQ, String P_BEF_ORD_NO,
  254. String P_BEF_ORD_SEQ, String P_BEF_PROG_CD, String P_CUR_PROG_CD,
  255. String P_MAT_TYPE, String V_REG_ID) {
  256. PosContext context = new PosContext();
  257. PosMessage message = new PosMESMessageImpl();
  258. // SaveOrdSts
  259. String TcId = "NIE012070";
  260. message.setTCID(TcId);
  261. message.setObject("MSG_ID", TcId);
  262. message.setObject("BEF_ORD_NO", P_BEF_ORD_NO);
  263. message.setObject("BEF_ORD_SEQ", P_BEF_ORD_SEQ);
  264. message.setObject("ORD_NO", V_ORD_NO);
  265. message.setObject("ORD_SEQ", V_ORD_SEQ);
  266. message.setObject("BEF_PROG_CD", P_BEF_PROG_CD);
  267. message.setObject("PROG_CD", P_CUR_PROG_CD);
  268. message.setObject("MAT_TYPE", P_MAT_TYPE);
  269. message.setObject("MAT_NO", P_MAT_NO);
  270. message.setObject("WGT", new BigDecimal(V_WGT));
  271. message.setObject("PGMID", "saveOrdNoHH");
  272. message.setObject("REG_ID", V_REG_ID);
  273. context.setMessage(message);
  274. message.setTCID(TcId);
  275. String SERVICE_POSTFIX = "-service";
  276. context
  277. .put(PosBizControlConstants.SERVICE_NAME, TcId
  278. + SERVICE_POSTFIX);
  279. PosBizProvider.getController().doSubController(context, false);
  280. String SERVICE_ERR_MSG = (String) context.get("SERVICE_ERR_MSG");
  281. if (SERVICE_ERR_MSG != null) {
  282. throw new PosException(SERVICE_ERR_MSG);
  283. }
  284. return context;
  285. }
  286. /**
  287. * 订单进程整理
  288. *
  289. * @return
  290. */
  291. public PosContext NIE012080_CALL() {
  292. PosContext context = new PosContext();
  293. PosMessage message = new PosMESMessageImpl();
  294. // OrdStsMain
  295. String TcId = "NIE012080";
  296. message.setTCID(TcId);
  297. message.setObject("MSG_ID", TcId);
  298. message.setObject("AA", "");
  299. context.setMessage(message);
  300. message.setTCID(TcId);
  301. String SERVICE_POSTFIX = "-service";
  302. context
  303. .put(PosBizControlConstants.SERVICE_NAME, TcId
  304. + SERVICE_POSTFIX);
  305. PosBizProvider.getController().doSubController(context, false);
  306. String SERVICE_ERR_MSG = (String) context.get("SERVICE_ERR_MSG");
  307. if (SERVICE_ERR_MSG != null) {
  308. throw new PosException(SERVICE_ERR_MSG);
  309. }
  310. return context;
  311. }
  312. }