高章伟
2023-03-02 e3c02c03dd2de442bbced87236f60a13a1cd154e
force-app/main/default/classes/ConsumEquipmentSetReturnController.cls
@@ -8,10 +8,10 @@
    public FixtureDeliverySlip__c slip { get; set; }
    public String keepWher { get; set; }
    public String keyword { get; set; }
    public String keywordDate { get; set; }
    public transient String keywordDate { get; set; }
    public Boolean saveBtnDisabled { get; private set; }
    public String userid {get;set;}
    public Map<Id, Consum_Apply_Equipment_Set_Detail__c> caesdVFMap { get; private set; }
    public  Map<Id, Consum_Apply_Equipment_Set_Detail__c> caesdVFMap { get; private set; } //transient
    private List<Consum_Apply_Equipment_Set_Detail__c> useCaesdList;
    public ConsumEquipmentSetReturnController() {
@@ -25,8 +25,8 @@
    public override Integer getSearchNumMax() {
        //各ページに制御あれば、最大件数を指定する
        // searchNumMax = Integer.valueOf(Label.Product_Select_Limit);
        // searchNumMax = 20;
        pagesize = '200';
        searchNumMax = 370;
        pagesize = '20';
        return searchNumMax;
    }
@@ -40,7 +40,7 @@
        selectedDataSql += ')';
        selectedDataSql += '   and Shippment_loaner_time2__c != null';
        selectedDataSql += ' AND (Cancel_Select__c = false OR NG_Select_Again__c = true)';
        selectedDataSql += ' order by Fixture_Model_No_F__c nulls last, Consumable_Guaranteen_end_F__c nulls last';
        selectedDataSql += ' order by Fixture_Model_No_F__c nulls last, Consumable_Guaranteen_end_F__c nulls last, name';
        keepWher = selectedDataSql;
        myComponentController.columnRightRW.put('Yi_Fa_Huo_Jia__c', 'r');
        myComponentController.columnRightRW.put('Dao_Huo_OK_Jia__c', 'r');
@@ -97,6 +97,9 @@
                              , 'Return_DeliverySlip__c'
                              , 'Fixture_Model_No__c'
                              , 'SerialNumber_F__c'
                              , 'ManagementCode__c'
                              , 'EquipmentManagementCode__c' //add by yc 20220217
                              , 'EquipmentManagementCode_OldData__c' //add by yc 20220217
                              , 'Shipment_request_time2__c', 'Consum_Apply_Equipment_Set__r.Yi_Shipment_request__c'};
    }
    // getObjName 连 getOriginObjName 的 FK
@@ -119,7 +122,7 @@
    }
    public override String getOrderbyStr() {
        return 'order by Fixture_Model_No_F__c nulls last, Consumable_Guaranteen_end_F__c nulls last';
        return 'order by Fixture_Model_No_F__c nulls last, Consumable_Guaranteen_end_F__c nulls last, name';
    }
    public override Boolean getIsNeedRunSearch() {
@@ -209,10 +212,18 @@
                return null;
            }
            Integer cnt = caesd.Hui_Ji_Jia__c == null ? 0 : Integer.valueOf(caesd.Hui_Ji_Jia__c);
            String asscodeX = caesd.Asset__c + caesd.EquipmentManagementCode__c + caesd.ManagementCode__c;
            //add by yc 20220217 处理老数据开的口 start
            if (String.isEmpty(caesd.EquipmentManagementCode__c)) {
                   asscodeX = caesd.Asset__c + caesd.EquipmentManagementCode_OldData__c + caesd.ManagementCode__c;
            }
            //add by yc 20220217 处理老数据开的口 end
            //要发货件数
            if(caesd.Return_DeliverySlip__c == null) {
                sendAssetKey.put(caesd.Asset__c, cnt);
                //20211115 耗材追溯 yc 方法中所有得 caesd.Asset__c-->caesd.Id  因为此时的数据是clone没有id的所以用asset加上备品管理码做key
                sendAssetKey.put(asscodeX, cnt);
            }
            System.debug('zheli0'+caesd+'==='+caesd.Asset__c);
        }
@@ -224,21 +235,32 @@
            if(caesd.Return_DeliverySlip__c != null) {
                continue;
            }
            if (sendAssetKey.containsKey(caesd.Asset__c)) {
                Integer cnt = sendAssetKey.get(caesd.Asset__c);
             //20211115 耗材追溯 yc 定义key
            String asscodeX1 = caesd.Asset__c + caesd.EquipmentManagementCode__c + caesd.ManagementCode__c;
            //add by yc 20220217 处理老数据开的口 start
            if (String.isEmpty(caesd.EquipmentManagementCode__c)) {
                asscodeX1 = caesd.Asset__c + caesd.EquipmentManagementCode_OldData__c + caesd.ManagementCode__c;
            }
            //add by yc 20220217 处理老数据开的口 end
            System.debug('zheli1'+sendAssetKey);
            if (sendAssetKey.containsKey(asscodeX1)) {
                Integer cnt = sendAssetKey.get(asscodeX1);
                System.debug('zheli2'+cnt+'');
                if (caesd.Received_Confirm__c == 'OK' || caesd.Received_Confirm__c == '默认签收-OK') {
                    // 需要寄回的明细
                    if(cnt > 0) {
                        cnt -= 1;
                        sendAssetKey.put(caesd.Asset__c, cnt);
                        sendAssetKey.put(asscodeX1, cnt);
                        sendbackList.add(caesd);
                        caesdVFMap.get(caesd.Asset__c).Dai_Xiao_Hao_Jia__c = caesdVFMap.get(caesd.Asset__c).Dao_Huo_OK_Jia__c
                                                                           + caesdVFMap.get(caesd.Asset__c).Dao_Huo_NG_Jia__c
                                                                           - caesdVFMap.get(caesd.Asset__c).Yi_Xiao_Hao_Jia__c
                                                                           - caesdVFMap.get(caesd.Asset__c).Hui_Ji_Jia__c;
                        //20211115 耗材追溯 yc 方法中所有得 caesd.Asset__c-->caesd.Id
                        caesdVFMap.get(caesd.Id).Dai_Xiao_Hao_Jia__c = caesdVFMap.get(caesd.Id).Dao_Huo_OK_Jia__c
                                                                           + caesdVFMap.get(caesd.Id).Dao_Huo_NG_Jia__c
                                                                           - caesdVFMap.get(caesd.Id).Yi_Xiao_Hao_Jia__c
                                                                           - caesdVFMap.get(caesd.Id).Hui_Ji_Jia__c;
                    }
                    // 不需要寄回的明细,变成待消耗
                    else {
                        System.debug('zheli3'+cnt+'');
                        caesd.Check_lost_Item__c = '消耗';
                        // 待消耗操作人和时间在trigger里改
                        updList.add(caesd);
@@ -247,6 +269,7 @@
            }
            // 待消耗数为0 <=> 画面上不显示 => 直接待消耗
            else {
                System.debug('zheli4');
                caesd.Check_lost_Item__c = '消耗';
                // 待消耗操作人和时间在trigger里改
                updList.add(caesd);
@@ -316,18 +339,23 @@
        else {
            useCaesdList = (List<Consum_Apply_Equipment_Set_Detail__c>)selectedData;
        }
        system.debug(queryList+'zheli123'+useCaesdList);
        // asset.Id-->连到asset上的明细列表
        Map<Id, List<Consum_Apply_Equipment_Set_Detail__c>> caesdMap = new Map<Id, List<Consum_Apply_Equipment_Set_Detail__c>>();
        // asset.Id-->用于画面显示的假明细
        caesdVFMap = new Map<Id, Consum_Apply_Equipment_Set_Detail__c>();
        Integer i = 0;
        //20211018 耗材追溯 yc 方法中所有得 caesd.Asset__c-->caesd.Id  因为“已发货件数”不用累计了,需要展开
        for (Consum_Apply_Equipment_Set_Detail__c caesd : useCaesdList) {
            if (!caesdMap.containsKey(caesd.Asset__c)) {
                caesdMap.put(caesd.Asset__c, new List<Consum_Apply_Equipment_Set_Detail__c>());
            if (!caesdMap.containsKey(caesd.Id)) {
                caesdMap.put(caesd.Id, new List<Consum_Apply_Equipment_Set_Detail__c>());
            }
            caesdMap.get(caesd.Asset__c).add(caesd);
            caesdMap.get(caesd.Id).add(caesd);
            system.debug(caesdMap+'zheli5'+caesd.Id);
            if(!caesdVFMap.containsKey(caesd.Asset__c)){
            if (i == getSearchNumMax()) { break; }
            i++;
            if(!caesdVFMap.containsKey(caesd.Id)){
                Consum_Apply_Equipment_Set_Detail__c caesdVF = caesd.clone();
                caesdVF.Received_Confirm__c = null;
                caesdVF.Asset_Center_Confirm__c = null;
@@ -352,12 +380,13 @@
                caesdVF.Hui_Ji_Jia__c = 0;
                // 待消耗件数
                caesdVF.Dai_Xiao_Hao_Jia__c = 0;
                caesdVFMap.put(caesd.Asset__c, caesdVF);
                caesdVFMap.put(caesd.Id, caesdVF);
            }
            Consum_Apply_Equipment_Set_Detail__c caesdVF = caesdVFMap.get(caesd.Asset__c);
            Consum_Apply_Equipment_Set_Detail__c caesdVF = caesdVFMap.get(caesd.Id);
            if(caesdVF.Return_DeliverySlip__c == null && caesd.Return_DeliverySlip__c!=null) {
                caesdVF.Return_DeliverySlip__c = caesd.Return_DeliverySlip__c;
            }
            system.debug('zheli6'+caesd.Return_DeliverySlip__c);
            if(caesdVF.Check_lost_Item__c == null
               && (caesd.Check_lost_Item__c == '消耗' && String.isBlank(caesd.Check_lost_Item_Final__c))
               ) {
@@ -376,10 +405,13 @@
        }
        for(Consum_Apply_Equipment_Set_Detail__c caesdVF : caesdVFMap.values()){
            system.debug('zheli7'+caesdVF);
            system.debug('zheli8'+caesdVF.Dai_Xiao_Hao_Jia__c+'====='+caesdVF.Return_DeliverySlip__c);
            if(caesdVF.Dai_Xiao_Hao_Jia__c == 0 && caesdVF.Return_DeliverySlip__c == null) {
                continue;
            }
            WrapperInfo winfo = new WrapperInfo(caesdVF, myComponentController);
            system.debug('zheli9'+winfo);
            if (caesdVF.Return_DeliverySlip__c != null 
                || caesdVF.Check_lost_Item__c == '消耗'
            ) {