From 3962c2bb0435484b60a3e408e4738d792e249a53 Mon Sep 17 00:00:00 2001
From: buli <137736985@qq.com>
Date: 星期一, 05 六月 2023 11:09:55 +0800
Subject: [PATCH] LEX CommunityNewCmp
---
force-app/main/default/classes/LexOverdueStockController.cls | 380 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 380 insertions(+), 0 deletions(-)
diff --git a/force-app/main/default/classes/LexOverdueStockController.cls b/force-app/main/default/classes/LexOverdueStockController.cls
new file mode 100644
index 0000000..adbaaa7
--- /dev/null
+++ b/force-app/main/default/classes/LexOverdueStockController.cls
@@ -0,0 +1,380 @@
+public with sharing class LexOverdueStockController {
+
+ /*****************妞滅储鐢�******************/
+ public static String barcode { get; set; }
+
+ // 杩囨湡鍜岄攢瀛�,鐢婚潰鏄剧ず鐢�
+ public static List<orderBean> codPageRecords { 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;
+
+ //鍒ゆ柇鎿嶄綔浜哄憳鏄惁閿�瀛�
+ public static Boolean iSinventory = false;
+
+ 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;
+ }
+ }
+ // return;
+ 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;
+ // res.msg = '璇疯緭鍏arCode鍙�';
+ System.debug('res = ' + res);
+ return res;
+ }
+
+ // 杈撳叆barcode鏃�
+
+ // 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];
+
+ System.debug('reSet===>'+reSet);
+
+
+ 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;
+ }
+
+
+ // 淇濆瓨鎸夐挳
+ @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;
+ }
+
+ // 灏嗛〉闈㈡垨鍙栧緱BarCode鍘绘帀閲嶅鐨勶紝杞崲鎴怢ist
+ public static List<String> ParseBarCode(String Code){
+ Map<String,Integer> barcodeCountMap = new Map<String,Integer>();
+ String[] Cache = new 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
+ 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