795b7f10c6b65bb7cd4080680577a1f2a44346a6.svn-base 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. package xin.glue.scheduling;
  2. import java.math.BigDecimal;
  3. import com.posdata.glue.biz.constants.PosBizControlConstants;
  4. import com.posdata.glue.context.PosContext;
  5. import com.posdata.glue.dao.vo.PosRow;
  6. import com.posdata.glue.dao.vo.PosRowSet;
  7. public class XinLabRecvDataL2 extends XinHandleDataL2 {
  8. public XinLabRecvDataL2() {
  9. }
  10. private void setLength(StringBuffer sMsg, int len) {
  11. for (int i = sMsg.length(); i < len; i++)
  12. sMsg.append(' ');
  13. sMsg.setLength(len);
  14. }
  15. public String runActivity(PosContext ctx) {
  16. logger.logDebug("XinLabRecvDataL2 runActivity START...");
  17. String[] CHEM_CD = new String[35];
  18. String[] CHEM_VAL = new String[35];
  19. PosRowSet recvDataVO = getDao().find("RecvDataL2_C_RECV_DATA.Select");
  20. if (recvDataVO.hasNext())
  21. ctx.put("_hasRec_", "true");
  22. while (recvDataVO.hasNext()) {
  23. PosRow chemROW = recvDataVO.next();
  24. String PLAN_CHARGE_NO = (String) chemROW
  25. .getAttribute("PLAN_CHARGE_NO");
  26. String RT_CD = ((String) chemROW.getAttribute("RT_CD")).substring(
  27. 0, 2);
  28. String TRAN_DTIME = (String) chemROW.getAttribute("TRAN_DTIME");
  29. BigDecimal EXAMINE_SEQ = (BigDecimal) chemROW
  30. .getAttribute("EXAMINE_SEQ");
  31. for (int i = 0; i < 35; i++) {
  32. CHEM_CD[i] = (String) chemROW.getAttribute("ELE_CD_" + (i + 1));
  33. CHEM_VAL[i] = (String) chemROW.getAttribute("ELE_" + (i + 1));
  34. }
  35. String PROC_CD = null;
  36. if (PLAN_CHARGE_NO.substring(0, 1).equals("J")
  37. && (RT_CD.equals("LD") || RT_CD.equals("YQ")
  38. || RT_CD.equals("LF") || RT_CD.equals("YH")
  39. || RT_CD.equals("CP") || RT_CD.equals("RH")
  40. || RT_CD.equals("YC") || RT_CD.equals("VD") || RT_CD.equals("FCP"))) {
  41. if (RT_CD.equals("LD"))
  42. PROC_CD = "JB";
  43. else if (RT_CD.equals("YQ"))
  44. PROC_CD = "J1";
  45. else if (RT_CD.equals("YH"))
  46. PROC_CD = "J2";
  47. else if (RT_CD.equals("LF"))
  48. PROC_CD = "JL";
  49. else if (RT_CD.equals("CP"))
  50. PROC_CD = "JJ";
  51. else if (RT_CD.equals("RH"))
  52. PROC_CD = "JR";
  53. else if (RT_CD.equals("YC"))
  54. PROC_CD = "SL";// Õë¶Ô°åÅ÷
  55. else if (RT_CD.equals("VD"))
  56. PROC_CD = "VD";
  57. else if (RT_CD.equals("FCP"))
  58. PROC_CD = "JJ";
  59. String TcId = "NIB027080";
  60. StringBuffer sMsg = new StringBuffer();
  61. sMsg.append(TcId);
  62. int iLen = 9;
  63. sMsg.append(TRAN_DTIME);
  64. iLen += 14;
  65. setLength(sMsg, iLen);
  66. sMsg.append(PLAN_CHARGE_NO).append('A');
  67. iLen += 10;
  68. setLength(sMsg, iLen);
  69. sMsg.append(PROC_CD);
  70. iLen += 2;
  71. setLength(sMsg, iLen);
  72. sMsg.append(EXAMINE_SEQ);
  73. iLen += 2;
  74. setLength(sMsg, iLen);
  75. for (int j = 0; j < 35; j++) {
  76. // BY XB 2010.01.29
  77. if (CHEM_CD[j] == null || CHEM_CD[j].equals("")) {
  78. sMsg.append(" "); // 10 ¸ö¿Õ¸ñ
  79. iLen += 10;
  80. } else {
  81. sMsg.append(CHEM_CD[j]);
  82. iLen += 3;
  83. setLength(sMsg, iLen);
  84. if (CHEM_VAL[j] == null || CHEM_VAL[j].equals("")) {
  85. sMsg.append("0 ");// 6 ¸ö¿Õ¸ñ
  86. iLen += 7;
  87. } else {
  88. sMsg.append(CHEM_VAL[j]);
  89. iLen += 7;
  90. setLength(sMsg, iLen);
  91. }
  92. }
  93. }
  94. String TcData = sMsg.toString();
  95. try {
  96. if (!UpdateRec("RecvDataL2_C_RECV_DATA.Update",
  97. new Object[] { "C", chemROW.getAttribute("SEQ_NO"),
  98. TRAN_DTIME }))
  99. continue;
  100. TC_SEND(TcData, TcId);
  101. logger.logDebug(getMessage(TcData, TcId));
  102. } catch (Exception e) {
  103. logger.logError("XinRecvDataL2 Chem Data format error!!!\n"
  104. + getMessage(TcData, TcId) + '\n' + e.getMessage());
  105. UpdateRec("RecvDataL2_C_RECV_DATA.Update", new Object[] {
  106. "E", chemROW.getAttribute("SEQ_NO"), TRAN_DTIME });
  107. }
  108. } else {
  109. UpdateRec("RecvDataL2_C_RECV_DATA.Update", new Object[] { "U",
  110. chemROW.getAttribute("SEQ_NO"), TRAN_DTIME });
  111. }
  112. }
  113. return PosBizControlConstants.SUCCESS;
  114. }
  115. }