From 559771a80cf779dc13a84ecd2f178e6ca5a8353a Mon Sep 17 00:00:00 2001
From: FUYU <fuyu@prec-tech.com>
Date: 星期五, 19 五月 2023 15:52:16 +0800
Subject: [PATCH] 备份省目标录入

---
 force-app/main/default/classes/SetProvinceTargetController.cls |  787 +++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 576 insertions(+), 211 deletions(-)

diff --git a/force-app/main/default/classes/SetProvinceTargetController.cls b/force-app/main/default/classes/SetProvinceTargetController.cls
index ec75b2e..1658657 100644
--- a/force-app/main/default/classes/SetProvinceTargetController.cls
+++ b/force-app/main/default/classes/SetProvinceTargetController.cls
@@ -28,9 +28,14 @@
         salesDpt.add(new SelectOption('1.鍗庡寳','1.鍗庡寳'));
         salesDpt.add(new SelectOption('2.涓滃寳','2.涓滃寳'));
         salesDpt.add(new SelectOption('3.瑗垮寳','3.瑗垮寳'));
-        salesDpt.add(new SelectOption('4.鍗庝笢','4.鍗庝笢'));
-        salesDpt.add(new SelectOption('5.鍗庡崡','5.鍗庡崡'));
-        salesDpt.add(new SelectOption('6.瑗垮崡','6.瑗垮崡'));
+        // DB202305259561 fy 20230517 start
+        // salesDpt.add(new SelectOption('4.鍗庝笢','4.鍗庝笢'));
+        // salesDpt.add(new SelectOption('5.鍗庡崡','5.鍗庡崡'));
+        // salesDpt.add(new SelectOption('6.瑗垮崡','6.瑗垮崡'));
+        salesDpt.add(new SelectOption('4.瑗垮崡','4.瑗垮崡'));
+        salesDpt.add(new SelectOption('5.鍗庝笢','5.鍗庝笢'));
+        salesDpt.add(new SelectOption('6.鍗庡崡','6.鍗庡崡'));
+        // DB202305259561 fy 20230517 end
         return salesDpt;
     }
     
@@ -49,14 +54,42 @@
     
     // 鏃㈠瓨鐩爣鏁版嵁
     private Map<String, Opportunity> oppsMap;
+    //2021/12/28 涓棿琛ㄥ瘎瀛樻暟鎹� by ld fy
+    private Map<String,Provincial_Goal_Setting_Input__c> Provincial_Goal_Setting_InputMap;
+    public Provincial_Goal_Setting_Input__c[] Existed_Provincial_Goal_Setting_Input;
+    private List<Provincial_Goal_Setting_Input__c> upsertPGSIList;
+    private Map<String, Provincial_Goal_Setting_Input__c> Provincial_Goal_Setting_InputMap1;
+    private Map<String, OCM_Management_Province__c> OCM_MpMap;
+    private List<String> AllOwnerSystem;
+    private static String[] CIfromass = new String[] {'GI','ET','BF','GDP'};
+    //DB202305277681 fy 20230517 start
+    // private static String[] SPfromass = new String[] {'GS','URO','GYN','ENT','ENG'};
+    private static String[] SPfromass = new String[] {'GS','URO','GYN','ENT','ENG1','ENG2'};
+    //DB202305277681 fy 20230517 end
     // 閲戦鍒嗙被
     //private static String[] amountCategory = new String[] {'GI','ET','BF','GS','URO','GYN','ENT','OTH'};
     //鐪佺洰鏍�(SetProvinceTarget):闅愯棌OTH銆傝拷鍔燛NG銆�
-    private static String[] amountCategory = new String[] {'GI','ET','BF','GS','URO','GYN','ENT','ENG'};
+    //DB202305277681 fy 20230517 start
+    // private static String[] amountCategory = new String[] {'GI','ET','BF','GS','URO','GYN','ENT','ENG'};
+    private static String[] amountCategory = new String[] {'GI','ET','BF','GS','URO','GYN','ENT','ENG1','ENG2'};
+    //DB202305277681 fy 20230517 end
+    //SWAG-C9YDDE  2021/12/28 fy start
+    // private static String[] amountCategory = new String[] {'GDP','GI','ET','BF','GS','URO','GYN','ENT','ENG'};
+    //SWAG-C9YDDE  2021/12/28 fy end
     //CHAN-BDQBLX  20210129 you start
     public string csvAsString {get; set;}
     public String[] csvFileLines {get; set;}
-    private static String[] titlepage = new String[] {'閿�鍞湰閮�', '鐪�', '鎷呭綋','GI', 'ET', 'BF', 'GS', 'URO', 'GYN', 'ENT', 'ENG'};
+    //fy 淇敼 start
+    public String users6_ID = System.Label.s6_ID;
+    public boolean JianDangfalg { get; set; }
+    //fy 淇敼 end
+    //DB202305277681 fy 20230517 start
+    // private static String[] titlepage = new String[] {'閿�鍞湰閮�', '鐪�','GI', 'ET', 'BF', 'GS', 'URO', 'GYN', 'ENT', 'ENG'};
+    private static String[] titlepage = new String[] {'閿�鍞湰閮�', '鐪�','GI', 'ET', 'BF', 'GS', 'URO', 'GYN', 'ENT','ENG1','ENG2'};
+    //DB202305277681 fy 20230517 start
+    //SWAG-C9YDDE  2021/12/28 fy start
+    // private static String[] titlepage = new String[] {'閿�鍞湰閮�', '鐪�', '鎷呭綋','GDP','GI', 'ET', 'BF', 'GS', 'URO', 'GYN', 'ENT', 'ENG'};
+    //SWAG-C9YDDE  2021/12/28 fy end
     public Integer detailCountLimit{get;private set;}
     private Map<String, Opportunity> oppsMap1;
     private List<Opportunity> upsertAMPList ;
@@ -64,12 +97,45 @@
     //CHAN-BDQBLX  20210129 you end
     // 鐢婚潰鍒濆鍖�
     public Pagereference init() {
+        JianDangfalg=false;
+        //fy 淇敼 20220412
+        System.debug('users6_ID:  '+users6_ID);
+        System.debug('褰撳墠鐢ㄦ埛绠�妗�:  '+UserInfo.getProfileId());
+        String userProfileId = UserInfo.getProfileId();
+        if(!String.isBlank(userProfileId)){
+            userProfileId=userProfileId.substring(0,15);
+        }
+        System.debug('褰撳墠鐢ㄦ埛绠�妗f埅鍙�:  '+userProfileId);
+        List<String> user6IdList = users6_ID.split(',');
+        for(String user6id : user6IdList){
+            if(user6id==userProfileId){
+            // if(user6id=='00e10000000xnpR'){
+                JianDangfalg=true;
+                break;
+            }
+        }
+        System.debug('user6IdList:  '+user6IdList);
+        System.debug('JianDangfalg:  '+JianDangfalg);
+        if(JianDangfalg){
+            //DB202305277681 fy 20230517 start
+            // amountCategory = new String[] {'GDP','GI','ET','BF','GS','URO','GYN','ENT','ENG'};
+            // titlepage = new String[] {'閿�鍞湰閮�', '鐪�','GDP','GI', 'ET', 'BF', 'GS', 'URO', 'GYN', 'ENT', 'ENG'};
+            amountCategory = new String[] {'GDP','GI','ET','BF','GS','URO','GYN','ENT','ENG1','ENG2'};
+            titlepage = new String[] {'閿�鍞湰閮�', '鐪�','GDP','GI', 'ET', 'BF', 'GS', 'URO', 'GYN', 'ENT','ENG1','ENG2'};
+            //DB202305277681 fy 20230517 end
+        }
+        System.debug('amountCategory===:  '+amountCategory);
+        //fy 淇敼 20220412
         //CHAN-BDQBLX  20210129 you start
         oppsMap1 = new Map<String, Opportunity>();
         detailCountLimit = 10000;
         upsertAMPList = new List<Opportunity>();
         deleteAMPList = new List<Opportunity>();
         //CHAN-BDQBLX  20210129 you end
+        //SWAG-C9YDDE  2021/12/28 fy start
+        Provincial_Goal_Setting_InputMap1 = new Map<String, Provincial_Goal_Setting_Input__c>();
+        upsertPGSIList = new List<Provincial_Goal_Setting_Input__c>();
+        //SWAG-C9YDDE  2021/12/28 fy end
         // 鐜板湪鏃堕棿
         Date dateNow = Date.today();
         Integer year = dateNow.year();
@@ -159,15 +225,33 @@
                 doubleOTH.add(Double.valueOf(strOTH));
             }
             proportion.put('OTH', doubleOTH);
-
-            String strObjectiveProportionENG = System.Label.ObjectiveProportionENG;
-            List<String> objectiveProportionENG = strObjectiveProportionENG.split(',');
-            List<Double> doubleENG = new List<Double>();
-            for (String strENG : objectiveProportionENG) {
-                doubleENG.add(Double.valueOf(strENG));
+            //DB202305277681 fy 20230517 start
+            // String strObjectiveProportionENG = System.Label.ObjectiveProportionENG;
+            // List<String> objectiveProportionENG = strObjectiveProportionENG.split(',');
+            // List<Double> doubleENG = new List<Double>();
+            // for (String strENG : objectiveProportionENG) {
+            //     doubleENG.add(Double.valueOf(strENG));
+            // }
+            // proportion.put('ENG', doubleENG);
+            // proportion.put('_ENG', doubleENG);
+            String strObjectiveProportionENG1 = System.Label.ObjectiveProportionENG;
+            List<String> objectiveProportionENG1 = strObjectiveProportionENG1.split(',');
+            List<Double> doubleENG1 = new List<Double>();
+            for (String strENG1 : objectiveProportionENG1) {
+                doubleENG1.add(Double.valueOf(strENG1));
             }
-            proportion.put('ENG', doubleENG);
-            proportion.put('_ENG', doubleENG);
+            proportion.put('ENG1', doubleENG1);
+            proportion.put('_ENG1', doubleENG1);
+
+            String strObjectiveProportionENG2 = System.Label.ObjectiveProportionENG;
+            List<String> objectiveProportionENG2 = strObjectiveProportionENG2.split(',');
+            List<Double> doubleENG2 = new List<Double>();
+            for (String strENG2 : objectiveProportionENG2) {
+                doubleENG2.add(Double.valueOf(strENG2));
+            }
+            proportion.put('ENG2', doubleENG2);
+            proportion.put('_ENG2', doubleENG2);
+            //DB202305277681 fy 20230517 end
         }
         // 褰撳墠鐢ㄦ埛淇℃伅
         if (loginUser == null) {
@@ -187,7 +271,7 @@
         }
         // 鏁版嵁璧嬪��
         setBean(iYear);
-
+        system.debug('dataBeans+++'+dataBeans[0]);
         return null;
     }
      //SWAG-BB48QB 鍒ゆ柇褰撳墠鏃堕棿鏄惁鏄�4鏈�15鏃ヤ箣鍚� start
@@ -287,7 +371,14 @@
     }
      //瀵煎叆鏂规硶
     public PageReference importCSVFile() {
-        String csvData = ApexPages.currentPage().getParameters().get('csvData');
+        try{
+            if(JianDangfalg){
+                //DB202305277681 fy 20230517 start
+                // titlepage = new String[] {'閿�鍞湰閮�', '鐪�','GDP','GI', 'ET', 'BF', 'GS', 'URO', 'GYN', 'ENT', 'ENG'};
+                titlepage = new String[] {'閿�鍞湰閮�', '鐪�','GDP','GI', 'ET', 'BF', 'GS', 'URO', 'GYN', 'ENT', 'ENG1','ENG2'};
+                //DB202305277681 fy 20230517 end
+            }
+            String csvData = ApexPages.currentPage().getParameters().get('csvData');
             // 灏嗗唴瀹硅浆鎹㈡垚涓轰腑鏂�
             if(!Test.isRunningTest()){
                 //csvAsString = bitToString(csvFileBody, 'gb2312');
@@ -304,213 +395,246 @@
             if (csvFileLines.size() > 0) {
                 string[] titlecsv = csvFileLines[0].trim().split(',');//
                 system.debug(titlecsv + '==titlepage==' + titlepage);
-                for (integer j = 0; j < titlecsv.size(); j++) {
-                    if (!titlepage.contains(titlecsv[j])) {
-                        system.debug('琛ㄥご涓嶄竴鑷村緱鍒�===' + titlecsv[j]);
-                        ValFlag = true;
-                        exportByVal = '琛ㄥご涓嶄竴鑷达紝璇蜂弗鏍兼寜鐓у鍑烘ā鏉垮~鍐�';
-                        break;
+                if(titlepage.size()!=titlecsv.size()){
+                    ValFlag = true;
+                    exportByVal = '琛ㄥご涓嶄竴鑷达紝璇蜂弗鏍兼寜鐓у鍑烘ā鏉垮~鍐�';
+                }else{
+                    for (integer j = 0; j < titlecsv.size(); j++) {
+                        if (!titlepage.contains(titlecsv[j])) {
+                            system.debug('琛ㄥご涓嶄竴鑷村緱鍒�===' + titlecsv[j]);
+                            ValFlag = true;
+                            exportByVal = '琛ㄥご涓嶄竴鑷达紝璇蜂弗鏍兼寜鐓у鍑烘ā鏉垮~鍐�';
+                            break;
+                        }
                     }
-
                 }
-
             }
             if (ValFlag) {
                 successMsg = new ApexPages.Message(ApexPages.severity.INFO, exportByVal);
                 ApexPages.addMessage(successMsg);
 
             } else {
-                List<String> UserInfoList = new List<String>();
+                // List<String> UserInfoList = new List<String>();
                 Map<String, List<String>> szMap = new Map<String, List<String>>();
                 Set<String> sfs = new Set<String>();//鐪佷唤
-
+                getOCMManagementProvince();
                 for (Integer i = 1; i < csvFileLines.size(); i++) {
                     string[] csvRecordData = csvFileLines[i].split(',');
                     if (csvRecordData.size() > 0) {
                         String bu = csvRecordData[0].replace(' ', '');//閿�鍞湰閮�
                         String sf = csvRecordData[1].replace(' ', '');//鐪�
-                        String dandang = csvRecordData[2].replace(' ', '');//鎷呭綋
-                        if(String.isNotBlank(dandang)){
-                            UserInfoList.add(dandang);//鏍规嵁 鎷呭綋鏌ser  
-                            
-                        }
-                        szMap.put(bu+'_'+ sf + '_'+ dandang, csvRecordData);
-                            sfs.add(sf);//鎶婄渷浠芥斁杩涘幓 
-                        
+                        // String dandang = csvRecordData[2].replace(' ', '');//鎷呭綋
+                        // if(String.isNotBlank(dandang)){
+                        //     UserInfoList.add(dandang);//鏍规嵁 鎷呭綋鏌ser  
+                        // }
+                        // szMap.put(bu+'_'+ sf + '_'+ dandang, csvRecordData);
+                        // fy 20220107
+                        szMap.put(bu+'_'+ sf, csvRecordData);
+                        sfs.add(sf);//鎶婄渷浠芥斁杩涘幓 
                     }
                 }
                 if (null != sfs && sfs.size() > 0) {
-                    this.getOppprtunity_List(sfs);//鏍规嵁鐪佷唤骞翠唤锛岃幏鍙栧綋鍓嶇郴缁熶腑宸茬粡瀛樺湪寰楁暟鎹� 鏀惧埌map涓�
-                    
+                    // this.getOppprtunity_List(sfs);
+                    this.getProvincial_Goal_Setting_Input(sfs);//鏍规嵁鐪佷唤骞翠唤锛岃幏鍙栧綋鍓嶇郴缁熶腑宸茬粡瀛樺湪寰楁暟鎹� 鏀惧埌map涓�
                 }
-                List<User> userList  = new List<User>();
-                System.debug('==UserInfoList=='+UserInfoList);
-                if (null != UserInfoList && UserInfoList.size() > 0) {
-                    userList = this.getUserList(UserInfoList);//杩斿洖鐢ㄦ埛寰椾竴浜涗俊鎭�
+                // List<User> userList  = new List<User>();
+                // // System.debug('==UserInfoList=='+UserInfoList);
+                // if (null != UserInfoList && UserInfoList.size() > 0) {
+                //     userList = this.getUserList(UserInfoList);//杩斿洖鐢ㄦ埛寰椾竴浜涗俊鎭�
+                // }
+                // Map<String, User> userMap = new Map<String, User>();
+                // for (User userl : userList) {
+                //     userMap.put(userl.Alias, userl);
+                // }
+                //fy 淇敼 20220412
+                Integer GDP_Number = 0;
+                Integer GI_Number = 0;
+                Integer ET_Number = 0;
+                Integer BF_Number = 0;
+                Integer GS_Number = 0;
+                Integer URO_Number = 0;
+                Integer GYN_Number = 0;
+                Integer ENT_Number = 0;
+                //DB202305277681 fy 20230517 start
+                // Integer ENG_Number = 0;
+                Integer ENG1_Number = 0;
+                Integer ENG2_Number = 0;
+                //DB202305277681 fy 20230517 end
+                if(JianDangfalg){
+                    //2021/12/28 涓棿琛ㄥ瘎瀛樻暟鎹� by ld fy
+                    GDP_Number = 2;
+                    //2021/12/28 涓棿琛ㄥ瘎瀛樻暟鎹� by ld fy
+                    GI_Number = 3;
+                    ET_Number = 4;
+                    BF_Number = 5;
+                    GS_Number = 6;
+                    URO_Number = 7;
+                    GYN_Number = 8;
+                    ENT_Number = 9;
+                    //DB202305277681 fy 20230517 start
+                    // ENG_Number = 10;
+                    ENG1_Number = 10;
+                    ENG2_Number = 11;
+                    //DB202305277681 fy 20230517 end
+                }else{
+                    GI_Number = 2;
+                    ET_Number = 3;
+                    BF_Number = 4;
+                    GS_Number = 5;
+                    URO_Number = 6;
+                    GYN_Number = 7;
+                    ENT_Number = 8;
+                    //DB202305277681 fy 20230517 start
+                    // ENG_Number = 9;
+                    ENG1_Number = 9;
+                    ENG2_Number = 10;
+                    //DB202305277681 fy 20230517 end
                 }
-                Map<String, User> userMap = new Map<String, User>();
-                for (User userl : userList) {
-                    userMap.put(userl.Alias, userl);
-                }
-                Integer GI_Number = 3;
-                Integer ET_Number = 4;
-                Integer BF_Number = 5;
-                Integer GS_Number = 6;
-                Integer URO_Number = 7;
-                Integer GYN_Number = 8;
-                Integer ENT_Number = 9;
-                Integer ENG_Number = 10;
-                upsertAMPList = new List<Opportunity>();//鍒濆鍖栵紝瑙e喅閲嶅瀵煎叆鏁版嵁 id閲嶅寰楅棶棰�
-                deleteAMPList = new List<Opportunity>();
+                upsertPGSIList = new List<Provincial_Goal_Setting_Input__c>();//鍒濆鍖栵紝瑙e喅閲嶅瀵煎叆鏁版嵁 id閲嶅寰楅棶棰�
                 for (String key : szMap.keySet()) {
                     //鍙栫敤鎴风殑Id
-                    String userid = '';
+                    // String userid = '';
+                    OCM_Management_Province__c userid = new OCM_Management_Province__c();
                     String key_shengfen=key.split('_')[1];//鐪佷唤
-                    String key_dandang= '';
-                    if(key.split('_').size()>=3){
-                         key_dandang=key.split('_')[2];//鎶婃媴褰撳彇鍑烘潵
-                    }
-                    
-                    if (userMap.containskey(key_dandang)) {
-                        userid = userMap.get(key_dandang).Id;
+                    //GI鍔╃悊
+                    String GIassistant='';
+                    //SP鍔╃悊
+                    String SPassistant='';
+                    // String key_dandang= '';
+                    // if(key.split('_').size()>=3){
+                    //      key_dandang=key.split('_')[2];//鎶婃媴褰撳彇鍑烘潵
+                    // }
+                    if (OCM_MpMap.containskey(key_shengfen)) {
+                        // userid = userMap.get(key_shengfen);
+                        userid = OCM_MpMap.get(key_shengfen);
+                        if(userid.GI_assistant__c!=null){
+                            GIassistant=userid.GI_assistant__c;
+                        }
+                        if(userid.SP_assistant__c!=null){
+                            SPassistant=userid.SP_assistant__c;
+                        }
                     } else {
                         System.debug('==key==='+key);
                         //鐢ㄦ埛涓嶅瓨鍦ㄨ鎻愰啋
                         continue;
                     }
-                        system.debug('==userid=='+userid+'\n');
-                        List<String> csvRecordData = szMap.get(key);
-                        //鑾峰彇瀵煎叆鏁伴噺
-                        Decimal GI_Amount = String.isNotBlank(csvRecordData[GI_Number]) ? Decimal.valueof(csvRecordData[GI_Number]) : 0.00;
-                         
-                        DataSplicing(GI_Amount,key_shengfen + '_GI',oppsMap1,userid);
+                    system.debug('==userid=='+userid+'\n');
+                    List<String> csvRecordData = szMap.get(key);
+                    //2021/12/28 涓棿琛ㄥ瘎瀛樻暟鎹� by ld fy
+                    Provincial_Goal_Setting_Input__c upsertPGSI = new Provincial_Goal_Setting_Input__c();
+                    //鑾峰彇瀵煎叆鏁伴噺
+                    //fy 淇敼 20220412
+                    if(JianDangfalg){
+                        Decimal GDP_Amount = String.isNotBlank(csvRecordData[GDP_Number]) ? Decimal.valueOf(csvRecordData[GDP_Number]) : 0.00;
+                        DataSplicing(GDP_Amount,key_shengfen + '_GDP',Provincial_Goal_Setting_InputMap1,GIassistant,csvRecordData);
+                    }
+                    //fy 淇敼 20220412
+                    Decimal GI_Amount = String.isNotBlank(csvRecordData[GI_Number]) ? Decimal.valueof(csvRecordData[GI_Number]) : 0.00;
+                     
+                    DataSplicing(GI_Amount,key_shengfen + '_GI',Provincial_Goal_Setting_InputMap1,GIassistant,csvRecordData);
                         
-                        Decimal ET_Amount = String.isNotBlank(csvRecordData[ET_Number]) ? Decimal.valueOf(csvRecordData[ET_Number]) : 0.00;
-                        DataSplicing(ET_Amount,key_shengfen + '_ET',oppsMap1,userid);
+                    Decimal ET_Amount = String.isNotBlank(csvRecordData[ET_Number]) ? Decimal.valueOf(csvRecordData[ET_Number]) : 0.00;
+                    DataSplicing(ET_Amount,key_shengfen + '_ET',Provincial_Goal_Setting_InputMap1,GIassistant,csvRecordData);
                         
-                        Decimal BF_Amount = String.isNotBlank(csvRecordData[BF_Number]) ? Decimal.valueOf(csvRecordData[BF_Number]) : 0.00;
-                        DataSplicing(BF_Amount,key_shengfen + '_BF',oppsMap1,userid);
+                    Decimal BF_Amount = String.isNotBlank(csvRecordData[BF_Number]) ? Decimal.valueOf(csvRecordData[BF_Number]) : 0.00;
+                    DataSplicing(BF_Amount,key_shengfen + '_BF',Provincial_Goal_Setting_InputMap1,GIassistant,csvRecordData);
 
                         
-                        Decimal GS_Amount = String.isNotBlank(csvRecordData[GS_Number]) ? Decimal.valueOf(csvRecordData[GS_Number]) : 0.00;
-                        DataSplicing(GS_Amount,key_shengfen + '_GS',oppsMap1,userid);
+                    Decimal GS_Amount = String.isNotBlank(csvRecordData[GS_Number]) ? Decimal.valueOf(csvRecordData[GS_Number]) : 0.00;
+                    DataSplicing(GS_Amount,key_shengfen + '_GS',Provincial_Goal_Setting_InputMap1,SPassistant,csvRecordData);
                        
-                        Decimal URO_Amount = String.isNotBlank(csvRecordData[URO_Number]) ? Decimal.valueOf(csvRecordData[URO_Number]) : 0.00;
-                        DataSplicing(URO_Amount,key_shengfen + '_URO',oppsMap1,userid);
+                    Decimal URO_Amount = String.isNotBlank(csvRecordData[URO_Number]) ? Decimal.valueOf(csvRecordData[URO_Number]) : 0.00;
+                    DataSplicing(URO_Amount,key_shengfen + '_URO',Provincial_Goal_Setting_InputMap1,SPassistant,csvRecordData);
                         
-                        Decimal GYN_Amount = String.isNotBlank(csvRecordData[GYN_Number]) ? Decimal.valueOf(csvRecordData[GYN_Number]) : 0.00;
-                        DataSplicing(GYN_Amount,key_shengfen + '_GYN',oppsMap1,userid);
-                       
-                        Decimal ENT_Amount = String.isNotBlank(csvRecordData[ENT_Number]) ? Decimal.valueOf(csvRecordData[ENT_Number]) : 0.00;
-                        DataSplicing(ENT_Amount,key_shengfen + '_ENT',oppsMap1,userid);
-                        system.debug('ENG_Number--->'+csvRecordData[ENG_Number]);
-                        //鍥犱负鏈�鍚庝竴鍒楁暟鎹湁绌烘牸锛屾墍浠ュ姞.trim()
-                        Decimal ENG_Amount = String.isNotBlank(csvRecordData[ENG_Number]) ? Decimal.valueOf(csvRecordData[ENG_Number].trim()) : 0.00;
-                        // Decimal.valueOf(String str)
-                        DataSplicing(ENG_Amount,key_shengfen + '_ENG',oppsMap1,userid);
+                    Decimal GYN_Amount = String.isNotBlank(csvRecordData[GYN_Number]) ? Decimal.valueOf(csvRecordData[GYN_Number]) : 0.00;
+                    DataSplicing(GYN_Amount,key_shengfen + '_GYN',Provincial_Goal_Setting_InputMap1,SPassistant,csvRecordData);
                     
+                    Decimal ENT_Amount = String.isNotBlank(csvRecordData[ENT_Number]) ? Decimal.valueOf(csvRecordData[ENT_Number]) : 0.00;
+                    DataSplicing(ENT_Amount,key_shengfen + '_ENT',Provincial_Goal_Setting_InputMap1,SPassistant,csvRecordData);
+                    
+                    //鍥犱负鏈�鍚庝竴鍒楁暟鎹湁绌烘牸锛屾墍浠ュ姞.trim()
 
 
+                    //DB202305277681 fy 20230517 start
+                    // Decimal ENG_Amount = String.isNotBlank(csvRecordData[ENG_Number]) ? Decimal.valueOf(csvRecordData[ENG_Number].trim()) : 0.00;
+                    // // Decimal.valueOf(String str)
+                    // DataSplicing(ENG_Amount,key_shengfen + '_ENG',Provincial_Goal_Setting_InputMap1,SPassistant,csvRecordData);
+                    system.debug('ENG1_Number--->'+csvRecordData[ENG1_Number]);
+                    Decimal ENG1_Amount = String.isNotBlank(csvRecordData[ENG1_Number]) ? Decimal.valueOf(csvRecordData[ENG1_Number]) : 0.00;
+                    DataSplicing(ENG1_Amount,key_shengfen + '_ENG1',Provincial_Goal_Setting_InputMap1,SPassistant,csvRecordData);
+                    
+                    system.debug('ENG2_Number--->'+csvRecordData[ENG2_Number]);
+
+                    Decimal ENG2_Amount = String.isNotBlank(csvRecordData[ENG2_Number]) ? Decimal.valueOf(csvRecordData[ENG2_Number].trim()) : 0.00;
+                    DataSplicing(ENG2_Amount,key_shengfen + '_ENG2',Provincial_Goal_Setting_InputMap1,SPassistant,csvRecordData);
+                    
+                    //DB202305277681 fy 20230517 end
                     //鎷兼帴Key
-                    
-            }
-                if(null!=upsertAMPList && upsertAMPList.size()>0){
-                    system.debug('upsertAMPList=='+upsertAMPList.size()+'=upsertAMPList=='+upsertAMPList+'\n');
-                    upsert upsertAMPList;
                 }
-                if(null!=deleteAMPList && deleteAMPList.size()>0){
-                    delete deleteAMPList;
+                if(null!=upsertPGSIList && upsertPGSIList.size()>0){
+                upsert upsertPGSIList;
                 }
-                
+                // if(null!=upsertAMPList && upsertAMPList.size()>0){
+                //     system.debug('upsertAMPList=='+upsertAMPList.size()+'=upsertAMPList=='+upsertAMPList+'\n');
+                //     upsert upsertAMPList;
+                // }
+                // if(null!=deleteAMPList && deleteAMPList.size()>0){
+                //     delete deleteAMPList;
+                // }
                 setBean(iYear);
-                    
                 successMsg = new ApexPages.Message(ApexPages.severity.INFO, '瀵煎叆鎴愬姛');
                 ApexPages.addMessage(successMsg);
-           
-    }
+            }
+        } catch (Exception e) {
+            ApexPages.Message errorMessage = new ApexPages.Message(ApexPages.severity.ERROR, e.getLineNumber() + ':'+ e.getMessage());
+            ApexPages.addMessage(errorMessage);
+       }
     return null; 
 }
     // 鏈�缁堝緱鏁版嵁澶勭悊锛�
-    private void DataSplicing(Decimal amount, String key, Map<String, Opportunity> ampMap, String userid) {//鍘昏繘琛屾渶缁堟暟鎹緱鎻掑叆锛屾洿鏂版垨鍒犻櫎鎿嶄綔
-           
-        //system.debug('==amount=='+amount+'==key=='+key+'==ampMap=='+ampMap+'\n');
-        for (Integer i = 0; i < 12; i++) {
-            Integer y = iYear;
-            Integer m = 4 + i;
-            if (m > 12) {
-                y += 1;
-                m -= 12;
-            }
-            String syear = String.valueOf(y);
-            String smonth = String.valueOf(m);
-            if (m < 10) {
-                smonth = '0' + smonth;
-            }
-            String sTargetDay = syear + '-' + smonth + '-01';
-            Date targetDay = Date.valueOf(sTargetDay);
-            String key_shengfen=key.split('_')[0];//鐪�
-            String key_ksfl=key.split('_')[1];//绉戝鍒嗙被
-             Opportunity upsertAMP = new Opportunity();    
-            if (ampMap.containskey(key+'_' + sTargetDay)) {
-               upsertAMP = ampMap.get(key+'_' + sTargetDay);
-               
+    private void DataSplicing(Decimal amount, String key, Map<String, Provincial_Goal_Setting_Input__c> ampMap, String userid,List<String> csvRecordData) {//鍘昏繘琛屾渶缁堟暟鎹緱鎻掑叆锛屾洿鏂版垨鍒犻櫎鎿嶄綔
+        Provincial_Goal_Setting_Input__c upsertPGSI = new Provincial_Goal_Setting_Input__c();
+        //system.debug('==amount=='+amount+'==key=='+key+'==ampMap=='+ampMap+'\n');   
+            if (ampMap.containskey(key)) {
+                upsertPGSI = ampMap.get(key);
                 if (amount > 0) {
-                    if(amount!=upsertAMP.Amount || upsertAMP.Owner_System__c !=userid){
-                        system.debug('鏈夋暟鎹�==='+'==key=='+key+'_' + sTargetDay+'==upsertAMP=='+upsertAMP+'==amount=='+amount+'\n'); 
-                        upsertAMP.Name = upsertAMP.SAP_Province__c+ ' 鐪佺洰鏍�';
-                        upsertAMP.StageName = '鐩';
-                        upsertAMP.OwnerId = userid;
-                        upsertAMP.Owner_System__c = userid;
-                        upsertAMP.Opportunity_Category__c = key_ksfl;
-                        upsertAMP.Proportion__c = proportion.get(key_ksfl)[i];
-                        upsertAMP.CloseDate = targetDay;
-                        upsertAMP.Amount = amount;
-                        upsertAMP.Target_category__c = target_category;
-                        upsertAMP.SAP_Province__c = upsertAMP.SAP_Province__c;
-                        upsertAMP.RecordTypeId = rt.Id;
-                        upsertAMP.Target_Source__c = 'SetProvinceTarget';
-                        //20210225 ljh WLIG-BV8CHF update  璐㈠勾 start
-                        //upsertAMP.OCM_Target_period__c = currentPeriod;
-                        upsertAMP.OCM_Target_period__c = currentPeriodOld;
-                        //20210225 ljh WLIG-BV8CHF update  璐㈠勾 start
-                        upsertAMPList.add(upsertAMP);
-                        //鏇存柊
+                    if(amount != upsertPGSI.Amount__c){
+                        upsertPGSI.Amount__c = amount;
+                        upsertPGSI.Owner_System__c = userId;
+                        upsertPGSI.Is_Processing__c = true;
+                        upsertPGSIList.add(upsertPGSI);
                     }
-                    
                 } else {
-                    //鍒犻櫎
-                    system.debug('闇�瑕佸垹闄ゅ緱鏁版嵁'+'==key=='+key+'_' + sTargetDay+'==amount=='+amount+'\n'); 
-                    deleteAMPList.add(upsertAMP);
+                    //涓嶇敤鍒犻櫎浜嗭紝鍏佽 鏁版嵁鏄┖鐨勫瓨鍦�
+                    upsertPGSI.Amount__c = null;
+                    upsertPGSI.Is_Processing__c = true;
+                    upsertPGSI.Owner_System__c = userId;
+                    upsertPGSIList.add(upsertPGSI);
                 }
             } else {
-                system.debug('鏃犳暟鎹�'+'==key=='+key+'_' + sTargetDay+'==amount=='+amount+'\n'); 
                 if (amount > 0) {
-                    upsertAMP.Name = key_shengfen + ' 鐪佺洰鏍�';
-                    upsertAMP.StageName = '鐩';
-                    upsertAMP.OwnerId = userid;
-                    upsertAMP.Owner_System__c = userid;
-                    upsertAMP.Opportunity_Category__c = key_ksfl;
-                    upsertAMP.Proportion__c = proportion.get(key_ksfl)[i];
-                    upsertAMP.CloseDate = targetDay;
-                    upsertAMP.Amount = amount;
-                    upsertAMP.Target_category__c = target_category;
-                    upsertAMP.SAP_Province__c = key_shengfen;
-                    upsertAMP.RecordTypeId = rt.Id;
-                    upsertAMP.Target_Source__c = 'SetProvinceTarget';
-                    //20210225 ljh WLIG-BV8CHF update  璐㈠勾 start
-                    //upsertAMP.OCM_Target_period__c = currentPeriod;
-                    upsertAMP.OCM_Target_period__c = currentPeriodOld;
-                    //20210225 ljh WLIG-BV8CHF update  璐㈠勾 start
-                    upsertAMPList.add(upsertAMP);
-                    system.debug('=upsertAMPList=='+upsertAMPList+'\n'); 
+                    upsertPGSI.Amount__c = amount;
+                    upsertPGSI.key__c = key;
+                    upsertPGSI.Owner_System__c = userId;
+                    upsertPGSI.SAP_Province__c = csvRecordData[1];
+                    upsertPGSI.Department__c = csvRecordData[0];
+                    upsertPGSI.iYear__c = iYear;
+                    upsertPGSI.Is_Processing__c = true;
+                    upsertPGSI.Target_Source__c = 'SetProvinceTarget';
+                    upsertPGSIList.add(upsertPGSI);
                 } else {
-                    system.debug('鏃犳晥寰楁暟鎹�');
-                   // deleteAMPList.add(upsertAMP);
+                    //鍏佽 鏁版嵁鏄┖鐨勫瓨鍦�
+                    upsertPGSI.Amount__c = null;
+                    upsertPGSI.key__c = key;
+                    upsertPGSI.Owner_System__c = userId;
+                    upsertPGSI.SAP_Province__c = csvRecordData[1];
+                    upsertPGSI.Department__c = csvRecordData[0];
+                    upsertPGSI.iYear__c = iYear;
+                    upsertPGSI.Is_Processing__c = true;
+                    upsertPGSI.Target_Source__c = 'SetProvinceTarget';
+                    upsertPGSIList.add(upsertPGSI);
                 }
             }
-            
-        }
-
     }
     private List<User> getUserList(List<String> UserInfoList) {//鏍规嵁涓婁紶鏂囦欢涓緱鏈儴锛岀渷浠斤紝鎷呭綋锛岃亴浣� 寰楀埌浜唘ser 淇℃伅
         String soql = 'select Id,Alias from User where IsActive = true'
@@ -518,7 +642,7 @@
         System.debug('==soql==' + soql);
         return Database.query(soql);
     }
-     private void getOppprtunity_List(Set<String> sfs) {// 鍙栧緱褰撳墠骞村害鐩爣鏁版嵁
+     /*private void getOppprtunity_List(Set<String> sfs) {// 鍙栧緱褰撳墠骞村害鐩爣鏁版嵁
         oppsMap1 = new Map<String, Opportunity>();
         Opportunity[] opportunitys = [select
                         Id, OwnerId, Opportunity_Category__c, Proportion__c, CloseDate,
@@ -540,7 +664,7 @@
                 oppsMap1.put(key, opp);
             }
         }
-    }
+    }*/
    //CHAN-BDQBLX  20210129 you end 
     // 鐐瑰嚮淇濆瓨鎸夐挳
     public Pagereference saveBtn() {
@@ -562,6 +686,11 @@
     
     // 鏁版嵁璧嬪��
     private void setBean(Integer year) {
+        if(JianDangfalg){
+            //DB202305277681 fy 20230517 start
+            amountCategory = new String[] {'GDP','GI','ET','BF','GS','URO','GYN','ENT','ENG1','ENG2'};
+            //DB202305277681 fy 20230517 end
+        }
         // 鍙栧緱褰撳墠骞村害鐩爣鏁版嵁
         Opportunity[] opportunitys = [select
                         Id, OwnerId, Opportunity_Category__c, Proportion__c, CloseDate,
@@ -589,7 +718,7 @@
             //20210225 ljh WLIG-BV8CHF update  璐㈠勾 end
             isPast = false;
             if (iYear < currentYear) {
-                isPast = true;
+                isPast = true; 
             } else if (iYear == currentYear) {
                 if (Date.today().month() == 3) {
                     isPast = true;
@@ -607,12 +736,24 @@
                 oppsMap.put(key, opp);
             }
         }
+        getProvincial_Goal_Setting_InputMap();
         dataBeans = new List<DataBean>();
         List<String> provinces = salesDptMap.get(salesDpt);
         for (String pro : provinces) {
             DataBean dataBean = new DataBean(provinceMap.get(pro), pro, oppsMap, iYear);
+            // 2020/12/28 涓庢棦鏈変腑闂磋〃鏁版嵁杩涜瀵规瘮 fy by ld start
+            for (Integer j = 0; j < amountCategory.size(); j++) {
+                String key = dataBean.Opportunity.SAP_Province__c + '_' + amountCategory[j];
+                if (Provincial_Goal_Setting_InputMap.containsKey(key)){
+                    Provincial_Goal_Setting_Input__c Provincial_Goal_Setting_Input = Provincial_Goal_Setting_InputMap.get(key);
+                    dataBean.opportunity.Owner_System__c = Provincial_Goal_Setting_Input.Owner_System__c;
+                    dataBean.amount[j].Amount = Provincial_Goal_Setting_Input.Amount__c;
+                }
+            }
+            // 2020/12/28 涓庢棦鏈変腑闂磋〃鏁版嵁杩涜瀵规瘮 fy by ld end
             dataBeans.add(dataBean);
         }
+        system.debug('dataBeans+++='+dataBeans);
     }
     
     //鑾峰彇鏈儴-鐪佸搴斿叧绯�
@@ -637,6 +778,11 @@
         provinceList.add('瀹佸鑷不鍖�');
         provinceList.add('鐢樿們鐪�');
         provinceList.add('鏂扮枂鑷不鍖�');
+        provinceList.add('鍥涘窛鐪�');
+        provinceList.add('閲嶅簡甯�');
+        provinceList.add('浜戝崡鐪�');
+        provinceList.add('璐靛窞鐪�');
+        provinceList.add('瑗胯棌鑷不鍖�');
         provinceList.add('涓婃捣甯�');
         provinceList.add('姹熻嫃鐪�');
         provinceList.add('娴欐睙鐪�');
@@ -649,11 +795,8 @@
         provinceList.add('婀栧寳鐪�');
         provinceList.add('婀栧崡鐪�');
         provinceList.add('娣卞湷甯�');
-        provinceList.add('鍥涘窛鐪�');
-        provinceList.add('閲嶅簡甯�');
-        provinceList.add('浜戝崡鐪�');
-        provinceList.add('璐靛窞鐪�');
-        provinceList.add('瑗胯棌鑷不鍖�');
+        
+        AllOwnerSystem = provinceList;
         salesDptMap.put('0.鏃�',provinceList);
         
         provinceList = new List<String>();
@@ -681,6 +824,18 @@
         provinceList.add('鐢樿們鐪�');
         provinceList.add('鏂扮枂鑷不鍖�');
         salesDptMap.put('3.瑗垮寳',provinceList);
+
+        
+        provinceList = new List<String>();
+        provinceList.add('鍥涘窛鐪�');
+        provinceList.add('閲嶅簡甯�');
+        provinceList.add('浜戝崡鐪�');
+        provinceList.add('璐靛窞鐪�');
+        provinceList.add('瑗胯棌鑷不鍖�');
+    // DB202305259561 fy 20230517 start
+        // salesDptMap.put('6.瑗垮崡',provinceList);
+        salesDptMap.put('4.瑗垮崡',provinceList);
+    // DB202305259561 fy 20230517 end
         
         provinceList = new List<String>();
         provinceList.add('涓婃捣甯�');
@@ -689,7 +844,10 @@
         provinceList.add('绂忓缓鐪�');
         provinceList.add('瀹夊窘鐪�');
         provinceList.add('姹熻タ鐪�');
-        salesDptMap.put('4.鍗庝笢',provinceList);
+    // DB202305259561 fy 20230517 start
+        // salesDptMap.put('4.鍗庝笢',provinceList);
+        salesDptMap.put('5.鍗庝笢',provinceList);
+    // DB202305259561 fy 20230517 end
         
         provinceList = new List<String>();
         provinceList.add('骞夸笢鐪�');
@@ -698,15 +856,11 @@
         provinceList.add('婀栧寳鐪�');
         provinceList.add('婀栧崡鐪�');
         provinceList.add('娣卞湷甯�');
-        salesDptMap.put('5.鍗庡崡',provinceList);
+    // DB202305259561 fy 20230517 start
+        // salesDptMap.put('5.鍗庡崡',provinceList);
+        salesDptMap.put('6.鍗庡崡',provinceList);
+    // DB202305259561 fy 20230517 end
         
-        provinceList = new List<String>();
-        provinceList.add('鍥涘窛鐪�');
-        provinceList.add('閲嶅簡甯�');
-        provinceList.add('浜戝崡鐪�');
-        provinceList.add('璐靛窞鐪�');
-        provinceList.add('瑗胯棌鑷不鍖�');
-        salesDptMap.put('6.瑗垮崡',provinceList);
         
         provinceMap = new Map<string,string>();
         
@@ -729,26 +883,49 @@
         provinceMap.put('瀹佸鑷不鍖�','3.瑗垮寳');
         provinceMap.put('鐢樿們鐪�','3.瑗垮寳');
         provinceMap.put('鏂扮枂鑷不鍖�','3.瑗垮寳');
+
+    // DB202305259561 fy 20230517 start
+        // provinceMap.put('涓婃捣甯�','4.鍗庝笢');
+        // provinceMap.put('姹熻嫃鐪�','4.鍗庝笢');
+        // provinceMap.put('娴欐睙鐪�','4.鍗庝笢');
+        // provinceMap.put('绂忓缓鐪�','4.鍗庝笢');
+        // provinceMap.put('瀹夊窘鐪�','4.鍗庝笢');
+        // provinceMap.put('姹熻タ鐪�','4.鍗庝笢');
         
-        provinceMap.put('涓婃捣甯�','4.鍗庝笢');
-        provinceMap.put('姹熻嫃鐪�','4.鍗庝笢');
-        provinceMap.put('娴欐睙鐪�','4.鍗庝笢');
-        provinceMap.put('绂忓缓鐪�','4.鍗庝笢');
-        provinceMap.put('瀹夊窘鐪�','4.鍗庝笢');
-        provinceMap.put('姹熻タ鐪�','4.鍗庝笢');
+        // provinceMap.put('骞夸笢鐪�','5.鍗庡崡');
+        // provinceMap.put('骞胯タ鑷不鍖�','5.鍗庡崡');
+        // provinceMap.put('娴峰崡鐪�','5.鍗庡崡');
+        // provinceMap.put('婀栧寳鐪�','5.鍗庡崡');
+        // provinceMap.put('婀栧崡鐪�','5.鍗庡崡');
+        // provinceMap.put('娣卞湷甯�','5.鍗庡崡');
         
-        provinceMap.put('骞夸笢鐪�','5.鍗庡崡');
-        provinceMap.put('骞胯タ鑷不鍖�','5.鍗庡崡');
-        provinceMap.put('娴峰崡鐪�','5.鍗庡崡');
-        provinceMap.put('婀栧寳鐪�','5.鍗庡崡');
-        provinceMap.put('婀栧崡鐪�','5.鍗庡崡');
-        provinceMap.put('娣卞湷甯�','5.鍗庡崡');
+        // provinceMap.put('鍥涘窛鐪�','6.瑗垮崡');
+        // provinceMap.put('閲嶅簡甯�','6.瑗垮崡');
+        // provinceMap.put('浜戝崡鐪�','6.瑗垮崡');
+        // provinceMap.put('璐靛窞鐪�','6.瑗垮崡');
+        // provinceMap.put('瑗胯棌鑷不鍖�','6.瑗垮崡');
+
+        provinceMap.put('鍥涘窛鐪�','4.瑗垮崡');
+        provinceMap.put('閲嶅簡甯�','4.瑗垮崡');
+        provinceMap.put('浜戝崡鐪�','4.瑗垮崡');
+        provinceMap.put('璐靛窞鐪�','4.瑗垮崡');
+        provinceMap.put('瑗胯棌鑷不鍖�','4.瑗垮崡');
+
+        provinceMap.put('涓婃捣甯�','5.鍗庝笢');
+        provinceMap.put('姹熻嫃鐪�','5.鍗庝笢');
+        provinceMap.put('娴欐睙鐪�','5.鍗庝笢');
+        provinceMap.put('绂忓缓鐪�','5.鍗庝笢');
+        provinceMap.put('瀹夊窘鐪�','5.鍗庝笢');
+        provinceMap.put('姹熻タ鐪�','5.鍗庝笢');
         
-        provinceMap.put('鍥涘窛鐪�','6.瑗垮崡');
-        provinceMap.put('閲嶅簡甯�','6.瑗垮崡');
-        provinceMap.put('浜戝崡鐪�','6.瑗垮崡');
-        provinceMap.put('璐靛窞鐪�','6.瑗垮崡');
-        provinceMap.put('瑗胯棌鑷不鍖�','6.瑗垮崡');
+        provinceMap.put('骞夸笢鐪�','6.鍗庡崡');
+        provinceMap.put('骞胯タ鑷不鍖�','6.鍗庡崡');
+        provinceMap.put('娴峰崡鐪�','6.鍗庡崡');
+        provinceMap.put('婀栧寳鐪�','6.鍗庡崡');
+        provinceMap.put('婀栧崡鐪�','6.鍗庡崡');
+        provinceMap.put('娣卞湷甯�','6.鍗庡崡');
+        
+    // DB202305259561 fy 20230517 end
     }
     
     // 鏄惁鍒犻櫎鏁磋鏁版嵁
@@ -783,7 +960,7 @@
     }
     
     // 瀹熼殯銇繚瀛樸儹銈搞儍銈�
-    private void saveLogic() {
+/*private void saveLogic() {
         List<Opportunity> saveList = new List<Opportunity>();
         List<Opportunity> deleteList = new List<Opportunity>();
         
@@ -828,13 +1005,13 @@
                 continue;
             }
             User u = new User();
-/*************************Update 20160413 Start*************************/
-            if (db.opportunity.Owner_System__c == null) {
+            //Update 20160413 Start/
+           if (db.opportunity.Owner_System__c == null) {
                 if (isDelete(db) == false) {
                     continue;
                 }
             }
-/*************************Update 20160413 End***************************/
+            //Update 20160413 End/
             // 涓�骞村垎鎴�12鏉℃暟鎹�
             for (Integer i = 0; i < 12; i++) {
                 Integer y = iYear;
@@ -864,10 +1041,10 @@
                             deleteList.add(opp);
                             continue;
                         }
-/*************************Update 20160531 Start*************************/
-                        opp.OwnerId = db.opportunity.Owner_System__c;
+                    //Update 20160531 Start/
+                       opp.OwnerId = db.opportunity.Owner_System__c;
                         opp.Owner_System__c = db.opportunity.Owner_System__c;
-/*************************Update 20160531 End***************************/
+                    //Update 20160531 End/
                         opp.Proportion__c = proportion.get(amountC)[i];
                         opp.Amount = db.amount[j].Amount;
                     } else {
@@ -876,11 +1053,11 @@
                         }
                         opp.Name = db.opportunity.SAP_Province__c + ' 鐪佺洰鏍�';
                         opp.StageName = '鐩';
-/*************************Update 20160531 Start*************************/
+                    //Update 20160531 Start/
                         opp.OwnerId = db.opportunity.Owner_System__c;
                         //銉堛儶銈倰銈广儷銉笺伄銇熴倎銆併亾銇撱仹銈勩倞銇俱仚
                         opp.Owner_System__c = db.opportunity.Owner_System__c;
-/*************************Update 20160531 End***************************/
+                    //Update 20160531 End/
                         opp.Opportunity_Category__c = amountC;
                         opp.Proportion__c = proportion.get(amountC)[i];
                         opp.CloseDate = targetDay;
@@ -912,8 +1089,175 @@
         // 鏇存柊鏁版嵁搴�
         if (saveList.size() > 0) upsert saveList;
         if (deleteList.size() > 0) delete deleteList;
+    }*/
+
+    //鍙嶆槧鍒扮洰鏍� fy 2021/12/28 SWAG-C9YDDE 
+    //鏌ヨOCSM绠$悊鐪� fy
+    private void getOCMManagementProvince(){
+        OCM_MpMap = new Map<String, OCM_Management_Province__c>();
+        List<OCM_Management_Province__c> OCM_MpList = [select Id,Province__c,GI_assistant__c,SP_assistant__c,Name from OCM_Management_Province__c where Province__c in :AllOwnerSystem ];
+        for ( OCM_Management_Province__c OCM_Mp : OCM_MpList ) {
+            //杩囨护鎺変笉绗﹀悎鏉′欢鐨勬暟鎹� fy
+            // 20230329 ljh start
+            // if(OCM_Mp.Name!='闆嗛噰璇�'&&OCM_Mp.Name!='闈掑矝'){
+            if(OCM_Mp.Name!='闆嗛噰璇�'){
+            // 20230329 ljh end
+                OCM_MpMap.put(OCM_Mp.Province__c, OCM_Mp);
+            }
+        }
     }
+    public Pagereference UpdateBtn() {
+        system.debug('=====UpdateBtn-1');
+        boolean rs = saveLogic();
+        setBean(iYear);
+        system.debug('rs+++'+rs);
+        Database.executeBatch(new SetProvinceTargetBatch(), 10);
+        if (rs) {
+            ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.INFO, '鍙嶆槧鍒扮洰鏍囨垚鍔�'));
+        }
+        return null;
+    }
+    private void getProvincial_Goal_Setting_Input(Set<String> sfs) {//鏍规嵁鐪佷唤骞翠唤锛岃幏鍙栧綋鍓嶇郴缁熶腑宸茬粡瀛樺湪寰楁暟鎹�
+        Provincial_Goal_Setting_InputMap1 = new Map<String, Provincial_Goal_Setting_Input__c>();
+
+        list<Provincial_Goal_Setting_Input__c> Existed_Provincial_Goal_Setting_Input = [select id,Is_Processing__c, key__c,Target_Source__c,Amount__c,Department__c,SAP_Province__c,Owner_System__c,iYear__c
+                                                                                FROM Provincial_Goal_Setting_Input__c where iYear__c = : iYear and SAP_Province__c in :sfs];
     
+        for ( Provincial_Goal_Setting_Input__c Provincial_Goal_Setting_Input : Existed_Provincial_Goal_Setting_Input ) {
+            if (String.isBlank(Provincial_Goal_Setting_Input.key__c)) {
+                continue;
+            }
+
+            Provincial_Goal_Setting_InputMap1.put(Provincial_Goal_Setting_Input.key__c, Provincial_Goal_Setting_Input);
+
+        }
+    }
+    // 2021/12/28 浠庝腑闂磋〃鑾峰彇鏃㈡湁鏁版嵁 fy
+    private boolean getProvincial_Goal_Setting_InputMap() {
+        Provincial_Goal_Setting_InputMap = new Map<String,Provincial_Goal_Setting_Input__c>();
+
+        Existed_Provincial_Goal_Setting_Input = [select id,Is_Processing__c, key__c,Target_Source__c,Amount__c,Department__c,SAP_Province__c,Owner_System__c,iYear__c
+                                                                FROM Provincial_Goal_Setting_Input__c where iYear__c = : iYear ];
+        
+        if (Existed_Provincial_Goal_Setting_Input.size() <= 0) {
+            return false;
+        }
+
+        // 灏嗘墍鏁版嵁瀛樺叆map涓�
+        for ( Provincial_Goal_Setting_Input__c Provincial_Goal_Setting_Input : Existed_Provincial_Goal_Setting_Input ){
+            if (String.isBlank(Provincial_Goal_Setting_Input.key__c)) {
+                continue;
+            }
+            Provincial_Goal_Setting_InputMap.put(Provincial_Goal_Setting_Input.key__c,Provincial_Goal_Setting_Input);
+        }
+
+        return true;
+    }
+    //淇濆瓨閫昏緫 fy 2021/12/28 SWAG-C9YDDE 
+    private Boolean saveLogic() {
+        List<Opportunity> saveList = new List<Opportunity>();
+        List<Opportunity> deleteList = new List<Opportunity>();
+        //fy 淇敼 20220412
+        system.debug('JianDangfalg+++'+JianDangfalg);
+        if(JianDangfalg){
+            //DB202305277681 fy 20230517 start
+            // amountCategory = new String[] {'GDP','GI','ET','BF','GS','URO','GYN','ENT','ENG'};
+            amountCategory = new String[] {'GDP','GI','ET','BF','GS','URO','GYN','ENT','ENG1','ENG2'};
+            //DB202305277681 fy 20230517 end
+        }
+        //fy 淇敼 20220412
+        Savepoint sp = Database.setSavepoint();
+        try {
+            List<Provincial_Goal_Setting_Input__c> InsertProvincial_Goal_Setting_Input = new list<Provincial_Goal_Setting_Input__c>();
+            List<Provincial_Goal_Setting_Input__c> UpdateProvincial_Goal_Setting_Input = new list<Provincial_Goal_Setting_Input__c>();
+            // 鍙鐞嗗綋鍓嶆湰閮ㄦ暟鎹�
+            //鏌ヨOCSM绠$悊鐪� fy
+            getOCMManagementProvince();
+            system.debug('OCM_MpList+++'+OCM_MpMap);
+            for (Integer d = 0; d < dataBeans.size(); d++){
+                DataBean db = dataBeans[d];
+                system.debug('db+++++++ ' + db);
+                system.debug('amountCategory+++++++ ' + amountCategory);
+                system.debug('Provincial_Goal_Setting_InputMap+++++++ ' + Provincial_Goal_Setting_InputMap);
+                // if(String.isBlank(db.Opportunity.Owner_System__c))continue;
+                for (Integer j = 0; j < amountCategory.size(); j++) {
+                    // 鏁版嵁妫�绱ey
+                    String key = db.Opportunity.SAP_Province__c + '_' + amountCategory[j];
+                    system.debug('++++++++1+++++++ '+Provincial_Goal_Setting_InputMap.containsKey(key));
+                    if(Provincial_Goal_Setting_InputMap.containsKey(key)) {
+                        system.debug('++++++++2+++++++ ');
+                        //涓存椂琛ㄥ凡缁忔湁浜�
+                        Provincial_Goal_Setting_Input__c Provincial_Goal_Setting_Input = Provincial_Goal_Setting_InputMap.get(key);
+                        if(Provincial_Goal_Setting_Input.Amount__c == db.amount[j].Amount) {
+                            continue;
+                        }else {
+                            system.debug('++++++++5+++++++ '+OCM_MpMap.get('灞变笢鐪�'));
+                            // system.debug('++++++++x+++++++ '+db.Opportunity.SAP_Province__c);
+                            Provincial_Goal_Setting_Input.Amount__c = db.amount[j].Amount;
+                            Provincial_Goal_Setting_Input.Department__c = db.department;
+                            Provincial_Goal_Setting_Input.SAP_Province__c = db.Opportunity.SAP_Province__c;
+                            String OWS='';
+                            if(OCM_MpMap.containsKey(db.Opportunity.SAP_Province__c)){
+                                if(CIfromass.contains(amountCategory[j])){
+                                    OWS=OCM_MpMap.get(db.Opportunity.SAP_Province__c).GI_assistant__c;
+                                }else if(SPfromass.contains(amountCategory[j])){
+                                    OWS=OCM_MpMap.get(db.Opportunity.SAP_Province__c).SP_assistant__c;
+                                }
+                            }else{
+                                continue;
+                            }
+                            Provincial_Goal_Setting_Input.Owner_System__c = OWS;
+                            Provincial_Goal_Setting_Input.iYear__c = iYear;
+                            Provincial_Goal_Setting_Input.Is_Processing__c = true;
+                            Provincial_Goal_Setting_Input.Target_Source__c = 'SetProvinceTarget';
+                            UpdateProvincial_Goal_Setting_Input.add(Provincial_Goal_Setting_Input);
+                        }
+                    }else {
+                        system.debug('++++++++3+++++++ '+db.amount[j]);
+                        system.debug('++++++++4+++++++ '+db.amount[j].Amount);
+                        if (db.amount[j].Amount == null || db.amount[j].Amount == 0) {
+                            continue;
+                        }
+                        Provincial_Goal_Setting_Input__c Provincial_Goal_Setting_Input = new Provincial_Goal_Setting_Input__c();
+                        Provincial_Goal_Setting_Input.key__c = key;
+                        Provincial_Goal_Setting_Input.Amount__c = db.amount[j].Amount;
+                        Provincial_Goal_Setting_Input.Department__c = db.department;
+                        Provincial_Goal_Setting_Input.SAP_Province__c = db.Opportunity.SAP_Province__c;
+                        String OWS='';
+                        if(OCM_MpMap.containsKey(db.Opportunity.SAP_Province__c)){
+                            if(CIfromass.contains(amountCategory[j])){
+                                OWS=OCM_MpMap.get(db.Opportunity.SAP_Province__c).GI_assistant__c;
+                            }else if(SPfromass.contains(amountCategory[j])){
+                                OWS=OCM_MpMap.get(db.Opportunity.SAP_Province__c).SP_assistant__c;
+                            }
+                        }else{
+                            continue;
+                        }
+                        system.debug('++++++++9+++++++ '+OCM_MpMap.get(db.Opportunity.SAP_Province__c));
+                        Provincial_Goal_Setting_Input.Owner_System__c = OWS;
+                        Provincial_Goal_Setting_Input.iYear__c = iYear;
+                        Provincial_Goal_Setting_Input.Is_Processing__c = true;
+                        Provincial_Goal_Setting_Input.Target_Source__c = 'SetProvinceTarget';
+                        InsertProvincial_Goal_Setting_Input.add(Provincial_Goal_Setting_Input);
+                        system.debug('db.amount[j].Amount__c+++++++ ' + db.amount[j].Amount__c);
+                    }
+                }
+            }
+            system.debug('InsertProvincial_Goal_Setting_Input+++++++ ' + InsertProvincial_Goal_Setting_Input);
+            if(InsertProvincial_Goal_Setting_Input.size() > 0) {
+                insert InsertProvincial_Goal_Setting_Input;
+            }
+            if(UpdateProvincial_Goal_Setting_Input.size() > 0) {
+                update UpdateProvincial_Goal_Setting_Input;
+            }
+            return true;
+        } catch (Exception e) {
+            system.debug('=====saveLogic-e' + e.getMessage());
+            Database.rollback(sp);
+            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, e.getLineNumber() + ':' + e.getMessage()));
+            return false;
+        }
+    }
     // 鏁版嵁绫�
     class DataBean {
         // 鎷呭綋鑰呬俊鎭�
@@ -929,12 +1273,33 @@
         //CHAN-BDQBLX  20210129 you end 
         // 鏋勯�犳柟娉�
         DataBean(String salesDpt, String province, Map<String, Opportunity> oppMap, Integer iYear) {
+            boolean JianDangfalg = false;
             this.opportunity = new Opportunity();
             this.amount = new List<Opportunity>();
             this.opportunity.SAP_Province__c = province;
             this.department = salesDpt;
             this.isChanged = '0';
-
+            //fy 20220418
+            String userProfileId = UserInfo.getProfileId();
+            if(!String.isBlank(userProfileId)){
+                userProfileId=userProfileId.substring(0,15);
+            }
+            System.debug('褰撳墠鐢ㄦ埛绠�妗f埅鍙�:  '+userProfileId);
+            List<String> user6IdList = System.Label.s6_ID.split(',');
+            for(String user6id : user6IdList){
+                if(user6id==userProfileId){
+                // if(user6id=='00e10000000xnpR'){
+                    JianDangfalg=true;
+                    break;
+                }
+            }
+            if(JianDangfalg){
+                //DB202305277681 fy 20230517 start
+                // amountCategory = new String[] {'GDP','GI','ET','BF','GS','URO','GYN','ENT','ENG'};
+                amountCategory = new String[] {'GDP','GI','ET','BF','GS','URO','GYN','ENT','ENG1','ENG2'};
+                //DB202305277681 fy 20230517 end
+            }
+            //fy 20220418
             // 鎸夐噾棰濆垎绫伙紝鏌ユ壘鏁版嵁锛屽苟璁惧��
             for (Integer i = 0; i < amountCategory.size(); i++) {
                 String amountC = amountCategory[i];

--
Gitblit v1.9.1