Ladies_Man

rp_analyst1reft_v1.0.35

Aug 16th, 2017
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 96.88 KB | None | 0 0
  1. import java.util.Date;
  2. import java.util.List;
  3.  
  4. import org.apache.commons.logging.Log;
  5. import org.apache.commons.logging.LogFactory;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7.  
  8. import ru.lbpm.metasonic.ruspost.runtime.refinements.MailSender;
  9. import ru.ruspost.application.ApplicationCardNoRulesView;
  10. import ru.ruspost.commonattributes.CommonAttributesNoRulesView;
  11. import ru.ruspost.docmangmntactions.DocMangmntActions;
  12. import ru.ruspost.inquiry.InquiryEntryNoRulesView;
  13. import ru.ruspost.qualityclaim.QualityClaimNoRulesView;
  14.  
  15. import com.jcom1.api.dto.SubjectInstanceBean;
  16. import com.jcom1.api.dto.interfaces.storages.IStorageInstanceItemBeanReducedToId;
  17. import com.jcom1.api.interfaces.IAuthorizationApi;
  18. import com.jcom1.runtime.refinement.AbstractRefinement;
  19. import com.jcom1.runtime.refinement.FunctionStateRequest;
  20. import com.jcom1.runtime.refinement.FunctionStateResponse;
  21. import com.jcom1.runtime.refinement.RefinementGenerator;
  22. import com.jcom1.runtime.refinement.SendStateRequest;
  23. import com.jcom1.runtime.refinement.SendStateResponse;
  24.  
  25. import de.metasonic.businessobjects.model.interfaces.IView;
  26. import de.metasonic.refinement.global.api.bo20.Bo20Accessory;
  27. import de.metasonic.refinement.global.api.bo20.Bo20FieldValueGetter;
  28. import de.metasonic.refinement.global.api.bo20.Bo20FieldValueSetter;
  29.  
  30. @RefinementGenerator(id = "InternalSubjectDescription_o89IoOgIEeOThxR8QaWOtA")
  31. public class ufps_analyst1Refinement extends AbstractRefinement {
  32.     /**
  33.      * @generated
  34.      */
  35.     private final static Log log = LogFactory
  36.             .getLog("com.jcom1.refinement.анализ_и_подготовка_ответа_на_обращение___уфпс.ufps_analyst1");
  37.  
  38.     // public static Log CustomLog =
  39.     // LogFactory.getLog(ufps_analyst1Refinement.class);
  40.  
  41.     /**
  42.      * This function provides the data to send in the named state. TransitionID
  43.      * SendTransitionDescription_ChnXIetVEeOr99WSB0SeVA State: Отправить
  44.      * руководителю MessageType: Ответ на обращение TransitionType SEND
  45.      * Destination Subject Руководитель
  46.      *
  47.      * @return // return the id of the transition to follow or null to stay in
  48.      *         this state e.g. // return new
  49.      *         SendStateResponse("transitionXXXXXXXX");
  50.      * @generated
  51.      */
  52.     @RefinementGenerator(id = "SendStateDescription_ChKrMOtVEeOr99WSB0SeVA")
  53.     public SendStateResponse sendStateОтправить_руководителю(
  54.             SendStateRequest sendStateRequest) {
  55.         de.metasonic.reftmpl.bo20automaticsend.runtime.Bo20AutomaticSendRuntime refinementRuntime = new de.metasonic.reftmpl.bo20automaticsend.runtime.Bo20AutomaticSendRuntime();
  56.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  57.                 .getApplicationContext().getAutowireCapableBeanFactory()
  58.                 .autowireBean(refinementRuntime);
  59.         refinementRuntime
  60.                 .setStateConfig(DATA_SendStateDescription_ChKrMOtVEeOr99WSB0SeVA);
  61.         try {
  62.             return (SendStateResponse) refinementRuntime.execute(
  63.                     getSubjectInstance(), getSubjectDescription(), getClass()
  64.                             .getClassLoader());
  65.         } catch (Exception ex) {
  66.             throw new RuntimeException(ex);
  67.         }
  68.     }
  69.  
  70.     /**
  71.      * This method is called when the named function state is reached State:
  72.      * Status UPDT: Закрыто StateType: FUNCTION
  73.      *
  74.      * Return values "FunctionTransitionDescription_uvHyEUPxEeSk8dw1p8cjjQ" when
  75.      * result is "" to go to state Завершить связанные процессы
  76.      *
  77.      * @return return the id of the transition to follow e.g. // return new
  78.      *         FunctionStateResponse("transitionXXXXXXXX");
  79.      * @generated
  80.      */
  81.     @RefinementGenerator(id = "FunctionStateDescription_eHNkqEPxEeSk8dw1p8cjjQ")
  82.     public FunctionStateResponse functionStatus_UPDT__Закрыто(
  83.             FunctionStateRequest functionStateRequest) {
  84.         de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime refinementRuntime = new de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime();
  85.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  86.                 .getApplicationContext().getAutowireCapableBeanFactory()
  87.                 .autowireBean(refinementRuntime);
  88.         refinementRuntime
  89.                 .setStateConfig(DATA_FunctionStateDescription_eHNkqEPxEeSk8dw1p8cjjQ);
  90.         try {
  91.             return (FunctionStateResponse) refinementRuntime.execute(
  92.                     getSubjectInstance(), getSubjectDescription(), getClass()
  93.                             .getClassLoader());
  94.         } catch (Exception ex) {
  95.             throw new RuntimeException(ex);
  96.         }
  97.     }
  98.  
  99.     /**
  100.      * This function provides the data to send in the named state. TransitionID
  101.      * SendTransitionDescription_M9_oUe13EeO7cYoeJG3F3g State: Согласовать
  102.      * делегирование с руководителем MessageType: Согласовать делегирование
  103.      * TransitionType SEND Destination Subject Руководитель
  104.      *
  105.      * @return // return the id of the transition to follow or null to stay in
  106.      *         this state e.g. // return new
  107.      *         SendStateResponse("transitionXXXXXXXX");
  108.      * @generated
  109.      */
  110.     @RefinementGenerator(id = "SendStateDescription_EzivYe13EeO7cYoeJG3F3g")
  111.     public SendStateResponse sendStateСогласовать_делегирование_с_руководителем(
  112.             SendStateRequest sendStateRequest) {
  113.         de.metasonic.reftmpl.bo20automaticsend.runtime.Bo20AutomaticSendRuntime refinementRuntime = new de.metasonic.reftmpl.bo20automaticsend.runtime.Bo20AutomaticSendRuntime();
  114.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  115.                 .getApplicationContext().getAutowireCapableBeanFactory()
  116.                 .autowireBean(refinementRuntime);
  117.         refinementRuntime
  118.                 .setStateConfig(DATA_SendStateDescription_EzivYe13EeO7cYoeJG3F3g);
  119.         try {
  120.             return (SendStateResponse) refinementRuntime.execute(
  121.                     getSubjectInstance(), getSubjectDescription(), getClass()
  122.                             .getClassLoader());
  123.         } catch (Exception ex) {
  124.             throw new RuntimeException(ex);
  125.         }
  126.     }
  127.  
  128.     /**
  129.      * This method is called when the named function state is reached State:
  130.      * Status UPD: Ожидание ответов на запросы StateType: FUNCTION
  131.      *
  132.      * Return values "FunctionTransitionDescription_CBraAUMREeSJ06URn4wMYA" when
  133.      * result is "" to go to state Анализ обращения
  134.      *
  135.      * @return return the id of the transition to follow e.g. // return new
  136.      *         FunctionStateResponse("transitionXXXXXXXX");
  137.      */
  138.     @RefinementGenerator(id = "FunctionStateDescription_38ItYUMQEeSJ06URn4wMYA")
  139.     public FunctionStateResponse functionStatus_UPD__Ожидание_ответов_на_запросы(
  140.             FunctionStateRequest functionStateRequest) {
  141.         // Indicates if any value was changed by the refinement to suppress
  142.         // unnecessary save operations.
  143.  
  144.         boolean valueChanged = false;
  145.         Bo20Accessory boAccessory = new Bo20Accessory(getSubjectInstance());
  146.         try {
  147.             IStorageInstanceItemBeanReducedToId firstStorageItemInFirstStorage = boAccessory
  148.                     .getFirstStorageItemInFirstStorage();
  149.             if (firstStorageItemInFirstStorage != null) {
  150.                 log.debug("Found storage item.");
  151.                 IView view = boAccessory
  152.                         .loadView(firstStorageItemInFirstStorage);
  153.                 if (view instanceof ApplicationCardNoRulesView) {
  154.                     ApplicationCardNoRulesView applicationCard = (ApplicationCardNoRulesView) view;
  155.                     log.debug("Updating quality claims...");
  156.                     List<QualityClaimNoRulesView> qualityClaims = applicationCard
  157.                             .getQualityClaim();
  158.                     if (qualityClaims != null) {
  159.                         if (log.isDebugEnabled()) {
  160.                             log.debug("Found " + qualityClaims.size()
  161.                                     + " quality claims.");
  162.                         }
  163.                         for (QualityClaimNoRulesView qualityClaim : qualityClaims) {
  164.                             if (Boolean.TRUE
  165.                                     .equals(qualityClaim.getCreateKpl())
  166.                                     && qualityClaim.getIsInquiryRequired() != QualityClaimNoRulesView.IsInquiryRequired_enum.isSent) {
  167.                                 qualityClaim
  168.                                         .setIsInquiryRequired(QualityClaimNoRulesView.IsInquiryRequired_enum.isSent);
  169.                                 valueChanged = true;
  170.                             }
  171.                         }
  172.                     }
  173.                     log.debug("Updating linked inquiries...");
  174.                     List<InquiryEntryNoRulesView> linkedInquiries = applicationCard
  175.                             .getLinkedInquiries();
  176.                     if (linkedInquiries != null) {
  177.                         if (log.isDebugEnabled()) {
  178.                             log.debug("Found " + linkedInquiries.size()
  179.                                     + " linked inquiries.");
  180.                         }
  181.                         for (InquiryEntryNoRulesView linkedInquiry : linkedInquiries) {
  182.                             if (linkedInquiry.getInquiryStatus() != InquiryEntryNoRulesView.InquiryStatus_enum.inquirySent) {
  183.                                 linkedInquiry
  184.                                         .setInquiryStatus(InquiryEntryNoRulesView.InquiryStatus_enum.inquirySent);
  185.                                 valueChanged = true;
  186.                             }
  187.                         }
  188.                     }
  189.                     // Finally, update claimStatus (was previously done by
  190.                     // RefinementTemplate).
  191.  
  192.                     log.debug("Updating claim status...");
  193.                     CommonAttributesNoRulesView commonAttributes = applicationCard
  194.                             .getCommonAttributes();
  195.                     if (commonAttributes != null) {
  196.                         if (commonAttributes.getClaimStatus() != CommonAttributesNoRulesView.ClaimStatus_enum.inquiryAnswerWait) {
  197.                             commonAttributes
  198.                                     .setClaimStatus(CommonAttributesNoRulesView.ClaimStatus_enum.inquiryAnswerWait);
  199.                             valueChanged = true;
  200.                         }
  201.                     }
  202.                 } else {
  203.                     log.warn("View in state is not of type "
  204.                             + ApplicationCardNoRulesView.class
  205.                             + " as expected, but instead of type "
  206.                             + view.getClass());
  207.                 }
  208.             } else {
  209.                 log.warn("No storage items found for subject instance "
  210.                         + getSubjectInstance());
  211.             }
  212.             if (valueChanged) {
  213.                 log.debug("Values have been changed: saving view...");
  214.                 boAccessory.saveView();
  215.             } else {
  216.                 log.debug("No values have been changed.");
  217.             }
  218.         } catch (Exception e) {
  219.             log.error(e);
  220.         }
  221.         log.debug("Inquiry status update done.");
  222.         return new FunctionStateResponse(
  223.                 "FunctionTransitionDescription_CBraAUMREeSJ06URn4wMYA");
  224.     }
  225.  
  226.     /**
  227.      * This method is called when the named function state is reached State:
  228.      * Status UPDT: Подготовлен промежуточный ответ StateType: FUNCTION
  229.      *
  230.      * Return values "FunctionTransitionDescription_OAy9wUMZEeSJ06URn4wMYA" when
  231.      * result is "" to go to state claimDeadline UPDT
  232.      *
  233.      * @return return the id of the transition to follow e.g. // return new
  234.      *         FunctionStateResponse("transitionXXXXXXXX");
  235.      * @generated
  236.      */
  237.     @RefinementGenerator(id = "FunctionStateDescription_xXFLUUMYEeSJ06URn4wMYA")
  238.     public FunctionStateResponse functionStatus_UPDT__Подготовлен_промежуточный_ответ(
  239.             FunctionStateRequest functionStateRequest) {
  240.         de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime refinementRuntime = new de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime();
  241.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  242.                 .getApplicationContext().getAutowireCapableBeanFactory()
  243.                 .autowireBean(refinementRuntime);
  244.         refinementRuntime
  245.                 .setStateConfig(DATA_FunctionStateDescription_xXFLUUMYEeSJ06URn4wMYA);
  246.         try {
  247.             return (FunctionStateResponse) refinementRuntime.execute(
  248.                     getSubjectInstance(), getSubjectDescription(), getClass()
  249.                             .getClassLoader());
  250.         } catch (Exception ex) {
  251.             throw new RuntimeException(ex);
  252.         }
  253.     }
  254.  
  255.     /**
  256.      * This method is called when the named function state is reached State:
  257.      * E-mail уведомить об истечении срока StateType: FUNCTION
  258.      *
  259.      * Return values "FunctionTransitionDescription_0V6uc0C8EeSFnqgOX9hOgg" when
  260.      * result is "" to go to state Анализ обращения
  261.      *
  262.      * @return return the id of the transition to follow e.g. // return new
  263.      *         FunctionStateResponse("transitionXXXXXXXX");
  264.      * @generated
  265.      */
  266.     @RefinementGenerator(id = "FunctionStateDescription_yi9jEkC8EeSFnqgOX9hOgg")
  267.     public FunctionStateResponse functionE_mail__уведомить_об_истечении_срока(
  268.             FunctionStateRequest functionStateRequest) {
  269.         de.metasonic.reftmpl.notification.runtime.NotificationRuntime refinementRuntime = new de.metasonic.reftmpl.notification.runtime.NotificationRuntime();
  270.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  271.                 .getApplicationContext().getAutowireCapableBeanFactory()
  272.                 .autowireBean(refinementRuntime);
  273.         refinementRuntime
  274.                 .setStateConfig(DATA_FunctionStateDescription_yi9jEkC8EeSFnqgOX9hOgg);
  275.         try {
  276.             return (FunctionStateResponse) refinementRuntime.execute(
  277.                     getSubjectInstance(), getSubjectDescription(), getClass()
  278.                             .getClassLoader());
  279.         } catch (Exception ex) {
  280.             throw new RuntimeException(ex);
  281.         }
  282.     }
  283.  
  284.     /**
  285.      * This method is called when the named function state is reached State:
  286.      * SYS: Установить статус "Делегировано" StateType: FUNCTION
  287.      *
  288.      * Return values "FunctionTransitionDescription_rTDY4V3eEeStvu3rxtx2aA" when
  289.      * result is "" to go to state Отправка обращения в почтамт
  290.      *
  291.      * @return return the id of the transition to follow e.g. // return new
  292.      *         FunctionStateResponse("transitionXXXXXXXX");
  293.      */
  294.     @RefinementGenerator(id = "FunctionStateDescription_gqZYIV3eEeStvu3rxtx2aA")
  295.     public FunctionStateResponse updateIsDelegatedStatus(
  296.             FunctionStateRequest functionStateRequest) {
  297.         log.debug("Updating inquiry status...");
  298.  
  299.         // Indicates if any value was changed by the refinement to suppress
  300.         // unnecessary save operations.
  301.  
  302.         boolean valueChanged = false;
  303.         Bo20Accessory boAccessory = new Bo20Accessory(getSubjectInstance());
  304.         try {
  305.             IStorageInstanceItemBeanReducedToId firstStorageItemInFirstStorage = boAccessory
  306.                     .getFirstStorageItemInFirstStorage();
  307.             if (firstStorageItemInFirstStorage != null) {
  308.                 log.debug("Found storage item.");
  309.                 IView view = boAccessory
  310.                         .loadView(firstStorageItemInFirstStorage);
  311.                 if (view instanceof ApplicationCardNoRulesView) {
  312.                     ApplicationCardNoRulesView applicationCard = (ApplicationCardNoRulesView) view;
  313.  
  314.                     log.debug("Updating ReceiverGroup...");
  315.  
  316.                     String receiverGroup = applicationCard.getDelegateTask()
  317.                             .getDelegationSelector().getManagerGroupName();
  318.  
  319.                     if (receiverGroup == null) {
  320.                         log.debug("Postamt manager receiverGroup is null...");
  321.                     }
  322.  
  323.                     log.debug("Postamt manger receiverGroup is "
  324.                             + receiverGroup);
  325.  
  326.                     applicationCard.setReceiverGroup(receiverGroup);
  327.  
  328.                     log.debug("Postamt manger receiverGroup is set and equals "
  329.                             + receiverGroup);
  330.  
  331.                     log.debug("Updating claimStatus to Delegation...");
  332.  
  333.                     CommonAttributesNoRulesView commonAttributes = applicationCard
  334.                             .getCommonAttributes();
  335.                     // if (commonAttributes != null) {
  336.                     // if (commonAttributes.getClaimStatus() !=
  337.                     // CommonAttributesNoRulesView.ClaimStatus_enum.isDelegated)
  338.                     // {
  339.                     commonAttributes
  340.                             .setClaimStatus(CommonAttributesNoRulesView.ClaimStatus_enum.isDelegated);
  341.  
  342.                     applicationCard.setDelegatedToPostamt(true);
  343.                     log.debug("DelegatedToPostamt set to true");
  344.  
  345.                     valueChanged = true;
  346.                     // }
  347.                     //
  348.                     // }
  349.                 } else {
  350.                     log.warn("View in state is not of type "
  351.                             + ApplicationCardNoRulesView.class
  352.                             + " as expected, but instead of type "
  353.                             + view.getClass());
  354.                 }
  355.             } else {
  356.                 log.warn("No storage items found for subject instance "
  357.                         + getSubjectInstance());
  358.             }
  359.             if (valueChanged) {
  360.                 log.debug("Values have been changed: saving view...");
  361.                 boAccessory.saveView();
  362.             } else {
  363.                 log.debug("No values have been changed.");
  364.             }
  365.         } catch (Exception e) {
  366.             log.error(e);
  367.         }
  368.         log.debug("Inquiry status update done.");
  369.  
  370.         return new FunctionStateResponse(
  371.                 "FunctionTransitionDescription_EtMJAxBeEeerWdDLx9TJVw");
  372.     }
  373.  
  374.     /**
  375.      * This method is called when the named function state is reached State:
  376.      * E-mail: поступило новое обращение StateType: FUNCTION
  377.      *
  378.      * Return values "FunctionTransitionDescription_VxNcYQ54EeSi5vULMM5ANg" when
  379.      * result is "" to go to state Status UPTD: Анализ обращения
  380.      *
  381.      * @return return the id of the transition to follow e.g. // return new
  382.      *         FunctionStateResponse("transitionXXXXXXXX");
  383.      * @generated
  384.      */
  385.     @RefinementGenerator(id = "FunctionStateDescription_T3xvsg54EeSi5vULMM5ANg")
  386.     public FunctionStateResponse functionE_mail__поступило_новое_обращение(
  387.             FunctionStateRequest functionStateRequest) {
  388.         de.metasonic.reftmpl.notification.runtime.NotificationRuntime refinementRuntime = new de.metasonic.reftmpl.notification.runtime.NotificationRuntime();
  389.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  390.                 .getApplicationContext().getAutowireCapableBeanFactory()
  391.                 .autowireBean(refinementRuntime);
  392.         refinementRuntime
  393.                 .setStateConfig(DATA_FunctionStateDescription_T3xvsg54EeSi5vULMM5ANg);
  394.         try {
  395.             return (FunctionStateResponse) refinementRuntime.execute(
  396.                     getSubjectInstance(), getSubjectDescription(), getClass()
  397.                             .getClassLoader());
  398.         } catch (Exception ex) {
  399.             throw new RuntimeException(ex);
  400.         }
  401.     }
  402.  
  403.     /**
  404.      * This function provides the data to send in the named state. TransitionID
  405.      * SendTransitionDescription_FNKoQA5QEeSi5vULMM5ANg State: Отправить
  406.      * руководителю промежуточный ответ MessageType: Промежуточный ответ на
  407.      * обращение TransitionType SEND Destination Subject Руководитель
  408.      *
  409.      * @return // return the id of the transition to follow or null to stay in
  410.      *         this state e.g. // return new
  411.      *         SendStateResponse("transitionXXXXXXXX");
  412.      * @generated
  413.      */
  414.     @RefinementGenerator(id = "SendStateDescription_FM3tUA5QEeSi5vULMM5ANg")
  415.     public SendStateResponse sendStateОтправить_руководителю_промежуточный_ответ(
  416.             SendStateRequest sendStateRequest) {
  417.         de.metasonic.reftmpl.bo20automaticsend.runtime.Bo20AutomaticSendRuntime refinementRuntime = new de.metasonic.reftmpl.bo20automaticsend.runtime.Bo20AutomaticSendRuntime();
  418.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  419.                 .getApplicationContext().getAutowireCapableBeanFactory()
  420.                 .autowireBean(refinementRuntime);
  421.         refinementRuntime
  422.                 .setStateConfig(DATA_SendStateDescription_FM3tUA5QEeSi5vULMM5ANg);
  423.         try {
  424.             return (SendStateResponse) refinementRuntime.execute(
  425.                     getSubjectInstance(), getSubjectDescription(), getClass()
  426.                             .getClassLoader());
  427.         } catch (Exception ex) {
  428.             throw new RuntimeException(ex);
  429.         }
  430.     }
  431.  
  432.     /**
  433.      * This method is called when the named function state is reached State:
  434.      * SYS: Отметить обращение как новое StateType: FUNCTION
  435.      *
  436.      * Return values "FunctionTransitionDescription_e1fD0Tx0EeSHjfkai80aOg" when
  437.      * result is "" to go to state E-mail: поступило новое обращение
  438.      *
  439.      * @return return the id of the transition to follow e.g. // return new
  440.      *         FunctionStateResponse("transitionXXXXXXXX");
  441.      * @generated
  442.      */
  443.     @RefinementGenerator(id = "FunctionStateDescription_Y2U9wTx0EeSHjfkai80aOg")
  444.     public FunctionStateResponse functionSYS__Отметить_обращение_как_новое(
  445.             FunctionStateRequest functionStateRequest) {
  446.         de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime refinementRuntime = new de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime();
  447.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  448.                 .getApplicationContext().getAutowireCapableBeanFactory()
  449.                 .autowireBean(refinementRuntime);
  450.         refinementRuntime
  451.                 .setStateConfig(DATA_FunctionStateDescription_Y2U9wTx0EeSHjfkai80aOg);
  452.         try {
  453.             return (FunctionStateResponse) refinementRuntime.execute(
  454.                     getSubjectInstance(), getSubjectDescription(), getClass()
  455.                             .getClassLoader());
  456.         } catch (Exception ex) {
  457.             throw new RuntimeException(ex);
  458.         }
  459.     }
  460.  
  461.     /**
  462.      * This method is called when the named function state is reached State:
  463.      * Status UPDT: Ответ отправлен StateType: FUNCTION
  464.      *
  465.      * Return values "FunctionTransitionDescription_8iB8oUMfEeSJ06URn4wMYA" when
  466.      * result is "" to go to state Отправить в СЭД инф. о способах отправки
  467.      * "FunctionTransitionDescription_50kdkUarEeeqiseknBlTfA" when result is ""
  468.      * to go to state Определить: Требуется ли копия ответа в АУП
  469.      *
  470.      * @return return the id of the transition to follow e.g. // return new
  471.      *         FunctionStateResponse("transitionXXXXXXXX");
  472.      * @generated
  473.      */
  474.     @RefinementGenerator(id = "FunctionStateDescription_sLbhoUMfEeSJ06URn4wMYA")
  475.     public FunctionStateResponse functionStatus_UPDT__Ответ_отправлен(
  476.             FunctionStateRequest functionStateRequest) {
  477.         de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime refinementRuntime = new de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime();
  478.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  479.                 .getApplicationContext().getAutowireCapableBeanFactory()
  480.                 .autowireBean(refinementRuntime);
  481.         refinementRuntime
  482.                 .setStateConfig(DATA_FunctionStateDescription_sLbhoUMfEeSJ06URn4wMYA);
  483.         try {
  484.             return (FunctionStateResponse) refinementRuntime.execute(
  485.                     getSubjectInstance(), getSubjectDescription(), getClass()
  486.                             .getClassLoader());
  487.         } catch (Exception ex) {
  488.             throw new RuntimeException(ex);
  489.         }
  490.     }
  491.  
  492.     /**
  493.      * This method is called when the named function state is reached State:
  494.      * Status UPTD: Анализ обращения StateType: FUNCTION
  495.      *
  496.      * Return values "FunctionTransitionDescription_MN_OQUMXEeSJ06URn4wMYA" when
  497.      * result is "" to go to state Анализ обращения
  498.      *
  499.      * @return return the id of the transition to follow e.g. // return new
  500.      *         FunctionStateResponse("transitionXXXXXXXX");
  501.      * @generated
  502.      */
  503.     @RefinementGenerator(id = "FunctionStateDescription_xonkwUMWEeSJ06URn4wMYA")
  504.     public FunctionStateResponse functionStatus_UPTD__Анализ_обращения(
  505.             FunctionStateRequest functionStateRequest) {
  506.         de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime refinementRuntime = new de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime();
  507.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  508.                 .getApplicationContext().getAutowireCapableBeanFactory()
  509.                 .autowireBean(refinementRuntime);
  510.         refinementRuntime
  511.                 .setStateConfig(DATA_FunctionStateDescription_xonkwUMWEeSJ06URn4wMYA);
  512.         try {
  513.             return (FunctionStateResponse) refinementRuntime.execute(
  514.                     getSubjectInstance(), getSubjectDescription(), getClass()
  515.                             .getClassLoader());
  516.         } catch (Exception ex) {
  517.             throw new RuntimeException(ex);
  518.         }
  519.     }
  520.  
  521.     /**
  522.      * This method is called when the named function state is reached State:
  523.      * E-mail: Поступила копия ответа по обращению StateType: FUNCTION
  524.      *
  525.      * Return values "FunctionTransitionDescription_wnETEXogEeSAgPNivYu06Q" when
  526.      * result is "" to go to state Определить: Требуется ли копия ответа в АУП
  527.      *
  528.      * @return return the id of the transition to follow e.g. // return new
  529.      *         FunctionStateResponse("transitionXXXXXXXX");
  530.      * @generated
  531.      */
  532.     @RefinementGenerator(id = "FunctionStateDescription_sYmHgXogEeSAgPNivYu06Q")
  533.     public FunctionStateResponse functionE_mail__Поступила_копия_ответа_по_обращению(
  534.             FunctionStateRequest functionStateRequest) {
  535.         de.metasonic.reftmpl.notification.runtime.NotificationRuntime refinementRuntime = new de.metasonic.reftmpl.notification.runtime.NotificationRuntime();
  536.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  537.                 .getApplicationContext().getAutowireCapableBeanFactory()
  538.                 .autowireBean(refinementRuntime);
  539.         refinementRuntime
  540.                 .setStateConfig(DATA_FunctionStateDescription_sYmHgXogEeSAgPNivYu06Q);
  541.         try {
  542.             return (FunctionStateResponse) refinementRuntime.execute(
  543.                     getSubjectInstance(), getSubjectDescription(), getClass()
  544.                             .getClassLoader());
  545.         } catch (Exception ex) {
  546.             throw new RuntimeException(ex);
  547.         }
  548.     }
  549.  
  550.     /**
  551.      * This method is called when the named function state is reached State:
  552.      * SYS: Загрузить ответ на запрос StateType: FUNCTION
  553.      *
  554.      * Return values "FunctionTransitionDescription_Vy7LAXr4EeSxQJ5cUdsqSA" when
  555.      * result is "" to go to state Удалить поступивший ответ на запрос
  556.      *
  557.      * @return return the id of the transition to follow e.g. // return new
  558.      *         FunctionStateResponse("transitionXXXXXXXX");
  559.      * @generated
  560.      */
  561.     @RefinementGenerator(id = "FunctionStateDescription_T4oBgXr4EeSxQJ5cUdsqSA")
  562.     public FunctionStateResponse functionSYS__Загрузить_ответ_на_запрос(
  563.             FunctionStateRequest functionStateRequest) {
  564.         de.metasonic.reftmpl.copybo20.runtime.RefinementTemplateRuntime refinementRuntime = new de.metasonic.reftmpl.copybo20.runtime.RefinementTemplateRuntime();
  565.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  566.                 .getApplicationContext().getAutowireCapableBeanFactory()
  567.                 .autowireBean(refinementRuntime);
  568.         refinementRuntime
  569.                 .setStateConfig(DATA_FunctionStateDescription_T4oBgXr4EeSxQJ5cUdsqSA);
  570.         try {
  571.             return (FunctionStateResponse) refinementRuntime.execute(
  572.                     getSubjectInstance(), getSubjectDescription(), getClass()
  573.                             .getClassLoader());
  574.         } catch (Exception ex) {
  575.             throw new RuntimeException(ex);
  576.         }
  577.     }
  578.  
  579.     /**
  580.      * This method is called when the named function state is reached State:
  581.      * Удалить поступивший ответ на запрос StateType: FUNCTION
  582.      *
  583.      * Return values "FunctionTransitionDescription_Yq9vIXr4EeSxQJ5cUdsqSA" when
  584.      * result is "" to go to state Анализ обращения
  585.      *
  586.      * @return return the id of the transition to follow e.g. // return new
  587.      *         FunctionStateResponse("transitionXXXXXXXX");
  588.      * @generated
  589.      */
  590.     @RefinementGenerator(id = "FunctionStateDescription_Vy7yEXr4EeSxQJ5cUdsqSA")
  591.     public FunctionStateResponse functionУдалить_поступивший_ответ_на_запрос(
  592.             FunctionStateRequest functionStateRequest) {
  593.         de.metasonic.reftmpl.clearfolder.runtime.RefinementTemplateRuntime refinementRuntime = new de.metasonic.reftmpl.clearfolder.runtime.RefinementTemplateRuntime();
  594.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  595.                 .getApplicationContext().getAutowireCapableBeanFactory()
  596.                 .autowireBean(refinementRuntime);
  597.         refinementRuntime
  598.                 .setStateConfig(DATA_FunctionStateDescription_Vy7yEXr4EeSxQJ5cUdsqSA);
  599.         try {
  600.             return (FunctionStateResponse) refinementRuntime.execute(
  601.                     getSubjectInstance(), getSubjectDescription(), getClass()
  602.                             .getClassLoader());
  603.         } catch (Exception ex) {
  604.             throw new RuntimeException(ex);
  605.         }
  606.     }
  607.  
  608.     /**
  609.      * This method is called when the named function state is reached State:
  610.      * Создать копию ответа на запрос StateType: FUNCTION
  611.      *
  612.      * Return values "FunctionTransitionDescription_e9s8cXuQEeSwNrpY_bxgsA" when
  613.      * result is "" to go to state SYS: Перенести копию ответа в отдельную папку
  614.      *
  615.      * @return return the id of the transition to follow e.g. // return new
  616.      *         FunctionStateResponse("transitionXXXXXXXX");
  617.      * @generated
  618.      */
  619.     @RefinementGenerator(id = "FunctionStateDescription_OljpUXuQEeSwNrpY_bxgsA")
  620.     public FunctionStateResponse functionСоздать_копию_ответа_на_запрос(
  621.             FunctionStateRequest functionStateRequest) {
  622.         de.metasonic.reftmpl.copybo20.runtime.RefinementTemplateRuntime refinementRuntime = new de.metasonic.reftmpl.copybo20.runtime.RefinementTemplateRuntime();
  623.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  624.                 .getApplicationContext().getAutowireCapableBeanFactory()
  625.                 .autowireBean(refinementRuntime);
  626.         refinementRuntime
  627.                 .setStateConfig(DATA_FunctionStateDescription_OljpUXuQEeSwNrpY_bxgsA);
  628.         try {
  629.             return (FunctionStateResponse) refinementRuntime.execute(
  630.                     getSubjectInstance(), getSubjectDescription(), getClass()
  631.                             .getClassLoader());
  632.         } catch (Exception ex) {
  633.             throw new RuntimeException(ex);
  634.         }
  635.     }
  636.  
  637.     /**
  638.      * This method is called when the named function state is reached State:
  639.      * SYS: Перенести копию ответа в отдельную папку StateType: FUNCTION
  640.      *
  641.      * Return values "FunctionTransitionDescription_hXL8UXuQEeSwNrpY_bxgsA" when
  642.      * result is "" to go to state SYS: Загрузить ответ на запрос
  643.      * "FunctionTransitionDescription_i1qFcXuQEeSwNrpY_bxgsA" when result is ""
  644.      * to go to state SYS: Перенести копию ответа в отдельную папку
  645.      *
  646.      * @return return the id of the transition to follow e.g. // return new
  647.      *         FunctionStateResponse("transitionXXXXXXXX");
  648.      * @generated
  649.      */
  650.     @RefinementGenerator(id = "FunctionStateDescription_RilbIXuQEeSwNrpY_bxgsA")
  651.     public FunctionStateResponse functionSYS__Перенести_копию_ответа_в_отдельную_папку(
  652.             FunctionStateRequest functionStateRequest) {
  653.         de.metasonic.reftmpl.storageitemdistributor.runtime.StorageItemDistributorRuntime refinementRuntime = new de.metasonic.reftmpl.storageitemdistributor.runtime.StorageItemDistributorRuntime();
  654.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  655.                 .getApplicationContext().getAutowireCapableBeanFactory()
  656.                 .autowireBean(refinementRuntime);
  657.         refinementRuntime
  658.                 .setStateConfig(DATA_FunctionStateDescription_RilbIXuQEeSwNrpY_bxgsA);
  659.         try {
  660.             return (FunctionStateResponse) refinementRuntime.execute(
  661.                     getSubjectInstance(), getSubjectDescription(), getClass()
  662.                             .getClassLoader());
  663.         } catch (Exception ex) {
  664.             throw new RuntimeException(ex);
  665.         }
  666.     }
  667.  
  668.     /**
  669.      * This function provides the data to send in the named state. TransitionID
  670.      * SendTransitionDescription_Z6u28YEkEeSYGqzav8IP3Q State: Отправить
  671.      * руководителю уведомление о закрытии обращения MessageType: Ответ
  672.      * согласован TransitionType SEND Destination Subject Руководитель
  673.      *
  674.      * @return // return the id of the transition to follow or null to stay in
  675.      *         this state e.g. // return new
  676.      *         SendStateResponse("transitionXXXXXXXX");
  677.      * @generated
  678.      */
  679.     @RefinementGenerator(id = "SendStateDescription_Rq4goYEkEeSYGqzav8IP3Q")
  680.     public SendStateResponse sendStateОтправить_руководителю_уведомление_о_закрытии_обращения(
  681.             SendStateRequest sendStateRequest) {
  682.         de.metasonic.reftmpl.bo20automaticsend.runtime.Bo20AutomaticSendRuntime refinementRuntime = new de.metasonic.reftmpl.bo20automaticsend.runtime.Bo20AutomaticSendRuntime();
  683.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  684.                 .getApplicationContext().getAutowireCapableBeanFactory()
  685.                 .autowireBean(refinementRuntime);
  686.         refinementRuntime
  687.                 .setStateConfig(DATA_SendStateDescription_Rq4goYEkEeSYGqzav8IP3Q);
  688.         try {
  689.             return (SendStateResponse) refinementRuntime.execute(
  690.                     getSubjectInstance(), getSubjectDescription(), getClass()
  691.                             .getClassLoader());
  692.         } catch (Exception ex) {
  693.             throw new RuntimeException(ex);
  694.         }
  695.     }
  696.  
  697.     /**
  698.      * This method is called when the named function state is reached State:
  699.      * Удалить обращение StateType: FUNCTION
  700.      *
  701.      * Return values "FunctionTransitionDescription_SkUQc4xQEeS_DedIEhcxYA" when
  702.      * result is "" to go to state Ожидание ответа от руководителя
  703.      *
  704.      * @return return the id of the transition to follow e.g. // return new
  705.      *         FunctionStateResponse("transitionXXXXXXXX");
  706.      * @generated
  707.      */
  708.     @RefinementGenerator(id = "FunctionStateDescription_PwrrMYxQEeS_DedIEhcxYA")
  709.     public FunctionStateResponse clearApplicationCard(
  710.             FunctionStateRequest functionStateRequest) {
  711.         de.metasonic.reftmpl.clearfolder.runtime.RefinementTemplateRuntime refinementRuntime = new de.metasonic.reftmpl.clearfolder.runtime.RefinementTemplateRuntime();
  712.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  713.                 .getApplicationContext().getAutowireCapableBeanFactory()
  714.                 .autowireBean(refinementRuntime);
  715.         refinementRuntime
  716.                 .setStateConfig(DATA_FunctionStateDescription_PwrrMYxQEeS_DedIEhcxYA);
  717.         try {
  718.             return (FunctionStateResponse) refinementRuntime.execute(
  719.                     getSubjectInstance(), getSubjectDescription(), getClass()
  720.                             .getClassLoader());
  721.         } catch (Exception ex) {
  722.             throw new RuntimeException(ex);
  723.         }
  724.     }
  725.  
  726.     /**
  727.      * This method is called when the named function state is reached State:
  728.      * Status UPDT: Подготовка отета StateType: FUNCTION
  729.      *
  730.      * Return values "FunctionTransitionDescription_iAJcI4zbEeSCuKxBmW_9PQ" when
  731.      * result is "" to go to state Подготовка ответа на обращение
  732.      *
  733.      * @return return the id of the transition to follow e.g. // return new
  734.      *         FunctionStateResponse("transitionXXXXXXXX");
  735.      * @generated
  736.      */
  737.     @RefinementGenerator(id = "FunctionStateDescription_cMfbcYzbEeSCuKxBmW_9PQ")
  738.     public FunctionStateResponse functionStatus_UPDT__Подготовка_отета(
  739.             FunctionStateRequest functionStateRequest) {
  740.         de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime refinementRuntime = new de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime();
  741.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  742.                 .getApplicationContext().getAutowireCapableBeanFactory()
  743.                 .autowireBean(refinementRuntime);
  744.         refinementRuntime
  745.                 .setStateConfig(DATA_FunctionStateDescription_cMfbcYzbEeSCuKxBmW_9PQ);
  746.         try {
  747.             return (FunctionStateResponse) refinementRuntime.execute(
  748.                     getSubjectInstance(), getSubjectDescription(), getClass()
  749.                             .getClassLoader());
  750.         } catch (Exception ex) {
  751.             throw new RuntimeException(ex);
  752.         }
  753.     }
  754.  
  755.     /**
  756.      * This method is called when the named function state is reached State:
  757.      * SYS: Установить статус Направлено по назначению StateType: FUNCTION
  758.      *
  759.      * Return values "FunctionTransitionDescription_7aznU7EnEeSQS7YUpI5jiQ" when
  760.      * result is "" to go to state SYS: Зафиксировать userId и departmentType
  761.      *
  762.      * @return return the id of the transition to follow e.g. // return new
  763.      *         FunctionStateResponse("transitionXXXXXXXX");
  764.      * @generated
  765.      */
  766.     @RefinementGenerator(id = "FunctionStateDescription_7Z8r37EnEeSQS7YUpI5jiQ")
  767.     public FunctionStateResponse functionSYS__Установить_статус_Направлено_по_назначению(
  768.             FunctionStateRequest functionStateRequest) {
  769.         de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime refinementRuntime = new de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime();
  770.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  771.                 .getApplicationContext().getAutowireCapableBeanFactory()
  772.                 .autowireBean(refinementRuntime);
  773.         refinementRuntime
  774.                 .setStateConfig(DATA_FunctionStateDescription_YJ9sw7BfEeSDaozb8mD6Ew);
  775.         try {
  776.             return (FunctionStateResponse) refinementRuntime.execute(
  777.                     getSubjectInstance(), getSubjectDescription(), getClass()
  778.                             .getClassLoader());
  779.         } catch (Exception ex) {
  780.             throw new RuntimeException(ex);
  781.         }
  782.     }
  783.  
  784.     /**
  785.      * This method is called when the named function state is reached State:
  786.      * SYS: Обновить статус Направлено партнёрам StateType: FUNCTION
  787.      *
  788.      * Return values "FunctionTransitionDescription_J7eGQbHqEeSOqpbZlfYPkQ" when
  789.      * result is "" to go to state Обращение отправлено партнёрам
  790.      *
  791.      * @return return the id of the transition to follow e.g. // return new
  792.      *         FunctionStateResponse("transitionXXXXXXXX");
  793.      * @generated
  794.      */
  795.     @RefinementGenerator(id = "FunctionStateDescription_J7LyfLHqEeSOqpbZlfYPkQ")
  796.     public FunctionStateResponse functionSYS__Обновить_статус_Направлено_партнёрам(
  797.             FunctionStateRequest functionStateRequest) {
  798.         de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime refinementRuntime = new de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime();
  799.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  800.                 .getApplicationContext().getAutowireCapableBeanFactory()
  801.                 .autowireBean(refinementRuntime);
  802.         refinementRuntime
  803.                 .setStateConfig(DATA_FunctionStateDescription_HPK107AuEeSTc7w663UUKQ);
  804.         try {
  805.             return (FunctionStateResponse) refinementRuntime.execute(
  806.                     getSubjectInstance(), getSubjectDescription(), getClass()
  807.                             .getClassLoader());
  808.         } catch (Exception ex) {
  809.             throw new RuntimeException(ex);
  810.         }
  811.     }
  812.  
  813.     /**
  814.      * This method is called when the named function state is reached State:
  815.      * claimDeadline UPDT StateType: FUNCTION
  816.      *
  817.      * Return values "FunctionTransitionDescription_7EXCsbHWEeSxsLNX4sAoTQ" when
  818.      * result is "" to go to state Зарегистрировать промежуточный ответ
  819.      *
  820.      * @return return the id of the transition to follow e.g. // return new
  821.      *         FunctionStateResponse("transitionXXXXXXXX");
  822.      */
  823.     /**
  824.      * @RefinementGenerator(id =
  825.      *                         "FunctionStateDescription_elB9uLIKEeS1_6hWgdiJSw"
  826.      *                         ) public FunctionStateResponse
  827.      *                         functionclaimDeadline_UPDT( FunctionStateRequest
  828.      *                         functionStateRequest) {
  829.      *
  830.      *                         log.debug("Starting deadline update");
  831.      *
  832.      *                         Bo20Accessory boAccessory = new
  833.      *                         Bo20Accessory(getSubjectInstance()); try {
  834.      *                         IStorageInstanceItemBeanReducedToId
  835.      *                         firstStorageItemInFirstStorage = boAccessory
  836.      *                         .getFirstStorageItemInFirstStorage();
  837.      *
  838.      *                         IView view = boAccessory.loadView(
  839.      *                         firstStorageItemInFirstStorage);
  840.      *                         log.debug("Got view for updating");
  841.      *
  842.      *                         Date newDeadline = (Date)
  843.      *                         Bo20FieldValueGetter.getValue(view,
  844.      *                         "intermediaryOutcomingAttributes.newClaimDeadline"
  845.      *                         );
  846.      *
  847.      *                         log.debug("updating....");
  848.      *
  849.      *                         Bo20FieldValueSetter.setValue(view,
  850.      *                         "commonAttributes.claimDeadline", newDeadline);
  851.      *
  852.      *                         boAccessory.saveView();
  853.      *
  854.      *                         } catch (Exception e) { e.printStackTrace(); }
  855.      *
  856.      *                         log.debug("claimDeadline updated");
  857.      *
  858.      *                         return new FunctionStateResponse(
  859.      *                         "FunctionTransitionDescription_jqNu0bIKEeS1_6hWgdiJSw"
  860.      *                         ); }
  861.      */
  862.     /**
  863.      * This state is an exit state Do all necessary clean up here. State: SYS:
  864.      * Установить дату закрытия обращения StateType: EXIT
  865.      */
  866.     @RefinementGenerator(id = "FunctionStateDescription_elB9uLIKEeS1_6hWgdiJSw")
  867.     public FunctionStateResponse functionSYS__Установить_дату_закрытия_обращения(
  868.             FunctionStateRequest functionStateRequest) {
  869.  
  870.         log.debug("Setting currentTime for ApplicationCard");
  871.  
  872.         Long functionExecutionStart = System.currentTimeMillis();
  873.  
  874.         Bo20Accessory boAccessory = new Bo20Accessory(getSubjectInstance());
  875.         try {
  876.  
  877.             long timeStart = System.currentTimeMillis();
  878.  
  879.             IStorageInstanceItemBeanReducedToId firstStorageItemInFirstStorage = boAccessory
  880.                     .getFirstStorageItemInFirstStorage();
  881.  
  882.             log.debug("firstStorageItemInFirstStorage fetched in "
  883.                     + (System.currentTimeMillis() - timeStart) + " ms");
  884.             log.debug("firstStorageItemInFirstStorage fetched in "
  885.                     + (System.currentTimeMillis() - timeStart) + " ms");
  886.  
  887.             timeStart = System.currentTimeMillis();
  888.  
  889.             IView view = boAccessory.loadView(firstStorageItemInFirstStorage);
  890.  
  891.             log.debug("view fetched in "
  892.                     + (System.currentTimeMillis() - timeStart) + " ms");
  893.             log.debug("view fetched in "
  894.                     + (System.currentTimeMillis() - timeStart) + " ms");
  895.  
  896.             log.debug("Got view for time setting");
  897.  
  898.             Date date = new Date();
  899.             Date currentTime = new Date(date.getTime());
  900.  
  901.             timeStart = System.currentTimeMillis();
  902.  
  903.             log.debug("Time is " + currentTime);
  904.             log.debug("Time is " + currentTime);
  905.  
  906.             Bo20FieldValueSetter
  907.                     .setValue(view,
  908.                             "outcomingAttributes.factApplicationCloseDate",
  909.                             currentTime);
  910.  
  911.             log.debug("currentTime set in "
  912.                     + (System.currentTimeMillis() - timeStart) + " ms");
  913.             log.debug("currentTime set in "
  914.                     + (System.currentTimeMillis() - timeStart) + " ms");
  915.  
  916.             timeStart = System.currentTimeMillis();
  917.  
  918.             boAccessory.saveView();
  919.  
  920.             log.debug("business object saved in "
  921.                     + (System.currentTimeMillis() - timeStart) + " ms");
  922.             log.debug("business object saved in "
  923.                     + (System.currentTimeMillis() - timeStart) + " ms");
  924.  
  925.         } catch (Exception e) {
  926.             // TODO Автоматически созданный блок catch
  927.             log.error(e);
  928.         }
  929.  
  930.         log.debug("function executed in "
  931.                 + (System.currentTimeMillis() - functionExecutionStart) + " ms");
  932.         System.out
  933.                 .println("function executed in "
  934.                         + (System.currentTimeMillis() - functionExecutionStart)
  935.                         + " ms");
  936.  
  937.         return new FunctionStateResponse(
  938.                 "FunctionTransitionDescription_jqNu0bIKEeS1_6hWgdiJSw");
  939.     }
  940.  
  941.     /**
  942.      * This method is called when the named function state is reached State:
  943.      * claimDeadline UPDT StateType: FUNCTION
  944.      *
  945.      * Return values "FunctionTransitionDescription_7EXCsbHWEeSxsLNX4sAoTQ" when
  946.      * result is "" to go to state Зарегистрировать промежуточный ответ
  947.      *
  948.      * @return return the id of the transition to follow e.g. // return new
  949.      *         FunctionStateResponse("transitionXXXXXXXX");
  950.      */
  951.     @RefinementGenerator(id = "FunctionStateDescription_Zt2J8LHWEeSxsLNX4sAoTQ")
  952.     public FunctionStateResponse functionclaimDeadline_UPDT(
  953.             FunctionStateRequest functionStateRequest) {
  954.         log.debug("Starting deadline update");
  955.  
  956.         Bo20Accessory boAccessory = new Bo20Accessory(getSubjectInstance());
  957.         try {
  958.             IStorageInstanceItemBeanReducedToId firstStorageItemInFirstStorage = boAccessory
  959.                     .getFirstStorageItemInFirstStorage();
  960.             IView view = boAccessory.loadView(firstStorageItemInFirstStorage);
  961.             log.debug("Got view for updating");
  962.  
  963.             Date newDeadline = (Date) Bo20FieldValueGetter.getValue(view,
  964.                     "intermediaryOutcomingAttributes.newClaimDeadline");
  965.  
  966.             log.debug("updating....");
  967.  
  968.             Bo20FieldValueSetter.setValue(view,
  969.                     "commonAttributes.claimDeadline", newDeadline);
  970.  
  971.             boAccessory.saveView();
  972.  
  973.         } catch (Exception e) {
  974.             log.error(e);
  975.         }
  976.  
  977.         log.debug("claimDeadline updated");
  978.  
  979.         return new FunctionStateResponse(
  980.                 "FunctionTransitionDescription_7EXCsbHWEeSxsLNX4sAoTQ");
  981.     }
  982.  
  983.     /**
  984.      * This method is called when the named function state is reached State:
  985.      * email: Направить ответ клиенту StateType: FUNCTION
  986.      *
  987.      * Return values "FunctionTransitionDescription_ovZZAXJyEeWTKfTTbJ_JGw" when
  988.      * result is "" to go to state Status UPDT: Ответ отправлен
  989.      *
  990.      * @return return the id of the transition to follow e.g. // return new
  991.      *         FunctionStateResponse("transitionXXXXXXXX");
  992.      */
  993.     @RefinementGenerator(id = "FunctionStateDescription_jV4WonJyEeWTKfTTbJ_JGw")
  994.     public FunctionStateResponse emailFinalUfpsFTSAnswer(
  995.             FunctionStateRequest functionStateRequest) {
  996.         System.out.println("emailFinalUfpsFTSAnswer: start");
  997.  
  998.         Bo20Accessory boAccessory = new Bo20Accessory(getSubjectInstance());
  999.  
  1000.         try {
  1001.             IStorageInstanceItemBeanReducedToId firstStorageItemInFirstStorage = boAccessory
  1002.                     .getFirstStorageItemInFirstStorage();
  1003.  
  1004.             if (firstStorageItemInFirstStorage != null) {
  1005.  
  1006.                 IView view = boAccessory
  1007.                         .loadView(firstStorageItemInFirstStorage);
  1008.  
  1009.                 if (view instanceof ApplicationCardNoRulesView) {
  1010.  
  1011.                     ApplicationCardNoRulesView applicationCard = (ApplicationCardNoRulesView) view;
  1012.  
  1013.                     String claimId = applicationCard
  1014.                             .getClaimIncomingAttributes().getClaimIsoId();
  1015.  
  1016.                     System.out.println("emailFinalUfpsFTSAnswer: claimId = "
  1017.                             + claimId);
  1018.  
  1019.                     String claimExternalId = applicationCard
  1020.                             .getClaimIncomingAttributes()
  1021.                             .getExternalIncomingId();
  1022.  
  1023.                     System.out
  1024.                             .println("emailFinalUfpsFTSAnswer: claimExternalId = "
  1025.                                     + claimExternalId);
  1026.  
  1027.                     String userId = applicationCard.getTechdata()
  1028.                             .getCurrentUserId();
  1029.  
  1030.                     System.out.println("emailFinalUfpsFTSAnswer: userId = "
  1031.                             + userId);
  1032.  
  1033.                     String procInstId = applicationCard.getProcInstId();
  1034.  
  1035.                     System.out.println("emailFinalUfpsFTSAnswer: procInstId = "
  1036.                             + procInstId);
  1037.  
  1038.                     String subjInstId = applicationCard.getSubjInstId();
  1039.  
  1040.                     System.out.println("emailFinalUfpsFTSAnswer: subjInstId = "
  1041.                             + subjInstId);
  1042.  
  1043.                     String customerEmail = applicationCard.getCustomerInfo()
  1044.                             .getCustomerEmail();
  1045.  
  1046.                     System.out
  1047.                             .println("emailFinalUfpsFTSAnswer: customerEmail = "
  1048.                                     + customerEmail);
  1049.  
  1050.                     System.out
  1051.                             .println("emailFinalUfpsFTSAnswer: attempt to execute MailSender");
  1052.  
  1053.                     MailSender
  1054.                             .execute(
  1055.                                     userId,
  1056.                                     procInstId,
  1057.                                     subjInstId,
  1058.                                     customerEmail,
  1059.                                     "ROOT/Ответ на обращение",
  1060.                                     "russianpost" + claimId + ".zip",
  1061.                                     "Ваше обращение №" + claimId
  1062.                                             + " обработано",
  1063.                                     "По Вашему обращению №"
  1064.                                             + claimId
  1065.                                             + " на запрос 'Переадресация из ФТС России №"
  1066.                                             + claimExternalId
  1067.                                             + "' получен ответ. Ответ во вложении.");
  1068.  
  1069.                     System.out
  1070.                             .println("emailFinalUfpsFTSAnswer: MailSender execution completed, please check for the email delivery");
  1071.                 }
  1072.             }
  1073.  
  1074.             else {
  1075.                 log.warn("No storage items found for subject instance "
  1076.                         + getSubjectInstance());
  1077.             }
  1078.  
  1079.         } catch (Exception e) {
  1080.             log.error(e);
  1081.         }
  1082.  
  1083.         System.out
  1084.                 .println("emailFinalUfpsFTSAnswer: finished with emailFinalUfpsFTSAnswer, return FunctionStateResponse");
  1085.  
  1086.         return new FunctionStateResponse(
  1087.                 "FunctionTransitionDescription_ovZZAXJyEeWTKfTTbJ_JGw");
  1088.     }
  1089.  
  1090.     /**
  1091.      * This method is called when the named function state is reached State:
  1092.      * email: Отправить клиенту ответ на обращение StateType: FUNCTION
  1093.      *
  1094.      * Return values "FunctionTransitionDescription_ChvS8utVEeOr99WSB0SeVA" when
  1095.      * result is "" to go to state Status UPDT: Ответ отправлен
  1096.      *
  1097.      * @return return the id of the transition to follow e.g. // return new
  1098.      *         FunctionStateResponse("transitionXXXXXXXX");
  1099.      */
  1100.     @RefinementGenerator(id = "FunctionStateDescription_ChcYAOtVEeOr99WSB0SeVA")
  1101.     public FunctionStateResponse emailFinalUfpsAnswer(
  1102.             FunctionStateRequest functionStateRequest) {
  1103.         System.out.println("emailFinalUfpsAnswer: start");
  1104.  
  1105.         Bo20Accessory boAccessory = new Bo20Accessory(getSubjectInstance());
  1106.  
  1107.         try {
  1108.             IStorageInstanceItemBeanReducedToId firstStorageItemInFirstStorage = boAccessory
  1109.                     .getFirstStorageItemInFirstStorage();
  1110.  
  1111.             if (firstStorageItemInFirstStorage != null) {
  1112.  
  1113.                 IView view = boAccessory
  1114.                         .loadView(firstStorageItemInFirstStorage);
  1115.  
  1116.                 if (view instanceof ApplicationCardNoRulesView) {
  1117.  
  1118.                     ApplicationCardNoRulesView applicationCard = (ApplicationCardNoRulesView) view;
  1119.  
  1120.                     String claimId = applicationCard
  1121.                             .getClaimIncomingAttributes().getClaimIsoId();
  1122.  
  1123.                     System.out.println("emailFinalUfpsAnswer: claimId = "
  1124.                             + claimId);
  1125.  
  1126.                     String claimExternalId = applicationCard
  1127.                             .getClaimIncomingAttributes()
  1128.                             .getExternalIncomingId();
  1129.  
  1130.                     System.out
  1131.                             .println("emailFinalUfpsAnswer: claimExternalId = "
  1132.                                     + claimExternalId);
  1133.  
  1134.                     String userId = applicationCard.getTechdata()
  1135.                             .getCurrentUserId();
  1136.  
  1137.                     System.out.println("emailFinalUfpsAnswer: userId = "
  1138.                             + userId);
  1139.  
  1140.                     String procInstId = applicationCard.getProcInstId();
  1141.  
  1142.                     System.out.println("emailFinalUfpsAnswer: procInstId = "
  1143.                             + procInstId);
  1144.  
  1145.                     String subjInstId = applicationCard.getSubjInstId();
  1146.  
  1147.                     System.out.println("emailFinalUfpsAnswer: subjInstId = "
  1148.                             + subjInstId);
  1149.  
  1150.                     String customerEmail = applicationCard.getCustomerInfo()
  1151.                             .getCustomerEmail();
  1152.  
  1153.                     System.out.println("emailFinalUfpsAnswer: customerEmail = "
  1154.                             + customerEmail);
  1155.  
  1156.                     System.out
  1157.                             .println("emailFinalUfpsAnswer: attempt to execute MailSender");
  1158.  
  1159.                     MailSender
  1160.                             .execute(
  1161.                                     userId,
  1162.                                     procInstId,
  1163.                                     subjInstId,
  1164.                                     customerEmail,
  1165.                                     "ROOT/Ответ на обращение",
  1166.                                     "russianpost" + claimId + ".zip",
  1167.                                     "Ответ на обращение №" + claimId,
  1168.                                     "Уважаемый клиент,\n"
  1169.                                             + "Во вложении к данному письму направляем ответ на Ваше обращение № "
  1170.                                             + claimId
  1171.                                             + "\n\nФГУП \"Почта России\".");
  1172.                     System.out
  1173.                             .println("emailFinalUfpsAnswer: MailSender execution completed, please check for the email delivery");
  1174.                 }
  1175.             }
  1176.  
  1177.             else {
  1178.                 log.warn("No storage items found for subject instance "
  1179.                         + getSubjectInstance());
  1180.             }
  1181.  
  1182.         } catch (Exception e) {
  1183.             log.error(e);
  1184.         }
  1185.  
  1186.         System.out
  1187.                 .println("emailFinalUfpsAnswer: finished with emailFinalUfpsAnswer, return FunctionStateResponse");
  1188.  
  1189.         return new FunctionStateResponse(
  1190.                 "FunctionTransitionDescription_ChvS8utVEeOr99WSB0SeVA");
  1191.     }
  1192.  
  1193.     /**
  1194.      * This method is called when the named function state is reached State:
  1195.      * SYS: Зафиксировать userId и departmentType StateType: FUNCTION
  1196.      *
  1197.      * Return values "FunctionTransitionDescription_ShTZIBBeEeerWdDLx9TJVw" when
  1198.      * result is "" to go to state SYS: Убрать флаг Отправлено из КЦ
  1199.      *
  1200.      * @return return the id of the transition to follow e.g. // return new
  1201.      *         FunctionStateResponse("transitionXXXXXXXX");
  1202.      */
  1203.     @RefinementGenerator(id = "FunctionStateDescription_ShEIlhBeEeerWdDLx9TJVw")
  1204.     public FunctionStateResponse functionSYS__Зафиксировать_userId_и_departmentType(
  1205.             FunctionStateRequest functionStateRequest) {
  1206.         System.out.println("Зафиксировать_userId_и_departmentType: start");
  1207.  
  1208.         Bo20Accessory boAccessory = new Bo20Accessory(getSubjectInstance());
  1209.  
  1210.         try {
  1211.             IStorageInstanceItemBeanReducedToId firstStorageItemInFirstStorage = boAccessory
  1212.                     .getFirstStorageItemInFirstStorage();
  1213.  
  1214.             if (firstStorageItemInFirstStorage != null) {
  1215.  
  1216.                 IView view = boAccessory
  1217.                         .loadView(firstStorageItemInFirstStorage);
  1218.  
  1219.                 if (view instanceof ApplicationCardNoRulesView) {
  1220.  
  1221.                     ApplicationCardNoRulesView applicationCard = (ApplicationCardNoRulesView) view;
  1222.  
  1223.                     int previousUserId = Integer.parseInt(applicationCard
  1224.                             .getCurrentUser().getId());
  1225.                     // String previousDepartmentType = applicationCard
  1226.                     // .getCurrentUserDepartment().getDepartmentType();
  1227.  
  1228.                     String previousDepartmentType = applicationCard
  1229.                             .getCommonAttributes()
  1230.                             .getClaimResponsibleDepartment()
  1231.                             .getDepartmentType();
  1232.  
  1233.                     Bo20FieldValueSetter.setValue(view, "previousUserId",
  1234.                             previousUserId);
  1235.  
  1236.                     Bo20FieldValueSetter.setValue(view,
  1237.                             "previousDepartmentType", previousDepartmentType);
  1238.  
  1239.                     Bo20FieldValueSetter.setValue(view,
  1240.                             "commonAttributes.refuseComm", "");
  1241.  
  1242.                     System.out.println("previousUserId: " + previousUserId
  1243.                             + ", previousDepartmentType: "
  1244.                             + previousDepartmentType);
  1245.  
  1246.                     boAccessory.saveView();
  1247.                 } else {
  1248.                     log.warn("No storage items found for subject instance "
  1249.                             + getSubjectInstance());
  1250.                 }
  1251.             }
  1252.         } catch (Exception e) {
  1253.             log.error(e);
  1254.         }
  1255.  
  1256.         return new FunctionStateResponse(
  1257.                 "FunctionTransitionDescription_ShTZIBBeEeerWdDLx9TJVw");
  1258.     }
  1259.  
  1260.     /**
  1261.      * This method is called when the named function state is reached State:
  1262.      * SYS: Убрать флаг Отправлено из КЦ StateType: FUNCTION
  1263.      *
  1264.      * Return values "FunctionTransitionDescription_W42oMRBeEeerWdDLx9TJVw" when
  1265.      * result is "" to go to state Направить задание в другое подразделение
  1266.      *
  1267.      * @return return the id of the transition to follow e.g. // return new
  1268.      *         FunctionStateResponse("transitionXXXXXXXX");
  1269.      * @generated
  1270.      */
  1271.     @RefinementGenerator(id = "FunctionStateDescription_ShNSgBBeEeerWdDLx9TJVw")
  1272.     public FunctionStateResponse functionSYS__Убрать_флаг_Отправлено_из_КЦ(
  1273.             FunctionStateRequest functionStateRequest) {
  1274.         de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime refinementRuntime = new de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime();
  1275.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  1276.                 .getApplicationContext().getAutowireCapableBeanFactory()
  1277.                 .autowireBean(refinementRuntime);
  1278.         refinementRuntime
  1279.                 .setStateConfig(DATA_FunctionStateDescription_ShNSgBBeEeerWdDLx9TJVw);
  1280.         try {
  1281.             return (FunctionStateResponse) refinementRuntime.execute(
  1282.                     getSubjectInstance(), getSubjectDescription(), getClass()
  1283.                             .getClassLoader());
  1284.         } catch (Exception ex) {
  1285.             throw new RuntimeException(ex);
  1286.         }
  1287.     }
  1288.  
  1289.     /**
  1290.      * This method is called when the named function state is reached State:
  1291.      * SYS: Зафиксировать userId и departmentType1 StateType: FUNCTION
  1292.      *
  1293.      * Return values "FunctionTransitionDescription_Gyir8xBeEeerWdDLx9TJVw" when
  1294.      * result is "" to go to state Отправка обращения в почтамт
  1295.      *
  1296.      * @return return the id of the transition to follow e.g. // return new
  1297.      *         FunctionStateResponse("transitionXXXXXXXX");
  1298.      */
  1299.     @RefinementGenerator(id = "FunctionStateDescription_x0P_shBdEeerWdDLx9TJVw")
  1300.     public FunctionStateResponse functionSYS__Зафиксировать_userId_и_departmentType1(
  1301.             FunctionStateRequest functionStateRequest) {
  1302.         System.out.println("Зафиксировать_userId_и_departmentType: start");
  1303.  
  1304.         Bo20Accessory boAccessory = new Bo20Accessory(getSubjectInstance());
  1305.  
  1306.         try {
  1307.             IStorageInstanceItemBeanReducedToId firstStorageItemInFirstStorage = boAccessory
  1308.                     .getFirstStorageItemInFirstStorage();
  1309.  
  1310.             if (firstStorageItemInFirstStorage != null) {
  1311.  
  1312.                 IView view = boAccessory
  1313.                         .loadView(firstStorageItemInFirstStorage);
  1314.  
  1315.                 if (view instanceof ApplicationCardNoRulesView) {
  1316.  
  1317.                     ApplicationCardNoRulesView applicationCard = (ApplicationCardNoRulesView) view;
  1318.  
  1319.                     int previousUserId = Integer.parseInt(applicationCard
  1320.                             .getCurrentUser().getId());
  1321.                     // String previousDepartmentType = applicationCard
  1322.                     // .getCurrentUserDepartment().getDepartmentType();
  1323.  
  1324.                     String previousDepartmentType = applicationCard
  1325.                             .getCommonAttributes()
  1326.                             .getClaimResponsibleDepartment()
  1327.                             .getDepartmentType();
  1328.  
  1329.                     Bo20FieldValueSetter.setValue(view, "previousUserId",
  1330.                             previousUserId);
  1331.  
  1332.                     Bo20FieldValueSetter.setValue(view,
  1333.                             "previousDepartmentType", previousDepartmentType);
  1334.  
  1335.                     Bo20FieldValueSetter.setValue(view,
  1336.                             "commonAttributes.refuseComm", "");
  1337.  
  1338.                     System.out.println("previousUserId: " + previousUserId
  1339.                             + ", previousDepartmentType: "
  1340.                             + previousDepartmentType);
  1341.  
  1342.                     boAccessory.saveView();
  1343.                 } else {
  1344.                     log.warn("No storage items found for subject instance "
  1345.                             + getSubjectInstance());
  1346.                 }
  1347.             }
  1348.         } catch (Exception e) {
  1349.             log.error(e);
  1350.         }
  1351.  
  1352.         return new FunctionStateResponse(
  1353.                 "FunctionTransitionDescription_Gyir8xBeEeerWdDLx9TJVw");
  1354.     }
  1355.  
  1356.     /**
  1357.      * This method is called when the named function state is reached State:
  1358.      * SYS: Установить статус "Обращение возвращено" StateType: FUNCTION
  1359.      *
  1360.      * Return values "FunctionTransitionDescription_h7xYgBBdEeerWdDLx9TJVw" when
  1361.      * result is "" to go to state SYS: Отметить обращение как Новое
  1362.      *
  1363.      * @return return the id of the transition to follow e.g. // return new
  1364.      *         FunctionStateResponse("transitionXXXXXXXX");
  1365.      * @generated
  1366.      */
  1367.     @RefinementGenerator(id = "FunctionStateDescription_h7rR4hBdEeerWdDLx9TJVw")
  1368.     public FunctionStateResponse functionSYS__Установить_статус__Обращение_возвращено_(
  1369.             FunctionStateRequest functionStateRequest) {
  1370.         de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime refinementRuntime = new de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime();
  1371.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  1372.                 .getApplicationContext().getAutowireCapableBeanFactory()
  1373.                 .autowireBean(refinementRuntime);
  1374.         refinementRuntime
  1375.                 .setStateConfig(DATA_FunctionStateDescription_h7rR4hBdEeerWdDLx9TJVw);
  1376.         try {
  1377.             return (FunctionStateResponse) refinementRuntime.execute(
  1378.                     getSubjectInstance(), getSubjectDescription(), getClass()
  1379.                             .getClassLoader());
  1380.         } catch (Exception ex) {
  1381.             throw new RuntimeException(ex);
  1382.         }
  1383.     }
  1384.  
  1385.     /**
  1386.      * This method is called when the named function state is reached State:
  1387.      * SYS: Убрать флаг Отказ от обращения StateType: FUNCTION
  1388.      *
  1389.      * Return values "FunctionTransitionDescription_i7S1YROKEee6MraXpSxWRA" when
  1390.      * result is "" to go to state E-mail: обращение было возвращено
  1391.      *
  1392.      * @return return the id of the transition to follow e.g. // return new
  1393.      *         FunctionStateResponse("transitionXXXXXXXX");
  1394.      * @generated
  1395.      */
  1396.     @RefinementGenerator(id = "FunctionStateDescription_UM_N4ROKEee6MraXpSxWRA")
  1397.     public FunctionStateResponse functionSYS__Убрать_флаг_Отказ_от_обращения(
  1398.             FunctionStateRequest functionStateRequest) {
  1399.         de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime refinementRuntime = new de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime();
  1400.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  1401.                 .getApplicationContext().getAutowireCapableBeanFactory()
  1402.                 .autowireBean(refinementRuntime);
  1403.         refinementRuntime
  1404.                 .setStateConfig(DATA_FunctionStateDescription_UM_N4ROKEee6MraXpSxWRA);
  1405.         try {
  1406.             return (FunctionStateResponse) refinementRuntime.execute(
  1407.                     getSubjectInstance(), getSubjectDescription(), getClass()
  1408.                             .getClassLoader());
  1409.         } catch (Exception ex) {
  1410.             throw new RuntimeException(ex);
  1411.         }
  1412.     }
  1413.  
  1414.     /**
  1415.      * This method is called when the named function state is reached State:
  1416.      * SYS: Отметить обращение как Новое StateType: FUNCTION
  1417.      *
  1418.      * Return values "FunctionTransitionDescription_txAJcRR9EeeDLNRfpiDxiw" when
  1419.      * result is "" to go to state SYS: Убрать флаг Отказ от обращения
  1420.      *
  1421.      * @return return the id of the transition to follow e.g. // return new
  1422.      *         FunctionStateResponse("transitionXXXXXXXX");
  1423.      * @generated
  1424.      */
  1425.     @RefinementGenerator(id = "FunctionStateDescription_m3BfsRR9EeeDLNRfpiDxiw")
  1426.     public FunctionStateResponse functionSYS__Отметить_обращение_как_Новое(
  1427.             FunctionStateRequest functionStateRequest) {
  1428.         de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime refinementRuntime = new de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime();
  1429.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  1430.                 .getApplicationContext().getAutowireCapableBeanFactory()
  1431.                 .autowireBean(refinementRuntime);
  1432.         refinementRuntime
  1433.                 .setStateConfig(DATA_FunctionStateDescription_m3BfsRR9EeeDLNRfpiDxiw);
  1434.         try {
  1435.             return (FunctionStateResponse) refinementRuntime.execute(
  1436.                     getSubjectInstance(), getSubjectDescription(), getClass()
  1437.                             .getClassLoader());
  1438.         } catch (Exception ex) {
  1439.             throw new RuntimeException(ex);
  1440.         }
  1441.     }
  1442.  
  1443.     /**
  1444.      * @generated
  1445.      */
  1446.     private static final String DATA_FunctionStateDescription_xXFLUUMYEeSJ06URn4wMYA = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48Ym8yMF9maWVsZC5maWVsZC4xIHZhbHVlPSJjb21tb25BdHRyaWJ1dGVzLmNsYWltU3RhdHVzIi8+PGJvMjBfZmllbGQuc3RvcmFnZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fSG8xdEFPdkFFZU9jbWNxeXZubnB6QSIvPjxTVEFURV9JRCB2YWx1ZT0iRnVuY3Rpb25TdGF0ZURlc2NyaXB0aW9uX3hYRkxVVU1ZRWVTSjA2VVJuNHdNWUEiLz48c3RvcmFnZS52YWx1ZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fSG8xdEFPdkFFZU9jbWNxeXZubnB6QSIvPjxibzIwX2ZpZWxkLmJvIHZhbHVlPSJydS5ydXNwb3N0LmFwcGxpY2F0aW9uLkFwcGxpY2F0aW9uQ2FyZE5vUnVsZXNWaWV3Ii8+PGJvMjBfZmllbGQudmFsdWUuMiB2YWx1ZT0idHJ1ZSIvPjxibzIwX2ZpZWxkLnZhbHVlLjEgdmFsdWU9ImludGVybWVkaWF0ZUFuc3dlcmVkQ2xhaW0iLz48Ym8yMF9maWVsZC50eXBlLjIgdmFsdWU9IkJPT0xFQU4iLz48Ym8yMF9maWVsZC5tb2RlIHZhbHVlPSJjaGVjayIvPjxibzIwX2ZpZWxkLnR5cGUuMSB2YWx1ZT0iRU5VTSIvPjxibzIwX2ZpZWxkLmZpZWxkLjIgdmFsdWU9ImludGVybWVkaWFyeUFuc3dlclNlbnQiLz48L2NvbmZpZ3VyYXRpb24+";
  1447.  
  1448.     /**
  1449.      * This method is called when the named function state is reached State:
  1450.      * Зарегистрировать ответ в СЭД StateType: FUNCTION
  1451.      *
  1452.      * Return values "FunctionTransitionDescription_Je2RQEOPEeeZ8tdD70STrg" when
  1453.      * result is "" to go to state Передать ответ на согласование в СЭД
  1454.      *
  1455.      * @return return the id of the transition to follow e.g. // return new
  1456.      *         FunctionStateResponse("transitionXXXXXXXX");
  1457.      */
  1458.     @RefinementGenerator(id = "FunctionStateDescription_E_5ZsUOPEeeZ8tdD70STrg")
  1459.     public FunctionStateResponse functionЗарегистрировать_ответ_в_СЭД(
  1460.             FunctionStateRequest functionStateRequest) {
  1461.         SubjectInstanceBean subjInstBean = getSubjectInstance();
  1462.  
  1463.         String userId = subjInstBean.getEditor();
  1464.         // IUserBean userBean = authorizationApi.getUser(userId);
  1465.  
  1466.         DocMangmntActions.requestAgreemant(subjInstBean, userId, false);
  1467.  
  1468.         return new FunctionStateResponse(
  1469.                 "FunctionTransitionDescription_Je2RQEOPEeeZ8tdD70STrg");
  1470.     }
  1471.  
  1472.     /**
  1473.      * This method is called when the named function state is reached State:
  1474.      * Получение рег. номера StateType: FUNCTION
  1475.      *
  1476.      * Return values "FunctionTransitionDescription_bVxT4UOtEee9zf2TMLhdUg" when
  1477.      * result is "" to go to state Ожидание получения рег. номера
  1478.      *
  1479.      * @return return the id of the transition to follow e.g. // return new
  1480.      *         FunctionStateResponse("transitionXXXXXXXX");
  1481.      */
  1482.     @RefinementGenerator(id = "FunctionStateDescription_zXwisUOsEeeZ8tdD70STrg")
  1483.     public FunctionStateResponse functionПолучение_рег__номера(
  1484.             FunctionStateRequest functionStateRequest) throws Exception {
  1485.  
  1486.         SubjectInstanceBean subjInstBean = getSubjectInstance();
  1487.  
  1488.         String userId = subjInstBean.getEditor();
  1489.         // IUserBean userBean = authorizationApi.getUser(userId);
  1490.  
  1491.         DocMangmntActions.requetsOutgoing(subjInstBean, userId, false);
  1492.  
  1493.         return new FunctionStateResponse(
  1494.                 "FunctionTransitionDescription_bVxT4UOtEee9zf2TMLhdUg");
  1495.     }
  1496.  
  1497.     @Autowired
  1498.     IAuthorizationApi authorizationApi;
  1499.  
  1500.     /**
  1501.      * This method is called when the named function state is reached State:
  1502.      * Отправка скана StateType: FUNCTION
  1503.      *
  1504.      * Return values "FunctionTransitionDescription_ldmfgUOtEee9zf2TMLhdUg" when
  1505.      * result is "" to go to state Определение типа отправки обращения
  1506.      * "FunctionTransitionDescription_gCiywUOyEee9zf2TMLhdUg" when result is ""
  1507.      * to go to state Определение типа отправки промежуточного ответа
  1508.      *
  1509.      * @return return the id of the transition to follow e.g. // return new
  1510.      *         FunctionStateResponse("transitionXXXXXXXX");
  1511.      * @throws Exception
  1512.      */
  1513.     @RefinementGenerator(id = "FunctionStateDescription_DRk7EUOtEeeZ8tdD70STrg")
  1514.     public FunctionStateResponse functionОтправка_скана(
  1515.             FunctionStateRequest functionStateRequest) throws Exception {
  1516.         SubjectInstanceBean subjInstBean = getSubjectInstance();
  1517.  
  1518.         String userId = subjInstBean.getEditor();
  1519.         // IUserBean userBean = authorizationApi.getUser(userId);
  1520.  
  1521.         DocMangmntActions.sendScan(subjInstBean, userId, true);
  1522.         return new FunctionStateResponse(
  1523.                 "FunctionTransitionDescription_Xu5fIURCEeerd73vvRhm7g");
  1524.     }
  1525.  
  1526.     /**
  1527.      * This method is called when the named function state is reached State:
  1528.      * Отправить в СЭД инф. о способах отправки обращения StateType: FUNCTION
  1529.      *
  1530.      * Return values "FunctionTransitionDescription_sKStwUUdEeekEqjj5d37yA" when
  1531.      * result is "" to go to state Определить: Требуется ли копия ответа в АУП
  1532.      *
  1533.      * @return return the id of the transition to follow e.g. // return new
  1534.      *         FunctionStateResponse("transitionXXXXXXXX");
  1535.      */
  1536.     @RefinementGenerator(id = "FunctionStateDescription_l8P3JkUdEeekEqjj5d37yA")
  1537.     public FunctionStateResponse functionОтправить_в_СЭД_инф__о_способах_отправки(
  1538.             FunctionStateRequest functionStateRequest) throws Exception {
  1539.         SubjectInstanceBean subjInstBean = getSubjectInstance();
  1540.  
  1541.         String userId = subjInstBean.getEditor();
  1542.         // IUserBean userBean = authorizationApi.getUser(userId);
  1543.  
  1544.         DocMangmntActions.sendMailId(subjInstBean, userId, false);
  1545.         return new FunctionStateResponse(
  1546.                 "FunctionTransitionDescription_sKStwUUdEeekEqjj5d37yA");
  1547.     }
  1548.  
  1549.     /**
  1550.      * This method is called when the named function state is reached State:
  1551.      * Отправить в СЭД инф. о способах отправки обращения StateType: FUNCTION
  1552.      *
  1553.      * Return values "FunctionTransitionDescription_LGzpQUUeEeekEqjj5d37yA" when
  1554.      * result is "" to go to state Анализ обращения
  1555.      *
  1556.      * @return return the id of the transition to follow e.g. // return new
  1557.      *         FunctionStateResponse("transitionXXXXXXXX");
  1558.      */
  1559.     @RefinementGenerator(id = "FunctionStateDescription_9GHVuEUdEeekEqjj5d37yA")
  1560.     public FunctionStateResponse functionОтправить_в_СЭД_инф__о_способах_отправки_обращения(
  1561.             FunctionStateRequest functionStateRequest) throws Exception {
  1562.         SubjectInstanceBean subjInstBean = getSubjectInstance();
  1563.  
  1564.         String userId = subjInstBean.getEditor();
  1565.         // IUserBean userBean = authorizationApi.getUser(userId);
  1566.  
  1567.         DocMangmntActions.sendMailId(subjInstBean, userId, false);
  1568.         return new FunctionStateResponse(
  1569.                 "FunctionTransitionDescription_LGzpQUUeEeekEqjj5d37yA");
  1570.     }
  1571.  
  1572.     /**
  1573.      * This method is called when the named function state is reached State:
  1574.      * Зар. пр. ответ в СЭД StateType: FUNCTION
  1575.      *
  1576.      * Return values "FunctionTransitionDescription_Kc1EAUOxEee9zf2TMLhdUg" when
  1577.      * result is "" to go to state Ожидание согласования промежуточного ответа в
  1578.      * СЭД
  1579.      *
  1580.      * @return return the id of the transition to follow e.g. // return new
  1581.      *         FunctionStateResponse("transitionXXXXXXXX");
  1582.      */
  1583.     @RefinementGenerator(id = "FunctionStateDescription_AtyL0UOxEee9zf2TMLhdUg")
  1584.     public FunctionStateResponse functionЗар__пр__ответ_в_СЭД(
  1585.             FunctionStateRequest functionStateRequest) {
  1586.         SubjectInstanceBean subjInstBean = getSubjectInstance();
  1587.  
  1588.         String userId = subjInstBean.getEditor();
  1589.         // IUserBean userBean = authorizationApi.getUser(userId);
  1590.  
  1591.         DocMangmntActions.requestAgreemant(subjInstBean, userId, false);
  1592.  
  1593.         return new FunctionStateResponse(
  1594.                 "FunctionTransitionDescription_Kc1EAUOxEee9zf2TMLhdUg");
  1595.     }
  1596.  
  1597.     /**
  1598.      * @generated
  1599.      */
  1600.     // private static final String
  1601.     // DATA_FunctionStateDescription_xXFLUUMYEeSJ06URn4wMYA =
  1602.     // "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48Ym8yMF9maWVsZC5maWVsZC4xIHZhbHVlPSJjb21tb25BdHRyaWJ1dGVzLmNsYWltU3RhdHVzIi8+PGJvMjBfZmllbGQuc3RvcmFnZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fSG8xdEFPdkFFZU9jbWNxeXZubnB6QSIvPjxTVEFURV9JRCB2YWx1ZT0iRnVuY3Rpb25TdGF0ZURlc2NyaXB0aW9uX3hYRkxVVU1ZRWVTSjA2VVJuNHdNWUEiLz48c3RvcmFnZS52YWx1ZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fSG8xdEFPdkFFZU9jbWNxeXZubnB6QSIvPjxibzIwX2ZpZWxkLmJvIHZhbHVlPSJydS5ydXNwb3N0LmFwcGxpY2F0aW9uLkFwcGxpY2F0aW9uQ2FyZE5vUnVsZXNWaWV3Ii8+PGJvMjBfZmllbGQudmFsdWUuMiB2YWx1ZT0idHJ1ZSIvPjxibzIwX2ZpZWxkLnZhbHVlLjEgdmFsdWU9ImludGVybWVkaWF0ZUFuc3dlcmVkQ2xhaW0iLz48Ym8yMF9maWVsZC50eXBlLjIgdmFsdWU9IkJPT0xFQU4iLz48Ym8yMF9maWVsZC5tb2RlIHZhbHVlPSJjaGVjayIvPjxibzIwX2ZpZWxkLnR5cGUuMSB2YWx1ZT0iRU5VTSIvPjxibzIwX2ZpZWxkLmZpZWxkLjIgdmFsdWU9ImludGVybWVkaWFyeUFuc3dlclNlbnQiLz48L2NvbmZpZ3VyYXRpb24+";
  1603.  
  1604.     /**
  1605.      * @generated
  1606.      */
  1607.     // private static final String
  1608.     // DATA_FunctionStateDescription_xXFLUUMYEeSJ06URn4wMYA =
  1609.     // "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48Ym8yMF9maWVsZC5maWVsZC4xIHZhbHVlPSJjb21tb25BdHRyaWJ1dGVzLmNsYWltU3RhdHVzIi8+PGJvMjBfZmllbGQuc3RvcmFnZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fSG8xdEFPdkFFZU9jbWNxeXZubnB6QSIvPjxTVEFURV9JRCB2YWx1ZT0iRnVuY3Rpb25TdGF0ZURlc2NyaXB0aW9uX3hYRkxVVU1ZRWVTSjA2VVJuNHdNWUEiLz48c3RvcmFnZS52YWx1ZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fSG8xdEFPdkFFZU9jbWNxeXZubnB6QSIvPjxibzIwX2ZpZWxkLmJvIHZhbHVlPSJydS5ydXNwb3N0LmFwcGxpY2F0aW9uLkFwcGxpY2F0aW9uQ2FyZE5vUnVsZXNWaWV3Ii8+PGJvMjBfZmllbGQudmFsdWUuMiB2YWx1ZT0idHJ1ZSIvPjxibzIwX2ZpZWxkLnZhbHVlLjEgdmFsdWU9ImludGVybWVkaWF0ZUFuc3dlcmVkQ2xhaW0iLz48Ym8yMF9maWVsZC50eXBlLjIgdmFsdWU9IkJPT0xFQU4iLz48Ym8yMF9maWVsZC5tb2RlIHZhbHVlPSJjaGVjayIvPjxibzIwX2ZpZWxkLnR5cGUuMSB2YWx1ZT0iRU5VTSIvPjxibzIwX2ZpZWxkLmZpZWxkLjIgdmFsdWU9ImludGVybWVkaWFyeUFuc3dlclNlbnQiLz48L2NvbmZpZ3VyYXRpb24+";
  1610.  
  1611.     /**
  1612.      * This method is called when the named function state is reached State:
  1613.      * UPDT: Подготовлен промежуточный ответ StateType: FUNCTION
  1614.      *
  1615.      * Return values "FunctionTransitionDescription_J_iK0X3XEeemT7YtZZHnbQ" when
  1616.      * result is "" to go to state Зар. пр. ответ в СЭД
  1617.      *
  1618.      * @return return the id of the transition to follow e.g. // return new
  1619.      *         FunctionStateResponse("transitionXXXXXXXX");
  1620.      * @generated
  1621.      */
  1622.     @RefinementGenerator(id = "FunctionStateDescription_C0VIYX3XEeemT7YtZZHnbQ")
  1623.     public FunctionStateResponse functionUPDT__Подготовлен_промежуточный_ответ(
  1624.             FunctionStateRequest functionStateRequest) {
  1625.         de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime refinementRuntime = new de.metasonic.reftmpl.fieldvaluesetter.runtime.RefinementTemplateRuntime();
  1626.         de.metasonic.support.context.ApplicationContextProvider.getInstance()
  1627.                 .getApplicationContext().getAutowireCapableBeanFactory()
  1628.                 .autowireBean(refinementRuntime);
  1629.         refinementRuntime
  1630.                 .setStateConfig(DATA_FunctionStateDescription_C0VIYX3XEeemT7YtZZHnbQ);
  1631.         try {
  1632.             return (FunctionStateResponse) refinementRuntime.execute(
  1633.                     getSubjectInstance(), getSubjectDescription(), getClass()
  1634.                             .getClassLoader());
  1635.         } catch (Exception ex) {
  1636.             throw new RuntimeException(ex);
  1637.         }
  1638.     }
  1639.  
  1640.     /**
  1641.      * @generated
  1642.      */
  1643.     private static final String DATA_SendStateDescription_ChKrMOtVEeOr99WSB0SeVA = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48U1RBVEVfSUQgdmFsdWU9IlNlbmRTdGF0ZURlc2NyaXB0aW9uX0NoS3JNT3RWRWVPcjk5V1NCMFNlVkEiLz48Ym8yMF9maWVsZC5ibyB2YWx1ZT0icnUucnVzcG9zdC5hcHBsaWNhdGlvbi5BcHBsaWNhdGlvbkNhcmROb1J1bGVzVmlldyIvPjxibzIwX2ZpZWxkLmZpZWxkIHZhbHVlPSJjb21tb25BdHRyaWJ1dGVzLmNsYWltUmVzcG9uc2libGVEZXBhcnRtZW50Lm1hbmFnZXJHcm91cE5hbWUiLz48Ym8yMF9maWVsZC50eXBlIHZhbHVlPSJTVFJJTkciLz48dXNlck9yR3JvdXBfZmllbGQudmFsdWUgdmFsdWU9Imdyb3VwX25hbWUiLz48Ym8yMF9maWVsZC5tb2RlIHZhbHVlPSJzaW5nbGUiLz48Ym8yMF9maWVsZC5zdG9yYWdlIHZhbHVlPSJCT1N0b3JhZ2VEZXNjcmlwdGlvbl9IbzF0QU92QUVlT2NtY3F5dm5ucHpBIi8+PC9jb25maWd1cmF0aW9uPg==";
  1644.  
  1645.     /**
  1646.      * @generated
  1647.      */
  1648.     private static final String DATA_FunctionStateDescription_eHNkqEPxEeSk8dw1p8cjjQ = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48U1RBVEVfSUQgdmFsdWU9IkZ1bmN0aW9uU3RhdGVEZXNjcmlwdGlvbl9lSE5rcUVQeEVlU2s4ZHcxcDhjampRIi8+PGJvMjBfZmllbGQuYm8gdmFsdWU9InJ1LnJ1c3Bvc3QuYXBwbGljYXRpb24uQXBwbGljYXRpb25DYXJkTm9SdWxlc1ZpZXciLz48c3RvcmFnZS52YWx1ZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fSG8xdEFPdkFFZU9jbWNxeXZubnB6QSIvPjxibzIwX2ZpZWxkLnR5cGUuMSB2YWx1ZT0iRU5VTSIvPjxibzIwX2ZpZWxkLnZhbHVlLjEgdmFsdWU9ImNsb3NlZENsYWltIi8+PGJvMjBfZmllbGQubW9kZSB2YWx1ZT0iY2hlY2siLz48Ym8yMF9maWVsZC5maWVsZC4xIHZhbHVlPSJjb21tb25BdHRyaWJ1dGVzLmNsYWltU3RhdHVzIi8+PGJvMjBfZmllbGQuc3RvcmFnZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fSG8xdEFPdkFFZU9jbWNxeXZubnB6QSIvPjwvY29uZmlndXJhdGlvbj4=";
  1649.  
  1650.     /**
  1651.      * @generated
  1652.      */
  1653.     private static final String DATA_SendStateDescription_EzivYe13EeO7cYoeJG3F3g = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48U1RBVEVfSUQgdmFsdWU9IlNlbmRTdGF0ZURlc2NyaXB0aW9uX0V6aXZZZTEzRWVPN2NZb2VKRzNGM2ciLz48Ym8yMF9maWVsZC5ibyB2YWx1ZT0icnUucnVzcG9zdC5hcHBsaWNhdGlvbi5BcHBsaWNhdGlvbkNhcmROb1J1bGVzVmlldyIvPjxibzIwX2ZpZWxkLmZpZWxkIHZhbHVlPSJjb21tb25BdHRyaWJ1dGVzLmNsYWltUmVzcG9uc2libGVEZXBhcnRtZW50Lm1hbmFnZXJHcm91cE5hbWUiLz48Ym8yMF9maWVsZC50eXBlIHZhbHVlPSJTVFJJTkciLz48dXNlck9yR3JvdXBfZmllbGQudmFsdWUgdmFsdWU9Imdyb3VwX25hbWUiLz48Ym8yMF9maWVsZC5tb2RlIHZhbHVlPSJzaW5nbGUiLz48Ym8yMF9maWVsZC5zdG9yYWdlIHZhbHVlPSJCT1N0b3JhZ2VEZXNjcmlwdGlvbl9IbzF0QU92QUVlT2NtY3F5dm5ucHpBIi8+PC9jb25maWd1cmF0aW9uPg==";
  1654.  
  1655.     /**
  1656.      * @generated
  1657.      */
  1658.     private static final String DATA_FunctionStateDescription_yi9jEkC8EeSFnqgOX9hOgg = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48c3ViamVjdC52YWx1ZSB2YWx1ZT0i0JjRgdGC0LXQuiDRgdGA0L7QuiDQv9C+0LTQs9C+0YLQvtCy0LrQuCDQvtGC0LLQtdGC0LAg0L/QviDQvtCx0YDQsNGJ0LXQvdC40Y4iLz48cmVjZWl2ZXJfbmFtZS52YWx1ZSB2YWx1ZT0iIi8+PHNlbmRlcl9uYW1lLnZhbHVlIHZhbHVlPSLQmNC90YTQvtGA0LzQsNGG0LjQvtC90L3QsNGPINGB0LjRgdGC0LXQvNCwINC+0LHRgNCw0YnQtdC90LjQuSDQn9C+0YfRgtCwINCg0L7RgdGB0LjQuCIvPjxyZWNlaXZlcl9lbWFpbC52YWx1ZSB2YWx1ZT0iIi8+PHJlY2VpdmVyX2F0dHJpYnV0ZV9kZWFjdGl2YXRlZC52YWx1ZSB2YWx1ZT0iIi8+PFNUQVRFX0lEIHZhbHVlPSJGdW5jdGlvblN0YXRlRGVzY3JpcHRpb25feWk5akVrQzhFZVNGbnFnT1g5aE9nZyIvPjxjb25maWd1cmF0aW9uX25hbWUudmFsdWUgdmFsdWU9Im1haWxpc28iLz48YWRkX2F0dGFjaG1lbnRzLnZhbHVlIHZhbHVlPSJmYWxzZSIvPjxtb2RlLnZhbHVlIHZhbHVlPSJhbGxfcG9zc2libGUiLz48Y29udGVudC52YWx1ZSB2YWx1ZT0iJmx0O2h0bWwmZ3Q7JiMxMzsmIzEwOyZsdDtwJmd0O9Cj0LLQsNC20LDQtdC80YvQuSjQsNGPKSAldXNlci5uYW1lJSEmIzEzOyYjMTA7JiMxMzsmIzEwOyZsdDtwJmd0O9CY0YHRgtC10LrQsNC10YIg0YHRgNC+0LosINC+0YLQstC10LTQtdC90L3Ri9C5INC00LvRjyDQv9C+0LTQs9C+0YLQvtCy0LrQuCDQvtGC0LLQtdGC0LAg0L/QviDQvtCx0YDQsNGJ0LXQvdC40Y4g4oSWJWJvLmF0dHJpYnV0ZS5jb21tb25BdHRyaWJ1dGVzLmNsYWltSWQlLiYjMTM7JiMxMDsmIzEzOyYjMTA7Jmx0O3AmZ3Q70JTQu9GPINCy0YvQv9C+0LvQvdC10L3QuNGPINC30LDQtNCw0YfQuCDQv9C10YDQtdC50LTQuNGC0LUg0L/QviAmbHQ7YSBocmVmPSZxdW90OyVtZmxvdy51cmwlJnF1b3Q7Jmd0O9GB0YHRi9C70LrQtSZsdDsvYSZndDsuJiMxMzsmIzEwOyYjMTM7JiMxMDsmbHQ7cCZndDvQpdC+0YDQvtGI0LXQs9C+INC00L3RjyEmIzEzOyYjMTA7JiMxMzsmIzEwOyZsdDtwJmd0Oy0tLSYjMTM7JiMxMDsmbHQ7cCZndDvQlNCw0L3QvdC+0LUg0YHQvtC+0LHRidC10L3QuNC1INC+0YLQv9GA0LDQstC70LXQvdC+INCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4INC4INC90LUg0YLRgNC10LHRg9C10YIg0L7RgtCy0LXRgtCwJiMxMzsmIzEwOyZsdDsvaHRtbCZndDsiLz48cmVjZWl2ZXJfYXR0cmlidXRlX2VtYWlsLnZhbHVlIHZhbHVlPSJtYWlsIi8+PHNlbmRlcl9lbWFpbC52YWx1ZSB2YWx1ZT0iaXNvQHJ1c3NpYW5wb3N0LnJ1Ii8+PC9jb25maWd1cmF0aW9uPg==";
  1659.  
  1660.     /**
  1661.      * @generated
  1662.      */
  1663.     private static final String DATA_FunctionStateDescription_T3xvsg54EeSi5vULMM5ANg = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48c3ViamVjdC52YWx1ZSB2YWx1ZT0i0J/QvtGB0YLRg9C/0LjQu9C+INC90L7QstC+0LUg0L7QsdGA0LDRidC10L3QuNC1LiIvPjxyZWNlaXZlcl9uYW1lLnZhbHVlIHZhbHVlPSIiLz48c2VuZGVyX25hbWUudmFsdWUgdmFsdWU9ItCY0L3RhNC+0YDQvNCw0YbQuNC+0L3QvdCw0Y8g0YHQuNGB0YLQtdC80LAg0L7QsdGA0LDRidC10L3QuNC5INCf0L7Rh9GC0Ysg0KDQvtGB0YHQuNC4Ii8+PHJlY2VpdmVyX2VtYWlsLnZhbHVlIHZhbHVlPSIiLz48cmVjZWl2ZXJfYXR0cmlidXRlX2RlYWN0aXZhdGVkLnZhbHVlIHZhbHVlPSIiLz48U1RBVEVfSUQgdmFsdWU9IkZ1bmN0aW9uU3RhdGVEZXNjcmlwdGlvbl9UM3h2c2c1NEVlU2k1dlVMTU01QU5nIi8+PGNvbmZpZ3VyYXRpb25fbmFtZS52YWx1ZSB2YWx1ZT0ibWFpbGlzbyIvPjxhZGRfYXR0YWNobWVudHMudmFsdWUgdmFsdWU9ImZhbHNlIi8+PG1vZGUudmFsdWUgdmFsdWU9ImFsbF9wb3NzaWJsZSIvPjxjb250ZW50LnZhbHVlIHZhbHVlPSImbHQ7aHRtbCZndDsmIzEzOyYjMTA7Jmx0O3AmZ3Q70KPQstCw0LbQsNC10LzRi9C5KNCw0Y8pICV1c2VyLm5hbWUlISYjMTM7JiMxMDsmIzEzOyYjMTA7Jmx0O3AmZ3Q70J7QsdGA0LDRidC10L3QuNC1IOKEliViby5hdHRyaWJ1dGUuY29tbW9uQXR0cmlidXRlcy5jbGFpbUlkJSDQv9C+0YHRgtGD0L/QuNC70L4g0LIg0YDQsNCx0L7RgtGDLiYjMTM7JiMxMDsmIzEzOyYjMTA7Jmx0O3AmZ3Q70JTQu9GPINCy0YvQv9C+0LvQvdC10L3QuNGPINC30LDQtNCw0YfQuCDQv9C10YDQtdC50LTQuNGC0LUg0L/QviAmbHQ7YSBocmVmPSZxdW90OyVtZmxvdy51cmwlJnF1b3Q7Jmd0O9GB0YHRi9C70LrQtSZsdDsvYSZndDsuJiMxMzsmIzEwOyYjMTM7JiMxMDsmbHQ7cCZndDstLS0mIzEzOyYjMTA7Jmx0O3AmZ3Q70JTQsNC90L3QvtC1INGB0L7QvtCx0YnQtdC90LjQtSDQvtGC0L/RgNCw0LLQu9C10L3QviDQsNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuCDQuCDQvdC1INGC0YDQtdCx0YPQtdGCINC+0YLQstC10YLQsCYjMTM7JiMxMDsmbHQ7L2h0bWwmZ3Q7Ii8+PHJlY2VpdmVyX2F0dHJpYnV0ZV9lbWFpbC52YWx1ZSB2YWx1ZT0ibWFpbCIvPjxzZW5kZXJfZW1haWwudmFsdWUgdmFsdWU9Imlzb0BydXNzaWFucG9zdC5ydSIvPjwvY29uZmlndXJhdGlvbj4=";
  1664.  
  1665.     /**
  1666.      * @generated
  1667.      */
  1668.     private static final String DATA_SendStateDescription_FM3tUA5QEeSi5vULMM5ANg = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48U1RBVEVfSUQgdmFsdWU9IlNlbmRTdGF0ZURlc2NyaXB0aW9uX0ZNM3RVQTVRRWVTaTV2VUxNTTVBTmciLz48Ym8yMF9maWVsZC5ibyB2YWx1ZT0icnUucnVzcG9zdC5hcHBsaWNhdGlvbi5BcHBsaWNhdGlvbkNhcmROb1J1bGVzVmlldyIvPjxibzIwX2ZpZWxkLmZpZWxkIHZhbHVlPSJjb21tb25BdHRyaWJ1dGVzLmNsYWltUmVzcG9uc2libGVEZXBhcnRtZW50Lm1hbmFnZXJHcm91cE5hbWUiLz48Ym8yMF9maWVsZC50eXBlIHZhbHVlPSJTVFJJTkciLz48dXNlck9yR3JvdXBfZmllbGQudmFsdWUgdmFsdWU9Imdyb3VwX25hbWUiLz48Ym8yMF9maWVsZC5tb2RlIHZhbHVlPSJzaW5nbGUiLz48Ym8yMF9maWVsZC5zdG9yYWdlIHZhbHVlPSJCT1N0b3JhZ2VEZXNjcmlwdGlvbl9IbzF0QU92QUVlT2NtY3F5dm5ucHpBIi8+PC9jb25maWd1cmF0aW9uPg==";
  1669.  
  1670.     /**
  1671.      * @generated
  1672.      */
  1673.     private static final String DATA_FunctionStateDescription_Y2U9wTx0EeSHjfkai80aOg = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48Ym8yMF9maWVsZC5maWVsZC4xIHZhbHVlPSJjb21tb25BdHRyaWJ1dGVzLmNsYWltU3RhdHVzIi8+PGJvMjBfZmllbGQuc3RvcmFnZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fSG8xdEFPdkFFZU9jbWNxeXZubnB6QSIvPjxTVEFURV9JRCB2YWx1ZT0iRnVuY3Rpb25TdGF0ZURlc2NyaXB0aW9uX1kyVTl3VHgwRWVTSGpma2FpODBhT2ciLz48c3RvcmFnZS52YWx1ZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fSG8xdEFPdkFFZU9jbWNxeXZubnB6QSIvPjxibzIwX2ZpZWxkLmJvIHZhbHVlPSJydS5ydXNwb3N0LmFwcGxpY2F0aW9uLkFwcGxpY2F0aW9uQ2FyZE5vUnVsZXNWaWV3Ii8+PGJvMjBfZmllbGQudmFsdWUuMiB2YWx1ZT0idHJ1ZSIvPjxibzIwX2ZpZWxkLnZhbHVlLjEgdmFsdWU9ImFuYWx5c2lzQ2xhaW0iLz48Ym8yMF9maWVsZC50eXBlLjIgdmFsdWU9IkJPT0xFQU4iLz48Ym8yMF9maWVsZC5tb2RlIHZhbHVlPSJjaGVjayIvPjxibzIwX2ZpZWxkLnR5cGUuMSB2YWx1ZT0iRU5VTSIvPjxibzIwX2ZpZWxkLmZpZWxkLjIgdmFsdWU9ImlzTmV3VGFzayIvPjwvY29uZmlndXJhdGlvbj4=";
  1674.  
  1675.     /**
  1676.      * @generated
  1677.      */
  1678.     private static final String DATA_FunctionStateDescription_sLbhoUMfEeSJ06URn4wMYA = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48U1RBVEVfSUQgdmFsdWU9IkZ1bmN0aW9uU3RhdGVEZXNjcmlwdGlvbl9zTGJob1VNZkVlU0owNlVSbjR3TVlBIi8+PGJvMjBfZmllbGQuYm8gdmFsdWU9InJ1LnJ1c3Bvc3QuYXBwbGljYXRpb24uQXBwbGljYXRpb25DYXJkTm9SdWxlc1ZpZXciLz48c3RvcmFnZS52YWx1ZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fSG8xdEFPdkFFZU9jbWNxeXZubnB6QSIvPjxibzIwX2ZpZWxkLnR5cGUuMSB2YWx1ZT0iRU5VTSIvPjxibzIwX2ZpZWxkLnZhbHVlLjEgdmFsdWU9ImFuc3dlcmVkQ2xhaW0iLz48Ym8yMF9maWVsZC5tb2RlIHZhbHVlPSJjaGVjayIvPjxibzIwX2ZpZWxkLmZpZWxkLjEgdmFsdWU9ImNvbW1vbkF0dHJpYnV0ZXMuY2xhaW1TdGF0dXMiLz48Ym8yMF9maWVsZC5zdG9yYWdlIHZhbHVlPSJCT1N0b3JhZ2VEZXNjcmlwdGlvbl9IbzF0QU92QUVlT2NtY3F5dm5ucHpBIi8+PC9jb25maWd1cmF0aW9uPg==";
  1679.  
  1680.     /**
  1681.      * @generated
  1682.      */
  1683.     private static final String DATA_FunctionStateDescription_xonkwUMWEeSJ06URn4wMYA = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48U1RBVEVfSUQgdmFsdWU9IkZ1bmN0aW9uU3RhdGVEZXNjcmlwdGlvbl94b25rd1VNV0VlU0owNlVSbjR3TVlBIi8+PGJvMjBfZmllbGQuYm8gdmFsdWU9InJ1LnJ1c3Bvc3QuYXBwbGljYXRpb24uQXBwbGljYXRpb25DYXJkTm9SdWxlc1ZpZXciLz48c3RvcmFnZS52YWx1ZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fSG8xdEFPdkFFZU9jbWNxeXZubnB6QSIvPjxibzIwX2ZpZWxkLnR5cGUuMSB2YWx1ZT0iRU5VTSIvPjxibzIwX2ZpZWxkLnZhbHVlLjEgdmFsdWU9ImFuYWx5c2lzQ2xhaW0iLz48Ym8yMF9maWVsZC5tb2RlIHZhbHVlPSJjaGVjayIvPjxibzIwX2ZpZWxkLmZpZWxkLjEgdmFsdWU9ImNvbW1vbkF0dHJpYnV0ZXMuY2xhaW1TdGF0dXMiLz48Ym8yMF9maWVsZC5zdG9yYWdlIHZhbHVlPSJCT1N0b3JhZ2VEZXNjcmlwdGlvbl9IbzF0QU92QUVlT2NtY3F5dm5ucHpBIi8+PC9jb25maWd1cmF0aW9uPg==";
  1684.  
  1685.     /**
  1686.      * @generated
  1687.      */
  1688.     private static final String DATA_FunctionStateDescription_sYmHgXogEeSAgPNivYu06Q = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48c3ViamVjdC52YWx1ZSB2YWx1ZT0i0J/QvtGB0YLRg9C/0LjQu9CwINC60L7Qv9C40Y8g0L7RgtCy0LXRgtCwINC/0L4g0L7QsdGA0LDRidC10L3QuNGOIi8+PHJlY2VpdmVyX25hbWUudmFsdWUgdmFsdWU9IiIvPjxzZW5kZXJfbmFtZS52YWx1ZSB2YWx1ZT0i0JjQvdGE0L7RgNC80LDRhtC40L7QvdC90LDRjyDRgdC40YHRgtC10LzQsCDQvtCx0YDQsNGJ0LXQvdC40Lkg0J/QvtGH0YLRiyDQoNC+0YHRgdC40LgiLz48cmVjZWl2ZXJfZW1haWwudmFsdWUgdmFsdWU9IiIvPjxyZWNlaXZlcl9hdHRyaWJ1dGVfZGVhY3RpdmF0ZWQudmFsdWUgdmFsdWU9IiIvPjxTVEFURV9JRCB2YWx1ZT0iRnVuY3Rpb25TdGF0ZURlc2NyaXB0aW9uX3NZbUhnWG9nRWVTQWdQTml2WXUwNlEiLz48Y29uZmlndXJhdGlvbl9uYW1lLnZhbHVlIHZhbHVlPSJtYWlsaXNvIi8+PGFkZF9hdHRhY2htZW50cy52YWx1ZSB2YWx1ZT0iZmFsc2UiLz48bW9kZS52YWx1ZSB2YWx1ZT0iYWxsX3Bvc3NpYmxlIi8+PGNvbnRlbnQudmFsdWUgdmFsdWU9IiZsdDtodG1sJmd0OyYjMTM7JiMxMDsmbHQ7cCZndDvQo9Cy0LDQttCw0LXQvNGL0Lko0LDRjykgJXVzZXIubmFtZSUhJiMxMzsmIzEwOyYjMTM7JiMxMDsmbHQ7cCZndDvQn9C+0YHRgtGD0L/QuNC70LAg0LrQvtC/0LjRjyDQvtGC0LLQtdGC0LAg0L3QsCDQvtCx0YDQsNGJ0LXQvdC40LUg4oSWJWJvLmF0dHJpYnV0ZS5jb21tb25BdHRyaWJ1dGVzLmNsYWltSWQlICYjMTM7JiMxMDsmIzEzOyYjMTA7Jmx0O3AmZ3Q70JTQu9GPINC+0LfQvdCw0LrQvtC80LvQtdC90LjRjyDRgSDQvtGC0LLQtdGC0L7QvCDQv9C10YDQtdC50LTQuNGC0LUg0L/QviAmbHQ7YSBocmVmPSZxdW90OyVtZmxvdy51cmwlJnF1b3Q7Jmd0O9GB0YHRi9C70LrQtSZsdDsvYSZndDsuJiMxMzsmIzEwOyYjMTM7JiMxMDsmbHQ7cCZndDvQpdC+0YDQvtGI0LXQs9C+INC00L3RjyEmIzEzOyYjMTA7JiMxMzsmIzEwOyZsdDtwJmd0Oy0tLSYjMTM7JiMxMDsmbHQ7cCZndDvQlNCw0L3QvdC+0LUg0YHQvtC+0LHRidC10L3QuNC1INC+0YLQv9GA0LDQstC70LXQvdC+INCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4INC4INC90LUg0YLRgNC10LHRg9C10YIg0L7RgtCy0LXRgtCwJiMxMzsmIzEwOyYjMTM7JiMxMDsmbHQ7L2h0bWwmZ3Q7Ii8+PHJlY2VpdmVyX2F0dHJpYnV0ZV9lbWFpbC52YWx1ZSB2YWx1ZT0ibWFpbCIvPjxzZW5kZXJfZW1haWwudmFsdWUgdmFsdWU9Imlzb0BydXNzaWFucG9zdC5ydSIvPjwvY29uZmlndXJhdGlvbj4=";
  1689.  
  1690.     /**
  1691.      * @generated
  1692.      */
  1693.     private static final String DATA_FunctionStateDescription_T4oBgXr4EeSxQJ5cUdsqSA = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48dGFyZ2V0X2ZpZWxkdHJlZS5tb2RlIHZhbHVlPSJzaW5nbGUiLz48c291cmNlX2xpc3Rib3gudmFsdWUgdmFsdWU9IkJPU3RvcmFnZURlc2NyaXB0aW9uXzF5d29vSHVRRWVTd05ycFlfYnhnc0EiLz48c291cmNlX2ZpZWxkdHJlZS5tb2RlIHZhbHVlPSJzaW5nbGUiLz48bW92ZS52YWx1ZSB2YWx1ZT0iZmFsc2UiLz48dGFyZ2V0X2ZpZWxkdHJlZS50eXBlIHZhbHVlPSJWSUVXIi8+PHNvdXJjZV9maWVsZHRyZWUuZmllbGQgdmFsdWU9InJ1LnJ1c3Bvc3QuaW5xdWlyeS5JbnF1aXJ5RW50cnlOb1J1bGVzVmlldyIvPjxzb3VyY2VfZmllbGR0cmVlLnR5cGUgdmFsdWU9IkJPIi8+PFNUQVRFX0lEIHZhbHVlPSJGdW5jdGlvblN0YXRlRGVzY3JpcHRpb25fVDRvQmdYcjRFZVN4UUo1Y1Vkc3FTQSIvPjxzb3VyY2VfZmllbGR0cmVlLmJvIHZhbHVlPSJydS5ydXNwb3N0LmlucXVpcnkuSW5xdWlyeUVudHJ5Tm9SdWxlc1ZpZXciLz48dGFyZ2V0X2xpc3Rib3gudmFsdWUgdmFsdWU9IkJPU3RvcmFnZURlc2NyaXB0aW9uX0hvMXRBT3ZBRWVPY21jcXl2bm5wekEiLz48dGFyZ2V0X2ZpZWxkdHJlZS5ibyB2YWx1ZT0icnUucnVzcG9zdC5hcHBsaWNhdGlvbi5BcHBsaWNhdGlvbkNhcmROb1J1bGVzVmlldyIvPjx0YXJnZXRfZmllbGR0cmVlLmZpZWxkIHZhbHVlPSJzZW50SW5xdWlyaWVzIi8+PHRhcmdldF9maWVsZHRyZWUuc3RvcmFnZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fSG8xdEFPdkFFZU9jbWNxeXZubnB6QSIvPjxzb3VyY2VfZmllbGR0cmVlLnN0b3JhZ2UgdmFsdWU9IkJPU3RvcmFnZURlc2NyaXB0aW9uXzF5d29vSHVRRWVTd05ycFlfYnhnc0EiLz48L2NvbmZpZ3VyYXRpb24+";
  1694.  
  1695.     /**
  1696.      * @generated
  1697.      */
  1698.     private static final String DATA_FunctionStateDescription_Vy7yEXr4EeSxQJ5cUdsqSA = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48U1RBVEVfSUQgdmFsdWU9IkZ1bmN0aW9uU3RhdGVEZXNjcmlwdGlvbl9WeTd5RVhyNEVlU3hRSjVjVWRzcVNBIi8+PFN0b3JhZ2VTZWxlY3Rvci52YWx1ZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fVWN2Z1lIcm1FZVN4UUo1Y1Vkc3FTQSIvPjwvY29uZmlndXJhdGlvbj4=";
  1699.  
  1700.     /**
  1701.      * @generated
  1702.      */
  1703.     private static final String DATA_FunctionStateDescription_OljpUXuQEeSwNrpY_bxgsA = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48dGFyZ2V0X2ZpZWxkdHJlZS5tb2RlIHZhbHVlPSJzaW5nbGUiLz48c291cmNlX2xpc3Rib3gudmFsdWUgdmFsdWU9IkJPU3RvcmFnZURlc2NyaXB0aW9uX1VjdmdZSHJtRWVTeFFKNWNVZHNxU0EiLz48c291cmNlX2ZpZWxkdHJlZS5tb2RlIHZhbHVlPSJzaW5nbGUiLz48bW92ZS52YWx1ZSB2YWx1ZT0iZmFsc2UiLz48dGFyZ2V0X2ZpZWxkdHJlZS50eXBlIHZhbHVlPSJCTyIvPjxzb3VyY2VfZmllbGR0cmVlLmZpZWxkIHZhbHVlPSJydS5ydXNwb3N0LmlucXVpcnkuSW5xdWlyeUVudHJ5Tm9SdWxlc1ZpZXciLz48c291cmNlX2ZpZWxkdHJlZS50eXBlIHZhbHVlPSJCTyIvPjxzb3VyY2VfZmllbGR0cmVlLmJvIHZhbHVlPSJydS5ydXNwb3N0LmlucXVpcnkuSW5xdWlyeUVudHJ5Tm9SdWxlc1ZpZXciLz48U1RBVEVfSUQgdmFsdWU9IkZ1bmN0aW9uU3RhdGVEZXNjcmlwdGlvbl9PbGpwVVh1UUVlU3dOcnBZX2J4Z3NBIi8+PHRhcmdldF9saXN0Ym94LnZhbHVlIHZhbHVlPSJCT1N0b3JhZ2VEZXNjcmlwdGlvbl9wTG9KQUh1UUVlU3dOcnBZX2J4Z3NBIi8+PHRhcmdldF9maWVsZHRyZWUuYm8gdmFsdWU9InJ1LnJ1c3Bvc3QuaW5xdWlyeS5JbnF1aXJ5RW50cnlOb1J1bGVzVmlldyIvPjx0YXJnZXRfZmllbGR0cmVlLmZpZWxkIHZhbHVlPSJydS5ydXNwb3N0LmlucXVpcnkuSW5xdWlyeUVudHJ5Tm9SdWxlc1ZpZXciLz48dGFyZ2V0X2ZpZWxkdHJlZS5zdG9yYWdlIHZhbHVlPSJCT1N0b3JhZ2VEZXNjcmlwdGlvbl9wTG9KQUh1UUVlU3dOcnBZX2J4Z3NBIi8+PHNvdXJjZV9maWVsZHRyZWUuc3RvcmFnZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fVWN2Z1lIcm1FZVN4UUo1Y1Vkc3FTQSIvPjwvY29uZmlndXJhdGlvbj4=";
  1704.  
  1705.     /**
  1706.      * @generated
  1707.      */
  1708.     private static final String DATA_FunctionStateDescription_RilbIXuQEeSwNrpY_bxgsA = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48c291cmNlX3N0b3JhZ2UudGFyZ2V0IHZhbHVlPSJCT1N0b3JhZ2VEZXNjcmlwdGlvbl8xeXdvb0h1UUVlU3dOcnBZX2J4Z3NBIi8+PFNUQVRFX0lEIHZhbHVlPSJGdW5jdGlvblN0YXRlRGVzY3JpcHRpb25fUmlsYklYdVFFZVN3TnJwWV9ieGdzQSIvPjxkdW1wX2FjdGlvbi52YWx1ZSB2YWx1ZT0ia2VlcCIvPjxzb3VyY2Vfc3RvcmFnZS5zdG9yYWdlIHZhbHVlPSJCT1N0b3JhZ2VEZXNjcmlwdGlvbl9wTG9KQUh1UUVlU3dOcnBZX2J4Z3NBIi8+PHRyYW5zaXRpb25fZGlzdHJpYnV0ZS52YWx1ZSB2YWx1ZT0iRnVuY3Rpb25UcmFuc2l0aW9uRGVzY3JpcHRpb25faFhMOFVYdVFFZVN3TnJwWV9ieGdzQSIvPjx0cmFuc2l0aW9uX2VtcHR5LnZhbHVlIHZhbHVlPSJGdW5jdGlvblRyYW5zaXRpb25EZXNjcmlwdGlvbl9oWEw4VVh1UUVlU3dOcnBZX2J4Z3NBIi8+PC9jb25maWd1cmF0aW9uPg==";
  1709.  
  1710.     /**
  1711.      * @generated
  1712.      */
  1713.     private static final String DATA_SendStateDescription_Rq4goYEkEeSYGqzav8IP3Q = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48U1RBVEVfSUQgdmFsdWU9IlNlbmRTdGF0ZURlc2NyaXB0aW9uX1JxNGdvWUVrRWVTWUdxemF2OElQM1EiLz48Ym8yMF9maWVsZC5ibyB2YWx1ZT0icnUucnVzcG9zdC5hcHBsaWNhdGlvbi5BcHBsaWNhdGlvbkNhcmROb1J1bGVzVmlldyIvPjxibzIwX2ZpZWxkLmZpZWxkIHZhbHVlPSJjb21tb25BdHRyaWJ1dGVzLmNsYWltUmVzcG9uc2libGVEZXBhcnRtZW50Lm1hbmFnZXJHcm91cE5hbWUiLz48Ym8yMF9maWVsZC50eXBlIHZhbHVlPSJTVFJJTkciLz48dXNlck9yR3JvdXBfZmllbGQudmFsdWUgdmFsdWU9Imdyb3VwX25hbWUiLz48Ym8yMF9maWVsZC5tb2RlIHZhbHVlPSJzaW5nbGUiLz48Ym8yMF9maWVsZC5zdG9yYWdlIHZhbHVlPSJCT1N0b3JhZ2VEZXNjcmlwdGlvbl9IbzF0QU92QUVlT2NtY3F5dm5ucHpBIi8+PC9jb25maWd1cmF0aW9uPg==";
  1714.  
  1715.     /**
  1716.      * @generated
  1717.      */
  1718.     private static final String DATA_FunctionStateDescription_PwrrMYxQEeS_DedIEhcxYA = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48U1RBVEVfSUQgdmFsdWU9IkZ1bmN0aW9uU3RhdGVEZXNjcmlwdGlvbl9Qd3JyTVl4UUVlU19EZWRJRWhjeFlBIi8+PFN0b3JhZ2VTZWxlY3Rvci52YWx1ZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fSG8xdEFPdkFFZU9jbWNxeXZubnB6QSIvPjwvY29uZmlndXJhdGlvbj4=";
  1719.  
  1720.     /**
  1721.      * @generated
  1722.      */
  1723.     private static final String DATA_FunctionStateDescription_cMfbcYzbEeSCuKxBmW_9PQ = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48U1RBVEVfSUQgdmFsdWU9IkZ1bmN0aW9uU3RhdGVEZXNjcmlwdGlvbl9jTWZiY1l6YkVlU0N1S3hCbVdfOVBRIi8+PGJvMjBfZmllbGQuYm8gdmFsdWU9InJ1LnJ1c3Bvc3QuYXBwbGljYXRpb24uQXBwbGljYXRpb25DYXJkTm9SdWxlc1ZpZXciLz48c3RvcmFnZS52YWx1ZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fSG8xdEFPdkFFZU9jbWNxeXZubnB6QSIvPjxibzIwX2ZpZWxkLnR5cGUuMSB2YWx1ZT0iRU5VTSIvPjxibzIwX2ZpZWxkLnZhbHVlLjEgdmFsdWU9ImFuc3dlclByZXBhcmluZyIvPjxibzIwX2ZpZWxkLm1vZGUgdmFsdWU9ImNoZWNrIi8+PGJvMjBfZmllbGQuZmllbGQuMSB2YWx1ZT0iY29tbW9uQXR0cmlidXRlcy5jbGFpbVN0YXR1cyIvPjxibzIwX2ZpZWxkLnN0b3JhZ2UgdmFsdWU9IkJPU3RvcmFnZURlc2NyaXB0aW9uX0hvMXRBT3ZBRWVPY21jcXl2bm5wekEiLz48L2NvbmZpZ3VyYXRpb24+";
  1724.  
  1725.     /**
  1726.      * @generated
  1727.      */
  1728.     private static final String DATA_FunctionStateDescription_YJ9sw7BfEeSDaozb8mD6Ew = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48Ym8yMF9maWVsZC5maWVsZC4xIHZhbHVlPSJjb21tb25BdHRyaWJ1dGVzLmNsYWltU3RhdHVzIi8+PGJvMjBfZmllbGQuc3RvcmFnZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fSG8xdEFPdkFFZU9jbWNxeXZubnB6QSIvPjxTVEFURV9JRCB2YWx1ZT0iRnVuY3Rpb25TdGF0ZURlc2NyaXB0aW9uX1lKOXN3N0JmRWVTRGFvemI4bUQ2RXciLz48c3RvcmFnZS52YWx1ZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fSG8xdEFPdkFFZU9jbWNxeXZubnB6QSIvPjxibzIwX2ZpZWxkLmJvIHZhbHVlPSJydS5ydXNwb3N0LmFwcGxpY2F0aW9uLkFwcGxpY2F0aW9uQ2FyZE5vUnVsZXNWaWV3Ii8+PGJvMjBfZmllbGQudmFsdWUuMiB2YWx1ZT0idHJ1ZSIvPjxibzIwX2ZpZWxkLnZhbHVlLjEgdmFsdWU9ImNsYWltRm9yd2FyZCIvPjxibzIwX2ZpZWxkLnR5cGUuMiB2YWx1ZT0iQk9PTEVBTiIvPjxibzIwX2ZpZWxkLm1vZGUgdmFsdWU9ImNoZWNrIi8+PGJvMjBfZmllbGQudHlwZS4xIHZhbHVlPSJFTlVNIi8+PGJvMjBfZmllbGQuZmllbGQuMiB2YWx1ZT0iY2xhaW1Gb3J3YXJkLmNsYWltRm9yd2FyZGVkIi8+PC9jb25maWd1cmF0aW9uPg==";
  1729.  
  1730.     /**
  1731.      * @generated
  1732.      */
  1733.     private static final String DATA_FunctionStateDescription_HPK107AuEeSTc7w663UUKQ = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48U1RBVEVfSUQgdmFsdWU9IkZ1bmN0aW9uU3RhdGVEZXNjcmlwdGlvbl9IUEsxMDdBdUVlU1RjN3c2NjNVVUtRIi8+PGJvMjBfZmllbGQuYm8gdmFsdWU9InJ1LnJ1c3Bvc3QuYXBwbGljYXRpb24uQXBwbGljYXRpb25DYXJkTm9SdWxlc1ZpZXciLz48c3RvcmFnZS52YWx1ZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fSG8xdEFPdkFFZU9jbWNxeXZubnB6QSIvPjxibzIwX2ZpZWxkLnR5cGUuMSB2YWx1ZT0iRU5VTSIvPjxibzIwX2ZpZWxkLnZhbHVlLjEgdmFsdWU9ImZvcndhcmRPdXRzaWRlIi8+PGJvMjBfZmllbGQubW9kZSB2YWx1ZT0iY2hlY2siLz48Ym8yMF9maWVsZC5maWVsZC4xIHZhbHVlPSJjb21tb25BdHRyaWJ1dGVzLmNsYWltU3RhdHVzIi8+PGJvMjBfZmllbGQuc3RvcmFnZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fSG8xdEFPdkFFZU9jbWNxeXZubnB6QSIvPjwvY29uZmlndXJhdGlvbj4=";
  1734.  
  1735.     /**
  1736.      * @generated
  1737.      */
  1738.     private static final String DATA_FunctionStateDescription_h7rR4hBdEeerWdDLx9TJVw = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48U1RBVEVfSUQgdmFsdWU9IkZ1bmN0aW9uU3RhdGVEZXNjcmlwdGlvbl9oN3JSNGhCZEVlZXJXZERMeDlUSlZ3Ii8+PGJvMjBfZmllbGQuYm8gdmFsdWU9InJ1LnJ1c3Bvc3QuYXBwbGljYXRpb24uQXBwbGljYXRpb25DYXJkTm9SdWxlc1ZpZXciLz48c3RvcmFnZS52YWx1ZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fSG8xdEFPdkFFZU9jbWNxeXZubnB6QSIvPjxibzIwX2ZpZWxkLnR5cGUuMSB2YWx1ZT0iRU5VTSIvPjxibzIwX2ZpZWxkLnZhbHVlLjEgdmFsdWU9InJlZnVzZVJlcXVlc3QiLz48Ym8yMF9maWVsZC5tb2RlIHZhbHVlPSJjaGVjayIvPjxibzIwX2ZpZWxkLmZpZWxkLjEgdmFsdWU9ImNvbW1vbkF0dHJpYnV0ZXMuY2xhaW1TdGF0dXMiLz48Ym8yMF9maWVsZC5zdG9yYWdlIHZhbHVlPSJCT1N0b3JhZ2VEZXNjcmlwdGlvbl9IbzF0QU92QUVlT2NtY3F5dm5ucHpBIi8+PC9jb25maWd1cmF0aW9uPg==";
  1739.  
  1740.     /**
  1741.      * @generated
  1742.      */
  1743.     private static final String DATA_FunctionStateDescription_ShNSgBBeEeerWdDLx9TJVw = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48U1RBVEVfSUQgdmFsdWU9IkZ1bmN0aW9uU3RhdGVEZXNjcmlwdGlvbl9TaE5TZ0JCZUVlZXJXZERMeDlUSlZ3Ii8+PGJvMjBfZmllbGQuYm8gdmFsdWU9InJ1LnJ1c3Bvc3QuYXBwbGljYXRpb24uQXBwbGljYXRpb25DYXJkTm9SdWxlc1ZpZXciLz48c3RvcmFnZS52YWx1ZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fSG8xdEFPdkFFZU9jbWNxeXZubnB6QSIvPjxibzIwX2ZpZWxkLnR5cGUuMSB2YWx1ZT0iQk9PTEVBTiIvPjxibzIwX2ZpZWxkLnZhbHVlLjEgdmFsdWU9ImZhbHNlIi8+PGJvMjBfZmllbGQubW9kZSB2YWx1ZT0iY2hlY2siLz48Ym8yMF9maWVsZC5maWVsZC4xIHZhbHVlPSJpc0Zyb21DQyIvPjxibzIwX2ZpZWxkLnN0b3JhZ2UgdmFsdWU9IkJPU3RvcmFnZURlc2NyaXB0aW9uX0hvMXRBT3ZBRWVPY21jcXl2bm5wekEiLz48L2NvbmZpZ3VyYXRpb24+";
  1744.  
  1745.     /**
  1746.      * @generated
  1747.      */
  1748.     private static final String DATA_FunctionStateDescription_UM_N4ROKEee6MraXpSxWRA = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48Ym8yMF9maWVsZC5maWVsZC4xIHZhbHVlPSJjb21tb25BdHRyaWJ1dGVzLnJlZnVzZVJlcXVlc3QiLz48Ym8yMF9maWVsZC5zdG9yYWdlIHZhbHVlPSJCT1N0b3JhZ2VEZXNjcmlwdGlvbl9IbzF0QU92QUVlT2NtY3F5dm5ucHpBIi8+PFNUQVRFX0lEIHZhbHVlPSJGdW5jdGlvblN0YXRlRGVzY3JpcHRpb25fVU1fTjRST0tFZWU2TXJhWHBTeFdSQSIvPjxzdG9yYWdlLnZhbHVlIHZhbHVlPSJCT1N0b3JhZ2VEZXNjcmlwdGlvbl9IbzF0QU92QUVlT2NtY3F5dm5ucHpBIi8+PGJvMjBfZmllbGQuYm8gdmFsdWU9InJ1LnJ1c3Bvc3QuYXBwbGljYXRpb24uQXBwbGljYXRpb25DYXJkTm9SdWxlc1ZpZXciLz48Ym8yMF9maWVsZC52YWx1ZS4yIHZhbHVlPSJ0cnVlIi8+PGJvMjBfZmllbGQudmFsdWUuMSB2YWx1ZT0iZmFsc2UiLz48Ym8yMF9maWVsZC50eXBlLjIgdmFsdWU9IkJPT0xFQU4iLz48Ym8yMF9maWVsZC5tb2RlIHZhbHVlPSJjaGVjayIvPjxibzIwX2ZpZWxkLnR5cGUuMSB2YWx1ZT0iQk9PTEVBTiIvPjxibzIwX2ZpZWxkLmZpZWxkLjIgdmFsdWU9ImlzTmV3VGFzayIvPjwvY29uZmlndXJhdGlvbj4=";
  1749.  
  1750.     /**
  1751.      * @generated
  1752.      */
  1753.     private static final String DATA_FunctionStateDescription_m3BfsRR9EeeDLNRfpiDxiw = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48U1RBVEVfSUQgdmFsdWU9IkZ1bmN0aW9uU3RhdGVEZXNjcmlwdGlvbl9tM0Jmc1JSOUVlZURMTlJmcGlEeGl3Ii8+PGJvMjBfZmllbGQuYm8gdmFsdWU9InJ1LnJ1c3Bvc3QuYXBwbGljYXRpb24uQXBwbGljYXRpb25DYXJkTm9SdWxlc1ZpZXciLz48c3RvcmFnZS52YWx1ZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fSG8xdEFPdkFFZU9jbWNxeXZubnB6QSIvPjxibzIwX2ZpZWxkLnR5cGUuMSB2YWx1ZT0iQk9PTEVBTiIvPjxibzIwX2ZpZWxkLnZhbHVlLjEgdmFsdWU9InRydWUiLz48Ym8yMF9maWVsZC5tb2RlIHZhbHVlPSJjaGVjayIvPjxibzIwX2ZpZWxkLmZpZWxkLjEgdmFsdWU9ImlzTmV3VGFzayIvPjxibzIwX2ZpZWxkLnN0b3JhZ2UgdmFsdWU9IkJPU3RvcmFnZURlc2NyaXB0aW9uX0hvMXRBT3ZBRWVPY21jcXl2bm5wekEiLz48L2NvbmZpZ3VyYXRpb24+";
  1754.  
  1755.     /**
  1756.      * @generated
  1757.      */
  1758.     private static final String DATA_FunctionStateDescription_C0VIYX3XEeemT7YtZZHnbQ = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y29uZmlndXJhdGlvbj48U1RBVEVfSUQgdmFsdWU9IkZ1bmN0aW9uU3RhdGVEZXNjcmlwdGlvbl9DMFZJWVgzWEVlZW1UN1l0WlpIbmJRIi8+PGJvMjBfZmllbGQuYm8gdmFsdWU9InJ1LnJ1c3Bvc3QuYXBwbGljYXRpb24uQXBwbGljYXRpb25DYXJkTm9SdWxlc1ZpZXciLz48c3RvcmFnZS52YWx1ZSB2YWx1ZT0iQk9TdG9yYWdlRGVzY3JpcHRpb25fSG8xdEFPdkFFZU9jbWNxeXZubnB6QSIvPjxibzIwX2ZpZWxkLnR5cGUuMSB2YWx1ZT0iQk9PTEVBTiIvPjxibzIwX2ZpZWxkLnZhbHVlLjEgdmFsdWU9InRydWUiLz48Ym8yMF9maWVsZC5tb2RlIHZhbHVlPSJjaGVjayIvPjxibzIwX2ZpZWxkLmZpZWxkLjEgdmFsdWU9ImludGVybWVkaWFyeUFuc3dlclNlbnQiLz48Ym8yMF9maWVsZC5zdG9yYWdlIHZhbHVlPSJCT1N0b3JhZ2VEZXNjcmlwdGlvbl9IbzF0QU92QUVlT2NtY3F5dm5ucHpBIi8+PC9jb25maWd1cmF0aW9uPg==";
  1759.  
  1760.     /**
  1761.      * This state is an exit state Do all necessary clean up here. State: Copy
  1762.      * of email: Отправить клиенту ответ на обращение StateType: EXIT
  1763.      */
  1764.     @RefinementGenerator(id = "FunctionStateDescription_xmQhUIDgEeeSLusIiNXYug")
  1765.     public void Copy_of_emailFinalUfpsAnswer(String subjectInstanceId) {
  1766.  
  1767.     }
  1768.  
  1769.     /**
  1770.      * This method is called when the named function state is reached State:
  1771.      * email: Отпправить клиенту ответ на обращение СЭД StateType: FUNCTION
  1772.      *
  1773.      * Return values "FunctionTransitionDescription_Hk0_gYDjEeeSLusIiNXYug" when
  1774.      * result is "" to go to state Status UPDT: Ответ отправлен
  1775.      *
  1776.      * @return return the id of the transition to follow e.g. // return new
  1777.      *         FunctionStateResponse("transitionXXXXXXXX");
  1778.      */
  1779.     @RefinementGenerator(id = "FunctionStateDescription_eEk_gYDiEeeSLusIiNXYug")
  1780.     public FunctionStateResponse functionemail__Отпправить_клиенту_ответ_на_обращение_СЭД(
  1781.             FunctionStateRequest functionStateRequest) {
  1782.  
  1783.         System.out.println("emailFinalUfpsAnswer: start");
  1784.  
  1785.         Bo20Accessory boAccessory = new Bo20Accessory(getSubjectInstance());
  1786.  
  1787.         try {
  1788.             IStorageInstanceItemBeanReducedToId firstStorageItemInFirstStorage = boAccessory
  1789.                     .getFirstStorageItemInFirstStorage();
  1790.  
  1791.             if (firstStorageItemInFirstStorage != null) {
  1792.  
  1793.                 IView view = boAccessory
  1794.                         .loadView(firstStorageItemInFirstStorage);
  1795.  
  1796.                 if (view instanceof ApplicationCardNoRulesView) {
  1797.  
  1798.                     ApplicationCardNoRulesView applicationCard = (ApplicationCardNoRulesView) view;
  1799.  
  1800.                     String claimId = applicationCard
  1801.                             .getClaimIncomingAttributes().getClaimIsoId();
  1802.  
  1803.                     System.out.println("emailFinalUfpsAnswer: claimId = "
  1804.                             + claimId);
  1805.  
  1806.                     String claimExternalId = applicationCard
  1807.                             .getClaimIncomingAttributes()
  1808.                             .getExternalIncomingId();
  1809.  
  1810.                     System.out
  1811.                             .println("emailFinalUfpsAnswer: claimExternalId = "
  1812.                                     + claimExternalId);
  1813.  
  1814.                     String userId = applicationCard.getTechdata()
  1815.                             .getCurrentUserId();
  1816.  
  1817.                     System.out.println("emailFinalUfpsAnswer: userId = "
  1818.                             + userId);
  1819.  
  1820.                     String procInstId = applicationCard.getProcInstId();
  1821.  
  1822.                     System.out.println("emailFinalUfpsAnswer: procInstId = "
  1823.                             + procInstId);
  1824.  
  1825.                     String subjInstId = applicationCard.getSubjInstId();
  1826.  
  1827.                     System.out.println("emailFinalUfpsAnswer: subjInstId = "
  1828.                             + subjInstId);
  1829.  
  1830.                     String customerEmail = applicationCard.getCustomerInfo()
  1831.                             .getCustomerEmail();
  1832.  
  1833.                     System.out.println("emailFinalUfpsAnswer: customerEmail = "
  1834.                             + customerEmail);
  1835.  
  1836.                     System.out
  1837.                             .println("emailFinalUfpsAnswer: attempt to execute MailSender");
  1838.  
  1839.                     MailSender
  1840.                             .execute(
  1841.                                     userId,
  1842.                                     procInstId,
  1843.                                     subjInstId,
  1844.                                     customerEmail,
  1845.                                     "ROOT/Ответ на обращение",
  1846.                                     "russianpost" + claimId + ".zip",
  1847.                                     "Ответ на обращение №" + claimId,
  1848.                                     "Уважаемый клиент,\n"
  1849.                                             + "Во вложении к данному письму направляем ответ на Ваше обращение № "
  1850.                                             + claimId
  1851.                                             + "\n\nФГУП \"Почта России\".");
  1852.                     System.out
  1853.                             .println("emailFinalUfpsAnswer: MailSender execution completed, please check for the email delivery");
  1854.                 }
  1855.             }
  1856.  
  1857.             else {
  1858.                 log.warn("No storage items found for subject instance "
  1859.                         + getSubjectInstance());
  1860.             }
  1861.  
  1862.         } catch (Exception e) {
  1863.             log.error(e);
  1864.         }
  1865.  
  1866.         System.out
  1867.                 .println("emailFinalUfpsAnswer: finished with emailFinalUfpsAnswer, return FunctionStateResponse");
  1868.  
  1869.         return new FunctionStateResponse(
  1870.                 "FunctionTransitionDescription_Hk0_gYDjEeeSLusIiNXYug");
  1871.  
  1872.     }
  1873.  
  1874. }
Advertisement
Add Comment
Please, Sign In to add comment