TestMachineCollectorMinaHandler.java 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. package co.dc.aptiv.mina;
  2. import co.dc.aptiv.AptivApp;
  3. import co.dc.aptiv.pojo.MaterielPojo;
  4. import co.dc.aptiv.service.BillService;
  5. import org.apache.commons.dbutils.QueryRunner;
  6. import org.apache.commons.logging.Log;
  7. import org.apache.commons.logging.LogFactory;
  8. import org.apache.mina.core.buffer.IoBuffer;
  9. import org.apache.mina.core.session.IoSession;
  10. import java.util.regex.Matcher;
  11. import java.util.regex.Pattern;
  12. /**
  13. * 一道采集逻辑处理类
  14. *
  15. * @author mx
  16. */
  17. public class TestMachineCollectorMinaHandler extends MinaAbstractHandler {
  18. private static final Log log = LogFactory.getLog(TestMachineCollectorMinaHandler.class);
  19. public TestMachineCollectorMinaHandler(TestMachineCollectorMina collectorMina, QueryRunner queryRunner) {
  20. super(collectorMina, queryRunner);
  21. }
  22. private BillService billService;
  23. public TestMachineCollectorMinaHandler(MinaAbstract mina, QueryRunner queryRunner, BillService billService) {
  24. super(mina, queryRunner);
  25. this.billService = billService;
  26. }
  27. /**
  28. * 处理收到的信息
  29. */
  30. @Override
  31. public void messageReceived(IoSession session, Object message) throws Exception {
  32. IoBuffer in = (IoBuffer) message;
  33. byte[] bytes = new byte[in.remaining()];
  34. in.get(bytes, 0, in.remaining());
  35. String s = Integer.toHexString(bytes[0]);
  36. if (s != null) {
  37. String dpn = AptivApp.ccu.HexString2String(bytes);
  38. if (AptivApp.qrcodeService.getScanFrame().onLine) {
  39. MaterielPojo materielPojo = AptivApp.materielService.findByDPN(dpn);
  40. //判断物料是否存在
  41. if (materielPojo != null) {
  42. log.info("测试机发来的物料,DPN = " + dpn);
  43. //判断当前是否可打印模式
  44. // if (AptivApp.printStatus) {
  45. AptivApp.nowMaterielPojo = materielPojo;
  46. AptivApp.qrcodeService.getScanFrame().setComboBox_1();
  47. int codeFlag = AptivApp.qrcodeService.sendQrCode();
  48. if (codeFlag != 1) {
  49. log.info("发送码给激光机异常");
  50. AptivApp.qrcodeService.getScanFrame().alertMsg(1, "生产码异常,请停止打印并联系管理员!");
  51. }
  52. // }
  53. } else {
  54. //弹出提示信息
  55. AptivApp.qrcodeService.getScanFrame().alertMsg(1, "测试机发来的物料不存在,请检查测试机或物料!");
  56. log.info("测试机发来的物料不存在,DPN = " + dpn);
  57. }
  58. //给测试机回复收到物料号
  59. Thread.sleep(100);
  60. AptivApp.testMachineCollectorMina.sendByte(AptivApp.ccu.String2ASCII("ok"));
  61. }
  62. }
  63. }
  64. public static String replaceBlank(String str) {
  65. String dest = "";
  66. if (str != null) {
  67. Pattern p = Pattern.compile("\\s*|\t|\r|\n");
  68. Matcher m = p.matcher(str);
  69. dest = m.replaceAll("");
  70. }
  71. return dest;
  72. }
  73. }