## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["Start: finMskm"])
    INIT["Initialize Form Beans<br/>commoninfo, web_new_info, eoNet, eoTv, eoTel,<br/>keiyakuSvc, mansioninfo, payWayInfo"]
    CAMPCHECK["Campaign Check<br/>JFUWebCommon.campaignCheck"]
    CAMPOK["Campaign OK - Continue"]
    CAMPNG["Campaign NG - Redirect to FUW00166"]
    NEWCHECK["Check Customer Info<br/>For new applications<br/>FUSV0012.checkKeishaInfo"]
    NEWERROR["Contract Status Error<br/>JCCBusinessException 0013"]
    OPEGET["Get Operational Date<br/>JFUWebCommon.getOpeDate"]
    MAILSET["Set Mail Form Bean<br/>setFormBeanMailInfo"]
    MINEOSET["Set mineo Set Plan Info<br/>setmineoSetPlanInfo"]
    FLAGSET["Set DNSKH DOI Flags<br/>To net, tel, tv beans"]
    SESSIONSAVE["Save add_input_map<br/>To Session"]
    SVCCHK["Get Applied Wiring Service<br/>mskm_ksn_svc"]
    MNSCHK["Get Mansion Type<br/>mskmMnsType"]
    PLCCHK{"PLC or Mesh WiFi<br/>Selected?"}
    PLCON["Yes - Get Device Model<br/>callSvcFUSV0376"]
    PLCNOK{"Device Model<br/>Null?"}
    PLCERR["Error 0002<br/>No device selected"]
    MAPGEN["Generate paramMap<br/>Set USECASE_ID"]
    MAPPERINIT["Initialize Mappers<br/>FUSV0160, FUSV0152, FUSV0161"]
    INPUTGET["Get add_input_map<br/>From Session"]
    KNYEICHECK{"Whole Unit Application<br/>KNYKEI_MSKM_JOKEN_CD_13 = 13?"}
    KNYEI_YES["Bulk Registration<br/>callSetdatamap"]
    KNYEI_NO["Individual Registration<br/>setMskmDmenXmlMap, setFUSV016006CC,<br/>setEKK0011C050, setEKK0011C110, etc."]
    SMALLCHK{"Tablet or GH<br/>Device Purchased?"}
    SMALL_YES["setEKK0061A010, setJFUSmartLinAdd2CC,<br/>setEKK0361D010, setEKK0341D010Sml,<br/>setEKK2541D010"]
    TELCHK{"Option Service<br/>telMskm selected?"}
    TEL_YES["setEKK0451D01001"]
    TEL2CHK{"2nd number<br/>service?"}
    TEL2_YES["setEKK0451D01002"]
    KODASAKICHECK{"Electric Guide<br/>Wanted?"}
    KODASAKI_YES["setECR0511D010<br/>Case file creation"]
    MINEOPLCHK{"mineo Set Plan<br/>Applicable?"}
    MINEOPL_YES["setEKK0011A010, setEKK0011C020,<br/>setJFUMineoSetPlanRenkeiCC"]
    TERMCHK{"Terminal Plan<br/>Subscribed?"}
    TERM_YES["setJKKTmcpOperateCC"]
    PAYCHK{"Payment Method<br/>Credit?"}
    PAY_YES["setFUSV016047SC"]
    CAMPLISTCHK{"Campaign List<br/>Non-empty?"}
    CAMPLIST_YES["setJFUGetCampaignListCC"]
    INTCHECK{"Referral Code<br/>Valid format?"}
    INT_YES["setFUSV016044SC, setFUSV016043SC"]
    WORKSET["Set workStrConstMap"]
    CXSTARTCHECK{"CX Start From<br/>Date Check"}
    CXSTART_YES{"New Application?"}
    CXSTART_YES_YES["setJFUEoidInputInfoAddCC"]
    MSKMUPD["setJFUMskmDtlUpdCC"]
    INVOKESVC["invokeService<br/>paramMap, inputMap, outputMap"]
    SvcEXC{"JCCWebServiceException"}
    ERRHAND["Error Handling<br/>Based on templateid and itemid"]
    AxM["executeAxmRenkeiService"]
    RESTCHECK{"Business Regulation<br/>Active?"}
    REST_NO["callGetdatamap<br/>For bulk reg"]
    UPDDTM["Set update datetime"]
    SCREENSET["Set Next Screen: FUW00122"]
    MAILSEND["sendMskmFinMail"]
    FIN(["Return true"])

    START --> INIT --> CAMPCHECK
    CAMPCHECK --> |false| CAMPNG --> FIN
    CAMPCHECK --> |true| CAMPOK --> NEWCHECK
    NEWCHECK --> |valid| OPEGET
    NEWCHECK --> |invalid| NEWERROR
    OPEGET --> MAILSET --> MINEOSET --> FLAGSET --> SESSIONSAVE
    SESSIONSAVE --> SVCCHK --> MNSCHK --> PLCCHK
    PLCCHK --> |true| PLCON --> PLCNOK
    PLCCHK --> |false| MAPGEN
    PLCNOK --> |true| PLCERR --> MAPGEN
    PLCNOK --> |false| MAPGEN
    MAPGEN --> MAPPERINIT --> INPUTGET --> KNYEICHECK
    KNYEICHECK --> |true| KNYEI_YES --> RESTCHECK
    KNYEICHECK --> |false| KNYEI_NO --> SMALLCHK
    SMALLCHK --> |true| SMALL_YES --> TELCHK
    SMALLCHK --> |false| TELCHK
    TELCHK --> |yes| TEL_YES --> TEL2CHK
    TELCHK --> |no| TEL2CHK
    TEL2CHK --> |yes| TEL2_YES --> KODASAKICHECK
    TEL2CHK --> |no| KODASAKICHECK
    KODASAKICHECK --> |yes| KODASAKI_YES --> MINEOPLCHK
    KODASAKICHECK --> |no| MINEOPLCHK
    MINEOPLCHK --> |yes| MINEOPL_YES --> TERMCHK
    MINEOPLCHK --> |no| TERMCHK
    TERMCHK --> |yes| TERM_YES --> PAYCHK
    TERMCHK --> |no| PAYCHK
    PAYCHK --> |credit| PAY_YES --> CAMPLISTCHK
    PAYCHK --> |other| CAMPLISTCHK
    CAMPLISTCHK --> |non-empty| CAMPLIST_YES --> INTCHECK
    CAMPLISTCHK --> |empty| INTCHECK
    INTCHECK --> |valid| INT_YES --> WORKSET
    INTCHECK --> |invalid| WORKSET
    CXSTARTCHECK --> |active| CXSTART_YES
    CXSTARTCHECK --> |inactive| MSKMUPD
    CXSTART_YES --> |new| CXSTART_YES_YES --> MSKMUPD
    CXSTART_YES --> |not new| MSKMUPD
    MSKMUPD --> INVOKESVC
    RESTCHECK --> |no| REST_YES
    RESTCHECK --> |yes| UPDDTM
    REST_YES --> SCREENSET
    UPDDTM --> SCREENSET
    INVOKESVC --> SvcEXC
    SvcEXC --> |error| ERRHAND --> AxM
    SvcEXC --> |ok| AxM
    AxM --> SCREENSET
    SCREENSET --> MAILSEND --> FIN
```

### Processing Flow Description

The method processes in the following major phases:

1. **Bean Initialization Phase (lines 1046-1060)**: Initializes all form beans - common info, web new info, eo net, eo TV, eo tel, contract service, mansion info, and payment method info.

2. **Campaign Check Phase (lines 1062-1078)**: Checks campaign eligibility. If campaign check fails, sets result code "1" and redirects to screen FUW00166.

3. **New Customer Verification Phase (lines 1080-1089)**: For new applications (MSKM_KBN_NEW), verifies customer info. If invalid, throws JCCBusinessException with error code 0013 (Contract Status Error).

4. **Data Preparation Phase (lines 1091-1115)**: Sets mail form bean, mineo set plan info, and DNSKH DOI flags across all service beans. Saves the add_input_map to session.

5. **Wiring Service Type Phase (lines 1117-1172)**: Determines the applied wiring service type (home/mansion). If PLC relay or mesh WiFi is selected, calls callSvcFUSV0376 to get device model codes.

6. **Mapper Initialization and Registration Phase (lines 1174-1496)**: Generates the paramMap and initializes mappers. For non-bulk registrations, invokes the extensive set of mapper methods that register all service contracts.

7. **invokeService Phase (lines 1525-1640)**: Calls the core service. On JCCWebServiceException, routes to extensive error handling based on templateId and itemId.

8. **Post-Commit Phase (lines 1642-1685)**: Executes AxM linkage service, checks business regulations, handles bulk registration data retrieval, sets next screen to FUW00122, and sends completion mail.
