Advertisement
KerrySwan

BuildV3

Jul 11th, 2021
1,295
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 55.57 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.{InterchangeHeader, InterchangeTrailer, MessageHeader, MessageTrailer}
  6. import ru.russianpost.dc.convert.emsevt.utils.Utils.{ZonedToLocalDtString, dateTimeFormat, stringToDoubleTrimed}
  7. import ru.russianpost.dc.emsevt._
  8. import ru.russianpost.dc.model.MessageContainer
  9. import ru.russianpost.dc.model.topic_names.EMSEVTMessageTypes
  10. import ru.russianpost.dc.util.nowDT
  11. import ru.russianpost.tracking.commons.upu.emsevt.segments.Segment
  12. import ru.russianpost.tracking.commons.upu.emsevt.segments.v3._
  13. import ru.russianpost.dc.convert.emsevt.utils.Utils._
  14. import ru.russianpost.dc.utils.RichSpecificRecordBase._
  15.  
  16. class BuildV3 {
  17.  
  18.   def build(key: Key, interchangeHeader: InterchangeHeader, interchangeTrailer: InterchangeTrailer,
  19.             messageHeader: MessageHeader, messageTrailer: MessageTrailer, dataSegments: List[Segment]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  20.  
  21.     buildMessageSrcContainers(key: Key, interchangeHeader, interchangeTrailer, messageHeader, messageTrailer) :::
  22.     buildEmaSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEMA](dataSegments)) :::
  23.     buildEmbSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEMB](dataSegments)) :::
  24.     buildExaSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEXA](dataSegments)) :::
  25.     buildExbSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEXB](dataSegments)) :::
  26.     buildExcSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEXC](dataSegments)) :::
  27.     buildExdSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEXD](dataSegments)) :::
  28.     buildExxSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEXX](dataSegments)) :::
  29.     buildEmcSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEMC](dataSegments)) :::
  30.     buildEmjSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEMJ](dataSegments)) :::
  31.     buildEmkSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEMK](dataSegments)) :::
  32.     buildEmdSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEMD](dataSegments)) :::
  33.     buildEdbSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEDB](dataSegments)) :::
  34.     buildEmeSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEME](dataSegments)) :::
  35.     buildEdcSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEDC](dataSegments)) :::
  36.     buildEmfSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEMF](dataSegments)) :::
  37.     buildEddSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEDD](dataSegments)) :::
  38.     buildEdeSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEDE](dataSegments)) :::
  39.     buildEmgSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEMG](dataSegments)) :::
  40.     buildEdfSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEDF](dataSegments)) :::
  41.     buildEdgSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEDG](dataSegments)) :::
  42.     buildEdhSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEDH](dataSegments)) :::
  43.     buildEdxSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEDX](dataSegments)) :::
  44.     buildEmhSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEMH](dataSegments)) :::
  45.     buildEmiSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEMI](dataSegments)) :::
  46.     buildEdaSrcContainers(key,interchangeHeader, getSegmentsOfType[SegmentEDA](dataSegments))
  47.  
  48.   }
  49.  
  50.   def buildMessageSrcContainers(key: Key, header: InterchangeHeader, trailer: InterchangeTrailer, messageHeader: MessageHeader, messageTrailer: MessageTrailer): List[MessageContainer[_ <: SpecificRecordBase]] = {
  51.  
  52.     val SrcAvro =
  53.       List(
  54.           Emsevt_message_src.newBuilder()
  55.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  56.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  57.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  58.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  59.             .setDeletedFlag(false)
  60.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  61.             .setSyntaxIdentifier(header.syntaxIdentifier)
  62.             .setSyntaxVersionNumber(stringToInt(header.syntaxVersionNumber))
  63.             .setSenderIdentification(header.senderIdentification)
  64.             .setSenderIdentificationCodeQualifier(header.senderIdentificationCodeQualifier)
  65.             .setRecipientIdentification(header.recipientIdentification)
  66.             .setRecipientIdentificationCodeQualifier(header.recipientIdentificationCodeQualifier)
  67.             .setDateOfPreparation(header.dateOfPreparation)
  68.             .setTimeOfPreparation(header.timeOfPreparation)
  69.             .setInterchangeControlReference(header.interchangeControlReference)
  70.             .setTestIndicator("")
  71.             .setMessageId(key.payload.msgId.getOrElse(""))
  72.             .setMessageType("")
  73.             .setMessageReferenceNumber(stringToInt(messageHeader.messageReferenceNumber))
  74.             .setMessageTypeIdentifier(messageHeader.messageTypeIdentifier)
  75.             .setMessageVersionNumber(stringToInt(messageHeader.messageVersionNumber))
  76.             .setMessageReleaseNumber(stringToInt(messageHeader.messageReleaseNumber))
  77.             .setControllingAgency(messageHeader.controllingAgency)
  78.             .setNumberOfSegmentsInTheMessage(stringToInt(messageTrailer.numberOfSegments))
  79.             .setInterchangeControlCount(stringToInt(trailer.interchangeControlCount))
  80.             .setDirectionCcode(key.payload.system.get("name"))
  81.           .build()
  82.           .pack(EMSEVTMessageTypes.emsevtMessageSrc))
  83.  
  84.     SrcAvro
  85.  
  86.   }
  87.  
  88.   def buildEmaSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEMA]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  89.  
  90.     val SrcAvro =
  91.       segment
  92.         .map( x =>
  93.           Emsevt_ema_src.newBuilder()
  94.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  95.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  96.             .setInterchangeDate(header.dateOfPreparation)
  97.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  98.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  99.             .setMessageId(key.payload.msgId.getOrElse(""))
  100.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  101.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  102.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  103.             .setOfficeOfOriginId(x.getOfficeOfOriginId)
  104.             .setCustomersAccount(x.getCustomerAccount)
  105.             .setSendersPostcode(x.getSenderPostcode)
  106.             .setPlaceOfOrigin(x.getPlaceOfOrigin)
  107.             .setAddresseePostcode(x.getAddresseePostcode)
  108.             .setPlaceOfDestination(x.getPlaceOfDestination)
  109.             .setItemDeliveryLocationType(x.getItemDeliveryLocationType)
  110.             .setDeliveryPointHouseIdentifier(x.getDeliveryPointHouseIdentifier)
  111.             .setDeliveryPointAddressLine1(x.getDeliveryPointAddressLine1)
  112.             .setDeliveryPointAddressLine2(x.getDeliveryPointAddressLine2)
  113.             .setSendersTelephone(x.getSenderTelephone)
  114.             .setSendersEmail(x.getSenderEmail)
  115.             .setAddresseesName(x.getAddresseeName)
  116.             .setAddresseesTelephone(x.getAddresseeTelephone)
  117.             .setAddresseesEmail(x.getAddresseeEmail)
  118.             .setCollectionPostcode(x.getCollectionPostcode)
  119.             .setNetworkEntryLocationType(x.getNetworkEntryLocationType)
  120.             .setItemLodgementMode(x.getItemLodgementMode)
  121.             .setItemCategory(x.getItemCategory)
  122.             .setItemSubClass(x.getItemSubClass)
  123.             .setItemHandlingClass(x.getItemHandlingClass)
  124.             .setItemGrossWeight(stringToDoubleTrimed(x.getItemGrossWeight))
  125.             .setItemNetWeight(stringToDoubleTrimed(x.getItemNetWeight))
  126.             .setItemVolume(stringToDoubleTrimed(x.getItemVolume))
  127.             .setPostageAmount(stringToDoubleTrimed(x.getPostageAmount))
  128.             .setPostageCurrency(x.getPostageCurrency)
  129.             .setCustomerChargingArrangement(x.getCustomerChargingArrangement)
  130.             .setCodAmount(stringToDoubleTrimed(x.getCodAmount))
  131.             .setCodCurrency(x.getCodCurrency)
  132.             .setCodBic(x.getCodBic)
  133.             .setCodIban(x.getCodIban)
  134.             .setMailSourceExport(x.getMailSourceExport)
  135.             .setItemOriginCountry(x.getItemOriginCountry)
  136.             .setItemDeliveryServiceType(x.getItemDeliveryServiceType)
  137.             .setConsumerRegistrationNumber(x.getConsumerRegistrationNumber)
  138.             .setPickUpPointId(x.getPickUpPointId)
  139.             .setAddresseesLanguage(x.getAddresseeLanguage)
  140.             .setAlternativeDeliveryAddressLine1(x.getAlternativeDeliveryAddressLine1)
  141.             .setAlternativeDeliveryAddressLine2(x.getAlternativeDeliveryAddressLine2)
  142.             .setAlternativeDeliveryAddressHouseIdentifier(x.getAlternativeDeliveryAddressHouseIdentifier)
  143.             .setAlternativeDeliveryAddressPostcode(x.getAlternativeDeliveryAddressPostcode)
  144.             .setAlternativeDeliveryAddressCityTown(x.getAlternativeDeliveryAddressCityTown)
  145.             .setItemOriginOperator(x.getItemOriginOperator)
  146.             .setItemIdType(x.getItemIdType)
  147.             .setItemDestinationId(x.getItemDestinationId)
  148.             .setDirectionCcode(key.payload.system.get("name"))
  149.             .setDeletedFlag(false)
  150.           .build()
  151.           .pack(EMSEVTMessageTypes.emsevtEmaSrc))
  152.  
  153.     SrcAvro
  154.   }
  155.  
  156.   def buildEmbSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEMB]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  157.  
  158.     val SrcAvro =
  159.       segment
  160.         .map( x =>
  161.           Emsevt_emb_src.newBuilder()
  162.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  163.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  164.             .setInterchangeDate(header.dateOfPreparation)
  165.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  166.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  167.             .setDeletedFlag(false)
  168.             .setMessageId(key.payload.msgId.getOrElse(""))
  169.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  170.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  171.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  172.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  173.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  174.             .setOutwardOe(x.getOutwardOfEx)
  175.             .setAddresseePostcode(x.getAddresseePostcode)
  176.             .setItemGrossWeight(stringToDoubleTrimed(x.getItemGrossWeight))
  177.             .setPostageAmount(stringToDoubleTrimed(x.getPostageAmount))
  178.             .setPostageCurrency(x.getPostageCurrency)
  179.             .setItemOriginCountry(x.getItemOriginCountry)
  180.             .setItemOriginOperator(x.getItemOriginOperator)
  181.             .setItemIdType(x.getItemIdType)
  182.             .setDirectionCcode(key.payload.system.get("name"))
  183.           .build()
  184.           .pack(EMSEVTMessageTypes.emsevtEmbSrc))
  185.  
  186.     SrcAvro
  187.  
  188.   }
  189.  
  190.   def buildExaSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEXA]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  191.  
  192.     val SrcAvro =
  193.       segment
  194.         .map( x =>
  195.           Emsevt_exa_src.newBuilder()
  196.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  197.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  198.             .setInterchangeDate(header.dateOfPreparation)
  199.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  200.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  201.             .setDeletedFlag(false)
  202.             .setMessageId(key.payload.msgId.getOrElse(""))
  203.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  204.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  205.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  206.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  207.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  208.             .setExportCustomsOfficeId(x.getExportCustomsOfficeId)
  209.             .setItemOriginCountry(x.getItemOriginCountry)
  210.             .setItemOriginOperator(x.getItemOriginOperator)
  211.             .setItemIdType(x.getItemIdType)
  212.             .setDirectionCcode(key.payload.system.get("name"))
  213.           .build()
  214.           .pack(EMSEVTMessageTypes.emsevtExaSrc))
  215.  
  216.     SrcAvro
  217.  
  218.   }
  219.  
  220.   def buildExbSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEXB]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  221.  
  222.     val SrcAvro =
  223.       segment
  224.         .map( x =>
  225.           Emsevt_exb_src.newBuilder()
  226.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  227.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  228.             .setInterchangeDate(header.dateOfPreparation)
  229.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  230.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  231.             .setDeletedFlag(false)
  232.             .setMessageId(key.payload.msgId.getOrElse(""))
  233.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  234.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  235.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  236.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  237.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  238.             .setExportCustomsOfficeId(x.getExportCustomsOfficeId)
  239.             .setExportCustomsRetentionReason(stringToInt(x.getExportCustomsRetentionReason))
  240.             .setItemOriginCountry(x.getItemOriginCountry)
  241.             .setItemOriginOperator(x.getItemOriginOperator)
  242.             .setItemIdType(x.getItemIdType)
  243.             .setDirectionCcode(key.payload.system.get("name"))
  244.           .build()
  245.           .pack(EMSEVTMessageTypes.emsevtExbSrc))
  246.  
  247.     SrcAvro
  248.  
  249.   }
  250.  
  251.   def buildExcSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEXC]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  252.  
  253.     val SrcAvro =
  254.       segment
  255.         .map( x =>
  256.           Emsevt_exc_src.newBuilder()
  257.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  258.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  259.             .setInterchangeDate(header.dateOfPreparation)
  260.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  261.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  262.             .setDeletedFlag(false)
  263.             .setMessageId(key.payload.msgId.getOrElse(""))
  264.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  265.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  266.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  267.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  268.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  269.             .setExportCustomsOfficeId(x.getExportCustomsOfficeId)
  270.             .setExportCustomsReleaseStatus(x.getExportCustomsReleaseStatus)
  271.             .setItemOriginCountry(x.getItemOriginCountry)
  272.             .setItemOriginOperator(x.getItemOriginOperator)
  273.             .setItemIdType(x.getItemIdType)
  274.             .setDirectionCcode(key.payload.system.get("name"))
  275.           .build()
  276.           .pack(EMSEVTMessageTypes.emsevtExcSrc))
  277.  
  278.     SrcAvro
  279.  
  280.   }
  281.  
  282.   def buildExdSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEXD]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  283.  
  284.     val SrcAvro =
  285.       segment
  286.         .map( x =>
  287.           Emsevt_exd_src.newBuilder()
  288.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  289.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  290.             .setInterchangeDate(header.dateOfPreparation)
  291.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  292.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  293.             .setDeletedFlag(false)
  294.             .setMessageId(key.payload.msgId.getOrElse(""))
  295.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  296.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  297.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  298.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  299.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  300.             .setOutwardOe(x.getOutwardOfEx)
  301.             .setOutwardOeActionTaken(x.getOutwardOfExActionTaken)
  302.             .setOutwardOeReasonHeld(stringToInt(x.getOutwardOfExReasonHeld))
  303.             .setItemOriginCountry(x.getItemOriginCountry)
  304.             .setItemOriginOperator(x.getItemOriginOperator)
  305.             .setItemIdType(x.getItemIdType)
  306.             .setDirectionCcode(key.payload.system.get("name"))
  307.           .build()
  308.           .pack(EMSEVTMessageTypes.emsevtExdSrc))
  309.  
  310.     SrcAvro
  311.  
  312.   }
  313.  
  314.   def buildExxSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEXX]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  315.  
  316.     val SrcAvro =
  317.       segment
  318.         .map( x =>
  319.           Emsevt_exx_src.newBuilder()
  320.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  321.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  322.             .setInterchangeDate(header.dateOfPreparation)
  323.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  324.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  325.             .setDeletedFlag(false)
  326.             .setMessageId(key.payload.msgId.getOrElse(""))
  327.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  328.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  329.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  330.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  331.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  332.             .setExportCancellationReason(stringToInt(x.getExportCancellationReason))
  333.             .setItemOriginCountry(x.getItemOriginCountry)
  334.             .setItemOriginOperator(x.getItemOriginOperator)
  335.             .setItemIdType(x.getItemIdType)
  336.             .setDirectionCcode(key.payload.system.get("name"))
  337.           .build()
  338.           .pack(EMSEVTMessageTypes.emsevtExxSrc))
  339.  
  340.     SrcAvro
  341.  
  342.   }
  343.  
  344.   def buildEmcSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEMC]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  345.  
  346.     val SrcAvro =
  347.       segment
  348.         .map( x =>
  349.           Emsevt_emc_src.newBuilder()
  350.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  351.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  352.             .setInterchangeDate(header.dateOfPreparation)
  353.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  354.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  355.             .setDeletedFlag(false)
  356.             .setMessageId(key.payload.msgId.getOrElse(""))
  357.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  358.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  359.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  360.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  361.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  362.             .setOutwardOe(x.getOutwardOfEx)
  363.             .setDespatchNumber(x.getDespatchNumber)
  364.             .setDespatchAddress(x.getDespatchAddress)
  365.             .setExportReceptacleId(x.getExportReceptacleId)
  366.             .setAddresseePostcode(x.getAddresseePostcode)
  367.             .setItemCategory(x.getItemCategory)
  368.             .setItemSubClass(x.getItemSubClass)
  369.             .setItemHandlingClass(x.getItemHandlingClass)
  370.             .setItemGrossWeight(stringToDoubleTrimed(x.getItemGrossWeight))
  371.             .setItemNetWeight(stringToDoubleTrimed(x.getItemNetWeight))
  372.             .setItemVolume(stringToDoubleTrimed(x.getItemVolume))
  373.             .setPostageAmount(stringToDoubleTrimed(x.getPostageAmount))
  374.             .setPostageCurrency(x.getPostageCurrency)
  375.             .setMailSourceExport(x.getMailSourceExport)
  376.             .setItemReasonForReturn(stringToInt(x.getItemReasonForReturn))
  377.             .setExportFlowOrigin(x.getExportFlowOrigin)
  378.             .setItemOriginCountry(x.getItemOriginCountry)
  379.             .setItemOriginOperator(x.getItemOriginOperator)
  380.             .setItemIdType(x.getItemIdType)
  381.             .setItemDestinationId(x.getItemDestinationId)
  382.             .setAddresseesName(x.getAddresseeName)
  383.             .setPlaceOfDestination(x.getPlaceOfDestination)
  384.             .setItemDeliveryLocationType(x.getItemDeliveryLocationType)
  385.             .setDeliveryPointHouseIdentifier(x.getDeliveryPointHouseIdentifier)
  386.             .setDeliveryPointAddressLine1(x.getDeliveryPointAddressLine1)
  387.             .setDeliveryPointAddressLine2(x.getDeliveryPointAddressLine2)
  388.             .setCustomerChargingArrangement(x.getCustomerChargingArrangement)
  389.             .setCodAmount(stringToDoubleTrimed(x.getCodAmount))
  390.             .setCodCurrency(x.getCodCurrency)
  391.             .setCodBic(x.getCodBic)
  392.             .setCodIban(x.getCodIban)
  393.             .setNetworkEntryLocationType(x.getNetworkEntryLocationType)
  394.             .setSendersTelephone(x.getSenderTelephone)
  395.             .setSendersEmail(x.getSenderEmail)
  396.             .setAddresseesTelephone(x.getAddresseeTelephone)
  397.             .setAddresseesEmail(x.getAddresseeEmail)
  398.             .setAddresseesLanguage(x.getAddresseeLanguage)
  399.             .setItemDeliveryServiceType(x.getItemDeliveryServiceType)
  400.             .setConsumerRegistrationNumber(x.getConsumerRegistrationNumber)
  401.             .setPickUpPointId(x.getPickUpPointId)
  402.             .setAlternativeDeliveryAddressLine1(x.getAlternativeDeliveryAddressLine1)
  403.             .setAlternativeDeliveryAddressLine2(x.getAlternativeDeliveryAddressLine2)
  404.             .setAlternativeDeliveryAddressHouseIdentifier(x.getAlternativeDeliveryAddressHouseIdentifier)
  405.             .setAlternativeDeliveryAddressPostcode(x.getAlternativeDeliveryAddressPostcode)
  406.             .setAlternativeDeliveryAddressCityTown(x.getAlternativeDeliveryAddressCityTown)
  407.             .setDirectionCcode(key.payload.system.get("name"))
  408.           .build()
  409.           .pack(EMSEVTMessageTypes.emsevtEmcSrc))
  410.  
  411.     SrcAvro
  412.  
  413.   }
  414.  
  415.   def buildEmjSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEMJ]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  416.  
  417.     val SrcAvro =
  418.       segment
  419.         .map( x =>
  420.           Emsevt_emj_src.newBuilder()
  421.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  422.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  423.             .setInterchangeDate(header.dateOfPreparation)
  424.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  425.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  426.             .setDeletedFlag(false)
  427.             .setMessageId(key.payload.msgId.getOrElse(""))
  428.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  429.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  430.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  431.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  432.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  433.             .setTransitOe(x.getTransitOfEx)
  434.             .setDespatchingOe(x.getDespatchingOfEx)
  435.             .setReceivedDespatch(x.getReceivedDespatch)
  436.             .setTransitImportReceptacleId(x.getTransitImportReceptacleId)
  437.             .setTransitArrivalStatus(x.getTransitArrivalStatus)
  438.             .setTransitArrivalItemDirection(x.getTransitArrivalStatus)
  439.             .setItemOriginCountry(x.getItemOriginCountry)
  440.             .setItemOriginOperator(x.getItemOriginOperator)
  441.             .setItemIdType(x.getItemIdType)
  442.             .setDirectionCcode(key.payload.system.get("name"))
  443.           .build()
  444.           .pack(EMSEVTMessageTypes.emsevtEmjSrc))
  445.  
  446.     SrcAvro
  447.  
  448.   }
  449.  
  450.   def buildEmkSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEMK]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  451.  
  452.     val SrcAvro =
  453.       segment
  454.         .map( x =>
  455.           Emsevt_emk_src.newBuilder()
  456.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  457.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  458.             .setInterchangeDate(header.dateOfPreparation)
  459.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  460.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  461.             .setDeletedFlag(false)
  462.             .setMessageId(key.payload.msgId.getOrElse(""))
  463.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  464.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  465.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  466.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  467.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  468.             .setTransitOe(x.getTransitOfEx)
  469.             .setTransitDespNumber(x.getTransitDespatchNumber)
  470.             .setTransitDespAddress(x.getTransitDespatchAddress)
  471.             .setTransitExportReceptacleId(x.getTransitExportReceptacleId)
  472.             .setTransitArrivalItemDirection(x.getTransitArrivalItemDirection)
  473.             .setExportFlowTransit(x.getExportFlowTransit)
  474.             .setItemGrossWeight(stringToDoubleTrimed(x.getItemGrossWeight))
  475.             .setItemOriginCountry(x.getItemOriginCountry)
  476.             .setItemOriginOperator(x.getItemOriginOperator)
  477.             .setItemIdType(x.getItemIdType)
  478.             .setDirectionCcode(key.payload.system.get("name"))
  479.           .build()
  480.           .pack(EMSEVTMessageTypes.emsevtEmkSrc))
  481.  
  482.     SrcAvro
  483.  
  484.   }
  485.  
  486.   def buildEmdSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEMD]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  487.  
  488.     val SrcAvro =
  489.       segment
  490.         .map( x =>
  491.           Emsevt_emd_src.newBuilder()
  492.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  493.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  494.             .setInterchangeDate(header.dateOfPreparation)
  495.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  496.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  497.             .setDeletedFlag(false)
  498.             .setMessageId(key.payload.msgId.getOrElse(""))
  499.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  500.             .setIdestinationCountry(Option(x.getDestination).getOrElse(""))
  501.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  502.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  503.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  504.             .setReceivingOe(x.getReceivingOfEx)
  505.             .setDespatchingOe(x.getDespatchingOfEx)
  506.             .setReceivedDespatch(x.getReceivedDespatch)
  507.             .setImportReceptacleId(x.getImportReceptacleId)
  508.             .setDestinationArrivalStatus(x.getDestinationArrivalStatus)
  509.             .setItemCategory(x.getItemCategory)
  510.             .setItemSubClass(x.getItemSubClass)
  511.             .setItemHandlingClass(x.getItemHandlingClass)
  512.             .setMailSourceImport(x.getMailSourceImport)
  513.             .setItemGrossWeightUponReceive(stringToDoubleTrimed(x.getItemGrossWeightUponReceive))
  514.             .setItemNetWeightUponReceive(stringToDoubleTrimed(x.getItemNetWeightUponReceive))
  515.             .setItemVolumeUponReceive(stringToDoubleTrimed(x.getItemVolumeUponReceive))
  516.             .setImportCustomsFacilityType(x.getImportCustomsFacilityType)
  517.             .setNextProcessingPointId(x.getNextProcessingPointId)
  518.             .setNextProcessingPointType(x.getNextProcessingPointType)
  519.             .setNextProcessingPointPostcode(x.getNextProcessingPointPostcode)
  520.             .setAddresseePostcode(x.getAddresseePostcode)
  521.             .setItemDeliveryType(x.getItemDeliveryType)
  522.             .setItemOriginCountry(x.getItemOriginCountry)
  523.             .setItemOriginOperator(x.getItemOriginOperator)
  524.             .setItemIdType(x.getItemIdType)
  525.             .setDirectionCcode(key.payload.system.get("name"))
  526.           .build()
  527.           .pack(EMSEVTMessageTypes.emsevtEmdSrc))
  528.  
  529.     SrcAvro
  530.  
  531.   }
  532.  
  533.   def buildEdbSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEDB]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  534.  
  535.     val SrcAvro =
  536.       segment
  537.         .map( x =>
  538.           Emsevt_edb_src.newBuilder()
  539.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  540.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  541.             .setInterchangeDate(header.dateOfPreparation)
  542.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  543.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  544.             .setDeletedFlag(false)
  545.             .setMessageId(key.payload.msgId.getOrElse(""))
  546.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  547.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  548.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  549.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  550.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  551.             .setReceivingOe(x.getReceivingOfEx)
  552.             .setImportCustomsOfficeId(x.getImportCustomsOfficeId)
  553.             .setImportCustomsFacilityType(x.getImportCustomsFacilityType)
  554.             .setItemOriginCountry(x.getItemOriginCountry)
  555.             .setItemOriginOperator(x.getItemOriginOperator)
  556.             .setItemIdType(x.getItemIdType)
  557.             .setDirectionCcode(key.payload.system.get("name"))
  558.           .build()
  559.           .pack(EMSEVTMessageTypes.emsevtEdbSrc))
  560.  
  561.     SrcAvro
  562.  
  563.   }
  564.  
  565.   def buildEmeSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEME]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  566.  
  567.     val SrcAvro =
  568.       segment
  569.         .map( x =>
  570.           Emsevt_eme_src.newBuilder()
  571.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  572.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  573.             .setInterchangeDate(header.dateOfPreparation)
  574.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  575.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  576.             .setDeletedFlag(false)
  577.             .setMessageId(key.payload.msgId.getOrElse(""))
  578.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  579.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  580.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  581.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  582.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  583.             .setReceivingOe(x.getReceivingOfEx)
  584.             .setImportCustomsOfficeId(x.getImportCustomsOfficeId)
  585.             .setImportCustomsFacilityType(x.getImportCustomsFacilityType)
  586.             .setImportCustomsRetentionReason(stringToInt(x.getImportCustomsRetentionReason()))
  587.             .setItemOriginCountry(x.getItemOriginCountry)
  588.             .setItemOriginOperator(x.getItemOriginOperator)
  589.             .setItemIdType(x.getItemIdType)
  590.             .setDirectionCcode(key.payload.system.get("name"))
  591.           .build()
  592.           .pack(EMSEVTMessageTypes.emsevtEmeSrc))
  593.  
  594.     SrcAvro
  595.  
  596.   }
  597.  
  598.   def buildEdcSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEDC]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  599.  
  600.     val SrcAvro =
  601.       segment
  602.         .map( x =>
  603.           Emsevt_edc_src.newBuilder()
  604.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  605.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  606.             .setInterchangeDate(header.dateOfPreparation)
  607.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  608.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  609.             .setDeletedFlag(false)
  610.             .setMessageId(key.payload.msgId.getOrElse(""))
  611.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  612.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  613.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  614.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  615.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  616.             .setCustomsReturnPointId(x.getCustomsReturnPointId)
  617.             .setImportCustomsReleaseStatus(x.getImportCustomsReleaseStatus)
  618.             .setImportCustomsOfficeId(x.getImportCustomsOfficeId)
  619.             .setImportCustomsFacilityType(x.getImportCustomsFacilityType)
  620.             .setItemOriginCountry(x.getItemOriginCountry)
  621.             .setItemOriginOperator(x.getItemOriginOperator)
  622.             .setItemIdType(x.getItemIdType)
  623.             .setDirectionCcode(key.payload.system.get("name"))
  624.           .build()
  625.           .pack(EMSEVTMessageTypes.emsevtEdcSrc))
  626.  
  627.     SrcAvro
  628.  
  629.   }
  630.  
  631.   def buildEmfSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEMF]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  632.  
  633.     val SrcAvro =
  634.       segment
  635.         .map( x =>
  636.           Emsevt_emf_src.newBuilder()
  637.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  638.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  639.             .setInterchangeDate(header.dateOfPreparation)
  640.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  641.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  642.             .setDeletedFlag(false)
  643.             .setMessageId(key.payload.msgId.getOrElse(""))
  644.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  645.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  646.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  647.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  648.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  649.             .setInwardOe(x.getInwardOfEx)
  650.             .setDutiableIndicator(x.getDutiableIndicator)
  651.             .setImportCustomsFacilityType(x.getImportCustomsFacilityType)
  652.             .setNextProcessingPointId(x.getNextProcessingPointId)
  653.             .setNextProcessingPointType(x.getNextProcessingPointType)
  654.             .setNextProcessingPointPostcode(x.getAddresseePostcode)
  655.             .setAddresseePostcode(x.getAddresseePostcode)
  656.             .setItemOriginCountry(x.getItemOriginCountry)
  657.             .setItemOriginOperator(x.getItemOriginOperator)
  658.             .setItemIdType(x.getItemIdType)
  659.             .setDirectionCcode(key.payload.system.get("name"))
  660.           .build()
  661.           .pack(EMSEVTMessageTypes.emsevtEmfSrc))
  662.  
  663.     SrcAvro
  664.  
  665.   }
  666.  
  667.   def buildEddSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEDD]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  668.  
  669.     val SrcAvro =
  670.       segment
  671.         .map( x =>
  672.           Emsevt_edd_src.newBuilder()
  673.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  674.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  675.             .setInterchangeDate(header.dateOfPreparation)
  676.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  677.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  678.             .setDeletedFlag(false)
  679.             .setMessageId(key.payload.msgId.getOrElse(""))
  680.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  681.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  682.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  683.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  684.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  685.             .setSortingCentreId(x.getSortingCentreId)
  686.             .setItemGrossWeightUponReceive(stringToDoubleTrimed(x.getItemGrossWeightUponReceive))
  687.             .setMailSourceImport(x.getMailSourceImport)
  688.             .setItemIdType(x.getItemId)
  689.             .setItemOriginCountry(x.getItemOriginCountry)
  690.             .setItemOriginOperator(x.getItemOriginOperator)
  691.             .setItemIdType(x.getItemIdType)
  692.             .setDirectionCcode(key.payload.system.get("name"))
  693.           .build()
  694.           .pack(EMSEVTMessageTypes.emsevtEddSrc))
  695.  
  696.     SrcAvro
  697.  
  698.   }
  699.  
  700.   def buildEdeSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEDE]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  701.  
  702.     val SrcAvro =
  703.       segment
  704.         .map( x =>
  705.           Emsevt_ede_src.newBuilder()
  706.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  707.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  708.             .setInterchangeDate(header.dateOfPreparation)
  709.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  710.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  711.             .setDeletedFlag(false)
  712.             .setMessageId(key.payload.msgId.getOrElse(""))
  713.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  714.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  715.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  716.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  717.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  718.             .setSortingCentreId(x.getSortingCentreId)
  719.             .setItemOriginCountry(x.getItemOriginCountry)
  720.             .setItemOriginOperator(x.getItemOriginOperator)
  721.             .setItemIdType(x.getItemIdType)
  722.             .setDirectionCcode(key.payload.system.get("name"))
  723.           .build()
  724.           .pack(EMSEVTMessageTypes.emsevtEdeSrc))
  725.  
  726.     SrcAvro
  727.  
  728.   }
  729.  
  730.   def buildEmgSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEMG]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  731.  
  732.     val SrcAvro =
  733.       segment
  734.         .map( x =>
  735.           Emsevt_emg_src.newBuilder()
  736.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  737.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  738.             .setInterchangeDate(header.dateOfPreparation)
  739.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  740.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  741.             .setDeletedFlag(false)
  742.             .setMessageId(key.payload.msgId.getOrElse(""))
  743.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  744.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  745.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  746.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  747.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  748.             .setDeliveryOfficeId(x.getDeliveryOfficeId)
  749.             .setDeliveryPostcode(x.getDeliveryPostcode)
  750.             .setItemOriginCountry(x.getItemOriginCountry)
  751.             .setItemOriginOperator(x.getItemOriginOperator)
  752.             .setItemIdType(x.getItemIdType)
  753.             .setDirectionCcode(key.payload.system.get("name"))
  754.           .build()
  755.           .pack(EMSEVTMessageTypes.emsevtEmgSrc))
  756.  
  757.     SrcAvro
  758.  
  759.   }
  760.  
  761.   def buildEdfSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEDF]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  762.  
  763.     val SrcAvro =
  764.       segment
  765.         .map( x =>
  766.           Emsevt_edf_src.newBuilder()
  767.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  768.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  769.             .setInterchangeDate(header.dateOfPreparation)
  770.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  771.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  772.             .setDeletedFlag(false)
  773.             .setMessageId(key.payload.msgId.getOrElse(""))
  774.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  775.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  776.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  777.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  778.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  779.             .setDeliveryOfficeId(x.getDeliveryOfficeId)
  780.             .setDeliveryDepotActionTaken(x.getDeliveryDepotActionTaken)
  781.             .setDeliveryDepotReasonHeld(stringToInt(x.getDeliveryDepotReasonHeld))
  782.             .setItemOriginCountry(x.getItemOriginCountry)
  783.             .setItemOriginOperator(x.getItemOriginOperator)
  784.             .setItemIdType(x.getItemIdType)
  785.             .setDirectionCcode(key.payload.system.get("name"))
  786.           .build()
  787.           .pack(EMSEVTMessageTypes.emsevtEdfSrc))
  788.  
  789.     SrcAvro
  790.  
  791.   }
  792.  
  793.   def buildEdgSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEDG]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  794.  
  795.     val SrcAvro =
  796.       segment
  797.         .map( x =>
  798.           Emsevt_edg_src.newBuilder()
  799.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  800.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  801.             .setInterchangeDate(header.dateOfPreparation)
  802.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  803.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  804.             .setDeletedFlag(false)
  805.             .setMessageId(key.payload.msgId.getOrElse(""))
  806.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  807.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  808.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  809.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  810.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  811.             .setDeliveryOfficeId(x.getDeliveryOfficeId)
  812.             .setDestinationPostcode(x.getDestinationPostcode)
  813.             .setItemOriginCountry(x.getItemOriginCountry)
  814.             .setItemOriginOperator(x.getItemOriginOperator)
  815.             .setItemIdType(x.getItemIdType)
  816.             .setDirectionCcode(key.payload.system.get("name"))
  817.           .build()
  818.           .pack(EMSEVTMessageTypes.emsevtEdgSrc))
  819.  
  820.     SrcAvro
  821.  
  822.   }
  823.  
  824.   def buildEdhSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEDH]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  825.  
  826.     val SrcAvro =
  827.       segment
  828.         .map( x =>
  829.           Emsevt_edh_src.newBuilder()
  830.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  831.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  832.             .setInterchangeDate(header.dateOfPreparation)
  833.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  834.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  835.             .setDeletedFlag(false)
  836.             .setMessageId(key.payload.msgId.getOrElse(""))
  837.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  838.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  839.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  840.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  841.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  842.             .setCollectionPointId(x.getCollectionPointId)
  843.             .setCollectionPointType(x.getCollectionPointType)
  844.             .setCollectionPointPostcode(x.getCollectionPointId)
  845.             .setItemOriginCountry(x.getItemOriginCountry)
  846.             .setItemOriginOperator(x.getItemOriginOperator)
  847.             .setItemIdType(x.getItemIdType)
  848.             .setDirectionCcode(key.payload.system.get("name"))
  849.           .build()
  850.           .pack(EMSEVTMessageTypes.emsevtEdhSrc))
  851.  
  852.     SrcAvro
  853.  
  854.   }
  855.  
  856.   def buildEdxSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEDX]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  857.  
  858.     val SrcAvro =
  859.       segment
  860.         .map( x =>
  861.           Emsevt_edx_src.newBuilder()
  862.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  863.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  864.             .setInterchangeDate(header.dateOfPreparation)
  865.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  866.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  867.             .setDeletedFlag(false)
  868.             .setMessageId(key.payload.msgId.getOrElse(""))
  869.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  870.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  871.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  872.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  873.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  874.             .setImportTerminationReason(stringToInt(x.getImportTerminationReason))
  875.             .setImportTerminationActionTaken(x.getImportTerminationActionTaken)
  876.             .setItemOriginCountry(x.getItemOriginCountry)
  877.             .setItemOriginOperator(x.getItemOriginOperator)
  878.             .setItemIdType(x.getItemIdType)
  879.             .setDirectionCcode(key.payload.system.get("name"))
  880.           .build()
  881.           .pack(EMSEVTMessageTypes.emsevtEdxSrc))
  882.  
  883.     SrcAvro
  884.  
  885.   }
  886.  
  887.   def buildEmhSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEMH]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  888.  
  889.     val SrcAvro =
  890.       segment
  891.         .map( x =>
  892.           Emsevt_emh_src.newBuilder()
  893.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  894.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  895.             .setInterchangeDate(header.dateOfPreparation)
  896.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  897.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  898.             .setDeletedFlag(false)
  899.             .setMessageId(key.payload.msgId.getOrElse(""))
  900.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  901.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  902.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  903.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  904.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  905.             .setDeliveryOfficeId(x.getDeliveryOfficeId)
  906.             .setUnsuccessfulDeliveryActionTaken(x.getUnsuccessfulDeliveryActionTaken)
  907.             .setUnsuccessfulDeliveryReason(stringToInt(x.getUnsuccessfulDeliveryReason))
  908.             .setUnsuccessfulDeliveryCode("")
  909.             .setItemRefusalNameSignatory(x.getItemRefusalNameSignatory)
  910.             .setAttemptedDeliveryLocation(x.getAttemptedDeliveryLocation)
  911.             .setNextProcessingPointId(x.getNextProcessingPointId)
  912.             .setNextProcessingPointType(x.getNextProcessingPointType)
  913.             .setNextProcessingPointPostcode(x.getNextProcessingPointPostcode)
  914.             .setItemOriginCountry(x.getItemOriginCountry)
  915.             .setItemOriginOperator(x.getItemOriginOperator)
  916.             .setItemIdType(x.getItemIdType)
  917.             .setDirectionCcode(key.payload.system.get("name"))
  918.           .build()
  919.           .pack(EMSEVTMessageTypes.emsevtEmhSrc))
  920.  
  921.     SrcAvro
  922.  
  923.   }
  924.  
  925.   def buildEmiSrcContainers(key: Key, header: InterchangeHeader, segment: List[SegmentEMI]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  926.  
  927.     val SrcAvro =
  928.       segment
  929.         .map( x =>
  930.           Emsevt_emi_src.newBuilder()
  931.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  932.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  933.             .setInterchangeDate(header.dateOfPreparation)
  934.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  935.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  936.             .setDeletedFlag(false)
  937.             .setMessageId(key.payload.msgId.getOrElse(""))
  938.             .setItemIdentification(Option(x.getItemId).getOrElse(""))
  939.             .setDestinationCountry(Option(x.getDestination).getOrElse(""))
  940.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  941.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  942.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  943.             .setDeliveryOfficeId(x.getDeliveryOfficeId)
  944.             .setSignatoryName(x.getSignatoryName)
  945.             .setDeliveryLocation(x.getDeliveryLocation)
  946.             .setRecipientAddresseeRelationship(x.getRecipientAddresseeRelationship)
  947.             .setItemOriginCountry(x.getItemOriginCountry)
  948.             .setItemOriginOperator(x.getItemOriginOperator)
  949.             .setItemIdType(x.getItemIdType)
  950.             .setDirectionCcode(key.payload.system.get("name"))
  951.           .build()
  952.           .pack(EMSEVTMessageTypes.emsevtEmiSrc))
  953.  
  954.     SrcAvro
  955.  
  956.   }
  957.  
  958.   def buildEdaSrcContainers(key: Key, header: InterchangeHeader, segmentEDA: List[SegmentEDA]): List[MessageContainer[_ <: SpecificRecordBase]] = {
  959.  
  960.     val EdaSrcAvro =
  961.       segmentEDA
  962.         .map( x =>
  963.           Emsevt_eda_src.newBuilder()
  964.             .setInsertDate(Option(nowDT.toString("yyyy-MM-dd HH:mm:ss")).getOrElse(""))
  965.             .setInterchangeId(header.senderIdentificationCodeQualifier + "-" + header.senderIdentificationCodeQualifier + "-" + header.interchangeControlReference)
  966.             .setInterchangeDate(header.dateOfPreparation)
  967.             .setCreationDate(key.payload.creationTime.getOrElse(""))
  968.             .setDate(Option(nowDT.toString("yyyy-MM-dd")).getOrElse(""))
  969.             .setDeletedFlag(false)
  970.             .setMessageId(key.payload.msgId.getOrElse(""))
  971.             .setItemIdentification(x.getItemId)
  972.             .setDestinationCountry(x.getDestination)
  973.             .setEventDateTime(Option(ZonedToLocalDtString(x.getTimestamp, dateTimeFormat)).getOrElse(""))
  974.             .setEventDate(Option(ZonedToLocalDtString(x.getTimestamp, dateFormat)).getOrElse(""))
  975.             .setEventTime(Option(ZonedToLocalDtString(x.getTimestamp, "HH-mm")).getOrElse(""))
  976.             .setReceivingOe(x.getReceivingOfEx)
  977.             .setInwardOeActionTaken(x.getInwardOfExActionTaken)
  978.             .setInwardOeReasonHeld(stringToInt(x.getInwardOfExReasonHeld))
  979.             .setItemOriginCountry(x.getItemOriginCountry)
  980.             .setItemOriginOperator(x.getItemOriginOperator)
  981.             .setItemIdType(x.getItemIdType)
  982.             .setDirectionCcode(key.payload.system.get("name"))
  983.           .build()
  984.           .pack(EMSEVTMessageTypes.emsevtEdaSrc))
  985.  
  986.     EdaSrcAvro
  987.   }
  988.  
  989. }
  990.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement