// #1. viewModel의 AvgTotalPoint(전체평균)값을 조작하기위한 메서드
        //public async Task<double> makeAvgTotalPoint(int bizWorkSn, BasicSurveyReportViewModel paramModel)
        //{
        //    double avgTotalPoint = 0.0;
        //    var curBizWork = await _scBizWorkRepository.GetBizWorkAsync(bw => bw.BizWorkSn == bizWorkSn); // BizWorkSn을 기준으로 해당 사업에 참여한 기업들 객체 받아오기

        //    // Dictionary 객체
        //    Dictionary<string, double> dicBizInHrMng = new Dictionary<string, double>();        //인적자원관리
        //    Dictionary<string, double> dicBizInFinanceMng = new Dictionary<string, double>();   //재무관리
        //    Dictionary<string, double> dicBizInMkt = new Dictionary<string, double>();          //기술경영마케팅
        //    Dictionary<string, double> dicBizInBasicCpas = new Dictionary<string, double>();    //기초역량
        //    Dictionary<string, decimal> dicSales = new Dictionary<string, decimal>();           //매출액
        //    Dictionary<string, decimal> dicValueadded = new Dictionary<string, decimal>();      //부가가치
        //    Dictionary<string, decimal> dicMaterrial = new Dictionary<string, decimal>();       //재료비
        //    Dictionary<string, decimal> dicQtEmp = new Dictionary<string, decimal>();           //종업원수
        //    Dictionary<string, decimal> dicOperatingErning = new Dictionary<string, decimal>(); //영업이익
        //    Dictionary<string, decimal> dicCurrentAsset = new Dictionary<string, decimal>();    //유동자산
        //    Dictionary<string, decimal> dicCurrentLiability = new Dictionary<string, decimal>();//유동부채

        //    var compMappings = curBizWork.ScCompMappings.Where(sc => sc.Status == "A"); // 승인된 기업만 가져오기

        //    foreach (var compMapping in compMappings)
        //    {
        //        var quesMaster = await _quesMasterRepository.GetQuesMasterAsync(
        //                                                        qm => qm.RegistrationNo == compMapping.ScCompInfo.RegistrationNo &&
        //                                                        qm.BasicYear ==  paramModel.BizWorkYear &&
        //                                                        qm.Status == "C");      // 문진표 작성내역 조회
        //        if (quesMaster == null) continue; // 문진표 작성내역 객체 검사

        //        var quesResult2s = (await _quesResult2Repository.GetQuesResult2sAsync(
        //                                                        qr => qr.QuestionSn == quesMaster.QuestionSn &&
        //                                                        qr.QuesCheckList.CurrentUseYn == "Y" &&
        //                                                        qr.QuesCheckList.SmallClassCd == "A1A202"))
        //                                                        .OrderBy(qr => qr.QuesCheckList.SmallClassCd).ToList(); // 조직만족도 코드 : A1A202

        //        var totalEmp = quesResult2s.SingleOrDefault(i => i.QuesCheckList.DetailCd == "A1A20201");   // 총직원은 문진표상의 총 인원

        //        double bizInHrMng, bizInMkt, bizInBasicCapa, bizInFinance = 0.0; // 참여기업의 점수를 계산하기위한 변수

        //        var scFinancialIndexT = await _scFinancialIndexTRepository.getScFinancialIndexTAsync(
        //                                                        sft => sft.CompSn == compMapping.ScCompInfo.CompSn &&
        //                                                        sft.Year == paramModel.BizWorkYear.ToString()); // 재무정보 객체
        //        if (scFinancialIndexT == null) continue; // 재무정보 객체 검사

        //        scFinancialIndexT.QtEmp = decimal.Parse(totalEmp.D452); // 인원수는 d-2년도의 값을 가져와 저장한다

        //        //bizInHrMng = await GetHumanResourceMng(quesMaster.QuestionSn);
        //        //bizInMkt = await GetTechMng()
        //    }



        //    return avgTotalPoint;
        //}

        // bizInHrMng를 계산하기위한 function
        public async Task <double> GetHumanResourceMng(int questionSn)
        {
            //산식엑셀 1-18 ~ 1-19
            double totalPoint = 0;

            // A1D101 : 인적자윈의 확보와 개발관리
            var quesResult1sHrMng = (await _quesResult1Repository.GetQuesResult1sAsync(
                                         q1r => q1r.QuestionSn == questionSn &&
                                         q1r.QuesCheckList.CurrentUseYn == "Y" &&
                                         q1r.QuesCheckList.SmallClassCd == "A1D101")).
                                    OrderBy(q1r => q1r.QuesCheckList.SmallClassCd).ToList();

            totalPoint = totalPoint + ReportHelper.CalcPoint(ReportHelper.GetCodeTypeA(ReportHelper.CalcCheckCount(quesResult1sHrMng)), 11);

            // A1D102 : 인적자원의 보상 및 유지관리
            var quesResult1sMaintenance = (await _quesResult1Repository.GetQuesResult1sAsync(
                                               q1r => q1r.QuestionSn == questionSn &&
                                               q1r.QuesCheckList.CurrentUseYn == "Y" &&
                                               q1r.QuesCheckList.SmallClassCd == "A1D102")).
                                          OrderBy(q1r => q1r.QuesCheckList.SmallClassCd).ToList();

            totalPoint = totalPoint + ReportHelper.CalcPoint(ReportHelper.GetCodeTypeA(ReportHelper.CalcCheckCount(quesResult1sMaintenance)), 8);

            return(totalPoint);
        }
Пример #2
0
        public async Task <IList <QuesResult1> > GetQuesResult1sAsync(int questionSn, string code)
        {
            var listQuesMaster =
                await
                _quesResult1Repository.GetQuesResult1sAsync(
                    qr =>
                    qr.QuestionSn == questionSn && qr.QuesCheckList.CurrentUseYn == "Y" &&
                    qr.QuesCheckList.SmallClassCd == code);

            return(listQuesMaster.OrderBy(qr => qr.QuesCheckList.SmallClassCd).ToList());
        }