Untitled

 avatar
unknown
plain_text
a year ago
5.1 kB
4
Indexable
package com.muf.integrasi_ppd_java.service;


import com.muf.integrasi_ppd_java.dto.ContractDTO;
import com.muf.integrasi_ppd_java.dto.LogidDTO;
import com.muf.integrasi_ppd_java.model.mufam.ApplicationSurvey;
import com.muf.integrasi_ppd_java.repository.mufam.ApplicationSurveyRepository;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;


import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Map;

@Service
@Slf4j
public class ApplicationSurveyService {

    @Autowired
    private ApplicationSurveyRepository applicationSurveyRepository;

    @Transactional
    public String insertData(Map<String, Object> request, ContractDTO contractDTO, String logsId) throws Exception {
        try {
            Map<String, Object> detail = (Map<String, Object>) request.get("detail");
            Map<String, Object> data_entry_completion = (Map<String, Object>) detail.get("data_entry_completion");

            Map<String, Object> detail_aplikasi = (Map<String, Object>) data_entry_completion.get("aplikasi");
            Map<String, Object> informasi_aplikasi = (Map<String, Object>) detail_aplikasi.get("informasi_aplikasi");
            ArrayList<Map<String, Object>> internal_sales_force = (ArrayList<Map<String, Object>>) informasi_aplikasi.get("internal_sales_force");

            Map<String, Object> survey = (Map<String, Object>) data_entry_completion.get("survey");
            Map<String, Object> data_kepemilikan = (Map<String, Object>) survey.get("data_kepemilikan");
            Map<String, Object> area_coverage = (Map<String, Object>) data_kepemilikan.get("area_coverage");


            String dateConfirm = (String) data_entry_completion.get("confirmed_date");
//          String promiseDate = (String) applicationsSurvey.get("promiseDate");
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

            Date dateConfirmParsing = dateFormat.parse(dateConfirm);
//          Date promiseDateParsing = dateFormat.parse(promiseDate);

            log.info("Start Insert/Update Process Service Application Survey For Contract No: {}", contractDTO.getContractNo());
            //log.info("Select data from Contract Master");
            //log.info("Select data from Application Survey for Application Id & Contract no: {} & {}", contractDTO.getApplicationId(), contractDTO.getContractNo());
            ApplicationSurvey data = applicationSurveyRepository.findById(contractDTO.getApplicationId())
                    .orElse(ApplicationSurvey.builder()
                            .applicationId(contractDTO.getApplicationId())
                            .build());
            data.setDateConfirm(dateConfirmParsing); //confirmed_date  //detail.data_entry_completion.confirmed_date
            data.setApplStatus(null);
            data.setProblemDesc(null);
            //data.setPromiseDate(promiseDateParsing); //next ambil dari json
            data.setSvhId(null); // string kosong
            data.setSurveyInfo(null); //null
            // for (Map<String, Object> internal : internal_sales_force) {
            data.setCfoId(internal_sales_force.get(0).get("internal_sales_force_npk").toString()); //internal_sales_force_npk
            data.setCfoIdJob(internal_sales_force.get(0).get("internal_sales_job_code").toString());  //internal_sales_job_code
            //}
            data.setSurveyInfo1(null); //null
            data.setSurveyEnvironment(null); //null
            data.setSurveyEnvironment1(null); //null
            data.setCsaCode(null); // string kosong
            data.setCsaStatus(null); //null
            data.setSurveyDistance(null); //null
            data.setDealerDistance(null); //null
            data.setUsingDistance(0.0); // string kosong
            data.setSurveyLocation(area_coverage.get("survey_location_code").toString()); //survey_location_code
            data.setHouseDistance(Double.valueOf(area_coverage.get("survey_jarak_rumah").toString())); //survey_jarak_rumah
            //data.setLogId(applicationsSurvey.get("logId").toString());
            data.setLogId(logsId);
            data.setSvySourceInfo3(null); //null
            data.setSvyResultInfo3(null); //null
            data.setSvyResultNotes(null); //null
            applicationSurveyRepository.save(data);
            log.info("End Insert/Update Process Service Application Survey For Contract No: {}", contractDTO.getContractNo());
            return "Success";
        } catch (Exception e) {
            String errorMessage = "Error Proses Bridging Pada Table Application Survey: " + e.getMessage() + " Pada Nomor Kontrak: " + contractDTO.getContractNo();
            log.error(errorMessage, e);
            throw new Exception(errorMessage, e);
        }
    }
}
Editor is loading...
Leave a Comment