buli
2023-07-05 af7b716a60d889acea95560abba0e46eee008b8f
force-app/main/default/classes/RentalApplyEquipmentSetDetailHandler.cls
@@ -17,2814 +17,6 @@
    private static Set<Id> shipment_requestedRaIdStaticSet = new Set<Id>();
    public RentalApplyEquipmentSetDetailHandler() {
        Integer i = 0;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        i ++;
        if (Trigger.isUpdate || Trigger.isUndelete || Trigger.isDelete) {
            this.newMap = new Map<Id, Rental_Apply_Equipment_Set_Detail__c>();
            this.newList = new List<Rental_Apply_Equipment_Set_Detail__c>();
@@ -2842,27 +34,33 @@
                    if (Trigger.isUndelete && String.isBlank(nObj.Fixture_Set_Id__c)) {
                        // 旧データ、beipin2 の trigger 実行しない
                        continue;
                    }
                    else if (Trigger.isUpdate && String.isBlank(nObj.Fixture_Set_Id__c)
                            && String.isNotBlank(oObj.Fixture_Set_Id__c)) {
          } else if (
            Trigger.isUpdate &&
            String.isBlank(nObj.Fixture_Set_Id__c) &&
            String.isNotBlank(oObj.Fixture_Set_Id__c)
          ) {
                        nObj.addError('不能清空借出备品配套 Fixture_Set__c');
                    }
                    else if (Trigger.isUpdate && String.isNotBlank(nObj.DeliverySlip__c)
                            && String.isNotBlank(oObj.DeliverySlip__c) && oObj.DeliverySlip__c != nObj.DeliverySlip__c) {
                        nObj.addError('不能修改借出备品配套明细的运输单');
                    }
                    else if (Trigger.isUpdate && String.isNotBlank(nObj.Return_DeliverySlip__c )
                            && String.isNotBlank(oObj.Return_DeliverySlip__c ) && oObj.Return_DeliverySlip__c  != nObj.Return_DeliverySlip__c ) {
          } else if (
            Trigger.isUpdate &&
            String.isNotBlank(nObj.DeliverySlip__c) &&
            String.isNotBlank(oObj.DeliverySlip__c) &&
            oObj.DeliverySlip__c != nObj.DeliverySlip__c
          ) {
            //nObj.addError('不能修改借出备品配套明细的运输单');
          } else if (
            Trigger.isUpdate &&
            String.isNotBlank(nObj.Return_DeliverySlip__c) &&
            String.isNotBlank(oObj.Return_DeliverySlip__c) &&
            oObj.Return_DeliverySlip__c != nObj.Return_DeliverySlip__c
          ) {
                        nObj.addError('不能修改借出备品配套明细的回寄运输单');
                    }
                    else {
          } else {
                        this.newList.add(nObj);
                        this.newMap.put(nObj.Id, nObj);
                    }
                }
            }
        }
        else {
    } else {
            // insert
            this.newMap = (Map<Id, Rental_Apply_Equipment_Set_Detail__c>) Trigger.newMap;
            this.oldMap = (Map<Id, Rental_Apply_Equipment_Set_Detail__c>) Trigger.oldMap;
@@ -2871,13 +69,16 @@
        }
    }
    public static Boolean disabled = false;
  // 备品优化追加 20230518 lc Start
  public static Boolean skipUpdateAgain = false;
  // 备品优化追加 20230518 lc End
    protected override void beforeInsert() {
        if(!disabled){
            beforeSetValue();
        }
    }
    protected override void beforeUpdate() {
        if(!disabled){
    if (!disabled && !FixtureUtil.isRepairRenewal) {
            beforeSetValue();
            // 设值排队的UniqueKey
@@ -2885,7 +86,7 @@
        }
    }
    protected override void afterInsert() {
        if(!disabled){
    if (!disabled && !FixtureUtil.isRepairRenewal) {
            formulaToTextCheck();
            //入力規則 新建数据不能分配がありますので,ここではLastとOut_of_wh__cの設定必要ありません
@@ -2923,7 +124,7 @@
        }
    }
    protected override void afterUpdate() {
        if(!disabled){
    if (!disabled && !FixtureUtil.isRepairRenewal) {
            Set<Id> assIds = new Set<Id>();
            for (Rental_Apply_Equipment_Set_Detail__c raesd : newList) {
                if (String.isNotBlank(raesd.Asset__c)) {
@@ -2931,35 +132,65 @@
                }
            }
            if (Trigger.isUpdate && !assIds.isEmpty()) {
                assMap = new Map<Id, Asset>([
                        Select Id, Quantity, Status, Manage_type__c,
                               Out_of_wh__c, Rental_Count__c, Abandoned_Inventory__c, Abandoned_RealThing__c,
                               Confirm_Lost_Count__c, CountForRepair__c
                        From Asset
                        Where Id =: assIds
                          and Asset_loaner_category__c != '耗材'
                          and RecordTypeId = '01210000000kOPR'
                          FOR UPDATE]);
        assMap = new Map<Id, Asset>(
          [
            SELECT
              Id,
              Quantity,
              Status,
              Manage_type__c,
              Out_of_wh__c,
              Rental_Count__c,
              Abandoned_Inventory__c,
              Abandoned_RealThing__c,
              Confirm_Lost_Count__c,
              CountForRepair__c
            FROM Asset
            WHERE
              Id = :assIds
              AND Asset_loaner_category__c != '耗材'
              AND RecordTypeId = '01210000000kOPR'
            FOR UPDATE
          ]
        );
            }
            // 备品数量的加减
            changeAsset();
            System.debug(LoggingLevel.INFO, '*00** assUpdMap: ' + JSON.serialize(assUpdMap));
      System.debug(
        LoggingLevel.INFO,
        '*00** assUpdMap: ' + JSON.serialize(assUpdMap)
      );
            // 排队再分配 借出分配数量的减 等, clear Last_Reserve_RAES_Detail__c, 設定First_RAESD__c
            clearLastReserveRAESD();
            System.debug(LoggingLevel.INFO, '*11** assUpdMap: ' + JSON.serialize(assUpdMap));
      System.debug(
        LoggingLevel.INFO,
        '*11** assUpdMap: ' + JSON.serialize(assUpdMap)
      );
            //Asset变更的时候 更新Asset的 Last_Reserve_RAES_Detail__c
            changeAssetLast();
            System.debug(LoggingLevel.INFO, '*22** assUpdMap: ' + JSON.serialize(assUpdMap));
      System.debug(
        LoggingLevel.INFO,
        '*22** assUpdMap: ' + JSON.serialize(assUpdMap)
      );
            // Asset.Out_of_wh__c+ -
            changeAssetCount();
            System.debug(LoggingLevel.INFO, '*33* assUpdMap: ' + JSON.serialize(assUpdMap));
      System.debug(
        LoggingLevel.INFO,
        '*33* assUpdMap: ' + JSON.serialize(assUpdMap)
      );
            // change Consumable_Guaranteen_end__c OLY_OCM-601
            changeAssetConsumable_Guaranteen_end();
            System.debug(LoggingLevel.INFO, '*44** assUpdMap: ' + JSON.serialize(assUpdMap));
      System.debug(
        LoggingLevel.INFO,
        '*44** assUpdMap: ' + JSON.serialize(assUpdMap)
      );
            // 同じblock の 排队レコード Queue_Number__c をrefresh
            // refreshQueueNumberByBlock();
            if (!assUpdMap.isEmpty()) {
                System.debug(LoggingLevel.INFO, '*----** assUpdMap: ' + JSON.serialize(assUpdMap));
        System.debug(
          LoggingLevel.INFO,
          '*----** assUpdMap: ' + JSON.serialize(assUpdMap)
        );
                update assUpdMap.values();
            }
            // 4-XX 的 一对一对应
@@ -2984,7 +215,10 @@
            Set<Id> raesdAssignSet = new Set<Id>();
            for (Rental_Apply_Equipment_Set_Detail__c nObj : newList) {
                Rental_Apply_Equipment_Set_Detail__c oObj = oldMap.get(nObj.Id);
                if (String.isBlank(oObj.Return_DeliverySlip__c) && String.isNotBlank(nObj.Return_DeliverySlip__c)) {
        if (
          String.isBlank(oObj.Return_DeliverySlip__c) &&
          String.isNotBlank(nObj.Return_DeliverySlip__c)
        ) {
                    raesdSet.add(nObj.Id);
                }
                if (nObj.Select_Time__c != null && oObj.Select_Time__c == null) {
@@ -2994,7 +228,9 @@
            System.debug(raesdSet);
            if (raesdSet.size() > 0) {
                // 设置回寄通知内容
                RentalApplyEquipmentSetDetailHandler.setRequestAsset_return_Text(raesdSet);
        RentalApplyEquipmentSetDetailHandler.setRequestAsset_return_Text(
          raesdSet
        );
            }
            if (raesdAssignSet.size() > 0) {
@@ -3012,33 +248,48 @@
    }
    private Map<Id, Asset> createAssetMap() {
        Set<Id> assIds = new Set<Id>();
        String ra_RecordTypeId = DEVELOPERNAMEMAP.get('AgencyRequest').getRecordTypeId();
    String ra_RecordTypeId = DEVELOPERNAMEMAP.get('AgencyRequest')
      .getRecordTypeId();
        List<Rental_Apply_Equipment_Set_Detail__c> objList = new List<Rental_Apply_Equipment_Set_Detail__c>();
        if(Trigger.isInsert) {
            objList = newList;
        }
        else {
    } else {
            objList = oldList;
        }
        for (Rental_Apply_Equipment_Set_Detail__c obj : objList) {
            if(ra_RecordTypeId != null
                && obj.RA_RecordTypeId__c.substring(0,15) == ra_RecordTypeId.substring(0,15)
                && obj.Asset__c != null && obj.Select_Time__c != null
                && (Trigger.isDelete || Trigger.isInsert)) {
      if (
        ra_RecordTypeId != null &&
        obj.RA_RecordTypeId__c.substring(0, 15) ==
        ra_RecordTypeId.substring(0, 15) &&
        obj.Asset__c != null &&
        obj.Select_Time__c != null &&
        (Trigger.isDelete || Trigger.isInsert)
      ) {
                assIds.add(obj.Asset__c);
            }
        }
        Map<Id, Asset> m = new Map<Id, Asset>();
        if (!assIds.isEmpty()) {
            m = new Map<Id, Asset>([
                    Select Id, Quantity, Status, Manage_type__c,
                           Out_of_wh__c, Rental_Count__c, Abandoned_Inventory__c, Abandoned_RealThing__c,
      m = new Map<Id, Asset>(
        [
          SELECT
            Id,
            Quantity,
            Status,
            Manage_type__c,
            Out_of_wh__c,
            Rental_Count__c,
            Abandoned_Inventory__c,
            Abandoned_RealThing__c,
                           Confirm_Lost_Count__c
                    From Asset
                    Where Id =: assIds
                      and Asset_loaner_category__c != '耗材'
                      and RecordTypeId = '01210000000kOPR'
                      FOR UPDATE]);
          FROM Asset
          WHERE
            Id = :assIds
            AND Asset_loaner_category__c != '耗材'
            AND RecordTypeId = '01210000000kOPR'
          FOR UPDATE
        ]
      );
        }
        return m;
    }
@@ -3054,8 +305,7 @@
                    }
                    if(ass.Out_of_wh__c == null) {
                        ass.Out_of_wh__c = 1;
                    }
                    else {
          } else {
                        ass.Out_of_wh__c += 1;
                    }
                    assUpdMap.put(ass.Id, ass);
@@ -3083,21 +333,22 @@
    }
    private void deleteCheck() {
        String ra_RecordTypeId = DEVELOPERNAMEMAP.get('AgencyRequest').getRecordTypeId();
    String ra_RecordTypeId = DEVELOPERNAMEMAP.get('AgencyRequest')
      .getRecordTypeId();
        for (Rental_Apply_Equipment_Set_Detail__c oObj : oldList) {
            if (
                (oObj.RA_RecordTypeId__c.substring(0,15) != ra_RecordTypeId.substring(0,15)
                    &&(oObj.Rental_Apply_Request_approval_time_F__c != null
                        && oObj.ApplyPersonAppended_F__c == false)
                        || (oObj.ApplyPersonAppended_F__c == true && oObj.Add_Request_approval_time__c != null)
                )
                || (oObj.RA_RecordTypeId__c.substring(0,15) == ra_RecordTypeId.substring(0,15)
                    && (oObj.Rental_Apply_Request_approval_time_F__c != null
                        && (oObj.Rental_Apply_CreatedDate_F__c > oObj.CreatedDate
                            || oObj.StockDown__c == true)
                        && !oObj.canDelete__c  //20210523 ljh add 1829
                    )
                )
        (oObj.RA_RecordTypeId__c.substring(0, 15) !=
        ra_RecordTypeId.substring(0, 15) &&
        (oObj.Rental_Apply_Request_approval_time_F__c != null &&
        oObj.ApplyPersonAppended_F__c == false) ||
        (oObj.ApplyPersonAppended_F__c == true &&
        oObj.Add_Request_approval_time__c != null)) ||
        (oObj.RA_RecordTypeId__c.substring(0, 15) ==
        ra_RecordTypeId.substring(0, 15) &&
        (oObj.Rental_Apply_Request_approval_time_F__c != null &&
        (oObj.Rental_Apply_CreatedDate_F__c > oObj.CreatedDate ||
        oObj.StockDown__c == true) &&
        !oObj.canDelete__c)) //20210523 ljh add 1829
            ) {
                oObj.addError('已经批准的备品借出明细不能做物理删除。');
            }
@@ -3106,10 +357,11 @@
    private void setConsumSend_Rental_Apply_EmailTime() {
        if (shipment_requestedRaIdSet.isEmpty() == false) {
            List<Consum_Apply__c> caList = [SELECT Id
                        , Loaner_centre_mail_address__c
      List<Consum_Apply__c> caList = [
        SELECT Id, Loaner_centre_mail_address__c
                     FROM Consum_Apply__c
                    WHERE Rental_Apply__c = :shipment_requestedRaIdSet];
        WHERE Rental_Apply__c = :shipment_requestedRaIdSet
      ];
            if (caList.size() > 0) {
                Datetime dt = Datetime.now();
                for (Consum_Apply__c ca : caList) {
@@ -3126,11 +378,19 @@
        for (Rental_Apply_Equipment_Set_Detail__c nObj : newList) {
            raesdSet.add(nObj.Rental_Apply_Equipment_Set__c);
        }
        Map<Id, Rental_Apply_Equipment_Set__c> raesdMap = new Map<Id, Rental_Apply_Equipment_Set__c>([Select Id, Fixture_Set__r.Name ,
                IndexFromUniqueKey__c
                From Rental_Apply_Equipment_Set__c
                Where Id =: raesdSet]);
        String agencyRecordTypeId = DEVELOPERNAMEMAP.get('AgencyRequest').getRecordTypeId();
    Map<Id, Rental_Apply_Equipment_Set__c> raesdMap = new Map<Id, Rental_Apply_Equipment_Set__c>(
      [
        SELECT Id, Fixture_Set__r.Name, IndexFromUniqueKey__c
        FROM Rental_Apply_Equipment_Set__c
        WHERE Id = :raesdSet
      ]
    );
    String agencyRecordTypeId = DEVELOPERNAMEMAP.get('AgencyRequest')
      .getRecordTypeId();
    // 备品性能优化改修 20230312 by lc Start
    String userid = UserInfo.getUserId();
    // 备品性能优化改修 20230312 by lc End
        for (Rental_Apply_Equipment_Set_Detail__c nObj : newList) {
            //因为是Insert时候设值  情况1,申请新建会设值  情况2,NG拷贝出来的时候会设值
@@ -3146,29 +406,42 @@
                // 1 --- 追加附属品
                // 0 --- Cancel拷贝
                // null --- 普通新规
                if (nObj.Create_State__c == null
                        && nObj.Rental_Apply_Request_approval_time_F__c != null
                        && nObj.Substitute_Select_Again__c == false // OLY_OCM-404 分配代替品
        if (
          nObj.Create_State__c == null &&
          !FixtureUtil.isRepairRenewal &&
          nObj.Rental_Apply_Request_approval_time_F__c != null &&
          nObj.Substitute_Select_Again__c == false && // OLY_OCM-404 分配代替品
                        // 办事处分配时追加的明细不算追加附属品
                        && nObj.RA_RecordTypeId__c.substring(0,15) != agencyRecordTypeId.substring(0,15)) {
          nObj.RA_RecordTypeId__c.substring(0, 15) !=
          agencyRecordTypeId.substring(0, 15)
        ) {
                    nObj.Create_State__c = 1;
                }
                nObj.FSD_Is_Optional__c = nObj.FSD_Is_Optional_F__c;
                // 办事处在分配中强制设为true时,不从FSD拷贝
                if(nObj.RA_RecordTypeId__c.substring(0,15) != agencyRecordTypeId.substring(0,15) || !nObj.FSD_Is_OneToOne__c) {
        if (
          nObj.RA_RecordTypeId__c.substring(0, 15) !=
          agencyRecordTypeId.substring(0, 15) || !nObj.FSD_Is_OneToOne__c
        ) {
                    nObj.FSD_Is_OneToOne__c = nObj.FSD_Is_OneToOne_F__c;
                }
                nObj.FSD_Name_CHN__c    = nObj.Fixture_Name_F__c;
                nObj.FSD_OneToOneAccessory_Cnt__c = nObj.FSD_OneToOneAccessory_Cnt_F__c;
                nObj.FSD_Fixture_Model_No__c = nObj.Fixture_Model_No_F__c;
                if (nObj.DataMigration_Flag__c == false && (!Trigger.isUpdate || String.isNotBlank(nObj.Fixture_Set_Id__c))) {
        if (
          nObj.DataMigration_Flag__c == false &&
          (!Trigger.isUpdate || String.isNotBlank(nObj.Fixture_Set_Id__c))
        ) {
                    nObj.Fixture_Model_No_text__c = nObj.Fixture_Model_No_F__c;
                }
                nObj.CreatedBy_ProfileId__c = UserInfo.getProfileId();
//              nObj.ApplyPersonAppended__c = nObj.ApplyPersonAppended_F__c;
            }
            if (nObj.DeliverySlip__c != null
                    && nObj.DataMigration_Flag__c == false && (!Trigger.isUpdate || String.isNotBlank(nObj.Fixture_Set_Id__c))) {
      if (
        nObj.DeliverySlip__c != null &&
        nObj.DataMigration_Flag__c == false &&
        (!Trigger.isUpdate || String.isNotBlank(nObj.Fixture_Set_Id__c))
      ) {
                if (nObj.Shippment_loaner_time__c == null) {
                    nObj.Shippment_loaner_time__c = nObj.Shippment_loaner_time2__c;
                }
@@ -3176,48 +449,79 @@
            nObj.DeliverySlip_Text__c = nObj.DeliverySlip__c;
            nObj.Return_DeliverySlip_Text__c = nObj.Return_DeliverySlip__c;
            nObj.Received_Confirm_Text__c = nObj.Received_Confirm_F__c;
      //备品发货报错对应 20230413 by lc Start
      nObj.Detail_Not_Finish_Text__c = !nObj.Detail_Finish__c;
      //备品发货报错对应 20230413 by lc End
            Rental_Apply_Equipment_Set_Detail__c oObj = null;
            if (Trigger.isUpdate) {
                oObj = oldMap.get(nObj.Id);
                //出库前检查NGの場合キャンセルします
                if(oObj.Inspection_result__c != 'NG' && nObj.Inspection_result__c == 'NG') {
        if (
          oObj.Inspection_result__c != 'NG' &&
          nObj.Inspection_result__c == 'NG'
        ) {
                    nObj.Cancel_Select__c = true;
                    nObj.Loaner_cancel_reason__c = '其他';// 20210830 ljh SFDC-C448KZ add
                    nObj.Cancel_Reason__c = '重新分配';
                    nObj.Loaner_cancel_Remarks__c = '出库前检查NG';
                }
                // OLY_OCM-435対応 start
                String userid = UserInfo.getUserId();
        // 备品性能优化改修 20230312 by lc Start
        //String userid = UserInfo.getUserId();
        // 备品性能优化改修 20230312 by lc End
                DateTime now = System.now();
                if (oObj.Inspection_result__c != nObj.Inspection_result__c && String.isNotBlank(nObj.Inspection_result__c)) {
        if (
          oObj.Inspection_result__c != nObj.Inspection_result__c &&
          String.isNotBlank(nObj.Inspection_result__c)
        ) {
                    nObj.Pre_inspection_time__c = now;
                    //20210428 ljh 1719 update start
                    //nObj.Inspection_staff__c = userid;
                    nObj.Inspection_staff__c  =  nObj.RA_RecordTypeId__c == Schema.SObjectType.Rental_Apply__c.getRecordTypeInfosByDeveloperName().get('AgencyRequest').getRecordTypeId() ?null:userid;
          nObj.Inspection_staff__c = nObj.RA_RecordTypeId__c ==
            Schema.SObjectType.Rental_Apply__c.getRecordTypeInfosByDeveloperName()
              .get('AgencyRequest')
              .getRecordTypeId()
            ? null
            : userid;
                    //20210428 ljh 1719 update start
                }
                if (oObj.Check_lost_Item_Final__c != nObj.Check_lost_Item_Final__c && String.isNotBlank(nObj.Check_lost_Item_Final__c)) {
        if (
          oObj.Check_lost_Item_Final__c != nObj.Check_lost_Item_Final__c &&
          String.isNotBlank(nObj.Check_lost_Item_Final__c)
        ) {
                    nObj.Lost_item_check_time_Final__c = now;
                    nObj.Lost_item_check_staff_Final__c = userid;
                }
                if (oObj.Check_lost_Item__c != nObj.Check_lost_Item__c && String.isNotBlank(nObj.Check_lost_Item__c)) {
        if (
          oObj.Check_lost_Item__c != nObj.Check_lost_Item__c &&
          String.isNotBlank(nObj.Check_lost_Item__c)
        ) {
                    nObj.Lost_item_check_time__c = now;
                    nObj.Lost_item_check_staff__c = userid;
                }
                if (oObj.CDS_complete__c != nObj.CDS_complete__c && nObj.CDS_complete__c) {
        if (
          oObj.CDS_complete__c != nObj.CDS_complete__c && nObj.CDS_complete__c
        ) {
                    nObj.CDS_complete_time__c = now;
                    nObj.CDS_staff__c = userid;
                }
                if (oObj.Inspection_result_after_Final__c != nObj.Inspection_result_after_Final__c && String.isNotBlank(nObj.Inspection_result_after_Final__c)) {
        if (
          oObj.Inspection_result_after_Final__c !=
          nObj.Inspection_result_after_Final__c &&
          String.isNotBlank(nObj.Inspection_result_after_Final__c)
        ) {
                    nObj.After_Inspection_time_Final__c = now;
                    nObj.Inspection_staff_After_Final__c = userid;
                }
                if (oObj.Inspection_result_after__c != nObj.Inspection_result_after__c && String.isNotBlank(nObj.Inspection_result_after__c)) {
        if (
          oObj.Inspection_result_after__c != nObj.Inspection_result_after__c &&
          String.isNotBlank(nObj.Inspection_result_after__c)
        ) {
                    // 检测结果更新了但时间没有手动更新,则更新时间
                    // 如果手动更新了时间,就不用再更新
                    if(oObj.After_Inspection_time__c == nObj.After_Inspection_time__c) {
@@ -3225,43 +529,60 @@
                    }
                    //20210716 ljh 1719 update start
                    //nObj.Inspection_staff_After__c = userid;
                    nObj.Inspection_staff_After__c  =  nObj.RA_RecordTypeId__c == Schema.SObjectType.Rental_Apply__c.getRecordTypeInfosByDeveloperName().get('AgencyRequest').getRecordTypeId() ?null:userid;
          nObj.Inspection_staff_After__c = nObj.RA_RecordTypeId__c ==
            Schema.SObjectType.Rental_Apply__c.getRecordTypeInfosByDeveloperName()
              .get('AgencyRequest')
              .getRecordTypeId()
            ? null
            : userid;
                    //20210716 ljh 1719 update start
                }
                // OLY_OCM-435対応 end
                if(nObj.Detail_Finish__c) {
                    nObj.RAESD_Status_Text__c = nObj.Id;
                }
                else{
        } else {
                    nObj.RAESD_Status_Text__c = nObj.RAESD_Status__c;
                }
            }
            Rental_Apply_Equipment_Set__c raes = raesdMap.get(nObj.Rental_Apply_Equipment_Set__c);
      Rental_Apply_Equipment_Set__c raes = raesdMap.get(
        nObj.Rental_Apply_Equipment_Set__c
      );
            //画面显示用clone出来的数据不需要设置Name
            //IndexFromUniqueKey__c.format()会报错 要判不是Null
            if (nObj.DataMigration_Flag__c == false
                    && raes != null
                    && String.isNotBlank(raes.Fixture_Set__r.Name)
                    && raes.IndexFromUniqueKey__c != null
                    && nObj.IndexFromUniqueKey__c != null
                    && (!Trigger.isUpdate || String.isNotBlank(nObj.Fixture_Set_Id__c))) {
      if (
        nObj.DataMigration_Flag__c == false &&
        raes != null &&
        String.isNotBlank(raes.Fixture_Set__r.Name) &&
        raes.IndexFromUniqueKey__c != null &&
        nObj.IndexFromUniqueKey__c != null &&
        (!Trigger.isUpdate || String.isNotBlank(nObj.Fixture_Set_Id__c))
      ) {
                String split_ApplyNum = nObj.RequestNoJoinStr2__c;
                if (nObj.Rental_Apply_r_Name__c.contains('_')) {
                    // XXXX-YYYY_1 (ZZZZ_1)
                    List<String> split_ApplyNumList = nObj.Rental_Apply_r_Name__c.split('_');
          List<String> split_ApplyNumList = nObj.Rental_Apply_r_Name__c.split(
            '_'
          );
                    String raName = split_ApplyNumList[split_ApplyNumList.size() - 2];      // XXXX-YYYY (ZZZZ)
                    split_ApplyNum = split_ApplyNumList[split_ApplyNumList.size() - 1];     // 1
                    split_ApplyNumList = raName.split('-');     // [XXXX, YYYY]  ([ZZZZ])
                    if (split_ApplyNumList.size() > 1) {
                        // YYYY_1
                        split_ApplyNum = split_ApplyNumList[split_ApplyNumList.size() - 1] + '_' + split_ApplyNum;
            split_ApplyNum =
              split_ApplyNumList[split_ApplyNumList.size() - 1] +
              '_' +
              split_ApplyNum;
                    } else {
                        // ZZZZ_1
                        split_ApplyNum = nObj.Rental_Apply_r_Name__c;
                    }
                }
                nObj.Name = split_ApplyNum + ':' + raes.Fixture_Set__r.Name + ':'
                        + raes.IndexFromUniqueKey__c.format().leftpad(3, '0');
        nObj.Name =
          split_ApplyNum +
          ':' +
          raes.Fixture_Set__r.Name +
          ':' +
          raes.IndexFromUniqueKey__c.format().leftpad(3, '0');
                // 如果是分配代替品名字加:Sub
                if (nObj.Substitute_Select_Again__c) {
@@ -3272,8 +593,11 @@
                if (nObj.Received_Confirm_F__c == 'NG') {
                    nObj.Name += ':NG';
                }
                nObj.Name += ':' + nObj.IndexFromUniqueKey_Text__c + ':'
                        + nObj.IndexFromUniqueKey__c.format().leftpad(3, '0');
        nObj.Name +=
          ':' +
          nObj.IndexFromUniqueKey_Text__c +
          ':' +
          nObj.IndexFromUniqueKey__c.format().leftpad(3, '0');
                //取消的时候名字加Canceled
                if (nObj.Cancel_Select__c) {
                    nObj.Name += ':Canceled';
@@ -3283,22 +607,33 @@
            nObj.Loaner_centre_mail_address__c = nObj.Loaner_centre_mail_address_F__c;
            // 20220117 ljh add start
            // 更新排队预计 公式拷文本
            if(Trigger.isUpdate && String.isBlank(nObj.Asset__c) == false && oObj.Asset__c != nObj.Asset__c){
      if (
        Trigger.isUpdate &&
        String.isBlank(nObj.Asset__c) == false &&
        oObj.Asset__c != nObj.Asset__c
      ) {
                nObj.UQueueShippmentDateText__c = nObj.UQueueShippmentDate__c;
            }
            // 20220117 ljh add end
            // 分配时, 设值
            if (String.isBlank(nObj.Asset__c) == false && nObj.Select_Time__c != null
                    && (Trigger.isInsert
                            || (oObj.Asset__c != nObj.Asset__c || oObj.Select_Time__c != nObj.Select_Time__c)
                    )
      if (
        String.isBlank(nObj.Asset__c) == false &&
        nObj.Select_Time__c != null &&
        (Trigger.isInsert ||
        (oObj.Asset__c != nObj.Asset__c ||
        oObj.Select_Time__c != nObj.Select_Time__c))
            ) {
                // 一对一保管主体(借出时)
                // nObj.Main_OneToOne_FlagInt__c = nObj.Main_OneToOne_FlagInt__c;
                if (nObj.DataMigration_Flag__c == false && (!Trigger.isUpdate || String.isNotBlank(nObj.Fixture_Set_Id__c))) {
        if (
          nObj.DataMigration_Flag__c == false &&
          (!Trigger.isUpdate || String.isNotBlank(nObj.Fixture_Set_Id__c))
        ) {
                    // 备品配套明细型号(借出时)
                    if (String.isBlank(nObj.Fixture_Model_No_F__c)) {
                        nObj.addError('分配的Asset:'+ nObj.Asset__c + ', 没有设定 备品配套明细型号');
            nObj.addError(
              '分配的Asset:' + nObj.Asset__c + ', 没有设定 备品配套明细型号'
            );
                    } else {
                        nObj.Fixture_Model_No_text__c = nObj.Fixture_Model_No_F__c;
                    }
@@ -3327,9 +662,14 @@
                }
            }
            // 排队时, 要注意 设值 移动到排队btn里
            else if (Trigger.isUpdate && String.isBlank(nObj.Asset__c) && oObj.Cancel_Select__c == false
      else if (
        Trigger.isUpdate &&
        String.isBlank(nObj.Asset__c) &&
        oObj.Cancel_Select__c == false &&
                    // && oObj.Fixture_Model_No_text__c != nObj.Fixture_Model_No_text__c
                    && (oObj.Queue_Number__c == 0 || oObj.Queue_Number__c == null) && nObj.Queue_Number__c > 0
        (oObj.Queue_Number__c == 0 ||
        oObj.Queue_Number__c == null) &&
        nObj.Queue_Number__c > 0
            ) {
                // 排队时重新赋值Fixture_Model_No_text__c 为了排的不是旧Model_No
                nObj.FSD_Fixture_Model_No__c = nObj.Fixture_Model_No_F__c;
@@ -3348,11 +688,18 @@
            }
            // 其他时候(申请时), null设值 和
            // 一对一已分配的附属品,主体重新排队时,一对一附属品需要重新按照申请的逻辑重新赋值
            else if ((Trigger.isInsert && nObj.Cancel_Select__c == false)
                    || (Trigger.isUpdate && String.isBlank(nObj.Asset__c) && oObj.Cancel_Select__c == false)) {
      else if (
        (Trigger.isInsert && nObj.Cancel_Select__c == false) ||
        (Trigger.isUpdate &&
        String.isBlank(nObj.Asset__c) &&
        oObj.Cancel_Select__c == false)
      ) {
                // 备品配套明细型号(借出时)
                if (String.isBlank(nObj.Fixture_Model_No_text__c)
                        && nObj.DataMigration_Flag__c == false && (!Trigger.isUpdate || String.isNotBlank(nObj.Fixture_Set_Id__c))) {
        if (
          String.isBlank(nObj.Fixture_Model_No_text__c) &&
          nObj.DataMigration_Flag__c == false &&
          (!Trigger.isUpdate || String.isNotBlank(nObj.Fixture_Set_Id__c))
        ) {
                    nObj.Fixture_Model_No_text__c = nObj.Fixture_Model_No_F__c;
                }
                // 所在地区(省) 借出时 #OLY_OCM-654:因为是赋值所以不修改
@@ -3390,19 +737,26 @@
            } else {
                // 取消的情况在下面有设值
            }
            if (nObj.DataMigration_Flag__c == false && nObj.Cancel_Select__c == false
                    && (!Trigger.isUpdate || String.isNotBlank(nObj.Fixture_Set_Id__c))) {
      if (
        nObj.DataMigration_Flag__c == false &&
        nObj.Cancel_Select__c == false &&
        (!Trigger.isUpdate || String.isNotBlank(nObj.Fixture_Set_Id__c))
      ) {
                if (String.isBlank(nObj.Fixture_Model_No_text__c)) {
                    nObj.addError(nObj.Id + ':备品配套明细型号不能为空, 备品配套明细=' + nObj.Fixture_Set_Detail__c);
          nObj.addError(
            nObj.Id +
              ':备品配套明细型号不能为空, 备品配套明细=' +
              nObj.Fixture_Set_Detail__c
          );
                }
                // #OLY_OCM-654 数量管理的话,所在地区(本部)&产品分类&备品分类的判断不需要 Start
                if ('数量管理' == nObj.Manage_type_F__c ) {  // || false == nObj.Loaner_accsessary__c TODO: 需确认
        if ('数量管理' == nObj.Manage_type_F__c) {
          // || false == nObj.Loaner_accsessary__c TODO: 需确认
                    if (String.isBlank(nObj.Internal_asset_location_before__c)) {
                        nObj.addError('备品存放地不能为空');
                    }
                }
                else {
        } else {
                // #OLY_OCM-654 数量管理的话,所在地区(本部)&产品分类&备品分类的判断不需要 end
                    if (String.isBlank(nObj.Salesdepartment_before__c)) {
                        nObj.addError('所在地区(本部)不能为空');
@@ -3410,10 +764,16 @@
                    if (String.isBlank(nObj.Internal_asset_location_before__c)) {
                        nObj.addError('备品存放地不能为空');
                    }
                    if (String.isBlank(nObj.Product_category_text__c) && nObj.Is_Body__c) {
          if (
            String.isBlank(nObj.Product_category_text__c) && nObj.Is_Body__c
          ) {
                        nObj.addError('产品分类(GI/SP)不能为空');
                    }
                    if (String.isBlank(nObj.Equipment_Type_text__c) && nObj.Is_Body__c && nObj.Demo_purpose1__c != '其他') {
          if (
            String.isBlank(nObj.Equipment_Type_text__c) &&
            nObj.Is_Body__c &&
            nObj.Demo_purpose1__c != '其他'
          ) {
                        nObj.addError('备品分类不能为空');
                    }
                    // if (String.isBlank(nObj.SalesProvince_before__c) && nObj.Is_Body__c) {
@@ -3421,12 +781,20 @@
                    // }
                }
            }
            if (nObj.DataMigration_Flag__c == false
                    && String.isNotBlank(nObj.FSD_Id__c)
                    && (!Trigger.isUpdate || String.isNotBlank(nObj.Fixture_Set_Id__c))) {
      if (
        nObj.DataMigration_Flag__c == false &&
        String.isNotBlank(nObj.FSD_Id__c) &&
        (!Trigger.isUpdate || String.isNotBlank(nObj.Fixture_Set_Id__c))
      ) {
                //出库指示更新明细的key
                nObj.UniqueKey__c = nObj.RequestNoJoinStr2__c + ':'+ nObj.Rental_Apply_Equipment_Set__c
                        + ':' + nObj.FSD_Id__c + ':' + nObj.IndexFromUniqueKey__c;
        nObj.UniqueKey__c =
          nObj.RequestNoJoinStr2__c +
          ':' +
          nObj.Rental_Apply_Equipment_Set__c +
          ':' +
          nObj.FSD_Id__c +
          ':' +
          nObj.IndexFromUniqueKey__c;
                if (nObj.Cancel_Select__c) {
                    nObj.UniqueKey__c += nObj.Id;
                    // 下架后的取消加;
@@ -3434,8 +802,11 @@
                        nObj.UniqueKey__c += ';' + nObj.Id;
                    }
                    // nObj.Queue_Number__c = null;
                    if (nObj.StockDown__c && nObj.Inspection_result__c != 'NG'
                            && String.isBlank(nObj.DeliverySlip__c)) {
          if (
            nObj.StockDown__c &&
            nObj.Inspection_result__c != 'NG' &&
            String.isBlank(nObj.DeliverySlip__c)
          ) {
                        nObj.OnStock_By_Cancel__c = true;
//                      nObj.Inspection_result_after_Flag_Text__c = 'true';
                    }
@@ -3456,8 +827,17 @@
                    if(nObj.AgencyTempCancel__c) {
                        if(nObj.AgencyTempCancelTime__c != null) {
                            Datetime dt = nObj.AgencyTempCancelTime__c;
                            nObj.Cancel_Time__c = Time.newInstance(dt.hour(), dt.minute(), dt.second(), dt.millisecond());
                            nObj.Cancel_Date__c = Date.newinstance(dt.year(), dt.month(), dt.day());
              nObj.Cancel_Time__c = Time.newInstance(
                dt.hour(),
                dt.minute(),
                dt.second(),
                dt.millisecond()
              );
              nObj.Cancel_Date__c = Date.newinstance(
                dt.year(),
                dt.month(),
                dt.day()
              );
                        }
                    }
                    nObj.AgencyTempCancel__c = false; // 真取消时把临时取消标记清掉
@@ -3468,7 +848,10 @@
                        nObj.Shipment_request_time2__c = null;
                        nObj.Shipment_request__c = false;
                        // 根据OLY_OCM-243记载,取消也需要清除接借出时相关的字段
                        if (nObj.DataMigration_Flag__c == false && (!Trigger.isUpdate || String.isNotBlank(nObj.Fixture_Set_Id__c))) {
            if (
              nObj.DataMigration_Flag__c == false &&
              (!Trigger.isUpdate || String.isNotBlank(nObj.Fixture_Set_Id__c))
            ) {
                            // 备品配套明细型号(借出时)
                            nObj.Fixture_Model_No_text__c = nObj.FSD_Fixture_Model_No__c;
                        }
@@ -3493,9 +876,14 @@
                    }
                    //20201118 ljh add
                    else{
                        String ra_RecordTypeId = DEVELOPERNAMEMAP.get('AgencyRequest').getRecordTypeId();
            String ra_RecordTypeId = DEVELOPERNAMEMAP.get('AgencyRequest')
              .getRecordTypeId();
                        //System.debug('ra_RecordTypeId:'+ra_RecordTypeId);
                        if(ra_RecordTypeId !=null && nObj.RA_RecordTypeId__c.substring(0,15) == ra_RecordTypeId.substring(0,15)){
            if (
              ra_RecordTypeId != null &&
              nObj.RA_RecordTypeId__c.substring(0, 15) ==
              ra_RecordTypeId.substring(0, 15)
            ) {
                            //nObj.Inspection_result__c = 'OK';
                            nObj.Inspection_result_NG__c = null;
                            nObj.Arrival_in_wh__c = true;
@@ -3529,49 +917,52 @@
            // nObj.Return_Status_Text__c = nObj.Return_Status_F__c;
            // nObj.Shipment_Status_Text__c = nObj.Shipment_Status_F__c;
            nObj.Canceled_Id__c = nObj.Canceled__c;
            if (Trigger.isUpdate
                && ((oObj.Inspection_result_after_Final__c != 'NG'
                        && nObj.Inspection_result_after_Final__c == 'NG'
                        && nObj.Inspection_result_after_NG_Final__c == '维修')
                    || (oObj.Inspection_result_after__c != 'NG'
                        && nObj.Inspection_result_after__c == 'NG'
                        && nObj.Inspection_result_after_NG__c == '维修')
                )
      if (
        Trigger.isUpdate &&
        ((oObj.Inspection_result_after_Final__c != 'NG' &&
        nObj.Inspection_result_after_Final__c == 'NG' &&
        nObj.Inspection_result_after_NG_Final__c == '维修') ||
        (oObj.Inspection_result_after__c != 'NG' &&
        nObj.Inspection_result_after__c == 'NG' &&
        nObj.Inspection_result_after_NG__c == '维修'))
            ) {
                nObj.Repair__c = null;
            }
            // OLY_OCM-531 Start 搬工作流规则
            if (nObj.Check_lost_Item_F__c == '欠品'
                    && nObj.Loaner_Giveup_Time__c == null
                    && nObj.Lost_item_giveup__c == true) {
      if (
        nObj.Check_lost_Item_F__c == '欠品' &&
        nObj.Loaner_Giveup_Time__c == null &&
        nObj.Lost_item_giveup__c == true
      ) {
                nObj.Loaner_Giveup_Time__c = Datetime.now();
            }
            if (nObj.RAESD_Status__c == '排队中'
                    && nObj.Queue_Day_Text__c == null) {
      if (nObj.RAESD_Status__c == '排队中' && nObj.Queue_Day_Text__c == null) {
                nObj.Queue_Day_Text__c = nObj.Queue_Day__c;
                nObj.Queue_Time_Text__c = nObj.Queue_Time__c;
            }
            // OLY_OCM-531 End
            if (Trigger.isUpdate
                    &&oObj.Confirm_Lost_Date__c != null
                    && oObj.Check_lost_Item_F__c != nObj.Check_lost_Item_F__c
                    && oObj.Check_lost_Item_F__c == '欠品') {
      if (
        Trigger.isUpdate &&
        oObj.Confirm_Lost_Date__c != null &&
        oObj.Check_lost_Item_F__c != nObj.Check_lost_Item_F__c &&
        oObj.Check_lost_Item_F__c == '欠品'
      ) {
                nObj.Confirm_Lost_Date__c = null;
            }
            if (Trigger.isUpdate
                    && oObj.Shipment_request_time2__c != nObj.Shipment_request_time2__c
                    && nObj.Shipment_request_time2__c != null
                    && nObj.Is_Body__c
                    && shipment_requestedRaIdStaticSet.contains(nObj.Rental_Apply__c) == false
      if (
        Trigger.isUpdate &&
        oObj.Shipment_request_time2__c != nObj.Shipment_request_time2__c &&
        nObj.Shipment_request_time2__c != null &&
        nObj.Is_Body__c &&
        shipment_requestedRaIdStaticSet.contains(nObj.Rental_Apply__c) == false
                ) {
                    shipment_requestedRaIdStaticSet.add(nObj.Rental_Apply__c);
                    shipment_requestedRaIdSet.add(nObj.Rental_Apply__c);
                }
        }
    }
    /*
@@ -3607,64 +998,101 @@
                if (ass.Confirm_Lost_Count__c == null) {
                    ass.Confirm_Lost_Count__c = 0;
                }
                if (String.isBlank(oObj.Check_lost_Item_F__c) && nObj.Check_lost_Item_F__c == 'OK') {
        if (
          String.isBlank(oObj.Check_lost_Item_F__c) &&
          nObj.Check_lost_Item_F__c == 'OK'
        ) {
                    //未入力から欠品に変更時何もしません
                } else if (String.isBlank(oObj.Check_lost_Item_F__c) && nObj.Check_lost_Item_F__c == '欠品'
                        && nObj.Lost_item_giveup__c == false) {
        } else if (
          String.isBlank(oObj.Check_lost_Item_F__c) &&
          nObj.Check_lost_Item_F__c == '欠品' &&
          nObj.Lost_item_giveup__c == false
        ) {
                    //未入力から欠品に変更時何もしません
                } else if (String.isBlank(oObj.Check_lost_Item_F__c) && nObj.Check_lost_Item_F__c == '欠品'
                    && nObj.Lost_item_giveup__c == true) {
        } else if (
          String.isBlank(oObj.Check_lost_Item_F__c) &&
          nObj.Check_lost_Item_F__c == '欠品' &&
          nObj.Lost_item_giveup__c == true
        ) {
                    //未入力から欠品放棄に変更時 放弃欠品回收(丢失)のとき 待废弃数(丢失/盘亏)加1
                    ass.Abandoned_Inventory__c += 1;
                    if (oObj.Confirm_Lost_Date__c != null) {
                        ass.Confirm_Lost_Count__c -= 1;
                    }
                    assUpdMap.put(ass.Id, ass);
                } else if (String.isBlank(oObj.Check_lost_Item_F__c) && nObj.Check_lost_Item_F__c == '消耗') {
        } else if (
          String.isBlank(oObj.Check_lost_Item_F__c) &&
          nObj.Check_lost_Item_F__c == '消耗'
        ) {
                    //未入力から消耗に変更時Quantityを-1
                    ass.Quantity -= 1;
                    ass.ChangeQuantityReason__c = '消耗';
                    assUpdMap.put(ass.Id, ass);
                } else if (oObj.Check_lost_Item_F__c == 'OK' && String.isBlank(nObj.Check_lost_Item_F__c)) {
        } else if (
          oObj.Check_lost_Item_F__c == 'OK' &&
          String.isBlank(nObj.Check_lost_Item_F__c)
        ) {
                    //OKから空白に変更時何もしません
                } else if (oObj.Check_lost_Item_F__c == 'OK' && nObj.Check_lost_Item_F__c == '欠品'
                        && nObj.Lost_item_giveup__c == false) {
        } else if (
          oObj.Check_lost_Item_F__c == 'OK' &&
          nObj.Check_lost_Item_F__c == '欠品' &&
          nObj.Lost_item_giveup__c == false
        ) {
                    //OKから欠品に変更時何もしません
                } else if (oObj.Check_lost_Item_F__c == 'OK' && nObj.Check_lost_Item_F__c == '欠品'
                        && nObj.Lost_item_giveup__c == true) {
        } else if (
          oObj.Check_lost_Item_F__c == 'OK' &&
          nObj.Check_lost_Item_F__c == '欠品' &&
          nObj.Lost_item_giveup__c == true
        ) {
                    //OKから欠品放棄に変更時 放弃欠品回收(丢失)のとき 待废弃数(丢失/盘亏)加1
                    ass.Abandoned_Inventory__c += 1;
                    if (oObj.Confirm_Lost_Date__c != null) {
                        ass.Confirm_Lost_Count__c -= 1;
                    }
                    assUpdMap.put(ass.Id, ass);
                } else if (oObj.Check_lost_Item_F__c == 'OK' && nObj.Check_lost_Item_F__c == '消耗') {
        } else if (
          oObj.Check_lost_Item_F__c == 'OK' &&
          nObj.Check_lost_Item_F__c == '消耗'
        ) {
                    //OKから消耗に変更時Quantityを-1
                    ass.Quantity -= 1;
                    ass.ChangeQuantityReason__c = '消耗';
                    assUpdMap.put(ass.Id, ass);
                } else if (oObj.Check_lost_Item_F__c == '欠品' && String.isBlank(nObj.Check_lost_Item_F__c)
                        && oObj.Lost_item_giveup__c == false) {
        } else if (
          oObj.Check_lost_Item_F__c == '欠品' &&
          String.isBlank(nObj.Check_lost_Item_F__c) &&
          oObj.Lost_item_giveup__c == false
        ) {
                    if (oObj.Confirm_Lost_Date__c != null) {
                        ass.Confirm_Lost_Count__c -= 1;
                    }
                    assUpdMap.put(ass.Id, ass);
                } else if (oObj.Check_lost_Item_F__c == '欠品' && nObj.Check_lost_Item_F__c == 'OK'
                        && oObj.Lost_item_giveup__c == false) {
        } else if (
          oObj.Check_lost_Item_F__c == '欠品' &&
          nObj.Check_lost_Item_F__c == 'OK' &&
          oObj.Lost_item_giveup__c == false
        ) {
                    if (oObj.Confirm_Lost_Date__c != null) {
                        ass.Confirm_Lost_Count__c -= 1;
                    }
                    assUpdMap.put(ass.Id, ass);
                } else if (oObj.Check_lost_Item_F__c == '欠品' && nObj.Check_lost_Item_F__c == '欠品'
                        && oObj.Lost_item_giveup__c == false && nObj.Lost_item_giveup__c == true) {
        } else if (
          oObj.Check_lost_Item_F__c == '欠品' &&
          nObj.Check_lost_Item_F__c == '欠品' &&
          oObj.Lost_item_giveup__c == false &&
          nObj.Lost_item_giveup__c == true
        ) {
                    //欠品から欠品放棄に変更時 放弃欠品回收(丢失)のとき 待废弃数(丢失/盘亏)加1
                    ass.Abandoned_Inventory__c += 1;
                    if (oObj.Confirm_Lost_Date__c != null) {
                        ass.Confirm_Lost_Count__c -= 1;
                    }
                    assUpdMap.put(ass.Id, ass);
                } else if (oObj.Check_lost_Item_F__c == '欠品' && nObj.Check_lost_Item_F__c == '消耗'
                        && oObj.Lost_item_giveup__c == false) {
        } else if (
          oObj.Check_lost_Item_F__c == '欠品' &&
          nObj.Check_lost_Item_F__c == '消耗' &&
          oObj.Lost_item_giveup__c == false
        ) {
                    //欠品から消耗に変更時Quantityを-1
                    ass.Quantity -= 1;
                    ass.ChangeQuantityReason__c = '消耗';
@@ -3672,97 +1100,153 @@
                        ass.Confirm_Lost_Count__c -= 1;
                    }
                    assUpdMap.put(ass.Id, ass);
                } else if (oObj.Check_lost_Item_F__c == '欠品' && String.isBlank(nObj.Check_lost_Item_F__c) && oObj.Lost_item_giveup__c == true) {
        } else if (
          oObj.Check_lost_Item_F__c == '欠品' &&
          String.isBlank(nObj.Check_lost_Item_F__c) &&
          oObj.Lost_item_giveup__c == true
        ) {
                    //欠品放棄から空白に変更時 待废弃数(丢失/盘亏)减1
                    ass.Abandoned_Inventory__c -= 1;
                    ass.Out_of_wh__c += 1;
                    ass.Rental_Count__c += 1;
                    ass.ChangeQuantityReason__c = '欠品' + '->' + '';
                    assUpdMap.put(ass.Id, ass);
                } else if (oObj.Check_lost_Item_F__c == '欠品' && nObj.Check_lost_Item_F__c == 'OK' && oObj.Lost_item_giveup__c == true) {
        } else if (
          oObj.Check_lost_Item_F__c == '欠品' &&
          nObj.Check_lost_Item_F__c == 'OK' &&
          oObj.Lost_item_giveup__c == true
        ) {
                    //欠品放棄からOKに変更時 待废弃数(丢失/盘亏)减1
                    ass.Abandoned_Inventory__c -= 1;
                    ass.Out_of_wh__c += 1;
                    ass.Rental_Count__c += 1;
                    ass.ChangeQuantityReason__c = '欠品' + '->' + 'OK';
                    assUpdMap.put(ass.Id, ass);
                } else if (oObj.Check_lost_Item_F__c == '欠品' && nObj.Check_lost_Item_F__c == '欠品'
                        && oObj.Lost_item_giveup__c == true && nObj.Lost_item_giveup__c == false) {
        } else if (
          oObj.Check_lost_Item_F__c == '欠品' &&
          nObj.Check_lost_Item_F__c == '欠品' &&
          oObj.Lost_item_giveup__c == true &&
          nObj.Lost_item_giveup__c == false
        ) {
                    //欠品放棄から欠品に変更時 待废弃数(丢失/盘亏)减1
                    ass.Abandoned_Inventory__c -= 1;
                    ass.Out_of_wh__c += 1;
                    ass.Rental_Count__c += 1;
                    ass.ChangeQuantityReason__c = '欠品放弃 -> ' + '欠品';
                    assUpdMap.put(ass.Id, ass);
                } else if (oObj.Check_lost_Item_F__c == '欠品' && nObj.Check_lost_Item_F__c == '消耗' && oObj.Lost_item_giveup__c == true) {
        } else if (
          oObj.Check_lost_Item_F__c == '欠品' &&
          nObj.Check_lost_Item_F__c == '消耗' &&
          oObj.Lost_item_giveup__c == true
        ) {
                    //欠品放棄から消耗に変更時 待废弃数(丢失/盘亏)减1 Quantityを-1
                    ass.Abandoned_Inventory__c -= 1;
                    ass.Quantity -= 1;
                } else if (oObj.Check_lost_Item_F__c == '消耗' && String.isBlank(nObj.Check_lost_Item_F__c)) {
        } else if (
          oObj.Check_lost_Item_F__c == '消耗' &&
          String.isBlank(nObj.Check_lost_Item_F__c)
        ) {
                    //消耗から空白に変更時Quantityを+1
                    ass.Quantity += 1;
                    ass.Out_of_wh__c += 1;
                    ass.Rental_Count__c += 1;
                    ass.ChangeQuantityReason__c = '消耗 -> ' + '';
                    assUpdMap.put(ass.Id, ass);
                } else if (oObj.Check_lost_Item_F__c == '消耗' && nObj.Check_lost_Item_F__c == 'OK') {
        } else if (
          oObj.Check_lost_Item_F__c == '消耗' &&
          nObj.Check_lost_Item_F__c == 'OK'
        ) {
                    //消耗から空白に変更時Quantityを+1
                    ass.Quantity += 1;
                    ass.Out_of_wh__c += 1;
                    ass.Rental_Count__c += 1;
                    ass.ChangeQuantityReason__c = '消耗 -> ' + 'OK';
                    assUpdMap.put(ass.Id, ass);
                } else if (oObj.Check_lost_Item_F__c == '消耗' && nObj.Check_lost_Item_F__c == '欠品'
                        && nObj.Lost_item_giveup__c == false) {
        } else if (
          oObj.Check_lost_Item_F__c == '消耗' &&
          nObj.Check_lost_Item_F__c == '欠品' &&
          nObj.Lost_item_giveup__c == false
        ) {
                    //消耗から欠品に変更時Quantityを+1
                    ass.Quantity += 1;
                    ass.Out_of_wh__c += 1;
                    ass.Rental_Count__c += 1;
                    ass.ChangeQuantityReason__c = '消耗 -> 欠品';
                    assUpdMap.put(ass.Id, ass);
                } else if (oObj.Check_lost_Item_F__c == '消耗' && nObj.Check_lost_Item_F__c == '欠品'
                        &&  nObj.Lost_item_giveup__c == true) {
        } else if (
          oObj.Check_lost_Item_F__c == '消耗' &&
          nObj.Check_lost_Item_F__c == '欠品' &&
          nObj.Lost_item_giveup__c == true
        ) {
                    //消耗から欠品放棄に変更時 待废弃数(丢失/盘亏)+1 Quantityを+1
                    ass.Abandoned_Inventory__c += 1;
                    ass.Quantity += 1;
                }
                // 维修
                if (oObj.Arrival_in_wh__c == false && nObj.Arrival_in_wh__c == true
                        && nObj.Arrival_wh_Result_Agency__c == '待修理') {
        if (
          oObj.Arrival_in_wh__c == false &&
          nObj.Arrival_in_wh__c == true &&
          nObj.Arrival_wh_Result_Agency__c == '待修理'
        ) {
                    ass.CountForRepair__c += 1;
                    assUpdMap.put(ass.Id, ass);
                }
                //废弃
                if (oObj.Arrival_in_wh__c == false && nObj.Arrival_in_wh__c == true
                        && (nObj.Inspection_result_after_NG_F__c == '废弃'
        if (
          oObj.Arrival_in_wh__c == false &&
          nObj.Arrival_in_wh__c == true &&
          (nObj.Inspection_result_after_NG_F__c == '废弃' ||
                            //出库前检测废弃的时候也需要判断
                            || nObj.Inspection_result_NG__c == '废弃')) {
          nObj.Inspection_result_NG__c == '废弃')
        ) {
                    ass.Abandoned_RealThing__c += 1;
                    ass.ChangeQuantityReason__c = FixtureUtil.raesdStatusMap.get(FixtureUtil.HistoryStatus.Dai_Fei_Qi.ordinal());
          ass.ChangeQuantityReason__c = FixtureUtil.raesdStatusMap.get(
            FixtureUtil.HistoryStatus.Dai_Fei_Qi.ordinal()
          );
                    assUpdMap.put(ass.Id, ass);
                } else if (oObj.Arrival_in_wh__c == true && nObj.Arrival_in_wh__c == false
                        && (oObj.Inspection_result_after_NG_F__c == '废弃'
        } else if (
          oObj.Arrival_in_wh__c == true &&
          nObj.Arrival_in_wh__c == false &&
          (oObj.Inspection_result_after_NG_F__c == '废弃' ||
                            //出库前检测废弃的时候也需要判断
                            || oObj.Inspection_result_NG__c == '废弃')) {
          oObj.Inspection_result_NG__c == '废弃')
        ) {
                    ass.Abandoned_RealThing__c -= 1;
                    ass.Out_of_wh__c += 1;
                    ass.Rental_Count__c += 1;
                    // ass.Freeze_sign__c = true; // OLY_OCM-689 删除冻结字段的更新
                    String rea = nObj.Inspection_result_after_NG_F__c == '废弃' ? '待移至报废区' : nObj.Inspection_result_after_NG_F__c;
                    ass.ChangeQuantityReason__c = FixtureUtil.raesdStatusMap.get(FixtureUtil.HistoryStatus.Dai_Fei_Qi.ordinal()) + ' ->' + rea;
          String rea = nObj.Inspection_result_after_NG_F__c == '废弃'
            ? '待移至报废区'
            : nObj.Inspection_result_after_NG_F__c;
          ass.ChangeQuantityReason__c =
            FixtureUtil.raesdStatusMap.get(
              FixtureUtil.HistoryStatus.Dai_Fei_Qi.ordinal()
            ) +
            ' ->' +
            rea;
                    assUpdMap.put(ass.Id, ass);
                }
                //待废弃
                if (nObj.RAESD_Status__c == FixtureUtil.raesdStatusMap.get(FixtureUtil.HistoryStatus.Dai_Fei_Qi.ordinal())
                        && oObj.RAESD_Status__c != nObj.RAESD_Status__c
                        && ass.Manage_type__c == '个体管理') {
                    ass.Status = FixtureUtil.assetStatusMap.get(FixtureUtil.AssetStatus.Dai_Fei_Qi.ordinal());
        if (
          nObj.RAESD_Status__c ==
          FixtureUtil.raesdStatusMap.get(
            FixtureUtil.HistoryStatus.Dai_Fei_Qi.ordinal()
          ) &&
          oObj.RAESD_Status__c != nObj.RAESD_Status__c &&
          ass.Manage_type__c == '个体管理'
        ) {
          ass.Status = FixtureUtil.assetStatusMap.get(
            FixtureUtil.AssetStatus.Dai_Fei_Qi.ordinal()
          );
                    // ass.Freeze_sign__c = true;
                    assUpdMap.put(ass.Id, ass);
                }
                // 办事处回库结果修改
                if(oObj.Arrival_in_wh__c && nObj.Arrival_in_wh__c
                    && oObj.Arrival_wh_Result_Agency__c != nObj.Arrival_wh_Result_Agency__c ) {
        if (
          oObj.Arrival_in_wh__c &&
          nObj.Arrival_in_wh__c &&
          oObj.Arrival_wh_Result_Agency__c != nObj.Arrival_wh_Result_Agency__c
        ) {
                    switch on oObj.Arrival_wh_Result_Agency__c {
                        when '移至报废区' {
                            ass.Abandoned_RealThing__c -=1;
@@ -3833,10 +1317,13 @@
                    ass = assUpdMap.get(nObj.Asset__c);
                }
                // 这里 会出现 assUpdMap 有 但是 assMap 没有的情况
                if (ass == null
        if (
          ass == null &&
                        //分配备品有变化 (下架前)
                        && (oObj.Asset__c != null && oObj.Asset__c != nObj.Asset__c
                                && nObj.StockDown__c == false)) {
          (oObj.Asset__c != null &&
          oObj.Asset__c != nObj.Asset__c &&
          nObj.StockDown__c == false)
        ) {
                    ass = new Asset(Id = oObj.Asset__c);
                }
                if (ass == null) {
@@ -3867,8 +1354,12 @@
                oass = new Asset(Id = oObj.Asset__c);
            }
            //nObj.Asset__cがある場合、変更した場合
            if (nObj.Asset__c != null && oObj.Asset__c != nObj.Asset__c
                    && (oObj.Manage_type_F__c == '个体管理' || nObj.Manage_type_F__c == '个体管理')) {
      if (
        nObj.Asset__c != null &&
        oObj.Asset__c != nObj.Asset__c &&
        (oObj.Manage_type_F__c == '个体管理' ||
        nObj.Manage_type_F__c == '个体管理')
      ) {
                if (nObj.Manage_type_F__c == '个体管理') {
                    nass.Last_Reserve_RAES_Detail__c = nObj.Id;
                    assUpdMap.put(nass.Id, nass);
@@ -3899,12 +1390,22 @@
                oass = new Asset(Id = oObj.Asset__c);
            }
            //MapにAssetを新規push時値を設定
            if (oass != null && (oass.Out_of_wh__c == null || oass.Rental_Count__c == null || oass.Confirm_Lost_Count__c == null)) {
      if (
        oass != null &&
        (oass.Out_of_wh__c == null ||
        oass.Rental_Count__c == null ||
        oass.Confirm_Lost_Count__c == null)
      ) {
                oass.Out_of_wh__c = oObj.Out_of_wh__c;
                oass.Rental_Count__c = oObj.Rental_Count__c;
                oass.Confirm_Lost_Count__c = oObj.Confirm_Lost_Count__c;
            }
            if (nass != null && (nass.Out_of_wh__c == null || nass.Rental_Count__c == null || nass.Confirm_Lost_Count__c == null)) {
      if (
        nass != null &&
        (nass.Out_of_wh__c == null ||
        nass.Rental_Count__c == null ||
        nass.Confirm_Lost_Count__c == null)
      ) {
                nass.Out_of_wh__c = nObj.Out_of_wh__c;
                nass.Rental_Count__c = nObj.Rental_Count__c;
                nass.Confirm_Lost_Count__c = nObj.Confirm_Lost_Count__c;
@@ -3916,7 +1417,9 @@
                    if (oass.Out_of_wh__c != null && oass.Out_of_wh__c > 0) {
                        oass.Out_of_wh__c = oass.Out_of_wh__c - 1;
                        // assUpdMap.put(oass.Id, oass);
                        System.debug('oass.Out_of_wh__c -1' + oass.Out_of_wh__c + ' Id = ' + nObj.Id);
            System.debug(
              'oass.Out_of_wh__c -1' + oass.Out_of_wh__c + ' Id = ' + nObj.Id
            );
                    }
                    if (nObj.DeliverySlip__c != null) {
                        if (oass.Rental_Count__c != null && oass.Rental_Count__c > 0) {
@@ -3925,7 +1428,11 @@
                    }
                        assUpdMap.put(oass.Id, oass);
                }
            } else if (oass != null && oObj.DeliverySlip__c != null && nObj.DeliverySlip__c == null) {
      } else if (
        oass != null &&
        oObj.DeliverySlip__c != null &&
        nObj.DeliverySlip__c == null
      ) {
                //发货运输单 删除的时候已借出数 -1 发货Asset__c原则不会变所以就直接用上面的oass
                // if (nObj.DeliverySlip__c != null) {
                if (oass.Rental_Count__c != null && oass.Rental_Count__c > 0) {
@@ -3934,14 +1441,17 @@
                }
                // }
            }
            if (oObj.Confirm_Lost_Date__c == null
                    && nObj.Confirm_Lost_Date__c != null) {
      if (
        oObj.Confirm_Lost_Date__c == null &&
        nObj.Confirm_Lost_Date__c != null
      ) {
                nass.Confirm_Lost_Count__c = nass.Confirm_Lost_Count__c + 1;
                assUpdMap.put(nass.Id, nass);
            }
            else if (nObj.Confirm_Lost_Date__c == null
                    && oObj.Confirm_Lost_Date__c != null
                    && nass.Confirm_Lost_Count__c > 0) {
      } else if (
        nObj.Confirm_Lost_Date__c == null &&
        oObj.Confirm_Lost_Date__c != null &&
        nass.Confirm_Lost_Count__c > 0
      ) {
                nass.Confirm_Lost_Count__c = nass.Confirm_Lost_Count__c - 1;
                assUpdMap.put(nass.Id, nass);
            }
@@ -3954,7 +1464,9 @@
            System.debug(LoggingLevel.INFO, '*** nObj.Asset__c: ' + nObj.Asset__c);
            if (nObj.Asset__c != null && oObj.Asset__c != nObj.Asset__c) {
                nass.Out_of_wh__c = nass.Out_of_wh__c + 1;
                System.debug('nass.Out_of_wh__c +1' + nass.Out_of_wh__c  + ' Id = ' + nObj.Id);
        System.debug(
          'nass.Out_of_wh__c +1' + nass.Out_of_wh__c + ' Id = ' + nObj.Id
        );
                assUpdMap.put(nass.Id, nass);
            }
        }
@@ -4013,7 +1525,6 @@
    // 4-XX 下架后, 出库前检测的Action一对一分配的话, 和主体一起 Cancel
    private void oneToOne4XX() {
        //主体CnacelSet
        Set<Id> raesdBodyCnacelSet = new Set<Id>();
        Set<Id> raesdBodyNGSet = new Set<Id>();
@@ -4021,76 +1532,106 @@
        Map<Id, String> raesdCancel_Remarks = new Map<Id, String>();
        //检测NG或者本来就Cancel的不需要再更新
        Set<Id> raesdIdSet = new Set<Id>();
        String ra_RecordTypeId = DEVELOPERNAMEMAP.get('AgencyRequest').getRecordTypeId();
    String ra_RecordTypeId = DEVELOPERNAMEMAP.get('AgencyRequest')
      .getRecordTypeId();
        for (Rental_Apply_Equipment_Set_Detail__c nObj : newList) {
            // 办事处附属品不需要随主体取消
            if(nObj.RA_RecordTypeId__c.substring(0,15) == ra_RecordTypeId.substring(0,15)) {
      if (
        nObj.RA_RecordTypeId__c.substring(0, 15) ==
        ra_RecordTypeId.substring(0, 15)
      ) {
                continue;
            }
            Rental_Apply_Equipment_Set_Detail__c oObj = oldMap.get(nObj.Id);
            //Set没有cancel的话都需要拷贝
            //主体出库前检测NG 维修
            if (nObj.Is_Body__c == true
                    && nObj.Inspection_result__c == 'NG'
                    && oObj.Inspection_result__c != nObj.Inspection_result__c
                    && nObj.Inspection_result_NG__c == '维修') {
      if (
        nObj.Is_Body__c == true &&
        nObj.Inspection_result__c == 'NG' &&
        oObj.Inspection_result__c != nObj.Inspection_result__c &&
        nObj.Inspection_result_NG__c == '维修'
      ) {
                //需要重新分配一对一附属品的一览
                raesdBodyNGSet.add(nObj.Rental_Apply_Equipment_Set__c);
                raesdCancel_Remarks.put(nObj.Rental_Apply_Equipment_Set__c, nObj.Loaner_cancel_Remarks__c);
        raesdCancel_Remarks.put(
          nObj.Rental_Apply_Equipment_Set__c,
          nObj.Loaner_cancel_Remarks__c
        );
                raesdIdSet.add(nObj.Id);
            }
            //主体出库前检测NG 废弃
            else if (nObj.Is_Body__c == true
                    && nObj.Inspection_result__c == 'NG'
                    && oObj.Inspection_result__c != nObj.Inspection_result__c
                    && nObj.Inspection_result_NG__c == '废弃') {
      else if (
        nObj.Is_Body__c == true &&
        nObj.Inspection_result__c == 'NG' &&
        oObj.Inspection_result__c != nObj.Inspection_result__c &&
        nObj.Inspection_result_NG__c == '废弃'
      ) {
                //需要重新分配一对一附属品的一览
                raesdBodyNGSet.add(nObj.Rental_Apply_Equipment_Set__c);
                raesdCancel_Remarks.put(nObj.Rental_Apply_Equipment_Set__c, nObj.Loaner_cancel_Remarks__c);
        raesdCancel_Remarks.put(
          nObj.Rental_Apply_Equipment_Set__c,
          nObj.Loaner_cancel_Remarks__c
        );
                raesdIdSet.add(nObj.Id);
            }
            //附属品出库前检测NG 维修 并且是一对一分配
            else if (nObj.Is_Body__c == false
                    && nObj.Inspection_result__c == 'NG'
                    && oObj.Inspection_result__c != nObj.Inspection_result__c
                    && nObj.Inspection_result_NG__c == '维修'
                    && nObj.OneToOne_Flag__c == true) {
      else if (
        nObj.Is_Body__c == false &&
        nObj.Inspection_result__c == 'NG' &&
        oObj.Inspection_result__c != nObj.Inspection_result__c &&
        nObj.Inspection_result_NG__c == '维修' &&
        nObj.OneToOne_Flag__c == true
      ) {
                raesdIdSet.add(nObj.Id);
            }
            //附属品出库前检测NG 废弃 并且是一对一分配
            else if (nObj.Is_Body__c == false
                    && nObj.Inspection_result__c == 'NG'
                    && oObj.Inspection_result__c != nObj.Inspection_result__c
                    && nObj.Inspection_result_NG__c == '废弃'
                    && nObj.OneToOne_Flag__c == true) {
      else if (
        nObj.Is_Body__c == false &&
        nObj.Inspection_result__c == 'NG' &&
        oObj.Inspection_result__c != nObj.Inspection_result__c &&
        nObj.Inspection_result_NG__c == '废弃' &&
        nObj.OneToOne_Flag__c == true
      ) {
                raesdIdSet.add(nObj.Id);
            }
            //OLY_OCM-152 下架后主体取消的话一对一附属品也要一起取消
            else if (String.isBlank(nObj.DeliverySlip__c)
                    && nObj.Is_Body__c == true
                    && nObj.StockDown__c == true
                    && oObj.Cancel_Select__c == false
                    && nObj.Cancel_Select__c == true) {
      else if (
        String.isBlank(nObj.DeliverySlip__c) &&
        nObj.Is_Body__c == true &&
        nObj.StockDown__c == true &&
        oObj.Cancel_Select__c == false &&
        nObj.Cancel_Select__c == true
      ) {
                raesdIdSet.add(nObj.Id);
                raesdBodyCnacelSet.add(nObj.Rental_Apply_Equipment_Set__c);
                raesdCancel_Remarks.put(nObj.Rental_Apply_Equipment_Set__c, nObj.Loaner_cancel_Remarks__c);
        raesdCancel_Remarks.put(
          nObj.Rental_Apply_Equipment_Set__c,
          nObj.Loaner_cancel_Remarks__c
        );
            }
        }
        if (raesdBodyNGSet.isEmpty() && raesdBodyCnacelSet.isEmpty()) {
            return;
        }
        List<Rental_Apply_Equipment_Set_Detail__c> raesds = [
                Select Id, UniqueKey__c, Rental_Apply_Equipment_Set__c,
                        Rental_Apply__c, Fixture_Set_Detail__c, Cancel_Reason__c
                From Rental_Apply_Equipment_Set_Detail__c
      SELECT
        Id,
        UniqueKey__c,
        Rental_Apply_Equipment_Set__c,
        Rental_Apply__c,
        Fixture_Set_Detail__c,
        Cancel_Reason__c
      FROM Rental_Apply_Equipment_Set_Detail__c
                //主体出库前检测NG一览的所有一对一分配的明细
                Where (Rental_Apply_Equipment_Set__c = :raesdBodyNGSet
      WHERE
        (Rental_Apply_Equipment_Set__c = :raesdBodyNGSet
                    //下架后主体取消一对一附属品也要一起取消
                       OR Rental_Apply_Equipment_Set__c = :raesdBodyCnacelSet)
                    AND OneToOne_Flag__c = true
        AND OneToOne_Flag__c = TRUE
                    //和主体一起检测NG的不再更新
                    AND Id !=: raesdIdSet];
        AND Id != :raesdIdSet
    ];
        List<Rental_Apply_Equipment_Set_Detail__c> raesdList = new List<Rental_Apply_Equipment_Set_Detail__c>();
        for (Rental_Apply_Equipment_Set_Detail__c raesd : raesds) {
            raesd.OnStock_By_Cancel__c = true;
@@ -4100,7 +1641,9 @@
            raesd.Cancel_Reason__c = '重新分配';
            raesd.Loaner_cancel_reason__c = '其他';// 20210830 ljh SFDC-C448KZ add            
            //主体出库前检查NG的话取消备注回自动设置为出库前检查NG
            raesd.Loaner_cancel_Remarks__c = raesdCancel_Remarks.get(raesd.Rental_Apply_Equipment_Set__c);
      raesd.Loaner_cancel_Remarks__c = raesdCancel_Remarks.get(
        raesd.Rental_Apply_Equipment_Set__c
      );
            // }
            raesdList.add(raesd);
        }
@@ -4116,16 +1659,22 @@
        List<Rental_Apply_Equipment_Set_Detail__c> raesdList = new List<Rental_Apply_Equipment_Set_Detail__c>();
        List<Rental_Apply_Equipment_Set_Detail__c> raesdListup = new List<Rental_Apply_Equipment_Set_Detail__c>();
        Map<Id, Rental_Apply_Equipment_Set__c> raesMap = new Map<Id, Rental_Apply_Equipment_Set__c>();
        String ra_RecordTypeId = DEVELOPERNAMEMAP.get('AgencyRequest').getRecordTypeId();
    String ra_RecordTypeId = DEVELOPERNAMEMAP.get('AgencyRequest')
      .getRecordTypeId();
        for (Rental_Apply_Equipment_Set_Detail__c nObj : newList) {
            Rental_Apply_Equipment_Set_Detail__c oObj = oldMap.get(nObj.Id);
            //Set没有cancel的话都需要拷贝
            //Cancel_Select__c はfalseからtrueに変更なのでなのでtrigger二回はしても実行するのは1回だけ
            if (nObj.Set_Cancel_Select__c == false
                    && (oObj.Cancel_Select__c == false && nObj.Cancel_Select__c == true)
                    && nObj.StockDown__c == true && nObj.Cancel_Reason__c == '重新分配'
      if (
        nObj.Set_Cancel_Select__c == false &&
        (oObj.Cancel_Select__c == false &&
        nObj.Cancel_Select__c == true) &&
        nObj.StockDown__c == true &&
        nObj.Cancel_Reason__c == '重新分配' &&
                    // 办事处取消时不要拷贝明细,在controller里手动造
                    && nObj.RA_RecordTypeId__c.substring(0,15) != ra_RecordTypeId.substring(0,15)) {
        nObj.RA_RecordTypeId__c.substring(0, 15) !=
        ra_RecordTypeId.substring(0, 15)
      ) {
                Rental_Apply_Equipment_Set_Detail__c craesd = new Rental_Apply_Equipment_Set_Detail__c();
                craesd.Rental_Apply_Equipment_Set__c = nObj.Rental_Apply_Equipment_Set__c;
                craesd.Rental_Apply__c               = nObj.Rental_Apply__c;
@@ -4146,7 +1695,10 @@
                    craesd.jumpReason__c = '发货前检测NG重新分配';
                }
                // 20211125 ljh add 排队插队 end
                if (nObj.DataMigration_Flag__c == false && (!Trigger.isUpdate || String.isNotBlank(nObj.Fixture_Set_Id__c))) {
        if (
          nObj.DataMigration_Flag__c == false &&
          (!Trigger.isUpdate || String.isNotBlank(nObj.Fixture_Set_Id__c))
        ) {
                    craesd.Rental_Num__c  = nObj.Rental_Num__c;
                    craesd.IndexFromUniqueKey__c = nObj.IndexFromUniqueKey__c;
                }
@@ -4155,12 +1707,18 @@
                raesdList.add(craesd);
            }
            // 如果是主体 cancel的话First应该是拷贝出来的主体
            if ((oObj.Cancel_Select__c == false && nObj.Cancel_Select__c == true)
                    && nObj.Is_First_RAESD_F__c == true && nObj.Set_Cancel_Select__c == false
                    && nObj.DataMigration_Flag__c == false && (!Trigger.isUpdate || String.isNotBlank(nObj.Fixture_Set_Id__c))) {
      if (
        (oObj.Cancel_Select__c == false &&
        nObj.Cancel_Select__c == true) &&
        nObj.Is_First_RAESD_F__c == true &&
        nObj.Set_Cancel_Select__c == false &&
        nObj.DataMigration_Flag__c == false &&
        (!Trigger.isUpdate || String.isNotBlank(nObj.Fixture_Set_Id__c))
      ) {
                Rental_Apply_Equipment_Set__c raes = new Rental_Apply_Equipment_Set__c(
                        Id = nObj.Rental_Apply_Equipment_Set__c,
                        First_RAESD__c = null);
          First_RAESD__c = null
        );
                raesMap.put(nObj.Rental_Apply_Equipment_Set__c, raes);
            }
        }
@@ -4169,20 +1727,25 @@
            insert raesdList;
        }
        if (!raesMap.isEmpty()) {
            List<Rental_Apply_Equipment_Set_Detail__c> raess = [Select Id, Rental_Apply_Equipment_Set__c
                From Rental_Apply_Equipment_Set_Detail__c
                Where Rental_Apply_Equipment_Set__c = :raesMap.keySet()
                  and Cancel_Select__c = False
                order by Rental_Apply_Equipment_Set__c, Fixture_Set_Detail__r.SortInt__c ASC nulls last];
      List<Rental_Apply_Equipment_Set_Detail__c> raess = [
        SELECT Id, Rental_Apply_Equipment_Set__c
        FROM Rental_Apply_Equipment_Set_Detail__c
        WHERE
          Rental_Apply_Equipment_Set__c = :raesMap.keySet()
          AND Cancel_Select__c = FALSE
        ORDER BY
          Rental_Apply_Equipment_Set__c,
          Fixture_Set_Detail__r.SortInt__c ASC NULLS LAST
      ];
            System.debug(raess);
            Id raesId = null;
            // 一件目をFirst_RAESD__cに設定
            for (Rental_Apply_Equipment_Set_Detail__c raes : raess) {
                if (raesId != raes.Rental_Apply_Equipment_Set__c) {
                    raesMap.get(raes.Rental_Apply_Equipment_Set__c).First_RAESD__c = raes.Id;
          raesMap.get(raes.Rental_Apply_Equipment_Set__c)
            .First_RAESD__c = raes.Id;
                    raesId = raes.Rental_Apply_Equipment_Set__c;
                }
            }
        }
        //一览First更新
@@ -4198,7 +1761,8 @@
            if (oObj.Is_First_RAESD_F__c == true) {
                    Rental_Apply_Equipment_Set__c raes = new Rental_Apply_Equipment_Set__c(
                            Id = oObj.Rental_Apply_Equipment_Set__c,
                            First_RAESD__c = null);
          First_RAESD__c = null
        );
                    raesMap.put(oObj.Rental_Apply_Equipment_Set__c, raes);
                }
        }
@@ -4207,20 +1771,26 @@
            return;
        }
        if (!raesMap.isEmpty()) {
            List<Rental_Apply_Equipment_Set_Detail__c> raess = [Select Id, Rental_Apply_Equipment_Set__c
                From Rental_Apply_Equipment_Set_Detail__c
                Where Rental_Apply_Equipment_Set__c = :raesMap.keySet()
                  and Cancel_Select__c = False
      List<Rental_Apply_Equipment_Set_Detail__c> raess = [
        SELECT Id, Rental_Apply_Equipment_Set__c
        FROM Rental_Apply_Equipment_Set_Detail__c
        WHERE
          Rental_Apply_Equipment_Set__c = :raesMap.keySet()
          AND Cancel_Select__c = FALSE
                  //一覧も削除したら更新しません
                  and IsDeleted = false
          AND IsDeleted = FALSE
                // RAESD_SortInt_F__c -> IndexFromUniqueKey_Text__c(备品配套明细.SortInt__c)
                // 1应该是主体
                order by Rental_Apply_Equipment_Set__c, IndexFromUniqueKey_Text__c ASC nulls last];
        ORDER BY
          Rental_Apply_Equipment_Set__c,
          IndexFromUniqueKey_Text__c ASC NULLS LAST
      ];
            Id raesId = null;
            // 一件目をFirst_RAESD__cに設定
            for (Rental_Apply_Equipment_Set_Detail__c raes : raess) {
                if (raesId != raes.Rental_Apply_Equipment_Set__c) {
                    raesMap.get(raes.Rental_Apply_Equipment_Set__c).First_RAESD__c = raes.Id;
          raesMap.get(raes.Rental_Apply_Equipment_Set__c)
            .First_RAESD__c = raes.Id;
                    raesId = raes.Rental_Apply_Equipment_Set__c;
                }
            }
@@ -4231,44 +1801,53 @@
        }
    }
    // 最終状態及びAsset変更
    private Boolean finishOrChangeAsset(Boolean isDelete, Rental_Apply_Equipment_Set_Detail__c oObj, Rental_Apply_Equipment_Set_Detail__c nObj) {
  private Boolean finishOrChangeAsset(
    Boolean isDelete,
    Rental_Apply_Equipment_Set_Detail__c oObj,
    Rental_Apply_Equipment_Set_Detail__c nObj
  ) {
        Boolean rtn = false;
        if (isDelete) {
            // oObj を確認する、oldで もともと finishのもの、falseを返す、
            rtn = !(
                //回库确认
                   (oObj.Arrival_in_wh__c)
      rtn = !//回库确认
      ((oObj.Arrival_in_wh__c) ||
                //取消分配, (下架后, 原则需要上架, 所以不能单纯的断开)
                || (oObj.Cancel_Select__c == true && oObj.StockDown__c == false)
      (oObj.Cancel_Select__c == true &&
      oObj.StockDown__c == false) ||
                //下架前, 分配备品有变化 (变成别的配套, or 变 null)
                || (oObj.Asset__c == null && oObj.StockDown__c == false)
      (oObj.Asset__c == null &&
      oObj.StockDown__c == false) ||
                //取消分配, (下架后, 原则需要上架, 所以不能单纯的断开)
                || (oObj.Cancel_Select__c == true && nObj.StockDown__c == false)
      (oObj.Cancel_Select__c == true &&
      nObj.StockDown__c == false) ||
                //放弃欠品
                || (oObj.Lost_item_giveup__c == true)
      (oObj.Lost_item_giveup__c == true) ||
                //已消耗
                || (oObj.Check_lost_Item_F__c == '消耗')
            );
      (oObj.Check_lost_Item_F__c == '消耗'));
        } else {
            rtn = (
      rtn =
                //回库确认
                   (!oObj.Arrival_in_wh__c && nObj.Arrival_in_wh__c)
        ((!oObj.Arrival_in_wh__c && nObj.Arrival_in_wh__c) ||
                //取消分配, (下架后, 原则需要上架, 所以不能单纯的断开)
                || (oObj.Cancel_Select__c == false && nObj.Cancel_Select__c == true
                    && nObj.StockDown__c == false)
        (oObj.Cancel_Select__c == false &&
        nObj.Cancel_Select__c == true &&
        nObj.StockDown__c == false) ||
                //下架前, 分配备品有变化 (变成别的配套, or 变 null)
                || (oObj.Asset__c != null && oObj.Asset__c != nObj.Asset__c
                    && nObj.StockDown__c == false)
        (oObj.Asset__c != null &&
        oObj.Asset__c != nObj.Asset__c &&
        nObj.StockDown__c == false) ||
                //取消分配, (下架后, 原则需要上架, 所以不能单纯的断开)
                || (oObj.Cancel_Select__c == false && nObj.Cancel_Select__c == true
                    && nObj.StockDown__c == false)
        (oObj.Cancel_Select__c == false &&
        nObj.Cancel_Select__c == true &&
        nObj.StockDown__c == false) ||
                //放弃欠品
                || (oObj.Lost_item_giveup__c == false && nObj.Lost_item_giveup__c == true
                    && oObj.Check_lost_Item_F__c != '消耗')
        (oObj.Lost_item_giveup__c == false &&
        nObj.Lost_item_giveup__c == true &&
        oObj.Check_lost_Item_F__c != '消耗') ||
                //已消耗
                || (oObj.Check_lost_Item_F__c != '消耗' && nObj.Check_lost_Item_F__c == '消耗'
                    && oObj.Lost_item_giveup__c == false)
            );
        (oObj.Check_lost_Item_F__c != '消耗' &&
        nObj.Check_lost_Item_F__c == '消耗' &&
        oObj.Lost_item_giveup__c == false));
        }
        return rtn;
    }
@@ -4277,13 +1856,17 @@
        List<Rental_Apply_Equipment_Set_Detail__c> raesds = new List<Rental_Apply_Equipment_Set_Detail__c>();
        for (Rental_Apply_Equipment_Set_Detail__c nObj : newList) {
            //明细状态没有修理完毕所以修理完毕的时候不拷贝状态到Text字段
            if ((nObj.Repair_Status_Text__c != nObj.Repair_Status_F__c
                        && nObj.Repair_Status_F__c != '修理完毕')
                    || nObj.Return_Status_Text__c != nObj.Return_Status_F__c
                    || nObj.Shipment_Status_Text__c != nObj.Shipment_Status_F__c
                    || (nObj.ApplyPersonAppended__c != nObj.ApplyPersonAppended_F__c && Trigger.isInsert)
      if (
        (nObj.Repair_Status_Text__c != nObj.Repair_Status_F__c &&
        nObj.Repair_Status_F__c != '修理完毕') ||
        nObj.Return_Status_Text__c != nObj.Return_Status_F__c ||
        nObj.Shipment_Status_Text__c != nObj.Shipment_Status_F__c ||
        (nObj.ApplyPersonAppended__c != nObj.ApplyPersonAppended_F__c &&
        Trigger.isInsert)
                    ) {
                Rental_Apply_Equipment_Set_Detail__c raesd = new Rental_Apply_Equipment_Set_Detail__c(Id = nObj.Id);
        Rental_Apply_Equipment_Set_Detail__c raesd = new Rental_Apply_Equipment_Set_Detail__c(
          Id = nObj.Id
        );
                //明细状态没有修理完毕所以修理完毕的时候不拷贝状态到Text字段
                if (nObj.Repair_Status_F__c != '修理完毕') {
                    raesd.Repair_Status_Text__c = nObj.Repair_Status_F__c;
@@ -4297,7 +1880,15 @@
            }
        }
        if (!raesds.isEmpty()) {
      // 备品优化追加 20230518 lc Start
      if (skipUpdateAgain) {
        Oly_TriggerHandler.bypass('RentalApplyEquipmentSetDetailHandler');
            update raesds;
        Oly_TriggerHandler.clearBypass('RentalApplyEquipmentSetDetailHandler');
      } else {
        update raesds;
      }
      // 备品优化追加 20230518 lc End
        }
    }
    // 20211116 ljh 下一次借用预计出库时间  的赋值 回收后-检测结果OK逻辑 start
@@ -4314,7 +1905,12 @@
        for (Rental_Apply_Equipment_Set_Detail__c nObj : newList) {
            if(nObj.RA_RecordTypeId__c != '01210000000NPGK'){
                Rental_Apply_Equipment_Set_Detail__c oObj = oldMap.get(nObj.Id);
                if(nObj.Inspection_result_after_F_New__c != null && nObj.Inspection_result_after_F_New__c == 'OK' && oObj.Inspection_result_after_F_New__c != nObj.Inspection_result_after_F_New__c){
        if (
          nObj.Inspection_result_after_F_New__c != null &&
          nObj.Inspection_result_after_F_New__c == 'OK' &&
          oObj.Inspection_result_after_F_New__c !=
          nObj.Inspection_result_after_F_New__c
        ) {
                    // 检测OK时间+3个工作日(奥林巴斯日历)
                    Date date1 = nObj.After_Inspection_time_F_New__c.date();
                    if (minDate > date1) {
@@ -4329,11 +1925,14 @@
                    dLMap.get(date1).add(nObj);
                } 
                // 检测NG和欠品的:不显示时间
                if((
                    // (
                    nObj.RAESD_Status__c == '欠品中' || nObj.RAESD_Status__c == '待修理' || nObj.RAESD_Status__c == '待移至报废区')
        if (
          (// (
          nObj.RAESD_Status__c == '欠品中' ||
          nObj.RAESD_Status__c == '待修理' ||
          nObj.RAESD_Status__c == '待移至报废区') &&
                    // || (nObj.Arrival_in_wh__c && oObj.Arrival_in_wh__c != nObj.Arrival_in_wh__c))
                 && nObj.NextShippmentDate__c != null){
          nObj.NextShippmentDate__c != null
        ) {
                    Rental_Apply_Equipment_Set_Detail__c raesd = new Rental_Apply_Equipment_Set_Detail__c();
                    raesd.Id = nObj.Id;
                    raesd.NextShippmentDate__c = null;
@@ -4342,13 +1941,15 @@
            }
        }
        if(dLMap.size() > 0){
            List<OlympusCalendar__c> ocList = [SELECT Id
                        , Date__c
      List<OlympusCalendar__c> ocList = [
        SELECT Id, Date__c
                     FROM OlympusCalendar__c
                    WHERE Date__c >= :minDate
        WHERE
          Date__c >= :minDate
                      AND Date__c <= :maxDate.addDays(30)
                      AND IsWorkDay__c = 1
                    ORDER BY Date__c ASC];
        ORDER BY Date__c ASC
      ];
            Map<Date, Date> dateadd3Map = new Map<Date, Date>();
            Integer ocListSize = ocList.size();
            if (ocListSize > 3) {
@@ -4380,7 +1981,6 @@
                        }
                    }
                }
            }
        }
        if(upRdList.size() > 0){
@@ -4400,7 +2000,10 @@
        for (Rental_Apply_Equipment_Set_Detail__c nObj : newList) {
            if(nObj.RA_RecordTypeId__c != '01210000000NPGK'){
                Rental_Apply_Equipment_Set_Detail__c oObj = oldMap.get(nObj.Id);
                if(nObj.DeliverySlip__c != null  && oObj.DeliverySlip__c != nObj.DeliverySlip__c){
        if (
          nObj.DeliverySlip__c != null &&
          oObj.DeliverySlip__c != nObj.DeliverySlip__c
        ) {
                    // 检测OK时间+3个工作日(奥林巴斯日历)
                    Date date1 = nObj.RAES_Final_reply_day__c;
                    if (minDate > date1) {
@@ -4417,13 +2020,15 @@
            }
        }
        if(dLMap.size() > 0){
            List<OlympusCalendar__c> ocList = [SELECT Id
                        , Date__c
      List<OlympusCalendar__c> ocList = [
        SELECT Id, Date__c
                     FROM OlympusCalendar__c
                    WHERE Date__c >= :minDate
        WHERE
          Date__c >= :minDate
                      AND Date__c <= :maxDate.addDays(30)
                      AND IsWorkDay__c = 1
                    ORDER BY Date__c ASC];
        ORDER BY Date__c ASC
      ];
            Map<Date, Date> dateadd3Map = new Map<Date, Date>();
            Integer ocListSize = ocList.size();
            if (ocListSize > 8) {
@@ -4438,8 +2043,7 @@
                            raesd.NextShippmentDate__c = dateadd3Map.get(d);
                            upRdList.add(raesd);
                        }
                    }
                    else{
          } else {
                        for (Integer i = 0; i < ocListSize - 8; i ++) {
                            if(d < ocList[i].Date__c){
                                for(Rental_Apply_Equipment_Set_Detail__c rd:dLMap.get(d)){
@@ -4454,7 +2058,17 @@
                    }
                }
                if(upRdList.size() > 0){
          // 备品优化追加 20230518 lc Start
          if (skipUpdateAgain) {
            Oly_TriggerHandler.bypass('RentalApplyEquipmentSetDetailHandler');
                    update upRdList;
            Oly_TriggerHandler.clearBypass(
              'RentalApplyEquipmentSetDetailHandler'
            );
          } else {
            update upRdList;
          }
          // 备品优化追加 20230518 lc End
                }
            }
        }
@@ -4467,29 +2081,43 @@
        List<String> detailIds = new List<String>();
        List<String> externalKeyList = new List<String>();
        Map<String,Decimal> minNumberMap = new Map<String,Decimal>();
        for(Rental_Apply_Equipment_Set_Detail__c olddetail : (List<Rental_Apply_Equipment_Set_Detail__c>)trigger.old){
    for (
      Rental_Apply_Equipment_Set_Detail__c olddetail : (List<Rental_Apply_Equipment_Set_Detail__c>) Trigger.old
    ) {
            Rental_Apply_Equipment_Set_Detail__c detail ;
            if(Trigger.isUpdate){
                detail = newdetailMap.get(olddetail.Id);
            }
            if((Trigger.isUpdate && (
                (oldDetail.Queue_Number__c > 0  && detail.Queue_Number__c == 0)// 暂定分配
      if (
        (Trigger.isUpdate &&
        ((oldDetail.Queue_Number__c > 0 &&
        detail.Queue_Number__c == 0) || // 暂定分配
                // 20220127 ljh update start
                // || (!oldDetail.Cancel_Select__c && detail.Cancel_Select__c && olddetail.Queue_Number__c >= 0)  //取消(排队中,暂定分配)
                || (!oldDetail.Cancel_Select__c && detail.Cancel_Select__c && olddetail.Queue_Number__c > 0)  //取消(排队中,暂定分配)
        (!oldDetail.Cancel_Select__c &&
        detail.Cancel_Select__c &&
        olddetail.Queue_Number__c > 0) || //取消(排队中,暂定分配)
                // 20220127 ljh update end
                || (oldDetail.Queue_Number__c > 0  && detail.Queue_Number__c == null )//分单
                || (oldDetail.Queue_Number__c > 0 && olddetail.ExternalKey__c != detail.ExternalKey__c)))//重排
                || (Trigger.isDelete && olddetail.Queue_Number__c > 0 )){
        (oldDetail.Queue_Number__c > 0 &&
        detail.Queue_Number__c == null) || //分单
        (oldDetail.Queue_Number__c > 0 &&
        olddetail.ExternalKey__c != detail.ExternalKey__c))) || //重排
        (Trigger.isDelete && olddetail.Queue_Number__c > 0)
      ) {
                updateList.add(olddetail);
                detailIds.add(olddetail.Id);
                externalKeyList.add(olddetail.ExternalKey__c);
                if(!minNumberMap.containsKey(olddetail.Externalkey__c)){
                    minNumberMap.put(olddetail.Externalkey__c,olddetail.Queue_Number__c);
                }else{
                    if(minNumberMap.get(olddetail.Externalkey__c) > olddetail.Queue_Number__c){
                        minNumberMap.put(olddetail.Externalkey__c,olddetail.Queue_Number__c);
          if (
            minNumberMap.get(olddetail.Externalkey__c) >
            olddetail.Queue_Number__c
          ) {
            minNumberMap.put(
              olddetail.Externalkey__c,
              olddetail.Queue_Number__c
            );
                    }
                }
            }
@@ -4499,11 +2127,14 @@
            List<String> sequencekeylist = new List<String>();
            List<String> changeSequenceIds = new List<String>();
            Map<String,Decimal> changesequenceMap = new Map<String,Decimal>();
            List<Rental_Apply_Sequence__c> assignSequence = [SELECT Id,Series_No__c,Invalid_Flag__c,Externalkey__c
      List<Rental_Apply_Sequence__c> assignSequence = [
        SELECT Id, Series_No__c, Invalid_Flag__c, Externalkey__c
                                                            FROM Rental_Apply_Sequence__c 
                                                            WHERE Apply_Set_Detail__c IN: detailIds
                                                            AND Invalid_Flag__c = false
                                                            AND Series_No__c > 0];
        WHERE
          Apply_Set_Detail__c IN :detailIds
          AND Invalid_Flag__c = FALSE
          AND Series_No__c > 0
      ];
            for(Rental_Apply_Sequence__c se:assignSequence){
                // sequencekeylist.add(se.Externalkey__c);
                changeSequenceIds.add(se.Id);
@@ -4518,57 +2149,113 @@
                se.Series_No__c = 0;
            } 
            List<Rental_Apply_Equipment_Set_Detail__c> changeDetailList = new List<Rental_Apply_Equipment_Set_Detail__c>();
            List<Rental_Apply_Equipment_Set_Detail__c> raesdList = [SELECT Id, Rental_Apply_Equipment_Set__c, Asset__c,Rental_Apply_Equipment_Set__r.Fixture_Set__r.Product_Type__c,
                                                                       FSD_Fixture_Model_No__c, Fixture_Model_No_text__c,Rental_Apply__r.demo_purpose2__c,Queue_Day__c,ExternalKey__c,
                                                                       Is_Body__c, FSD_Is_OneToOne__c, Select_Time__c,Rental_Apply__r.EquipmentGuaranteeFlg__c,Allow_Adjust_Queue_Flag__c,
                                                                       Cancel_Select__c, Fixture_Model_No_F__c, Queue_Number__c, Internal_asset_location__c,Fixture_Model_No__c,Rental_Apply__c,
                                                                       Internal_asset_location_before__c,Salesdepartment__c, Product_category_F__c, Product_category_text__c,Equipment_Type_text__c,
                                                                       Salesdepartment_before__c,Rental_Apply__r.Request_shipping_day__c,QuenType__c,IsAdjust__c,Rental_Apply__r.Request_approval_time__c,
                                                                       Equipment_Type__c, Rental_Apply__r.Internal_asset_location_F__c,Cancel_Reason__c,Loaner_cancel_reason__c,
                                                                       Loaner_cancel_Remarks__c ,Rental_Apply_Equipment_Set__r.Name
      List<Rental_Apply_Equipment_Set_Detail__c> raesdList = [
        SELECT
          Id,
          Rental_Apply_Equipment_Set__c,
          Asset__c,
          Rental_Apply_Equipment_Set__r.Fixture_Set__r.Product_Type__c,
          FSD_Fixture_Model_No__c,
          Fixture_Model_No_text__c,
          Rental_Apply__r.demo_purpose2__c,
          Queue_Day__c,
          ExternalKey__c,
          Is_Body__c,
          FSD_Is_OneToOne__c,
          Select_Time__c,
          Rental_Apply__r.EquipmentGuaranteeFlg__c,
          Allow_Adjust_Queue_Flag__c,
          Cancel_Select__c,
          Fixture_Model_No_F__c,
          Queue_Number__c,
          Internal_asset_location__c,
          Fixture_Model_No__c,
          Rental_Apply__c,
          Internal_asset_location_before__c,
          Salesdepartment__c,
          Product_category_F__c,
          Product_category_text__c,
          Equipment_Type_text__c,
          Salesdepartment_before__c,
          Rental_Apply__r.Request_shipping_day__c,
          QuenType__c,
          IsAdjust__c,
          Rental_Apply__r.Request_approval_time__c,
          Equipment_Type__c,
          Rental_Apply__r.Internal_asset_location_F__c,
          Cancel_Reason__c,
          Loaner_cancel_reason__c,
          Loaner_cancel_Remarks__c,
          Rental_Apply_Equipment_Set__r.Name
                                                                FROM Rental_Apply_Equipment_Set_Detail__c
                                                                WHERE Queue_Number__c > 0
                                                                  AND Cancel_Select__c = false
        WHERE
          Queue_Number__c > 0
          AND Cancel_Select__c = FALSE
                                                                  AND ExternalKey__c IN:externalKeyList
                                                                  AND Id NOT IN :detailIds
                                                                ORDER BY Queue_Number__c ASC ];
        ORDER BY Queue_Number__c ASC
      ];
            Map<String,List<Rental_Apply_Equipment_Set_Detail__c>> detailsMap = new Map<String,List<Rental_Apply_Equipment_Set_Detail__c>>();
            for(Rental_Apply_Equipment_Set_Detail__c setdetail:raesdList){
                if(!detailsMap.containsKey(setdetail.Externalkey__c)){
                    detailsMap.put(setdetail.Externalkey__c,new List<Rental_Apply_Equipment_Set_Detail__c>());
          detailsMap.put(
            setdetail.Externalkey__c,
            new List<Rental_Apply_Equipment_Set_Detail__c>()
          );
                }
                detailsMap.get(setdetail.Externalkey__c).add(setdetail);
            }
            for(String key:detailsMap.keySet()){
                Decimal queueNo = minNumberMap.get(key);
                System.debug(LoggingLevel.INFO, '*** queueNo: ' + queueNo);
                Decimal i = 0;
                for(Rental_Apply_Equipment_Set_Detail__c detail : detailsMap.get(key)){
                    System.debug(LoggingLevel.INFO, '*** detail.Queue_Number__c: ' + detail.Queue_Number__c);
        for (
          Rental_Apply_Equipment_Set_Detail__c detail : detailsMap.get(key)
        ) {
          System.debug(
            LoggingLevel.INFO,
            '*** detail.Queue_Number__c: ' + detail.Queue_Number__c
          );
                    if(detail.Queue_Number__c > queueNo){
                        RentalFixtureSetAssignController.KeyObj dobj = RentalFixtureSetAssignController.getSequenceInfo(detail);
            RentalFixtureSetAssignController.KeyObj dobj = RentalFixtureSetAssignController.getSequenceInfo(
              detail
            );
                        sequencekeylist.addAll(dobj.sequencekeylist);
                        detail.Queue_Number__c  = queueNo + i;
                        i ++;
                        System.debug(LoggingLevel.INFO, '**111* detail.Queue_Number__c: ' + detail.Queue_Number__c);
            System.debug(
              LoggingLevel.INFO,
              '**111* detail.Queue_Number__c: ' + detail.Queue_Number__c
            );
                        changeDetailList.add(detail);
                    }
                }
            }
            List<String> nodusequencekeylist = new List<String>(new Set<String>(sequencekeylist));
            List<Rental_Apply_Sequence__c> sequenceList = [SELECT Id,ExternalKey__c,Demo_Purpose2__c,
                                                        Apply_Set_Detail__c,Apply_Set_Detail_ExternalKey__c,
                                                        Series_No__c,Salesdepartment__c,Product_category__c,
                                                        Rental_Apply__c,Internal_asset_location__c,
                                                        Apply_Set_Detail__r.Queue_Number__c,Series_Unequal_Queue_Flag__c,
                                                        Fixture_Model_No__c,Equipment_Type__c
      List<String> nodusequencekeylist = new List<String>(
        new Set<String>(sequencekeylist)
      );
      List<Rental_Apply_Sequence__c> sequenceList = [
        SELECT
          Id,
          ExternalKey__c,
          Demo_Purpose2__c,
          Apply_Set_Detail__c,
          Apply_Set_Detail_ExternalKey__c,
          Series_No__c,
          Salesdepartment__c,
          Product_category__c,
          Rental_Apply__c,
          Internal_asset_location__c,
          Apply_Set_Detail__r.Queue_Number__c,
          Series_Unequal_Queue_Flag__c,
          Fixture_Model_No__c,
          Equipment_Type__c
                                                        FROM Rental_Apply_Sequence__c
                                                        WHERE ExternalKey__c IN: nodusequencekeylist
        WHERE
          ExternalKey__c IN :nodusequencekeylist
                                                        AND Id NOT IN:changeSequenceIds
                                                        AND Series_No__c > 0
                                                        AND Invalid_Flag__c = false
          AND Invalid_Flag__c = FALSE
                                                        FOR UPDATE
                                                        ];
            System.debug(LoggingLevel.INFO, '*** sequenceList: ' + sequenceList);
@@ -4584,7 +2271,10 @@
            }
            for(Rental_Apply_Sequence__c se: sequenceList){
                if(!sequenceMap.containsKey(se.Externalkey__c)){
                    sequenceMap.put(se.Externalkey__c,new List<Rental_Apply_Sequence__c>());
          sequenceMap.put(
            se.Externalkey__c,
            new List<Rental_Apply_Sequence__c>()
          );
                }
                sequenceMap.get(se.Externalkey__c).add(se);
            }
@@ -4609,29 +2299,54 @@
        Map<Id, Rental_Apply_Equipment_Set_Detail__c> olddetailMap = (Map<Id, Rental_Apply_Equipment_Set_Detail__c>) Trigger.oldMap;
        System.debug('开始处理------------------------------------');
        System.debug('(List<Rental_Apply_Equipment_Set_Detail__c>) Trigger.new---------------' + (List<Rental_Apply_Equipment_Set_Detail__c>) Trigger.new);
        for(Rental_Apply_Equipment_Set_Detail__c newdetail :  (List<Rental_Apply_Equipment_Set_Detail__c>) Trigger.new){
            System.debug(newdetail.Id + ' 申请单号:' + newdetail.Rental_Apply__r.name);
            Rental_Apply_Equipment_Set_Detail__c olddetail = olddetailMap.get(newdetail.Id);
    System.debug(
      '(List<Rental_Apply_Equipment_Set_Detail__c>) Trigger.new---------------' +
      (List<Rental_Apply_Equipment_Set_Detail__c>) Trigger.new
    );
    for (
      Rental_Apply_Equipment_Set_Detail__c newdetail : (List<Rental_Apply_Equipment_Set_Detail__c>) Trigger.new
    ) {
      System.debug(
        newdetail.Id + ' 申请单号:' + newdetail.Rental_Apply__r.name
      );
      Rental_Apply_Equipment_Set_Detail__c olddetail = olddetailMap.get(
        newdetail.Id
      );
            System.debug('旧排队No:' + olddetail.Queue_Number__c);
            System.debug('新排队No:' + newdetail.Queue_Number__c);
            
            if((olddetail.Queue_Number__c > 0  && newdetail.Queue_Number__c == 0)// 暂定分配
                || (!olddetail.Cancel_Select__c && newdetail.Cancel_Select__c && olddetail.Queue_Number__c > 0)  //取消(排队中,暂定分配)
                || (olddetail.Queue_Number__c > 0  && newdetail.Queue_Number__c == null )//分单
      if (
        (olddetail.Queue_Number__c > 0 &&
        newdetail.Queue_Number__c == 0) || // 暂定分配
        (!olddetail.Cancel_Select__c &&
        newdetail.Cancel_Select__c &&
        olddetail.Queue_Number__c > 0) || //取消(排队中,暂定分配)
        (olddetail.Queue_Number__c > 0 &&
        newdetail.Queue_Number__c == null) //分单
                ){
                // 清空排队的UniqueKey
                newdetail.UniqueKey_Queue__c = null;
                System.debug('新排队UniqueKey_Queue__c:' + newdetail.UniqueKey_Queue__c);
        System.debug(
          '新排队UniqueKey_Queue__c:' + newdetail.UniqueKey_Queue__c
        );
            }
            // 重排或者排队No变化时更新
            if (!newdetail.Cancel_Select__c && newdetail.Queue_Number__c > 0 && newdetail.ExternalKey__c != null
                && (newdetail.Queue_Number__c != olddetail.Queue_Number__c
                    || newdetail.ExternalKey__c != olddetail.ExternalKey__c)) {
      if (
        !newdetail.Cancel_Select__c &&
        newdetail.Queue_Number__c > 0 &&
        newdetail.ExternalKey__c != null &&
        (newdetail.Queue_Number__c != olddetail.Queue_Number__c ||
        newdetail.ExternalKey__c != olddetail.ExternalKey__c)
      ) {
                // 排队的UniqueKey设值
                newdetail.UniqueKey_Queue__c = newdetail.ExternalKey__c + ':' + newdetail.Queue_Number__c;
            System.debug('新排队UniqueKey_Queue__c:' + newdetail.UniqueKey_Queue__c);
        newdetail.UniqueKey_Queue__c =
          newdetail.ExternalKey__c +
          ':' +
          newdetail.Queue_Number__c;
        System.debug(
          '新排队UniqueKey_Queue__c:' + newdetail.UniqueKey_Queue__c
        );
            }
        }
        System.debug('结束处理------------------------------------');
@@ -4761,12 +2476,21 @@
            //申请者收货NG的明细
            if (nObj.Received_Confirm_F__c == 'NG') {
                //回寄运输单赋值
                if (String.isBlank(oObj.Return_DeliverySlip__c) && String.isNotBlank(nObj.Return_DeliverySlip__c)) {
        if (
          String.isBlank(oObj.Return_DeliverySlip__c) &&
          String.isNotBlank(nObj.Return_DeliverySlip__c)
        ) {
                    //因为是以为一览为单位,所以只有一条回寄单
                    //申请者收货NG的明细拆成两个回寄单回寄的情况暂时不考虑(应该没有这种情况)
                    if (!raesRDSMap.containsKey(nObj.Rental_Apply_Equipment_Set__c)) {
                        raesRDSMap.put(nObj.Rental_Apply_Equipment_Set__c, nObj.Return_DeliverySlip__c);
                        raesDateMap.put(nObj.Rental_Apply_Equipment_Set__c, nObj.Asset_return_time__c.format());
            raesRDSMap.put(
              nObj.Rental_Apply_Equipment_Set__c,
              nObj.Return_DeliverySlip__c
            );
            raesDateMap.put(
              nObj.Rental_Apply_Equipment_Set__c,
              nObj.Asset_return_time__c.format()
            );
                    }
                }
            }
@@ -4775,13 +2499,29 @@
            return;
        }
        //NG_Return_DeliverySlip__c为空的一览才做邮件发送
        Map<Id, Rental_Apply_Equipment_Set__c> raessMap = new Map<Id, Rental_Apply_Equipment_Set__c>([Select Id From Rental_Apply_Equipment_Set__c
                WHERE Id =: raesRDSMap.keySet()
                AND NG_Return_DeliverySlip__c = null]);
        Map<Id, FixtureDeliverySlip__c> fdss = new Map<Id, FixtureDeliverySlip__c>([Select Id, Name, Combine_Pack__c, Wh_Staff__c, DeliveryCompany__c, Shippment_loaner_time__c,
                Distributor_method__c, DeliveryCompany_SlipNo__c, DeliveryType__c
                From FixtureDeliverySlip__c
                Where Id =: raesRDSMap.values()]);
    Map<Id, Rental_Apply_Equipment_Set__c> raessMap = new Map<Id, Rental_Apply_Equipment_Set__c>(
      [
        SELECT Id
        FROM Rental_Apply_Equipment_Set__c
        WHERE Id = :raesRDSMap.keySet() AND NG_Return_DeliverySlip__c = NULL
      ]
    );
    Map<Id, FixtureDeliverySlip__c> fdss = new Map<Id, FixtureDeliverySlip__c>(
      [
        SELECT
          Id,
          Name,
          Combine_Pack__c,
          Wh_Staff__c,
          DeliveryCompany__c,
          Shippment_loaner_time__c,
          Distributor_method__c,
          DeliveryCompany_SlipNo__c,
          DeliveryType__c
        FROM FixtureDeliverySlip__c
        WHERE Id = :raesRDSMap.values()
      ]
    );
        System.debug('fdss is ' + fdss);
        List<Rental_Apply_Equipment_Set__c> raess = new List<Rental_Apply_Equipment_Set__c>();
        for (Id key: raesRDSMap.keySet()) {
@@ -4790,17 +2530,26 @@
                continue;
            }
            FixtureDeliverySlip__c fds = fdss.get(raesRDSMap.get(key));
            String message = '发货-发货运输单号:'
                            + fds.Name + '<BR>'
                            + '发货-物流公司:'
                            + fds.DeliveryCompany__c + '<BR>'
                            + '发货-运输方式:'
                            + fds.Distributor_method__c + '<BR>'
                            + '物流提货时间:'
                            + raesDateMap.get(key) + '<BR>';
            raess.add(new Rental_Apply_Equipment_Set__c(Id = key,
      String message =
        '发货-发货运输单号:' +
        fds.Name +
        '<BR>' +
        '发货-物流公司:' +
        fds.DeliveryCompany__c +
        '<BR>' +
        '发货-运输方式:' +
        fds.Distributor_method__c +
        '<BR>' +
        '物流提货时间:' +
        raesDateMap.get(key) +
        '<BR>';
      raess.add(
        new Rental_Apply_Equipment_Set__c(
          Id = key,
                    NG_Return_DeliverySlip_Information__c = message,
                    NG_Return_DeliverySlip__c = fds.Id));
          NG_Return_DeliverySlip__c = fds.Id
        )
      );
        }
        if (!raess.isEmpty()) {
            update raess;
@@ -4810,7 +2559,9 @@
    //设置申请书的回寄通知文本
    @future
    private static void setRequestAsset_return_Text(Set<Id> raesdIdSet) {
        List<Rental_Apply_Equipment_Set_Detail__c> raesdList = [SELECT Id,
    List<Rental_Apply_Equipment_Set_Detail__c> raesdList = [
      SELECT
        Id,
                                                                       Rental_Apply__c,
                                                                       Return_DeliverySlip__c,
                                                                       Rental_Apply_Equipment_Set__c,
@@ -4825,16 +2576,21 @@
                                                                       Return_DeliverySlip__r.Distributor_method__c,
                                                                       Return_DeliverySlip__r.Shippment_loaner_time__c
                                                                  FROM Rental_Apply_Equipment_Set_Detail__c
                                                                 WHERE Id = :raesdIdSet
      WHERE
        Id = :raesdIdSet
                                                                   // 回寄通知只发送有链接回寄单的明细信息
                                                                   AND Return_DeliverySlip__c != null
                                                                 ORDER BY Rental_Apply__c, Rental_Apply_Equipment_Set__c, Name];
        AND Return_DeliverySlip__c != NULL
      ORDER BY Rental_Apply__c, Rental_Apply_Equipment_Set__c, Name
    ];
        // 收集回寄明细 {raesId -> raesdList}
        Map<Id, List<Rental_Apply_Equipment_Set_Detail__c>> raesdListMap = new Map<Id, List<Rental_Apply_Equipment_Set_Detail__c>>();
        Map<Id, FixtureDeliverySlip__c> return_DeliverySlipMap = new Map<Id, FixtureDeliverySlip__c>();
        for (Rental_Apply_Equipment_Set_Detail__c raesd : raesdList) {
            if (!raesdListMap.containsKey(raesd.Rental_Apply_Equipment_Set__c)) {
                raesdListMap.put(raesd.Rental_Apply_Equipment_Set__c, new List<Rental_Apply_Equipment_Set_Detail__c>());
        raesdListMap.put(
          raesd.Rental_Apply_Equipment_Set__c,
          new List<Rental_Apply_Equipment_Set_Detail__c>()
        );
            }
            raesdListMap.get(raesd.Rental_Apply_Equipment_Set__c).add(raesd);
@@ -4854,16 +2610,22 @@
        }
        // 检索回寄的一览 {raId -> raesList}
        Map<Id, List<Rental_Apply_Equipment_Set__c>> raesListMap = new Map<Id, List<Rental_Apply_Equipment_Set__c>>();
        List<Rental_Apply_Equipment_Set__c> raesList = [SELECT Id,
    List<Rental_Apply_Equipment_Set__c> raesList = [
      SELECT
        Id,
                                                               Loaner_code_F__c,
                                                               Rental_Apply__c,
                                                               Asset_return_Status__c,
                                                               Received_Confirm__c
                                                          FROM Rental_Apply_Equipment_Set__c
                                                         WHERE Id =: raesdListMap.keySet()];
      WHERE Id = :raesdListMap.keySet()
    ];
        for (Rental_Apply_Equipment_Set__c raes : raesList) {
            if (!raesListMap.containsKey(raes.Rental_Apply__c)) {
                raesListMap.put(raes.Rental_Apply__c, new List<Rental_Apply_Equipment_Set__c>());
        raesListMap.put(
          raes.Rental_Apply__c,
          new List<Rental_Apply_Equipment_Set__c>()
        );
            }
            raes.recalculateFormulas();
            System.debug(raes.Wei_Return__c);
@@ -4886,13 +2648,15 @@
                String message2 = '<BR>';
                Boolean haveLost_Item_return = false;
                 // 查看一览下的所有明细
                for (Rental_Apply_Equipment_Set_Detail__c nObj : raesdListMap.get(raes.Id)) {
                    message2 += '&nbsp;&nbsp;&nbsp;&nbsp;' + nObj.Fixture_Model_No_text__c;
        for (
          Rental_Apply_Equipment_Set_Detail__c nObj : raesdListMap.get(raes.Id)
        ) {
          message2 +=
            '&nbsp;&nbsp;&nbsp;&nbsp;' + nObj.Fixture_Model_No_text__c;
                    if (nObj.Lost_Item_return__c) {
                        message2 += ' (欠品归还)';
                        haveLost_Item_return = true;
                    }
                    else {
          } else {
                        // 如果有一条不是欠品回寄那么就不显示欠品回寄
                        allLostItemReturnFlag = false;
                    }
@@ -4915,17 +2679,35 @@
            if (return_DeliverySlipMap.containsKey(raId)) {
                 fds = return_DeliverySlipMap.get(raId);
            }
            message += '回寄-发货运输单号:' + (String.isBlank(fds.Name)? '' : fds.Name) + '<BR>';
            message += '回寄-物流公司:' + (String.isBlank(fds.DeliveryCompany__c)? '' : fds.DeliveryCompany__c) + '<BR>';
            message += '回寄-运输方式:' + (String.isBlank(fds.Distributor_method__c)? '' : fds.Distributor_method__c) + '<BR>';
            String sdate = fds.Shippment_loaner_time__c == null ? '' : fds.Shippment_loaner_time__c.format();
      message +=
        '回寄-发货运输单号:' +
        (String.isBlank(fds.Name) ? '' : fds.Name) +
        '<BR>';
      message +=
        '回寄-物流公司:' +
        (String.isBlank(fds.DeliveryCompany__c) ? '' : fds.DeliveryCompany__c) +
        '<BR>';
      message +=
        '回寄-运输方式:' +
        (String.isBlank(fds.Distributor_method__c)
          ? ''
          : fds.Distributor_method__c) +
        '<BR>';
      String sdate = fds.Shippment_loaner_time__c == null
        ? ''
        : fds.Shippment_loaner_time__c.format();
            message += '物流提货时间:' + sdate + '<BR>';
            if (String.isNotBlank(message)) {
                raList.add(new Rental_Apply__c(Id = raId,
        raList.add(
          new Rental_Apply__c(
            Id = raId,
                                               Asset_return_Text__c = message,
                                               Lost_item_Return_Flag__c = allLostItemReturnFlag));
                raList2.add(new Rental_Apply__c(Id = raId,
                                               Asset_return_Text__c = null));
            Lost_item_Return_Flag__c = allLostItemReturnFlag
          )
        );
        raList2.add(
          new Rental_Apply__c(Id = raId, Asset_return_Text__c = null)
        );
                message = '';
            }
        }
@@ -4936,7 +2718,11 @@
    }
    private void setAssginPerson(Set<Id> raId) {
        List<Rental_Apply__c> raList = [select Id, Assign_Person__c from Rental_Apply__c where Id in :raId];
    List<Rental_Apply__c> raList = [
      SELECT Id, Assign_Person__c
      FROM Rental_Apply__c
      WHERE Id IN :raId
    ];
        List<Rental_Apply__c> updateList = new List<Rental_Apply__c>();
        for (Rental_Apply__c ra : raList) {
            if (ra.Assign_Person__c == null) {
@@ -4944,19 +2730,22 @@
                updateList.add(ra);
            }
        }
        if (updateList.size() > 0) update updateList;
    if (updateList.size() > 0)
      update updateList;
    }
    private void changeAssetConsumable_Guaranteen_end() {
        for (Rental_Apply_Equipment_Set_Detail__c nObj : newList) {
            Rental_Apply_Equipment_Set_Detail__c oObj;
            if (trigger.isUpdate) {
      if (Trigger.isUpdate) {
                oObj = oldMap.get(nObj.Id);
            }
            if (oObj.Shippment_loaner_time__c == null
                    && nObj.Shippment_loaner_time__c != null
                    && nObj.NeedSet_Consumable_Guaranteen_end_F__c == true) {
      if (
        oObj.Shippment_loaner_time__c == null &&
        nObj.Shippment_loaner_time__c != null &&
        nObj.NeedSet_Consumable_Guaranteen_end_F__c == true
      ) {
                            Asset nass = assMap.get(nObj.Asset__c);
                if (assUpdMap.containsKey(nObj.Asset__c)) {
                    nass = assUpdMap.get(nObj.Asset__c);
@@ -4964,7 +2753,11 @@
                    nass = new Asset(Id = nObj.Asset__c);
                }
                Datetime dt = nObj.Shippment_loaner_time__c.addYears(1);
                nass.Consumable_Guaranteen_end__c = Date.newinstance(dT.year(), dT.month(), dT.day());
        nass.Consumable_Guaranteen_end__c = Date.newinstance(
          dT.year(),
          dT.month(),
          dT.day()
        );
                nass.HaveSet_Consumable_Guaranteen_end__c = true;
            }
        }
@@ -4975,8 +2768,11 @@
        for (Rental_Apply_Equipment_Set_Detail__c nObj : newList) {
            Rental_Apply_Equipment_Set_Detail__c oObj = oldMap.get(nObj.Id);
            // 申请插队 && 插队原因发生变化的
            if((nObj.Allow_Adjust_Queue_Flag__c && oObj.Allow_Adjust_Queue_Flag__c != nObj.Allow_Adjust_Queue_Flag__c)
               ||(!String.isBlank(nObj.jumpReason__c) && oObj.jumpReason__c != nObj.jumpReason__c)
      if (
        (nObj.Allow_Adjust_Queue_Flag__c &&
        oObj.Allow_Adjust_Queue_Flag__c != nObj.Allow_Adjust_Queue_Flag__c) ||
        (!String.isBlank(nObj.jumpReason__c) &&
        oObj.jumpReason__c != nObj.jumpReason__c)
               ){
               raesdIdJumpSet.add(nObj.Id);
            }
@@ -4986,11 +2782,19 @@
        List<Rental_Apply__c> raList2 = new List<Rental_Apply__c>();
        if(raesdIdJumpSet.size() > 0){
            Map<ID,List<Rental_Apply_Equipment_Set_Detail__c>> radMap = new Map<ID,List<Rental_Apply_Equipment_Set_Detail__c>>();
            List<Rental_Apply_Equipment_Set_Detail__c> radList =[ SELECT Id, Name,RAESD_Status__c,Rental_Apply__c,Fixture_Model_No__c,Rental_Apply_Equipment_Set__c,Rental_Apply_Equipment_Set__r.Name,
                     Allow_Adjust_Queue_Flag__c,jumpReason__c
      List<Rental_Apply_Equipment_Set_Detail__c> radList = [
        SELECT
          Id,
          Name,
          RAESD_Status__c,
          Rental_Apply__c,
          Fixture_Model_No__c,
          Rental_Apply_Equipment_Set__c,
          Rental_Apply_Equipment_Set__r.Name,
          Allow_Adjust_Queue_Flag__c,
          jumpReason__c
                    FROM Rental_Apply_Equipment_Set_Detail__c
                    WHERE Id = :raesdIdJumpSet
                    AND Allow_Adjust_Queue_Flag__c = TRUE
        WHERE Id = :raesdIdJumpSet AND Allow_Adjust_Queue_Flag__c = TRUE
                    ORDER BY Rental_Apply__c
            ];
            for (Rental_Apply_Equipment_Set_Detail__c  rad:radList) {
@@ -5010,13 +2814,22 @@
                htmlStr += '<table border="1">';
                htmlStr += '<tr> <th>一览No.</th><th>型号</th><th>借出备品一览明细状态</th><th>插队原因</th></tr>';
                for (Rental_Apply_Equipment_Set_Detail__c rad : radMap.get(raId)) {
                    htmlStr += '<tr><td>'+rad.Rental_Apply_Equipment_Set__r.Name+'</td><td>'+rad.Fixture_Model_No__c+'</td><td>'+rad.RAESD_Status__c+'</td><td>'+rad.jumpReason__c+'</td></tr>';
          htmlStr +=
            '<tr><td>' +
            rad.Rental_Apply_Equipment_Set__r.Name +
            '</td><td>' +
            rad.Fixture_Model_No__c +
            '</td><td>' +
            rad.RAESD_Status__c +
            '</td><td>' +
            rad.jumpReason__c +
            '</td></tr>';
                }
                htmlStr += '</table>';
                tempRa.Email_Jump_List__c = htmlStr;
                tempRa2.Email_Jump_List__c = null;
                tempRa.Email_Jump__c = TRUE;
                tempRa2.Email_Jump__c = FALSE;
        tempRa.Email_Jump__c = true;
        tempRa2.Email_Jump__c = false;
                raList.add(tempRa);
                raList2.add(tempRa2);
            }