Advertisement
KerrySwan

BuildV1

Jul 11th, 2021
947
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 27.70 KB | None | 0 0
  1. package ru.russianpost.dc.convert.emsevt.builder
  2.  
  3. import org.apache.avro.specific.SpecificRecordBase
  4. import ru.russianpost.dc.convert.emsevt.Key
  5. import ru.russianpost.dc.convert.emsevt.model._
  6. import ru.russianpost.dc.convert.emsevt.utils.Utils.{ZonedToLocalDtString, dateTimeFormat, stringToDoubleTrimed, _}
  7. import ru.russianpost.dc.emsevt._
  8. import ru.russianpost.dc.model._
  9. import ru.russianpost.dc.model.topic_names.EMSEVTMessageTypes
  10. import ru.russianpost.dc.util.nowDT
  11. import ru.russianpost.dc.utils.RichSpecificRecordBase.RichSpecificRecordBase
  12. import ru.russianpost.tracking.commons.upu.emsevt.segments.Segment
  13. import ru.russianpost.tracking.commons.upu.emsevt.segments.v1._
  14.  
  15. class BuildV1 {
  16.  
  17.  
  18.  
  19.   def build(key: Key, interchangeHeader: InterchangeHeader, interchangeTrailer: InterchangeTrailer,
  20.             messageHeader: MessageHeader, messageTrailer: MessageTrailer, dataSegments: List[Segment]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  21.  
  22.     buildMessageSrcContainers(key: Key, interchangeHeader, interchangeTrailer, messageHeader, messageTrailer) :::
  23.       buildEmaSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEMA](dataSegments)) :::
  24.       buildEmbSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEMB](dataSegments)) :::
  25.       buildEmcSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEMC](dataSegments)) :::
  26.       buildEmjSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEMJ](dataSegments)) :::
  27.       buildEmkSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEMK](dataSegments)) :::
  28.       buildEmdSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEMD](dataSegments)) :::
  29.       buildEmeSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEME](dataSegments)) :::
  30.       buildEmfSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEMF](dataSegments)) :::
  31.       buildEmgSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEMG](dataSegments)) :::
  32.       buildEmhSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEMH](dataSegments)) :::
  33.       buildEmiSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEMI](dataSegments))
  34.  
  35.   }
  36.  
  37.   def buildMessageSrcContainers(key: Key, header: InterchangeHeader, trailer: InterchangeTrailer, messageHeader: MessageHeader, messageTrailer: MessageTrailer): List[MessageContainer[_ <: SpecificRecordBase]] = {
  38.  
  39.     val SrcAvro =
  40.       List(
  41.         Emsevt_message_src.newBuilder()
  42.           .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  43.           .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  44.           .setCreationDate(key.payload.creationTime.getOrElse(""))
  45.           .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  46.           .setDeletedFlag(false)
  47.           .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  48.           .setSyntaxIdentifier(header.syntaxIdentifier)
  49.           .setSyntaxVersionNumber(stringToInt(header.syntaxVersionNumber))
  50.           .setSenderIdentification(header.senderIdentification)
  51.           .setSenderIdentificationCodeQualifier(header.senderIdentificationCodeQualifier)
  52.           .setRecipientIdentification(header.recipientIdentification)
  53.           .setRecipientIdentificationCodeQualifier(header.recipientIdentificationCodeQualifier)
  54.           .setDateOfPreparation(header.dateOfPreparation)
  55.           .setTimeOfPreparation(header.timeOfPreparation)
  56.           .setInterchangeControlReference(header.interchangeControlReference)
  57.           .setTestIndicator("")
  58.           .setMessageId(key.payload.msgId.getOrElse(""))
  59.           .setMessageType("")
  60.           .setMessageReferenceNumber(stringToInt(messageHeader.messageReferenceNumber))
  61.           .setMessageTypeIdentifier(messageHeader.messageTypeIdentifier)
  62.           .setMessageVersionNumber(stringToInt(messageHeader.messageVersionNumber))
  63.           .setMessageReleaseNumber(stringToInt(messageHeader.messageReleaseNumber))
  64.           .setControllingAgency(messageHeader.controllingAgency)
  65.           .setNumberOfSegmentsInTheMessage(stringToInt(messageTrailer.numberOfSegments))
  66.           .setInterchangeControlCount(stringToInt(trailer.interchangeControlCount))
  67.           .setDirectionCcode(key.payload.system.get("name"))
  68.           .build()
  69.           .pack(EMSEVTMessageTypes.emsevtMessageSrc))
  70.  
  71.     SrcAvro
  72.  
  73.   }
  74.  
  75.   def buildEmaSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEMA]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  76.  
  77.     val SrcAvro =
  78.       segment
  79.         .map( x =>
  80.           Emsevt_ema_src.newBuilder()
  81.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  82.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  83.             .setInterchangeDate(header.dateOfPreparation)
  84.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  85.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  86.             .setMessageId(key.payload.msgId.getOrElse(""))
  87.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  88.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  89.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  90.             .setOfficeOfOriginId("")
  91.             .setCustomersAccount("")
  92.             .setSendersPostcode("")
  93.             .setPlaceOfOrigin("")
  94.             .setAddresseePostcode(x.getAddresseePostcode)
  95.             .setPlaceOfDestination("")
  96.             .setItemDeliveryLocationType("")
  97.             .setDeliveryPointHouseIdentifier("")
  98.             .setDeliveryPointAddressLine1("")
  99.             .setDeliveryPointAddressLine2("")
  100.             .setSendersTelephone("")
  101.             .setSendersEmail("")
  102.             .setAddresseesName("")
  103.             .setAddresseesTelephone("")
  104.             .setAddresseesEmail("")
  105.             .setCollectionPostcode("")
  106.             .setNetworkEntryLocationType("")
  107.             .setItemLodgementMode("")
  108.             .setItemCategory("")
  109.             .setItemSubClass("")
  110.             .setItemHandlingClass("")
  111.             .setItemGrossWeight(null.asInstanceOf[Double])
  112.             .setItemNetWeight(null.asInstanceOf[Double])
  113.             .setItemVolume(null.asInstanceOf[Double])
  114.             .setPostageAmount(null.asInstanceOf[Double])
  115.             .setPostageCurrency("")
  116.             .setCustomerChargingArrangement("")
  117.             .setCodAmount(null.asInstanceOf[Double])
  118.             .setCodCurrency("")
  119.             .setCodBic("")
  120.             .setCodIban("")
  121.             .setMailSourceExport("")
  122.             .setItemOriginCountry(x.getItemOriginCountry)
  123.             .setItemDeliveryServiceType("")
  124.             .setConsumerRegistrationNumber("")
  125.             .setPickUpPointId("")
  126.             .setAddresseesLanguage("")
  127.             .setAlternativeDeliveryAddressLine1("")
  128.             .setAlternativeDeliveryAddressLine2("")
  129.             .setAlternativeDeliveryAddressHouseIdentifier("")
  130.             .setAlternativeDeliveryAddressPostcode("")
  131.             .setAlternativeDeliveryAddressCityTown("")
  132.             .setItemOriginOperator(x.getItemOriginOperator)
  133.             .setItemIdType(x.getItemIdType)
  134.             .setItemDestinationId("")
  135.             .setDirectionCcode(key.payload.system.get("name"))
  136.             .setDeletedFlag(false)
  137.             .build()
  138.             .pack(EMSEVTMessageTypes.emsevtEmaSrc))
  139.  
  140.     SrcAvro
  141.   }
  142.  
  143.   def buildEmbSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEMB]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  144.  
  145.     val SrcAvro =
  146.       segment
  147.         .map( x =>
  148.           Emsevt_emb_src.newBuilder()
  149.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  150.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  151.             .setInterchangeDate(header.dateOfPreparation)
  152.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  153.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  154.             .setDeletedFlag(false)
  155.             .setMessageId(key.payload.msgId.getOrElse(""))
  156.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  157.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  158.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  159.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  160.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  161.             .setOutwardOe(x.getOutwardOfEx)
  162.             .setAddresseePostcode("")
  163.             .setItemGrossWeight(null.asInstanceOf[Double])
  164.             .setPostageAmount(null.asInstanceOf[Double])
  165.             .setPostageCurrency("")
  166.             .setItemOriginCountry(x.getItemOriginCountry)
  167.             .setItemOriginOperator(x.getItemOriginOperator)
  168.             .setItemIdType(x.getItemIdType)
  169.             .setDirectionCcode(key.payload.system.get("name"))
  170.             .build()
  171.             .pack(EMSEVTMessageTypes.emsevtEmbSrc))
  172.  
  173.     SrcAvro
  174.  
  175.   }
  176.  
  177.   def buildEmcSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEMC]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  178.  
  179.     val SrcAvro =
  180.       segment
  181.         .map( x =>
  182.           Emsevt_emc_src.newBuilder()
  183.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  184.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  185.             .setInterchangeDate(header.dateOfPreparation)
  186.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  187.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  188.             .setDeletedFlag(false)
  189.             .setMessageId(key.payload.msgId.getOrElse(""))
  190.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  191.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  192.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  193.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  194.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  195.             .setOutwardOe(x.getOutwardOfEx)
  196.             .setDespatchNumber(x.getDespatchNumber)
  197.             .setDespatchAddress(x.getDespatchAddress)
  198.             .setExportReceptacleId("")
  199.             .setAddresseePostcode("")
  200.             .setItemCategory("")
  201.             .setItemSubClass("")
  202.             .setItemHandlingClass("")
  203.             .setItemGrossWeight(null.asInstanceOf[Double])
  204.             .setItemNetWeight(null.asInstanceOf[Double])
  205.             .setItemVolume(null.asInstanceOf[Double])
  206.             .setPostageAmount(null.asInstanceOf[Double])
  207.             .setPostageCurrency("")
  208.             .setMailSourceExport("")
  209.             .setItemReasonForReturn(null.asInstanceOf[Int])
  210.             .setExportFlowOrigin("")
  211.             .setItemOriginCountry(x.getItemOriginCountry)
  212.             .setItemOriginOperator(x.getItemOriginOperator)
  213.             .setItemIdType(x.getItemIdType)
  214.             .setItemDestinationId("")
  215.             .setAddresseesName("")
  216.             .setPlaceOfDestination("")
  217.             .setItemDeliveryLocationType("")
  218.             .setDeliveryPointHouseIdentifier("")
  219.             .setDeliveryPointAddressLine1("")
  220.             .setDeliveryPointAddressLine2("")
  221.             .setCustomerChargingArrangement("")
  222.             .setCodAmount(stringToDoubleTrimed(""))
  223.             .setCodCurrency("")
  224.             .setCodBic("")
  225.             .setCodIban("")
  226.             .setNetworkEntryLocationType("")
  227.             .setSendersTelephone("")
  228.             .setSendersEmail("")
  229.             .setAddresseesTelephone("")
  230.             .setAddresseesEmail("")
  231.             .setAddresseesLanguage("")
  232.             .setItemDeliveryServiceType("")
  233.             .setConsumerRegistrationNumber("")
  234.             .setPickUpPointId("")
  235.             .setAlternativeDeliveryAddressLine1("")
  236.             .setAlternativeDeliveryAddressLine2("")
  237.             .setAlternativeDeliveryAddressHouseIdentifier("")
  238.             .setAlternativeDeliveryAddressPostcode("")
  239.             .setAlternativeDeliveryAddressCityTown("")
  240.             .setDirectionCcode(key.payload.system.get("name"))
  241.             .build()
  242.             .pack(EMSEVTMessageTypes.emsevtEmcSrc))
  243.  
  244.     SrcAvro
  245.  
  246.   }
  247.  
  248.   def buildEmjSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEMJ]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  249.  
  250.     val SrcAvro =
  251.       segment
  252.         .map( x =>
  253.           Emsevt_emj_src.newBuilder()
  254.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  255.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  256.             .setInterchangeDate(header.dateOfPreparation)
  257.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  258.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  259.             .setDeletedFlag(false)
  260.             .setMessageId(key.payload.msgId.getOrElse(""))
  261.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  262.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  263.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  264.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  265.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  266.             .setTransitOe(x.getTransitOfEx)
  267.             .setDespatchingOe(x.getDespatchingOfEx)
  268.             .setReceivedDespatch(x.getReceivedDespatch)
  269.             .setTransitImportReceptacleId("")
  270.             .setTransitArrivalStatus("")
  271.             .setTransitArrivalItemDirection("")
  272.             .setItemOriginCountry(x.getItemOriginCountry)
  273.             .setItemOriginOperator(x.getItemOriginOperator)
  274.             .setItemIdType(x.getItemIdType)
  275.             .setDirectionCcode(key.payload.system.get("name"))
  276.             .build()
  277.             .pack(EMSEVTMessageTypes.emsevtEmjSrc))
  278.  
  279.     SrcAvro
  280.  
  281.   }
  282.  
  283.   def buildEmkSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEMK]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  284.  
  285.     val SrcAvro =
  286.       segment
  287.         .map( x =>
  288.           Emsevt_emk_src.newBuilder()
  289.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  290.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  291.             .setInterchangeDate(header.dateOfPreparation)
  292.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  293.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  294.             .setDeletedFlag(false)
  295.             .setMessageId(key.payload.msgId.getOrElse(""))
  296.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  297.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  298.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  299.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  300.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  301.             .setTransitOe(x.getTransitOfEx)
  302.             .setTransitDespNumber(x.getTransitDespatchNumber)
  303.             .setTransitDespAddress(x.getTransitDespatchAddress)
  304.             .setTransitExportReceptacleId("")
  305.             .setTransitArrivalItemDirection("")
  306.             .setExportFlowTransit("")
  307.             .setItemGrossWeight(null.asInstanceOf[Double])
  308.             .setItemOriginCountry(x.getItemOriginCountry)
  309.             .setItemOriginOperator(x.getItemOriginOperator)
  310.             .setItemIdType(x.getItemIdType)
  311.             .setDirectionCcode(key.payload.system.get("name"))
  312.             .build()
  313.             .pack(EMSEVTMessageTypes.emsevtEmkSrc))
  314.  
  315.     SrcAvro
  316.  
  317.   }
  318.  
  319.   def buildEmdSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEMD]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  320.  
  321.     val SrcAvro =
  322.       segment
  323.         .map( x =>
  324.           Emsevt_emd_src.newBuilder()
  325.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  326.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  327.             .setInterchangeDate(header.dateOfPreparation)
  328.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  329.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  330.             .setDeletedFlag(false)
  331.             .setMessageId(key.payload.msgId.getOrElse(""))
  332.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  333.             .setIdestinationCountry(Option(x.getDestination).getOrElse(""))
  334.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  335.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  336.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  337.             .setReceivingOe(x.getReceivingOfEx)
  338.             .setDespatchingOe(x.getDespatchingOfEx)
  339.             .setReceivedDespatch(x.getReceivedDespatch)
  340.             .setImportReceptacleId("")
  341.             .setDestinationArrivalStatus("")
  342.             .setItemCategory("")
  343.             .setItemSubClass("")
  344.             .setItemHandlingClass("")
  345.             .setMailSourceImport("")
  346.             .setItemGrossWeightUponReceive(null.asInstanceOf[Double])
  347.             .setItemNetWeightUponReceive(null.asInstanceOf[Double])
  348.             .setItemVolumeUponReceive(null.asInstanceOf[Double])
  349.             .setImportCustomsFacilityType("")
  350.             .setNextProcessingPointId("")
  351.             .setNextProcessingPointType("")
  352.             .setNextProcessingPointPostcode("")
  353.             .setAddresseePostcode("")
  354.             .setItemDeliveryType("")
  355.             .setItemOriginCountry(x.getItemOriginCountry)
  356.             .setItemOriginOperator(x.getItemOriginOperator)
  357.             .setItemIdType(x.getItemIdType)
  358.             .setDirectionCcode(key.payload.system.get("name"))
  359.             .build()
  360.             .pack(EMSEVTMessageTypes.emsevtEmdSrc))
  361.  
  362.     SrcAvro
  363.  
  364.   }
  365.  
  366.   def buildEmeSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEME]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  367.  
  368.     val SrcAvro =
  369.       segment
  370.         .map( x =>
  371.           Emsevt_eme_src.newBuilder()
  372.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  373.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  374.             .setInterchangeDate(header.dateOfPreparation)
  375.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  376.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  377.             .setDeletedFlag(false)
  378.             .setMessageId(key.payload.msgId.getOrElse(""))
  379.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  380.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  381.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  382.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  383.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  384.             .setReceivingOe(x.getReceivingOfEx)
  385.             .setImportCustomsOfficeId("")
  386.             .setImportCustomsFacilityType("")
  387.             .setImportCustomsRetentionReason(null.asInstanceOf[Int])
  388.             .setItemOriginCountry(x.getItemOriginCountry)
  389.             .setItemOriginOperator(x.getItemOriginOperator)
  390.             .setItemIdType(x.getItemIdType)
  391.             .setDirectionCcode(key.payload.system.get("name"))
  392.             .build()
  393.             .pack(EMSEVTMessageTypes.emsevtEmeSrc))
  394.  
  395.     SrcAvro
  396.  
  397.   }
  398.  
  399.   def buildEmfSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEMF]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  400.  
  401.     val SrcAvro =
  402.       segment
  403.         .map( x =>
  404.           Emsevt_emf_src.newBuilder()
  405.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  406.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  407.             .setInterchangeDate(header.dateOfPreparation)
  408.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  409.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  410.             .setDeletedFlag(false)
  411.             .setMessageId(key.payload.msgId.getOrElse(""))
  412.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  413.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  414.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  415.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  416.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  417.             .setInwardOe("")
  418.             .setDutiableIndicator(x.getDutiableIndicator)
  419.             .setImportCustomsFacilityType("")
  420.             .setNextProcessingPointId("")
  421.             .setNextProcessingPointType("")
  422.             .setNextProcessingPointPostcode("")
  423.             .setAddresseePostcode("")
  424.             .setItemOriginCountry(x.getItemOriginCountry)
  425.             .setItemOriginOperator(x.getItemOriginOperator)
  426.             .setItemIdType(x.getItemIdType)
  427.             .setDirectionCcode(key.payload.system.get("name"))
  428.             .build()
  429.             .pack(EMSEVTMessageTypes.emsevtEmfSrc))
  430.  
  431.     SrcAvro
  432.  
  433.   }
  434.  
  435.   def buildEmgSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEMG]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  436.  
  437.     val SrcAvro =
  438.       segment
  439.         .map( x =>
  440.           Emsevt_emg_src.newBuilder()
  441.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  442.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  443.             .setInterchangeDate(header.dateOfPreparation)
  444.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  445.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  446.             .setDeletedFlag(false)
  447.             .setMessageId(key.payload.msgId.getOrElse(""))
  448.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  449.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  450.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  451.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  452.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  453.             .setDeliveryOfficeId("")
  454.             .setDeliveryPostcode("")
  455.             .setItemOriginCountry(x.getItemOriginCountry)
  456.             .setItemOriginOperator(x.getItemOriginOperator)
  457.             .setItemIdType(x.getItemIdType)
  458.             .setDirectionCcode(key.payload.system.get("name"))
  459.             .build()
  460.             .pack(EMSEVTMessageTypes.emsevtEmgSrc))
  461.  
  462.     SrcAvro
  463.  
  464.   }
  465.  
  466.   def buildEmhSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEMH]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  467.  
  468.     val SrcAvro =
  469.       segment
  470.         .map( x =>
  471.           Emsevt_emh_src.newBuilder()
  472.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  473.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  474.             .setInterchangeDate(header.dateOfPreparation)
  475.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  476.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  477.             .setDeletedFlag(false)
  478.             .setMessageId(key.payload.msgId.getOrElse(""))
  479.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  480.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  481.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  482.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  483.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  484.             .setDeliveryOfficeId("")
  485.             .setUnsuccessfulDeliveryActionTaken("")
  486.             .setUnsuccessfulDeliveryReason(null.asInstanceOf[Int])
  487.             .setUnsuccessfulDeliveryCode("")
  488.             .setItemRefusalNameSignatory("")
  489.             .setAttemptedDeliveryLocation("")
  490.             .setNextProcessingPointId("")
  491.             .setNextProcessingPointType("")
  492.             .setNextProcessingPointPostcode("")
  493.             .setItemOriginCountry(x.getItemOriginCountry)
  494.             .setItemOriginOperator(x.getItemOriginOperator)
  495.             .setItemIdType(x.getItemIdType)
  496.             .setDirectionCcode(key.payload.system.get("name"))
  497.             .build()
  498.             .pack(EMSEVTMessageTypes.emsevtEmhSrc))
  499.  
  500.     SrcAvro
  501.  
  502.   }
  503.  
  504.   def buildEmiSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEMI]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  505.  
  506.     val SrcAvro =
  507.       segment
  508.         .map( x =>
  509.           Emsevt_emi_src.newBuilder()
  510.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  511.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  512.             .setInterchangeDate(header.dateOfPreparation)
  513.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  514.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  515.             .setDeletedFlag(false)
  516.             .setMessageId(key.payload.msgId.getOrElse(""))
  517.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  518.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  519.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  520.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  521.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  522.             .setDeliveryOfficeId("")
  523.             .setSignatoryName("")
  524.             .setDeliveryLocation("")
  525.             .setRecipientAddresseeRelationship("")
  526.             .setItemOriginCountry(x.getItemOriginCountry)
  527.             .setItemOriginOperator(x.getItemOriginOperator)
  528.             .setItemIdType(x.getItemIdType)
  529.             .setDirectionCcode(key.payload.system.get("name"))
  530.             .build()
  531.             .pack(EMSEVTMessageTypes.emsevtEmiSrc))
  532.  
  533.     SrcAvro
  534.  
  535.   }
  536.  
  537. }
  538.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement