From 744f42c5496e656a1f9927740a3b37c0b97a6cba Mon Sep 17 00:00:00 2001
From: buli <137736985@qq.com>
Date: 星期五, 14 七月 2023 14:34:12 +0800
Subject: [PATCH] lexcommunityupload0714

---
 force-app/main/default/classes/LexOverdueStockController.cls |  819 +++++++++++++++++++++++++++-------------------------------
 1 files changed, 384 insertions(+), 435 deletions(-)

diff --git a/force-app/main/default/classes/LexOverdueStockController.cls b/force-app/main/default/classes/LexOverdueStockController.cls
index b53796f..05fe5c6 100644
--- a/force-app/main/default/classes/LexOverdueStockController.cls
+++ b/force-app/main/default/classes/LexOverdueStockController.cls
@@ -1,458 +1,407 @@
 public with sharing class LexOverdueStockController {
-  /*****************妞滅储鐢�******************/
-  public static String barcode { get; set; }
+    /*****************妞滅储鐢�******************/
+    public static String barcode { get; set; }
 
-  // 杩囨湡鍜岄攢瀛�,鐢婚潰鏄剧ず鐢�
-  public static List<orderBean> codPageRecords { get; set; }
+    // 杩囨湡鍜岄攢瀛�,鐢婚潰鏄剧ず鐢�
+    public static List<orderBean> codPageRecords { get; set; }
 
-  // 杩囨湡鍜岄攢瀛�,鐢婚潰鏄剧ず鐢�
-  public static List<orderBean> overduePageRecords { get; set; }
+    // 杩囨湡鍜岄攢瀛�,鐢婚潰鏄剧ず鐢�
+    public static List<orderBean> overduePageRecords { get; set; }
 
-  // 鐧诲綍鑰呭伐浣滃湴
-  private static String userWorkLocation;
-  //缁忛攢鍟嗙敤鎴蜂骇鍝佸垎绫伙紙ET銆丒NG锛�
-  private static String agencyProType;
-  private static String sqlagencyProType;
-  // 缁忛攢鍟嗕俊鎭�
-  private static Account accountInfo;
+    // 鐧诲綍鑰呭伐浣滃湴
+    private static String userWorkLocation;
+    //缁忛攢鍟嗙敤鎴蜂骇鍝佸垎绫伙紙ET銆丒NG锛�
+    private static String agencyProType;
+    private static String sqlagencyProType;
+    // 缁忛攢鍟嗕俊鎭�
+    private static Account accountInfo;
 
-  //鍒ゆ柇鎿嶄綔浜哄憳鏄惁閿�瀛�
-  public static Boolean iSinventory = false;
+    //鍒ゆ柇鎿嶄綔浜哄憳鏄惁閿�瀛�
+    public static Boolean iSinventory = false;
 
-  public static List<Consumable_order_details2__c> overdueList = new List<Consumable_order_details2__c>();
+    public static List<Consumable_order_details2__c> overdueList = new List<Consumable_order_details2__c>();
 
-  public static Integer pageRecordsSize {
-    get {
-      return codPageRecords == null ? 0 : codPageRecords.size();
-    }
-  }
-
-  public LexOverdueStockController() {
-  }
-
-  // 鐢婚潰鍒濆鍖�
-  @AuraEnabled
-  public static ResponseBodyLWC init() {
-    ResponseBodyLWC res = new ResponseBodyLWC();
-    Map<String, object> data = new Map<String, object>();
-    res.entity = data;
-
-    codPageRecords = new List<orderBean>();
-    overduePageRecords = new List<orderBean>();
-    // 鑾峰彇鐢ㄦ埛鍜岀粡閿�鍟嗕俊鎭�
-    user Useracc = [
-      SELECT Accountid, Work_Location__c, UserPro_Type__c
-      FROM user
-      WHERE id = :UserInfo.getUserId()
-    ];
-    userWorkLocation = Useracc.Work_Location__c;
-    agencyProType = Useracc.UserPro_Type__c;
-    if (String.isBlank(Useracc.UserPro_Type__c)) {
-      agencyProType = 'ET';
-    }
-    sqlagencyProType = '%' + agencyProType + '%';
-    accountInfo = [
-      SELECT id, Name, Dealer_discount__c
-      FROM account
-      WHERE id = :Useracc.accountid
-    ];
-    // 杩囨湡搴撳瓨姹囨�讳俊鎭�
-    List<AggregateResult> orderDetZaiku = [
-      SELECT
-        count(Id) countsum,
-        Consumable_Product__c prodid,
-        Consumable_Product__r.Name_Text__c prodname,
-        Box_Piece__c boxPiece
-      FROM Consumable_order_details2__c
-      WHERE
-        Dealer_Arrive__c = TRUE
-        AND Dealer_Shipment__c = FALSE
-        AND Dealer_Saled__c = FALSE
-        AND Lose_Flag__c = FALSE
-        AND Isoverdue__c = 0
-        AND Dealer_Returned__c = FALSE
-        AND Cancellation_Flag__c = FALSE
-        AND Bar_Code__c != NULL
-        AND Product_Type__c LIKE :sqlagencyProType
-        AND Dealer_Info_text__c = :accountInfo.Name
-        AND Arrive_Owner_Work_Location__c = :userWorkLocation
-      GROUP BY
-        Consumable_Product__c,
-        Box_Piece__c,
-        Consumable_Product__r.Name_Text__c
-    ];
-
-    for (AggregateResult overdue : orderDetZaiku) {
-      codPageRecords.add(new orderBean(overdue));
-    }
-
-    system.debug('codPageRecords====>' + codPageRecords);
-    data.put('codPageRecords', JSON.serialize(codPageRecords));
-    data.put('userWorkLocation', userWorkLocation);
-    data.put('accountName', accountInfo.Name);
-    data.put('agencyProType', agencyProType);
-    data.put('orderDetZaiku', JSON.serialize(orderDetZaiku));
-    res.status = 'Success';
-    res.code = 200;
-    System.debug('res = ' + res);
-    return res;
-  }
-
-  // BarCode褰曞叆
-  @AuraEnabled
-  public static ResponseBodyLWC searchorderBean(
-    String agencyProTypeLWC,
-    String userWorkLocationLWC,
-    String accountNameLWC,
-    String barcodeLWC,
-    String codPageRecordsLWC
-  ) {
-    ResponseBodyLWC res = new ResponseBodyLWC();
-    Map<String, object> data = new Map<String, object>();
-    res.entity = data;
-    List<orderBean> codPageRecords = (List<orderBean>) JSON.deserialize(
-      codPageRecordsLWC,
-      List<orderBean>.class
-    );
-    sqlagencyProType = '%' + agencyProTypeLWC + '%';
-    system.debug('sqlagencyProType==>' + sqlagencyProType);
-    barcode = barcodeLWC;
-    system.debug('barcode==>' + barcode);
-    userWorkLocation = userWorkLocationLWC;
-    // add by Wang Xueqin 2023/04/12
-    // 鑾峰彇鐢ㄦ埛鍜岀粡閿�鍟嗕俊鎭�
-    user Useracc = [
-      SELECT Accountid, Work_Location__c, UserPro_Type__c
-      FROM user
-      WHERE id = :UserInfo.getUserId()
-    ];
-    accountInfo = [
-      SELECT id, Name, Dealer_discount__c
-      FROM account
-      WHERE id = :Useracc.accountid
-    ];
-
-    iSinventory = true;
-    Set<String> barCodeoverdue = new Set<String>();
-    overduePageRecords = new List<orderBean>();
-    List<String> barCodeListP = ParseBarCode(barcode);
-    // 椤甸潰鏄剧ず鏁版嵁鍒濆鍖�
-    for (orderBean codPage : codPageRecords) {
-      codPage.pandian = 0;
-    }
-    // 鏌ヨ鎵�鏈夎繃鏈熷簱瀛�
-    List<Consumable_order_details2__c> orderDetZaiku = [
-      SELECT
-        Id,
-        Name,
-        Consumable_Product__c,
-        Bar_Code__c,
-        Consumable_Product__r.Name__c,
-        Dealer_Info_text__c,
-        Asset_Model_No__c,
-        Isoverdue__c,
-        Box_Piece__c,
-        Sterilization_limit__c,
-        Bar_Code_search__c
-      FROM Consumable_order_details2__c
-      WHERE
-        Dealer_Arrive__c = TRUE
-        AND Dealer_Shipment__c = FALSE
-        AND Dealer_Saled__c = FALSE
-        AND Lose_Flag__c = FALSE
-        AND Isoverdue__c = 0
-        AND Dealer_Returned__c = FALSE
-        AND Cancellation_Flag__c = FALSE
-        AND Bar_Code__c != NULL
-        AND Product_Type__c LIKE :sqlagencyProType
-        AND Dealer_Info_text__c = :accountInfo.Name
-        AND Arrive_Owner_Work_Location__c = :userWorkLocation
-    ];
-    // 娌℃湁杈撳叆鏉$爜鏃讹紝寰幆椤甸潰锛屾墍鏈夋墦閽╀骇鍝佸叏閮ㄩ攢瀛�
-    // 鍙栧緱鎵�鏈�
-    overdueList = new List<Consumable_order_details2__c>();
-    if (String.isBlank(barcode)) {
-      System.debug('barcode绌�');
-      for (orderBean codPage : codPageRecords) {
-        if (codPage.check) {
-          for (Consumable_order_details2__c cod2 : orderDetZaiku) {
-            if (
-              cod2.Consumable_Product__c == codPage.prodid &&
-              codPage.boxPiece == cod2.Box_Piece__c
-            ) {
-              overduePageRecords.add(new orderBean(cod2, '杩囨湡搴撳瓨閿�瀛�'));
-              overdueList.add(cod2);
-            }
-          }
-          codPage.pandian = codPage.overlimitCount;
+    public static Integer pageRecordsSize {
+        get {
+            return codPageRecords == null ? 0 : codPageRecords.size();
         }
-      }
-      // return;
-      System.debug('overduePageRecords = ' + overduePageRecords);
-      System.debug('overdueList = ' + overdueList);
-      data.put('overduePageRecords', JSON.serialize(overduePageRecords));
-      data.put('codPageRecords', JSON.serialize(codPageRecords));
-      data.put('iSinventory', iSinventory);
-      data.put('overdueList', overdueList);
-      res.status = 'Success1';
-      res.code = 200;
-      // res.msg = '璇疯緭鍏arCode鍙�';
-      System.debug('res = ' + res);
-      return res;
     }
 
-    // 杈撳叆barcode鏃�
+    public LexOverdueStockController() {
+    }
 
-    // BarCode鐨勬绱�  鎵�鏈夊湪搴�
-    List<Consumable_order_details2__c> reSet = [
-      SELECT
-        Id,
-        Consumable_Product__c,
-        Consumable_Product__r.Name__c,
-        Box_Piece__c,
-        Bar_Code_search__c,
-        Dealer_Shipment__c,
-        Dealer_Saled__c,
-        Lose_Flag__c,
-        Bar_Code__c,
-        Cancellation_Flag__c,
-        Isoverdue__c,
-        Sterilization_limit__c
-      FROM Consumable_order_details2__c
-      WHERE
-        Bar_Code_search__c IN :BarCodeListP
-        AND Dealer_Arrive__c = TRUE
-        AND Cancellation_Flag__c = FALSE
-        AND Dealer_Returned__c = FALSE
-        AND Bar_Code__c != NULL
-        AND Product_Type__c LIKE :sqlagencyProType
-        AND Arrive_Owner_Work_Location__c = :userWorkLocation
-        AND Dealer_Info_text__c = :accountInfo.Name
-      ORDER BY Name
-    ];
+    // 鐢婚潰鍒濆鍖�
+    @AuraEnabled
+    public static ResponseBodyLWC init() {
+        ResponseBodyLWC res = new ResponseBodyLWC();
+        Map<String, object> data = new Map<String, object>();
+        res.entity = data;
 
-    System.debug('reSet===>' + reSet);
+        codPageRecords = new List<orderBean>();
+        overduePageRecords = new List<orderBean>();
+        // 鑾峰彇鐢ㄦ埛鍜岀粡閿�鍟嗕俊鎭�
+        user Useracc = [SELECT Accountid, Work_Location__c, UserPro_Type__c FROM user WHERE id = :UserInfo.getUserId()];
+        userWorkLocation = Useracc.Work_Location__c;
+        agencyProType = Useracc.UserPro_Type__c;
+        if (String.isBlank(Useracc.UserPro_Type__c)) {
+            agencyProType = 'ET';
+        }
+        sqlagencyProType = '%' + agencyProType + '%';
+        accountInfo = [SELECT id, Name, Dealer_discount__c FROM account WHERE id = :Useracc.accountid];
+        // 杩囨湡搴撳瓨姹囨�讳俊鎭�
+        List<AggregateResult> orderDetZaiku = [
+            SELECT count(Id) countsum, Consumable_Product__c prodid, Consumable_Product__r.Name_Text__c prodname, Box_Piece__c boxPiece
+            FROM Consumable_order_details2__c
+            WHERE
+                Dealer_Arrive__c = TRUE
+                AND Dealer_Shipment__c = FALSE
+                AND Dealer_Saled__c = FALSE
+                AND Lose_Flag__c = FALSE
+                AND Isoverdue__c = 0
+                AND Dealer_Returned__c = FALSE
+                AND Cancellation_Flag__c = FALSE
+                AND Bar_Code__c != NULL
+                AND Product_Type__c LIKE :sqlagencyProType
+                AND Dealer_Info_text__c = :accountInfo.Name
+                AND Arrive_Owner_Work_Location__c = :userWorkLocation
+            GROUP BY Consumable_Product__c, Box_Piece__c, Consumable_Product__r.Name_Text__c
+        ];
 
-    for (Consumable_order_details2__c cod2 : reSet) {
-      if (
-        (cod2.Dealer_Shipment__c == false &&
-        cod2.Dealer_Saled__c == false &&
-        cod2.Lose_Flag__c == false &&
-        cod2.Cancellation_Flag__c == false) && cod2.Isoverdue__c == 0
-      ) {
+        for (AggregateResult overdue : orderDetZaiku) {
+            codPageRecords.add(new orderBean(overdue));
+        }
+
+        system.debug('codPageRecords====>' + codPageRecords);
+        data.put('codPageRecords', JSON.serialize(codPageRecords));
+        data.put('userWorkLocation', userWorkLocation);
+        data.put('accountName', accountInfo.Name);
+        data.put('agencyProType', agencyProType);
+        data.put('orderDetZaiku', JSON.serialize(orderDetZaiku));
+        res.status = 'Success';
+        res.code = 200;
+        System.debug('res = ' + res);
+        return res;
+    }
+
+    // BarCode褰曞叆
+    @AuraEnabled
+    public static ResponseBodyLWC searchorderBean(
+        String agencyProTypeLWC,
+        String userWorkLocationLWC,
+        String accountNameLWC,
+        String barcodeLWC,
+        String codPageRecordsLWC
+    ) {
+        ResponseBodyLWC res = new ResponseBodyLWC();
+        Map<String, object> data = new Map<String, object>();
+        res.entity = data;
+        List<orderBean> codPageRecords = (List<orderBean>) JSON.deserialize(codPageRecordsLWC, List<orderBean>.class);
+        sqlagencyProType = '%' + agencyProTypeLWC + '%';
+        system.debug('sqlagencyProType==>' + sqlagencyProType);
+        barcode = barcodeLWC;
+        system.debug('barcode==>' + barcode);
+        userWorkLocation = userWorkLocationLWC;
+        // add by Wang Xueqin 2023/04/12
+        // 鑾峰彇鐢ㄦ埛鍜岀粡閿�鍟嗕俊鎭�
+        user Useracc = [SELECT Accountid, Work_Location__c, UserPro_Type__c FROM user WHERE id = :UserInfo.getUserId()];
+        accountInfo = [SELECT id, Name, Dealer_discount__c FROM account WHERE id = :Useracc.accountid];
+
+        iSinventory = true;
+        Set<String> barCodeoverdue = new Set<String>();
+        overduePageRecords = new List<orderBean>();
+        List<String> barCodeListP = ParseBarCode(barcode);
+        // 椤甸潰鏄剧ず鏁版嵁鍒濆鍖�
         for (orderBean codPage : codPageRecords) {
-          if (
-            cod2.Consumable_Product__c == codPage.prodid &&
-            cod2.Box_Piece__c == codPage.boxPiece
-          ) {
-            overduePageRecords.add(new orderBean(cod2, '杩囨湡搴撳瓨閿�瀛�'));
-            overdueList.add(cod2);
-            codPage.pandian++;
-            codPage.check = true;
-          }
+            codPage.pandian = 0;
         }
-      } else if (cod2.Dealer_Shipment__c || cod2.Dealer_Saled__c) {
-        overduePageRecords.add(new orderBean(cod2, '浜у搧宸茬粡鍑哄簱'));
-      } else {
-        overduePageRecords.add(new orderBean(cod2, '涓嶆槸杩囨湡搴撳瓨'));
-      }
-    }
-    System.debug('overduePageRecords = ' + overduePageRecords);
-    data.put('overduePageRecords', JSON.serialize(overduePageRecords));
-    data.put('codPageRecords', JSON.serialize(codPageRecords));
-    data.put('iSinventory', iSinventory);
-    data.put('overdueList', overdueList);
-    res.status = 'Success';
-    res.code = 200;
-    System.debug('res = ' + res);
-    return res;
-  }
-
-  // 淇濆瓨鎸夐挳
-  @AuraEnabled
-  public static ResponseBodyLWC save(
-    Boolean iSinventory,
-    string saveCodPageRecords,
-    List<Consumable_order_details2__c> saveoverdueList
-  ) {
-    ResponseBodyLWC res = new ResponseBodyLWC();
-    Map<String, object> data = new Map<String, object>();
-    res.entity = data;
-    system.debug('saveCodPageRecords=============>' + saveCodPageRecords);
-    system.debug('saveoverdueList' + saveoverdueList);
-    overdueList = saveoverdueList;
-    // if(saveoverdueList==null){
-    //     return new ResponseBodyLWC('Error',500, '璇烽�夋嫨瑕侀攢瀛樼殑鏄庣粏', '');
-
-    // }
-
-    List<orderBean> codPageRecords = (List<orderBean>) JSON.deserialize(
-      saveCodPageRecords,
-      List<orderBean>.class
-    );
-    // List<Consumable_order_details2__c> overdueList = (List<Consumable_order_details2__c>)JSON.deserialize(saveoverdueList,List<Consumable_order_details2__c>.class);
-    // add by Wang Xueqin 2023/04/12
-    // 鑾峰彇鐢ㄦ埛鍜岀粡閿�鍟嗕俊鎭�
-    user Useracc = [
-      SELECT Accountid, Work_Location__c, UserPro_Type__c
-      FROM user
-      WHERE id = :UserInfo.getUserId()
-    ];
-    accountInfo = [
-      SELECT id, Name, Dealer_discount__c
-      FROM account
-      WHERE id = :Useracc.accountid
-    ];
-
-    // 璺宠繃鏄庣粏2涓嶅繀瑕佹洿鏂�
-    StaticParameter.EscapeConsumableOrderDetail2Trigger = true;
-    if (!iSinventory) {
-      // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'璇峰厛鐐广�怋arCode褰曞叆銆�'));
-      return new ResponseBodyLWC('Error', 500, '璇峰厛褰曞叆BarCode', '');
-      // return null;
-    }
-    integer Lo = 0;
-    for (orderBean header : codPageRecords) {
-      if (header.check == true) {
-        Lo++;
-      }
-    }
-    if (Lo == 0) {
-      iSinventory = false;
-      // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'璇烽�夋嫨瑕侀攢瀛樼殑鏄庣粏銆�'));
-      return new ResponseBodyLWC('Error', 500, '璇烽�夋嫨瑕侀攢瀛樼殑鏄庣粏', '');
-      // return null;
-    }
-    Integer orderDetNo = 1;
-    Savepoint sp = Database.setSavepoint();
-    Consumable_order__c po = new Consumable_order__c();
-    po.Name = '*';
-    po.Order_status__c = '鎵瑰噯';
-    po.Inventory_date__c = Date.today();
-    po.Order_type__c = '閿�瀛�';
-    po.Dealer_Info__c = accountInfo.Id;
-    po.Order_ProType__c = agencyProType;
-    po.RecordTypeid = System.Label.RT_ConOrder_Overdue;
-    try {
-      insert po;
-      Consumable_order__c order = [
-        SELECT Name
-        FROM Consumable_order__c
-        WHERE id = :po.id
-      ];
-      List<Consumable_orderdetails__c> InsList = new List<Consumable_orderdetails__c>();
-      for (orderBean header : codPageRecords) {
-        if (header.check == true) {
-          Consumable_orderdetails__c insPan = new Consumable_orderdetails__c();
-          String str = string.valueOf(orderDetNo);
-          if (str.length() == 1) {
-            str = '0' + str;
-          }
-          insPan.Name = order.Name + '-' + str;
-          insPan.Consumable_Product__c = header.prodId;
-          insPan.Consumable_order__c = po.Id;
-          insPan.Lose_reason__c = '杩囨湡搴撳瓨閿�瀛�';
-          insPan.Overdue_count__c = header.pandian;
-          insPan.Overdue_SUM__c = header.overlimitCount;
-          insPan.RecordTypeId = System.Label.RT_ConOrderDetail1_Inventory;
-          orderDetNo++;
-          InsList.add(insPan);
+        // 鏌ヨ鎵�鏈夎繃鏈熷簱瀛�
+        List<Consumable_order_details2__c> orderDetZaiku = [
+            SELECT
+                Id,
+                Name,
+                Consumable_Product__c,
+                Bar_Code__c,
+                Consumable_Product__r.Name__c,
+                Dealer_Info_text__c,
+                Asset_Model_No__c,
+                Isoverdue__c,
+                Box_Piece__c,
+                Sterilization_limit__c,
+                Bar_Code_search__c
+            FROM Consumable_order_details2__c
+            WHERE
+                Dealer_Arrive__c = TRUE
+                AND Dealer_Shipment__c = FALSE
+                AND Dealer_Saled__c = FALSE
+                AND Lose_Flag__c = FALSE
+                AND Isoverdue__c = 0
+                AND Dealer_Returned__c = FALSE
+                AND Cancellation_Flag__c = FALSE
+                AND Bar_Code__c != NULL
+                AND Product_Type__c LIKE :sqlagencyProType
+                AND Dealer_Info_text__c = :accountInfo.Name
+                AND Arrive_Owner_Work_Location__c = :userWorkLocation
+        ];
+        // 娌℃湁杈撳叆鏉$爜鏃讹紝寰幆椤甸潰锛屾墍鏈夋墦閽╀骇鍝佸叏閮ㄩ攢瀛�
+        // 鍙栧緱鎵�鏈�
+        overdueList = new List<Consumable_order_details2__c>();
+        if (String.isBlank(barcode)) {
+            System.debug('barcode绌�');
+            for (orderBean codPage : codPageRecords) {
+                if (codPage.check) {
+                    for (Consumable_order_details2__c cod2 : orderDetZaiku) {
+                        if (cod2.Consumable_Product__c == codPage.prodid && codPage.boxPiece == cod2.Box_Piece__c) {
+                            overduePageRecords.add(new orderBean(cod2, '杩囨湡搴撳瓨閿�瀛�'));
+                            overdueList.add(cod2);
+                        }
+                    }
+                    codPage.pandian = codPage.overlimitCount;
+                }
+            }
+            // return;
+            System.debug('overduePageRecords = ' + overduePageRecords);
+            System.debug('overdueList = ' + overdueList);
+            data.put('overduePageRecords', JSON.serialize(overduePageRecords));
+            data.put('codPageRecords', JSON.serialize(codPageRecords));
+            data.put('iSinventory', iSinventory);
+            data.put('overdueList', overdueList);
+            res.status = 'Success1';
+            res.code = 200;
+            // res.msg = '璇疯緭鍏arCode鍙�';
+            System.debug('res = ' + res);
+            return res;
         }
-      }
-      // 鐢熸垚鏄庣粏1
-      if (InsList.size() > 0) {
-        insert InsList;
-      }
 
-      for (Consumable_order_details2__c cod : overdueList) {
-        cod.Consumable_Inventory_order__c = po.Id;
-        cod.Inventory_date__c = Date.today();
-        cod.Lose_reason__c = '杩囨湡搴撳瓨閿�瀛�';
-        cod.Lose_Flag__c = true;
-      }
-      if (overdueList.size() > 0) {
-        ControllerUtil.updateOrderDetailsSatus(overdueList);
-      }
-    } catch (Exception ex) {
-      Database.rollback(sp);
-      ApexPages.addMessages(ex);
-      return null;
-    }
-    // return new Pagereference('/' + po.Id);
-    data.put('Id', po.Id);
-    res.status = 'Success';
-    res.code = 200;
-    System.debug('res = ' + res);
-    return res;
-  }
+        // 杈撳叆barcode鏃�
 
-  // 灏嗛〉闈㈡垨鍙栧緱BarCode鍘绘帀閲嶅鐨勶紝杞崲鎴怢ist
-  public static List<String> ParseBarCode(String Code) {
-    Map<String, Integer> barcodeCountMap = new Map<String, Integer>();
-    String[] Cache = new List<String>{};
-    Cache = Code.split('\n');
-    List<String> Buff = new List<String>();
-    for (String A : Cache) {
-      A = A.trim().toUpperCase();
-      if (barcodeCountMap.containsKey(A)) {
-        barcodeCountMap.put(A, barcodeCountMap.get(A) + 1);
-      } else {
-        barcodeCountMap.put(A, 1);
-      }
-      Buff.add(A + barcodeCountMap.get(A));
-    }
-    return Buff;
-  }
+        // BarCode鐨勬绱�  鎵�鏈夊湪搴�
+        List<Consumable_order_details2__c> reSet = [
+            SELECT
+                Id,
+                Consumable_Product__c,
+                Consumable_Product__r.Name__c,
+                Box_Piece__c,
+                Bar_Code_search__c,
+                Dealer_Shipment__c,
+                Dealer_Saled__c,
+                Lose_Flag__c,
+                Bar_Code__c,
+                Cancellation_Flag__c,
+                Isoverdue__c,
+                Sterilization_limit__c
+            FROM Consumable_order_details2__c
+            WHERE
+                Bar_Code_search__c IN :BarCodeListP
+                AND Dealer_Arrive__c = TRUE
+                AND Cancellation_Flag__c = FALSE
+                AND Dealer_Returned__c = FALSE
+                AND Bar_Code__c != NULL
+                AND Product_Type__c LIKE :sqlagencyProType
+                AND Arrive_Owner_Work_Location__c = :userWorkLocation
+                AND Dealer_Info_text__c = :accountInfo.Name
+            ORDER BY Name
+        ];
 
-  // Data Bean
-  @TestVisible
-  class orderBean implements Comparable {
-    @AuraEnabled
-    public Consumable_order_details2__c orderdetails2 { get; set; }
-    @AuraEnabled
-    public Product2__c Prod { get; set; }
-    @AuraEnabled
-    public Boolean check { get; set; }
+        System.debug('reSet===>' + reSet);
 
-    // 杩囨湡搴撳瓨
-    @AuraEnabled
-    public Integer overlimitCount { get; set; }
-    // 閿�瀛樻暟閲�
-    @AuraEnabled
-    public Integer pandian { get; set; }
-    // 閿�瀛樺師鍥�
-    @AuraEnabled
-    public String diffReason { get; set; }
-    // 鍗曚綅
-    @AuraEnabled
-    public String boxPiece { get; set; }
-    @AuraEnabled
-    public String prodname { get; set; }
-    @AuraEnabled
-    public String prodid { get; set; }
-    orderBean(Consumable_order_details2__c e, string str) {
-      orderdetails2 = e;
-      Prod = e.Consumable_Product__r;
-      DiffReason = str;
+        for (Consumable_order_details2__c cod2 : reSet) {
+            if (
+                (cod2.Dealer_Shipment__c == false &&
+                cod2.Dealer_Saled__c == false &&
+                cod2.Lose_Flag__c == false &&
+                cod2.Cancellation_Flag__c == false) && cod2.Isoverdue__c == 0
+            ) {
+                for (orderBean codPage : codPageRecords) {
+                    if (cod2.Consumable_Product__c == codPage.prodid && cod2.Box_Piece__c == codPage.boxPiece) {
+                        overduePageRecords.add(new orderBean(cod2, '杩囨湡搴撳瓨閿�瀛�'));
+                        overdueList.add(cod2);
+                        codPage.pandian++;
+                        codPage.check = true;
+                    }
+                }
+            } else if (cod2.Dealer_Shipment__c || cod2.Dealer_Saled__c) {
+                overduePageRecords.add(new orderBean(cod2, '浜у搧宸茬粡鍑哄簱'));
+            } else {
+                overduePageRecords.add(new orderBean(cod2, '涓嶆槸杩囨湡搴撳瓨'));
+            }
+        }
+        System.debug('overduePageRecords = ' + overduePageRecords);
+        data.put('overduePageRecords', JSON.serialize(overduePageRecords));
+        data.put('codPageRecords', JSON.serialize(codPageRecords));
+        data.put('iSinventory', iSinventory);
+        data.put('overdueList', overdueList);
+        res.status = 'Success';
+        res.code = 200;
+        System.debug('res = ' + res);
+        return res;
     }
-    public orderBean(AggregateResult e) {
-      check = false;
-      overlimitCount = Integer.valueOf(e.get('countsum'));
-      prodname = String.valueOf(e.get('prodname'));
-      prodid = String.valueOf(e.get('prodid'));
-      boxPiece = String.valueOf(e.get('BoxPiece'));
-      pandian = 0;
+
+    // 淇濆瓨鎸夐挳
+    @AuraEnabled
+    public static ResponseBodyLWC save(Boolean iSinventory, string saveCodPageRecords, List<Consumable_order_details2__c> saveoverdueList) {
+        ResponseBodyLWC res = new ResponseBodyLWC();
+        Map<String, object> data = new Map<String, object>();
+        res.entity = data;
+        system.debug('saveCodPageRecords=============>' + saveCodPageRecords);
+        system.debug('saveoverdueList' + saveoverdueList);
+        overdueList = saveoverdueList;
+        // if(saveoverdueList==null){
+        //     return new ResponseBodyLWC('Error',500, '璇烽�夋嫨瑕侀攢瀛樼殑鏄庣粏', '');
+
+        // }
+
+        List<orderBean> codPageRecords = (List<orderBean>) JSON.deserialize(saveCodPageRecords, List<orderBean>.class);
+        // List<Consumable_order_details2__c> overdueList = (List<Consumable_order_details2__c>)JSON.deserialize(saveoverdueList,List<Consumable_order_details2__c>.class);
+        // add by Wang Xueqin 2023/04/12
+        // 鑾峰彇鐢ㄦ埛鍜岀粡閿�鍟嗕俊鎭�
+        user Useracc = [SELECT Accountid, Work_Location__c, UserPro_Type__c FROM user WHERE id = :UserInfo.getUserId()];
+        accountInfo = [SELECT id, Name, Dealer_discount__c FROM account WHERE id = :Useracc.accountid];
+
+        // 璺宠繃鏄庣粏2涓嶅繀瑕佹洿鏂�
+        StaticParameter.EscapeConsumableOrderDetail2Trigger = true;
+        if (!iSinventory) {
+            // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'璇峰厛鐐广�怋arCode褰曞叆銆�'));
+            return new ResponseBodyLWC('Error', 500, '璇峰厛褰曞叆BarCode', '');
+            // return null;
+        }
+        integer Lo = 0;
+        for (orderBean header : codPageRecords) {
+            if (header.check == true) {
+                Lo++;
+            }
+        }
+        if (Lo == 0) {
+            iSinventory = false;
+            // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'璇烽�夋嫨瑕侀攢瀛樼殑鏄庣粏銆�'));
+            return new ResponseBodyLWC('Error', 500, '璇烽�夋嫨瑕侀攢瀛樼殑鏄庣粏', '');
+            // return null;
+        }
+        Integer orderDetNo = 1;
+        Savepoint sp = Database.setSavepoint();
+        Consumable_order__c po = new Consumable_order__c();
+        po.Name = '*';
+        po.Order_status__c = '鎵瑰噯';
+        po.Inventory_date__c = Date.today();
+        po.Order_type__c = '閿�瀛�';
+        po.Dealer_Info__c = accountInfo.Id;
+        po.Order_ProType__c = agencyProType;
+        po.RecordTypeid = System.Label.RT_ConOrder_Overdue;
+        try {
+            insert po;
+            Consumable_order__c order = [SELECT Name FROM Consumable_order__c WHERE id = :po.id];
+            List<Consumable_orderdetails__c> InsList = new List<Consumable_orderdetails__c>();
+            for (orderBean header : codPageRecords) {
+                if (header.check == true) {
+                    Consumable_orderdetails__c insPan = new Consumable_orderdetails__c();
+                    String str = string.valueOf(orderDetNo);
+                    if (str.length() == 1) {
+                        str = '0' + str;
+                    }
+                    insPan.Name = order.Name + '-' + str;
+                    insPan.Consumable_Product__c = header.prodId;
+                    insPan.Consumable_order__c = po.Id;
+                    insPan.Lose_reason__c = '杩囨湡搴撳瓨閿�瀛�';
+                    insPan.Overdue_count__c = header.pandian;
+                    insPan.Overdue_SUM__c = header.overlimitCount;
+                    insPan.RecordTypeId = System.Label.RT_ConOrderDetail1_Inventory;
+                    orderDetNo++;
+                    InsList.add(insPan);
+                }
+            }
+            // 鐢熸垚鏄庣粏1
+            if (InsList.size() > 0) {
+                insert InsList;
+            }
+
+            for (Consumable_order_details2__c cod : overdueList) {
+                cod.Consumable_Inventory_order__c = po.Id;
+                cod.Inventory_date__c = Date.today();
+                cod.Lose_reason__c = '杩囨湡搴撳瓨閿�瀛�';
+                cod.Lose_Flag__c = true;
+            }
+            if (overdueList.size() > 0) {
+                ControllerUtil.updateOrderDetailsSatus(overdueList);
+            }
+        } catch (Exception ex) {
+            Database.rollback(sp);
+            ApexPages.addMessages(ex);
+            return null;
+        }
+        // return new Pagereference('/' + po.Id);
+        data.put('Id', po.Id);
+        res.status = 'Success';
+        res.code = 200;
+        System.debug('res = ' + res);
+        return res;
     }
-    // 鎺掑簭
-    public Integer compareTo(Object compareTo) {
-      orderBean compareToesd = (orderBean) compareTo;
-      Integer returnValue = 0;
-      if (overlimitCount > compareToesd.overlimitCount) {
-        returnValue = -1;
-      } else if (overlimitCount < compareToesd.overlimitCount) {
-        returnValue = 1;
-      }
-      return returnValue;
+
+    // 灏嗛〉闈㈡垨鍙栧緱BarCode鍘绘帀閲嶅鐨勶紝杞崲鎴怢ist
+    public static List<String> ParseBarCode(String Code) {
+        Map<String, Integer> barcodeCountMap = new Map<String, Integer>();
+        String[] Cache = new List<String>{};
+        Cache = Code.split('\n');
+        List<String> Buff = new List<String>();
+        for (String A : Cache) {
+            A = A.trim().toUpperCase();
+            if (barcodeCountMap.containsKey(A)) {
+                barcodeCountMap.put(A, barcodeCountMap.get(A) + 1);
+            } else {
+                barcodeCountMap.put(A, 1);
+            }
+            Buff.add(A + barcodeCountMap.get(A));
+        }
+        return Buff;
     }
-  }
-}
+
+    // Data Bean
+    @TestVisible
+    class orderBean implements Comparable {
+        @AuraEnabled
+        public Consumable_order_details2__c orderdetails2 { get; set; }
+        @AuraEnabled
+        public Product2__c Prod { get; set; }
+        @AuraEnabled
+        public Boolean check { get; set; }
+
+        // 杩囨湡搴撳瓨
+        @AuraEnabled
+        public Integer overlimitCount { get; set; }
+        // 閿�瀛樻暟閲�
+        @AuraEnabled
+        public Integer pandian { get; set; }
+        // 閿�瀛樺師鍥�
+        @AuraEnabled
+        public String diffReason { get; set; }
+        // 鍗曚綅
+        @AuraEnabled
+        public String boxPiece { get; set; }
+        @AuraEnabled
+        public String prodname { get; set; }
+        @AuraEnabled
+        public String prodid { get; set; }
+        orderBean(Consumable_order_details2__c e, string str) {
+            orderdetails2 = e;
+            Prod = e.Consumable_Product__r;
+            DiffReason = str;
+        }
+        public orderBean(AggregateResult e) {
+            check = false;
+            overlimitCount = Integer.valueOf(e.get('countsum'));
+            prodname = String.valueOf(e.get('prodname'));
+            prodid = String.valueOf(e.get('prodid'));
+            boxPiece = String.valueOf(e.get('BoxPiece'));
+            pandian = 0;
+        }
+        // 鎺掑簭
+        public Integer compareTo(Object compareTo) {
+            orderBean compareToesd = (orderBean) compareTo;
+            Integer returnValue = 0;
+            if (overlimitCount > compareToesd.overlimitCount) {
+                returnValue = -1;
+            } else if (overlimitCount < compareToesd.overlimitCount) {
+                returnValue = 1;
+            }
+            return returnValue;
+        }
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.1