yumenghui
2023-08-04 0a3f9325599467015aecc4af7543dd10fe70ec56
附件修改
2个文件已添加
9个文件已修改
1127 ■■■■ 已修改文件
force-app/main/default/classes/OPDPlanHandler.cls 79 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/RentalApplyFaultHandler.cls 513 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/RentalApplyFaultHandler.cls-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/RepairAndQISToPDFController.cls 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/ReceivingNotePDF.page 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/ReceivingNoteQR.page 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/ReceivingNoteWaitingReceipt.page 227 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/RentalApplyBR.page 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/RentalApplyQR.page 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/TransferApplyPDF.page 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/TransferApplyQR.page 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/OPDPlanHandler.cls
@@ -556,6 +556,7 @@
                }
            }
            if (Trigger.isInsert && String.isNotBlank(t.OriginalOpdPlan__c)) {
                
                reapplyopdMap.put(t.OriginalOpdPlan__c, t.Id);
@@ -666,25 +667,73 @@
                    insert insertCloneList;
                }
            }
            List<Attachment> getAttachmentList = [SELECT Id, Body, Name, ParentId
                                        FROM Attachment
                                        WHERE ParentId In:reapplyopdMap.keySet()];
            List<Attachment> insertAttachmentCloneList = new List<Attachment>();
            if (getAttachmentList.size() > 0 ) {
                for(Attachment att :getAttachmentList){
                    Attachment attClone = new Attachment();
                    attClone = att.clone();
                    attClone.Id = null;
                    attClone.Body = att.Body;
                    attClone.Name = att.Name;
                    attClone.ParentId = reapplyopdMap.get(att.ParentId);
                    insertAttachmentCloneList.add(attClone);
            List<ContentDocumentLink> getdocLink = [SELECT ContentDocumentId,LinkedEntityId FROM ContentDocumentLink WHERE LinkedEntityId In:reapplyopdMap.keySet()];
            List<Id> idList = new List<Id>();
            for (ContentDocumentLink link : getdocLink) {
                idList.add(link.ContentDocumentId);
            }
            List<Id> linkIdList = new List<Id>();
            for (ContentDocumentLink link : getdocLink) {
                linkIdList.add(link.LinkedEntityId);
            }
            List<ContentVersion> cvList = [SELECT VersionData,Title,PathOnClient,ContentDocumentId FROM ContentVersion WHERE ContentDocumentId In: idList];
            List<ContentVersion> insertContentVersion = new List<ContentVersion>();
            if (cvList.size()>0) {
                for (ContentVersion cv : cvList) {
                    ContentVersion newCV = new ContentVersion();
                    newCV.VersionData = cv.VersionData;
                    newCV.Title = cv.Title;
                    newCV.PathOnClient = cv.PathOnClient;
                    insertContentVersion.add(newCV);
                }
                if (insertContentVersion.size() > 0) {
                    insert insertContentVersion;
                    List<Id> versionIdList = new List<Id>();
                    for (ContentVersion ver : insertContentVersion) {
                        versionIdList.add(ver.Id);
                    }
                if (insertAttachmentCloneList.size() > 0) {
                    insert insertAttachmentCloneList;
                    List<ContentDocumentLink> insertContentDocumentLink = new List<ContentDocumentLink>();
                    List<ContentDocumentLink> getdocLinkList = [SELECT ContentDocumentId,LinkedEntityId FROM ContentDocumentLink WHERE ContentDocumentId In: idList
                                                                    AND LinkedEntityId In:linkIdList];
                    if (getdocLinkList.size()>0) {
                        for (ContentVersion ver : insertContentVersion) {
                            Id docId = [SELECT ContentDocumentId FROM ContentVersion WHERE Id = :ver.Id].ContentDocumentId;
                            for (ContentDocumentLink cdl  : getdocLinkList) {
                                ContentDocumentLink newCDL = new ContentDocumentLink();
                                newCDL.ContentDocumentId = docId;
                                // newCDL.LinkedEntityId = cdl.LinkedEntityId;
                                newCDL.LinkedEntityId = reapplyopdMap.get(cdl.LinkedEntityId);
                                newCDL.ShareType = 'I';
                                newCDL.Visibility = 'AllUsers';
                                insertContentDocumentLink.add(newCDL);
                            }
                        }
                        if (insertContentDocumentLink.size()>0) {
                            insert insertContentDocumentLink;
                        }
                    }
                }
            }
            // List<Attachment> getAttachmentList = [SELECT Id, Body, Name, ParentId
            //                             FROM Attachment
            //                             WHERE ParentId In:reapplyopdMap.keySet()];
            // List<Attachment> insertAttachmentCloneList = new List<Attachment>();
            // if (getAttachmentList.size() > 0 ) {
            //     for(Attachment att :getAttachmentList){
            //         Attachment attClone = new Attachment();
            //         attClone = att.clone();
            //         attClone.Id = null;
            //         attClone.Body = att.Body;
            //         attClone.Name = att.Name;
            //         attClone.ParentId = reapplyopdMap.get(att.ParentId);
            //         insertAttachmentCloneList.add(attClone);
            //     }
            //     if (insertAttachmentCloneList.size() > 0) {
            //         insert insertAttachmentCloneList;
            //     }
            // }
    }
    private void updateOppPlan() {
force-app/main/default/classes/RentalApplyFaultHandler.cls
New file
@@ -0,0 +1,513 @@
public without sharing class RentalApplyFaultHandler extends Oly_TriggerHandler {
    private Map<Id, Rental_Apply_Fault__c> newMap;
    private Map<Id, Rental_Apply_Fault__c> oldMap;
    private List<Rental_Apply_Fault__c> newList;
    private List<Rental_Apply_Fault__c> oldList;
    public RentalApplyFaultHandler(){
        this.newMap =  (Map<Id, Rental_Apply_Fault__c>) Trigger.newMap;
        this.oldMap =  (Map<Id, Rental_Apply_Fault__c>) Trigger.oldMap;
        this.newList = (List<Rental_Apply_Fault__c>) Trigger.new;
        this.oldList = (List<Rental_Apply_Fault__c>) Trigger.old;
    }
    protected override void beforeInsert() {
        //List 备品借出申请
        List<String> raListIds = new List<String>();
        Set<String> radListIds = new Set<String>();
        //申请单Id, List<故障报告>
        Map<Id, List<Rental_Apply_Fault__c>> raMap = new Map<Id, List<Rental_Apply_Fault__c>>();
        //Name 规则 : 备品借出申请单 + 001 ~999
        for(Rental_Apply_Fault__c raf: newList){
            //获取所有的申请单Id
            radListIds.add(raf.Rental_Apply_Equipment_Set_Detail__c);
        }
        // 获取申请单下所有明细的Id
        List<Rental_Apply_Equipment_Set_Detail__c> raesdList = [SELECT Id,Rental_Apply__c from Rental_Apply_Equipment_Set_Detail__c WHERE Id in :radListIds];
        for(Rental_Apply_Equipment_Set_Detail__c rae : raesdList){
            raListIds.add(rae.Rental_Apply__c);
        }
        raesdList = [SELECT Id,Rental_Apply__c from Rental_Apply_Equipment_Set_Detail__c WHERE Rental_Apply__c in :raListIds];
        for(Rental_Apply_Equipment_Set_Detail__c rea : raesdList){
            radListIds.add(rea.Id);
        }
        system.debug('radListIds===='+radListIds);
        //查出 申请单下全部的检测报告
        List<Rental_Apply_Fault__c> raList = [SELECT Id, Rental_Apply_Equipment_Set_Detail__c, Rental_Apply_Equipment_Set_Detail__r.Rental_Apply__r.Id,Rental_Apply_Equipment_Set_Detail__r.Rental_Apply__r.Name from Rental_Apply_Fault__c where Rental_Apply_Equipment_Set_Detail__c in :radListIds];
        //查出 所有申请单明细
        Map<Id,Rental_Apply_Equipment_Set_Detail__c> radMap = new Map<Id,Rental_Apply_Equipment_Set_Detail__c>([
                Select Id,Rental_Apply__r.Name, Rental_Apply__r.Id, Rental_Apply__r.Person_In_Charge__c, Rental_Apply__r.demo_purpose2__c,
                        Rental_Apply__r.Rental_Assistant__c, Rental_Apply__r.Rental_Assistant2__c, Rental_Apply__r.Loaner_Storage_mail_address__c,
                        Rental_Apply__r.ZongjianApprovalManager__c, Rental_Apply__r.BuchangApprovalManagerSales__c, SerialNumber_F__c,
                        Rental_Apply__r.SalesManager__c, Rental_Apply__r.Loaner_centre_mail_address__c, Rental_Apply__r.Hospital__r.Name,
                        Fixture_Model_No__c, Rental_Apply__r.OCM_dept_category__c, Rental_Apply__r.WorkPlace__c, (select id from Rental_Apply_Equipment_Set_Detail_Fault__r)
                from Rental_Apply_Equipment_Set_Detail__c
                where id in :radListIds]);
        system.debug('radMap===='+radMap);
        for (Rental_Apply_Fault__c raf : raList) {
            system.debug('raf.Rental_Apply_Equipment_Set_Detail__c==='+raf.Rental_Apply_Equipment_Set_Detail__c);
            system.debug('radMap.get(raf.Rental_Apply_Equipment_Set_Detail__c).Rental_Apply__r.Id===' + radMap.get(raf.Rental_Apply_Equipment_Set_Detail__c).Rental_Apply__r.Id);
            if(raMap.containsKey(radMap.get(raf.Rental_Apply_Equipment_Set_Detail__c).Rental_Apply__r.Id)){
                raMap.get(radMap.get(raf.Rental_Apply_Equipment_Set_Detail__c).Rental_Apply__r.Id).add(raf);
            } else {
                List<Rental_Apply_Fault__c> tempList = new List<Rental_Apply_Fault__c>();
                tempList.add(raf);
                raMap.put(radMap.get(raf.Rental_Apply_Equipment_Set_Detail__c).Rental_Apply__r.Id,tempList);
            }
        }
        system.debug('raMap===='+raMap);
        for(Rental_Apply_Fault__c raf : newList){
            //当前借出明细Id
            String radId = raf.Rental_Apply_Equipment_Set_Detail__c;
            //当前申请单Id
            String raId = radMap.get(radId).Rental_Apply__r.Id;
            if( radMap.containsKey(raf.Rental_Apply_Equipment_Set_Detail__c) && radMap.get(raf.Rental_Apply_Equipment_Set_Detail__c).Rental_Apply_Equipment_Set_Detail_Fault__r.size() >= 1 ){
                raf.addError('已存在检测分析报告');
            }
            if(raMap.containsKey(raId)){
                Integer rafSize = raMap.get(raId).size() + 1;
                system.debug('rafSize===='+rafSize);
                String rafSizeString = '000' + rafSize;
                String cutString = rafSizeString.substring(rafSizeString.length()-3, rafSizeString.length());
                if(rafSize == 0) {
                    raf.Name = radMap.get(radId).Rental_Apply__r.Name + '-JCBG-001';
                }else{
                    raf.Name = radMap.get(radId).Rental_Apply__r.Name + '-JCBG-' + cutString;
                }
            }else{
                raf.Name = radMap.get(radId).Rental_Apply__r.Name + '-JCBG-001';
            }
            raf.RentalApplyNo__c = radMap.get(radId).Rental_Apply__r.Name;
            raf.demo_purpose2__c = radMap.get(radId).Rental_Apply__r.demo_purpose2__c;
            raf.HospitalText__c = radMap.get(radId).Rental_Apply__r.Hospital__r.Name;
            raf.Repair_product_body_number__c = radMap.get(radId).SerialNumber_F__c;
            raf.Fixture_Model_No__c = radMap.get(radId).Fixture_Model_No__c;
            raf.OCM_dept_category__c = radMap.get(radId).Rental_Apply__r.OCM_dept_category__c;
            raf.WorkPlace__c = radMap.get(radId).Rental_Apply__r.WorkPlace__c;
            raf.Person_In_Charge_User__c = radMap.get(radId).Rental_Apply__r.Person_In_Charge__c;
            raf.Rental_Assistant__c = radMap.get(radId).Rental_Apply__r.Rental_Assistant__c;
            raf.Rental_Assistant2__c = radMap.get(radId).Rental_Apply__r.Rental_Assistant2__c;
            raf.ZongjianApprovalManager__c = radMap.get(radId).Rental_Apply__r.ZongjianApprovalManager__c;
            raf.BuchangApprovalManagerSales__c = radMap.get(radId).Rental_Apply__r.BuchangApprovalManagerSales__c;
            raf.SalesManager__c = radMap.get(radId).Rental_Apply__r.SalesManager__c;
            raf.Loaner_centre_mail_address__c = radMap.get(radId).Rental_Apply__r.Loaner_centre_mail_address__c;
            raf.Loaner_Storage_mail_address__c = radMap.get(radId).Rental_Apply__r.Loaner_Storage_mail_address__c;
            raf.status__c = '草案中';
        }
    }
    protected override void afterInsert() {
        // 给备品出借担当增加读写权限
        List<Rental_Apply_Fault__Share> rafShareList = new List<Rental_Apply_Fault__Share>();
        for (Rental_Apply_Fault__c raf: newList) {
            // 备品出借担当
            if (raf.Person_In_Charge_User__c != null) {
                Rental_Apply_Fault__Share rafShare = new Rental_Apply_Fault__Share();
                rafShare.AccessLevel = 'Edit';
                rafShare.UserOrGroupId = raf.Person_In_Charge_User__c;
                rafShare.ParentID = raf.Id;
                rafShareList.add(rafShare);
            }
            Rental_Apply_Fault__c tempRaf = [select id, ZongjianApprovalManager__r.isActive, BuchangApprovalManagerSales__r.isActive, SalesManager__r.isActive from Rental_Apply_Fault__c where Id =:raf.id ];
            System.debug('-------------temp.ZongjianApprovalManager__r.isActive-------------' + tempRaf.ZongjianApprovalManager__r.isActive);
            System.debug('-------------raf.ZongjianApprovalManager__r.isActive--------------' + raf.ZongjianApprovalManager__r.isActive);
            // CL4 高级总监
            if (raf.ZongjianApprovalManager__c != null && tempRaf.ZongjianApprovalManager__r.isActive) {
                Rental_Apply_Fault__Share rafShare = new Rental_Apply_Fault__Share();
                rafShare.AccessLevel = 'READ';
                rafShare.UserOrGroupId = raf.ZongjianApprovalManager__c;
                rafShare.ParentID = raf.Id;
                rafShareList.add(rafShare);
            }
            // CL5 总监级
            if (raf.BuchangApprovalManagerSales__c != null && tempRaf.BuchangApprovalManagerSales__r.isActive) {
                Rental_Apply_Fault__Share rafShare = new Rental_Apply_Fault__Share();
                rafShare.AccessLevel = 'READ';
                rafShare.UserOrGroupId = raf.BuchangApprovalManagerSales__c;
                rafShare.ParentID = raf.Id;
                rafShareList.add(rafShare);
            }
            // CL6 经理级
            if (raf.SalesManager__c != null && tempRaf.SalesManager__r.isActive) {
                Rental_Apply_Fault__Share rafShare = new Rental_Apply_Fault__Share();
                rafShare.AccessLevel = 'READ';
                rafShare.UserOrGroupId = raf.SalesManager__c;
                rafShare.ParentID = raf.Id;
                rafShareList.add(rafShare);
            }
        }
        if (!rafShareList.isEmpty()) {
            insert rafShareList;
        }
    }
    protected override void beforeUpdate() {
        Date today = Date.today();
        List<Rental_Apply_Fault__c> deleteAttachmentIds = new List<Rental_Apply_Fault__c>();
        Set<Id> deleteIds = new Set<Id>();
        for(Rental_Apply_Fault__c raf: newList){
            Rental_Apply_Fault__c oldRaf = oldMap.get(raf.Id);
            if (raf.status__c == '已发送' && oldRaf.status__c != '已发送') {
                raf.SendDate__c = today;
            }
            if (raf.status__c == '已反馈' && oldRaf.status__c != '已反馈') {
                raf.LoanerFeedback_date__c = today;
                if (raf.UseExplain__c == null) {
                    raf.adderror('【备品使用情况说明】不能为空');
                    return;
                }
            }
            if ((String.isBlank(raf.AttachmentId1__c) && !String.isBlank(oldRaf.AttachmentId1__c))
                || (String.isBlank(raf.AttachmentId2__c) && !String.isBlank(oldRaf.AttachmentId2__c))) {
                deleteAttachmentIds.add(raf);
                if (String.isBlank(raf.AttachmentId1__c) && !String.isBlank(oldRaf.AttachmentId1__c)) {
                    deleteIds.add(oldRaf.AttachmentId1__c);
                }
                if (String.isBlank(raf.AttachmentId2__c) && !String.isBlank(oldRaf.AttachmentId2__c)) {
                    deleteIds.add(oldRaf.AttachmentId2__c);
                }
            }
        }
        if (!deleteAttachmentIds.isEmpty()) {
            List<Attachment> attList = [SELECT Id,ParentId FROM Attachment WHERE ParentId IN: deleteAttachmentIds Order by ParentId,Id];
            Map<String, List<Attachment>> parentMap = new Map<String, List<Attachment>>();
            for (Attachment att : attList) {
                if (!deleteIds.contains(att.Id)) {
                    if (!parentMap.isEmpty() && parentMap.containskey(att.ParentId)) {
                        List<Attachment> attTemp = parentMap.get(att.ParentId);
                        attTemp.add(att);
                        parentMap.put(att.ParentId, attTemp);
                    } else {
                        List<Attachment> attTemp = new List<Attachment>();
                        attTemp.add(att);
                        parentMap.put(att.ParentId, attTemp);
                    }
                }
            }
            for (Rental_Apply_Fault__c raf : deleteAttachmentIds) {
                if (!parentMap.isEmpty() && parentMap.containskey(raf.Id)) {
                    Rental_Apply_Fault__c oldObj = oldMap.get(raf.Id);
                    List<Attachment> attTemp = parentMap.get(raf.Id);
                    System.debug('========================================' + attTemp);
                    if (attTemp.size() == 1) {
                        raf.AttachmentId1__c = attTemp[0].Id;
                        raf.AttachmentId2__c = null;
                    } else {
                        raf.AttachmentId1__c = attTemp[0].Id;
                        raf.AttachmentId2__c = attTemp[1].Id;
                    }
                }
            }
        }
    }
    protected override void afterUpdate() {
        Set<Id> feedbackIds = new Set<Id>();
        Set<Id> sendReportIds = new Set<Id>();
        for(Rental_Apply_Fault__c raf: newList){
            Rental_Apply_Fault__c oldRaf = oldMap.get(raf.Id);
            if (raf.status__c == '已发送' && oldRaf.status__c != '已发送') {
                sendReportIds.add(raf.Id);
            }
            if (raf.status__c == '已反馈' && oldRaf.status__c != '已反馈') {
                feedbackIds.add(raf.Id);
            }
        }
        if (!sendReportIds.isEmpty()) {
            //备品中心推送邮件给现场
            sendEmail(sendReportIds, '1');
        }
        if (!feedbackIds.isEmpty()) {
            //现场回复后推送的邮件
            sendEmail(feedbackIds, '2');
        }
    }
    //推送邮件处理
    public void sendEmail(Set<Id> rafIds, String flag) {
        List<Rental_Apply_Fault__c> rafList = [
                SELECT Id, Person_In_Charge_User__r.Email, Owner.Email, Rental_Assistant__r.Email, Rental_Assistant2__r.Email,
                        Loaner_centre_mail_address__c, Loaner_Storage_mail_address__c, ZongjianApprovalManager__r.Email,
                        BuchangApprovalManagerSales__r.Email, SalesManager__r.Email, Salesdept__c, StorageCheckEmail__c
                FROM Rental_Apply_Fault__c
                WHERE Id IN: rafIds];
        EmailTemplate et = null;
        if (flag == '1') {
            et = [Select id from EmailTemplate where name = '备品检测分析报告' limit 1];
        } else if (flag == '2') {
            et = [Select id from EmailTemplate where name = '备品检测分析报告操作不当提醒已回复' limit 1];
        } else {
            return;
        }
        List<Messaging.SingleEmailMessage> emails = new List<Messaging.SingleEmailMessage>();
        for (Rental_Apply_Fault__c raf : rafList) {
            String[] toAddresses = new String[]{};
            String[] ccAddresses = new String[]{};
            if (flag == '1') {
                //7月31日演示注释 start
                //To 申请人
                //toAddresses.add(raf.Person_In_Charge_User__r.Email);
                //To 备品跟进助理
                // if(raf.Rental_Assistant__r.Email != null) {
                //     toAddresses.add(raf.Rental_Assistant__r.Email);
                // }
                // if(raf.Rental_Assistant2__r.Email != null){
                //     toAddresses.add(raf.Rental_Assistant2__r.Email);
                // }
                //CC   部外 备品审批流人员及所属总监---cl4总监邮箱 备品总窗口
                //部内 白总、古部长,林部长   白科,古芳丽,林芳
                //     ocmasset公共邮箱
                //     检测仓库公共邮箱
                //ccAddresses = System.Label.RentalApplyFaultReplyToBuNei.split(';');
                //cc 部外 备品审批流人员及所属总监---cl4总监邮箱  备品总窗口
                //setEmailAddress(raf, ccAddresses);
                //7月31日演示注释 end
                if(raf.Loaner_Storage_mail_address__c!=null){
                    ccAddresses.add(raf.Loaner_Storage_mail_address__c);
                }
                ccAddresses.add(raf.Loaner_centre_mail_address__c);
                ccAddresses.add('sunxia@prec-tech.com');
                toAddresses.add('lijinghuan@prec-tech.com');
                //ccAddresses.add(raf.StorageCheckEmail__c);
            } else if (flag == '2') {
                //To ocmasset公共邮箱 检测仓库公共邮箱 检测担当
                //7月31日演示注释 start
                // toAddresses.add(raf.Loaner_centre_mail_address__c);
                // toAddresses.add(raf.Loaner_Storage_mail_address__c);
                // //toAddresses.add(raf.StorageCheckEmail__c);
                // toAddresses.add(raf.Owner.Email);
                //部内  白总、古部长,林部长
                //ccAddresses = System.Label.RentalApplyFaultReplyToBuNei.split(';');
                //cc 部外 备品审批流人员及所属总监---cl4总监邮箱  备品总窗口
                //setEmailAddress(raf, ccAddresses);
                //7月31日演示注释 end
                ccAddresses.add('sunxia@prec-tech.com');
                toAddresses.add('lijinghuan@prec-tech.com');
                //Cc 备品跟进助理
                /*if(raf.Rental_Assistant__r.Email != null) {
                    ccAddresses.add(raf.Rental_Assistant__r.Email);
                }
                if(raf.Rental_Assistant2__r.Email != null){
                    ccAddresses.add(raf.Rental_Assistant2__r.Email);
                }*/
            }
            Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
            mail = Messaging.renderStoredEmailTemplate(et.Id, null, raf.Id);
            mail.setSaveAsActivity(false);
            mail.setToAddresses(toAddresses);
            System.debug('=============' + ccAddresses);
            mail.setCcAddresses(ccAddresses);
            emails.add(mail);
        }
        Messaging.sendEmail(emails);
    }
    public void setEmailAddress(Rental_Apply_Fault__c rafObj, String[] ccAddr) {
        //本部                窗口    CL5总监(备品审批) CL4高级总监(备品审批)   建议抄送人1  建议抄送人2  备注
        //华北                赵靖苹  是                  否                      慕海霞       李鸷
        //东北                关贝妮  是                  否                      赵志成       李鸷
        //西北                张媛媛  是                  否                      颜大庆       宋琰
        //西南                赵雯雯  是                  是
        //华东                徐明楠  是                  否                      宋真         杨剑清
        //华南                夏俊洁  是                  是                      俞澜         严蕊芳
        //MA                  无     是                  否                       陆吉
        //SOLUTION            殷佳骊  是                  否
        //医疗服务本部         无      是                                         陆吉(理论上没有)
        //外科事业本部         李海红  是                  否
        //市场企划本部         无      是                                         陆吉(理论上没有)
        //消化.呼吸内镜事业本部 无      是                 否                      陆吉
        //消化.呼吸领域解决方案本部   无   是                                      陆吉(理论上没有)
        if (rafObj.Salesdept__c == '医疗华北营业本部') {
            if (rafObj.BuchangApprovalManagerSales__c != null) {
                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
            }
            if (rafObj.SalesManager__c != null) {
                ccAddr.add(rafObj.SalesManager__r.Email);
            }
            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_Huabei) && System.Label.RentalApplyFaultReplyTo_Huabei != 'null') {
                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_Huabei.split(';'));
            }
        } else if (rafObj.Salesdept__c == '医疗东北营业本部') {
            if (rafObj.BuchangApprovalManagerSales__c != null) {
                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
            }
            if (rafObj.SalesManager__c != null) {
                ccAddr.add(rafObj.SalesManager__r.Email);
            }
            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_Dongbei) && System.Label.RentalApplyFaultReplyTo_Dongbei != 'null') {
                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_Dongbei.split(';'));
            }
        } else if (rafObj.Salesdept__c == '医疗西北营业本部') {
            if (rafObj.BuchangApprovalManagerSales__c != null) {
                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
            }
            if (rafObj.SalesManager__c != null) {
                ccAddr.add(rafObj.SalesManager__r.Email);
            }
            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_Xibei) && System.Label.RentalApplyFaultReplyTo_Xibei != 'null') {
                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_Xibei.split(';'));
            }
        } else if (rafObj.Salesdept__c == '医疗西南营业本部') {
            if (rafObj.BuchangApprovalManagerSales__c != null) {
                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
            }
            if (rafObj.SalesManager__c != null) {
                ccAddr.add(rafObj.SalesManager__r.Email);
            }
            if (rafObj.ZongjianApprovalManager__c != null) {
                ccAddr.add(rafObj.ZongjianApprovalManager__r.Email);
            }
            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_Xinan) && System.Label.RentalApplyFaultReplyTo_Xinan != 'null') {
                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_Xinan.split(';'));
            }
        } else if (rafObj.Salesdept__c == '医疗华东营业本部') {
            if (rafObj.BuchangApprovalManagerSales__c != null) {
                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
            }
            if (rafObj.SalesManager__c != null) {
                ccAddr.add(rafObj.SalesManager__r.Email);
            }
            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_Huadong) && System.Label.RentalApplyFaultReplyTo_Huadong != 'null') {
                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_Huadong.split(';'));
            }
        } else if (rafObj.Salesdept__c == '医疗华南营业本部') {
            if (rafObj.BuchangApprovalManagerSales__c != null) {
                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
            }
            if (rafObj.SalesManager__c != null) {
                ccAddr.add(rafObj.SalesManager__r.Email);
            }
            if (rafObj.ZongjianApprovalManager__c != null) {
                ccAddr.add(rafObj.ZongjianApprovalManager__r.Email);
            }
            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_Huanan) && System.Label.RentalApplyFaultReplyTo_Huanan != 'null') {
                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_Huanan.split(';'));
            }
        } else if (rafObj.Salesdept__c == 'MA本部') {
            if (rafObj.BuchangApprovalManagerSales__c != null) {
                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
            }
            if (rafObj.SalesManager__c != null) {
                ccAddr.add(rafObj.SalesManager__r.Email);
            }
            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_MA) && System.Label.RentalApplyFaultReplyTo_MA != 'null') {
                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_MA.split(';'));
            }
        } else if (rafObj.Salesdept__c == 'Solution本部') {
            if (rafObj.BuchangApprovalManagerSales__c != null) {
                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
            }
            if (rafObj.SalesManager__c != null) {
                ccAddr.add(rafObj.SalesManager__r.Email);
            }
            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_SOLUTION) && System.Label.RentalApplyFaultReplyTo_SOLUTION != 'null') {
                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_SOLUTION.split(';'));
            }
        } else if (rafObj.Salesdept__c == '医疗服务本部') {
            if (rafObj.BuchangApprovalManagerSales__c != null) {
                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
            }
            if (rafObj.SalesManager__c != null) {
                ccAddr.add(rafObj.SalesManager__r.Email);
            }
            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_Yiliao) && System.Label.RentalApplyFaultReplyTo_Yiliao != 'null') {
                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_Yiliao.split(';'));
            }
        } else if (rafObj.Salesdept__c == '外科事业本部') {
            if (rafObj.BuchangApprovalManagerSales__c != null) {
                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
            }
            if (rafObj.SalesManager__c != null) {
                ccAddr.add(rafObj.SalesManager__r.Email);
            }
            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_Waike) && System.Label.RentalApplyFaultReplyTo_Waike != 'null') {
                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_Waike.split(';'));
            }
        } else if (rafObj.Salesdept__c == '市场企划本部') {
            if (rafObj.BuchangApprovalManagerSales__c != null) {
                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
            }
            if (rafObj.SalesManager__c != null) {
                ccAddr.add(rafObj.SalesManager__r.Email);
            }
            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_Shichang) && System.Label.RentalApplyFaultReplyTo_Shichang != 'null') {
                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_Shichang.split(';'));
            }
        } else if (rafObj.Salesdept__c == '消化·呼吸内镜事业本部') {
            if (rafObj.BuchangApprovalManagerSales__c != null) {
                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
            }
            if (rafObj.SalesManager__c != null) {
                ccAddr.add(rafObj.SalesManager__r.Email);
            }
            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_HXNJ) && System.Label.RentalApplyFaultReplyTo_HXNJ != 'null') {
                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_HXNJ.split(';'));
            }
        } else if (rafObj.Salesdept__c == '消化·呼吸领域解决方案本部') {
            if (rafObj.BuchangApprovalManagerSales__c != null) {
                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
            }
            if (rafObj.SalesManager__c != null) {
                ccAddr.add(rafObj.SalesManager__r.Email);
            }
            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_HXLY) && System.Label.RentalApplyFaultReplyTo_HXLY != 'null') {
                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_HXLY.split(';'));
            }
        }
    }
}
force-app/main/default/classes/RentalApplyFaultHandler.cls-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>50.0</apiVersion>
    <status>Active</status>
</ApexClass>
force-app/main/default/classes/RepairAndQISToPDFController.cls
@@ -57,7 +57,7 @@
        PageReference pdfPage ;
        
        List<Repair__c> updateRpr = new List<Repair__c>();
        List<Attachment> attachments = new List<Attachment>();
        // List<Attachment> attachments = new List<Attachment>();
        for(Repair__c re : repList){
            String generatedFields = re.GeneratedPDFField__c;
            if (checkFieldisGeneratedPDF('ProblemDescription__c',re)) {
@@ -75,15 +75,29 @@
            } else {
                pdfBody = pdfPage.getContentAsPDF();
            }
            Attachment attach = new Attachment();
            attach.Body = pdfBody;
            attach.Name = re.name + '_' + 'Problem_Discription.pdf';
            attach.ParentId = re.id;
            attachments.add(attach);
            ContentVersion version = new ContentVersion();
            version.VersionData = pdfBody;
            version.Title = re.name + '_' + 'Problem_Discription.pdf';
            version.PathOnClient = re.name + '_' + 'Problem_Discription.pdf'+'.pdf';
            insert version;
            Id docId = [SELECT ContentDocumentId FROM ContentVersion WHERE Id = :version.Id].ContentDocumentId;
            ContentDocumentLink cdl = new ContentDocumentLink();
            cdl.ContentDocumentId = docId;
            cdl.LinkedEntityId = re.id;
            cdl.ShareType = 'I';
            cdl.visibility = 'AllUser';
            insert cdl;
            // Attachment attach = new Attachment();
            // attach.Body = pdfBody;
            // attach.Name = re.name + '_' + 'Problem_Discription.pdf';
            // attach.ParentId = re.id;
            // attachments.add(attach);
            re.GeneratedPDFField__c = 'ProblemDescription__c';
            updateRpr.add(re);
        }
        insert attachments;
        // insert attachments;
        update updateRpr;
        return null;
    }
@@ -94,7 +108,7 @@
        System.debug('1111111111111111111111111111111111111111111111111generateAttachment执行了-----------');
        List<QIS_Report__c> updateQis = new List<QIS_Report__c>();
        List<Attachment> attachments = new List<Attachment>();
        // List<Attachment> attachments = new List<Attachment>();
        PageReference pdfPage ;
        for(QIS_Report__c qis : qisReports){
@@ -126,16 +140,30 @@
                } else {
                   pdfBody = pdfPage.getContentAsPDF();
                }
                Attachment attach = new Attachment();
                attach.Body = pdfBody;
                ContentVersion version = new ContentVersion();
                version.VersionData = pdfBody;
                // Attachment attach = new Attachment();
                // attach.Body = pdfBody;
                if ('problem_detail_photo__c'.equals(apiName)) {
                    attach.Name =  substringApiName(qis.name) + '_Problem_Discription.pdf';
                    // attach.Name =  substringApiName(qis.name) + '_Problem_Discription.pdf';
                    version.Title = substringApiName(qis.name) + '_Problem_Discription.pdf';
                }else {
                    attach.Name = substringApiName(qis.name) + '_' + 'Problem_' + apiName.substring(0,apiName.length()-3) + '.pdf';
                    // attach.Name = substringApiName(qis.name) + '_' + 'Problem_' + apiName.substring(0,apiName.length()-3) + '.pdf';
                    version.Title = substringApiName(qis.name) + '_' + 'Problem_' + apiName.substring(0,apiName.length()-3) + '.pdf';
                }
                attach.ParentId = qis.id;
                version.PathOnClient = substringApiName(qis.name) + '_' + 'Problem_' + apiName.substring(0,apiName.length()-3) + '.pdf'+'.pdf';
                // attach.ParentId = qis.id;
                // attachments.add(attach);
                insert version;
                Id docId = [SELECT ContentDocumentId FROM ContentVersion WHERE Id = :version.Id].ContentDocumentId;
                ContentDocumentLink cdl = new ContentDocumentLink();
                cdl.ContentDocumentId = docId;
                cdl.LinkedEntityId = qis.id;
                cdl.ShareType = 'I';
                cdl.visibility = 'AllUser';
                insert cdl;
                attachments.add(attach);
                if (generatedFields == null) {
                    qis.GeneratedPDFField__c = apiName;
                }else {
@@ -144,7 +172,7 @@
            }
            updateQis.add(qis);
        }
        insert attachments;
        // insert attachments;
        update updateQis;
        
        return null;
force-app/main/default/pages/ReceivingNotePDF.page
@@ -41,7 +41,7 @@
            <!-- 合同编码 -->
            <td style="padding: 0;box-sizing: border-box;text-align:left;font-size:13px;width:13%;" colspan="1">合同编码:</td>
            <td style="padding: 0;box-sizing: border-box;text-align:left;font-size:13px;width:20%;" colspan="1">{!receivingNoteHeadShow.Sales_order_number__c}</td>
            <td rowspan="6" style="box-sizing: border-box;text-align:right" colspan="1"><img style="width: 90px; height: 90px;padding: 0px;margin-top: 0mm;" src="{!'/servlet/servlet.FileDownload?file=' + receivingNoteHeadShow.QRId__c}" /></td>
            <td rowspan="6" style="box-sizing: border-box;text-align:right" colspan="1"><img style="width: 90px; height: 90px;padding: 0px;margin-top: 0mm;" src="{!'/sfc/servlet.shepherd/version/download/' + receivingNoteHeadShow.QRId__c}" /></td>
        </tr>
        <tr>
            <!-- 订单编码 -->
force-app/main/default/pages/ReceivingNoteQR.page
@@ -13,29 +13,59 @@
            sforce.connection.sessionId = '{!GETSESSIONID()}';
            //20210312 you WLIG-BV8CHF start
            var record = sforce.connection.query("select id from Attachment where ParentId = \'{!ReceivingNote__c.Id}\' and name = \'QRCode-{!ReceivingNote__c.ReceivingNoteNo_New__c}\'");
            // var record = sforce.connection.query("select id from Attachment where ParentId = \'{!ReceivingNote__c.Id}\' and name = \'QRCode-{!ReceivingNote__c.ReceivingNoteNo_New__c}\'");
            var record = sforce.connection.query("select Id,ContentDocumentId from ContentDocumentLink where LinkedEntityId = \'{!ReceivingNote__c.Id}\'");
            if(record.size > 0){
                var records = record.getArray("records");
                var idList = records.map(obj => "'" + obj.ContentDocumentId + "'").join(",");
                record = sforce.connection.query("select Id from ContentDocument where Id in (" + idList + ") and Title = \'QRCode-{!ReceivingNote__c.ReceivingNoteNo_New__c}\'");
            }
            //20210312 you WLIG-BV8CHF end
            // 不存在qr文件时,新生成一个,并连到清单上
            if (record.size == 0) {
                var atta = new sforce.SObject("Attachment");
                //20210312 you WLIG-BV8CHF start
                atta.Name = "QRCode-{!ReceivingNote__c.ReceivingNoteNo_New__c}";
                //20210312 you WLIG-BV8CHF end
                atta.ParentId = "{!ReceivingNote__c.Id}";
                atta.Body = src;
                var result = sforce.connection.create([atta]);
                var version = new sforce.SObject("ContentVersion");
                version.VersionData = src;
                version.Title = "QRCode-{!ReceivingNote__c.ReceivingNoteNo_New__c}";
                version.ContentLocation = 's';
                version.PathOnClient= "QRCode-{!ReceivingNote__c.ReceivingNoteNo_New__c}.jpg";
                var versionResult = sforce.connection.create([version]);
                record = sforce.connection.query("SELECT ContentDocumentId FROM ContentVersion WHERE Id =\'" + versionResult[0].id + "\'");
                var records = record.getArray("records");
                var link = new sforce.SObject("ContentDocumentLink");
                link.ContentDocumentId = records[0].ContentDocumentId;
                link.LinkedEntityId = "{!ReceivingNote__c.Id}";
                link.ShareType = 'I';
                link.Visibility = 'AllUsers';
                var result = sforce.connection.create([link]);
                // var atta = new sforce.SObject("Attachment");
                // //20210312 you WLIG-BV8CHF start
                // atta.Name = "QRCode-{!ReceivingNote__c.ReceivingNoteNo_New__c}";
                // //20210312 you WLIG-BV8CHF end
                // atta.ParentId = "{!ReceivingNote__c.Id}";
                // atta.Body = src;
                // var result = sforce.connection.create([atta]);
                var es = new sforce.SObject("ReceivingNote__c");
                es.Id = "{!ReceivingNote__c.Id}";
                es.QRId__c = result[0].id;
                es.QRId__c = versionResult[0].id;
                result = sforce.connection.update([es]);
            // 存在qr时,绑到清单上
            } else {
                var records = record.getArray("records");
                var es = new sforce.SObject("ReceivingNote__c");
                es.Id = "{!ReceivingNote__c.Id}";
                es.QRId__c = records[0].Id;
                result = sforce.connection.update([es]);
                var version = new sforce.SObject("ContentVersion");
                version = sforce.connection.query("select Id,ContentDocumentId from ContentVersion where ContentDocumentId = \'" + records[0].id + "\'");
                version = version.getArray("records");
                // 存在qr时,绑到清单上
                if(version[0].Id != "{!ReceivingNote__c.QRId__c}"){
                    var es = new sforce.SObject("ReceivingNote__c");
                    es.Id = "{!ReceivingNote__c.Id}";
                    es.QRId__c = version[0].id;
                    result = sforce.connection.update([es]);
                }
            }
        }
force-app/main/default/pages/ReceivingNoteWaitingReceipt.page
@@ -5,6 +5,33 @@
    <apex:stylesheet value="{!URLFOR($Resource.ReceivingNotePageCss)}"/>
    <apex:includeScript value="{!URLFOR($Resource.ReceivingNotePageJS)}"/>
    <apex:includeScript value="{!URLFOR($Resource.CommonUtilJs)}"/>
    <apex:stylesheet value="{!URLFOR($Resource.StyleUtilCss)}"/>
    <style type="text/css">
        table.list .col_ReceivingNoteDetailNo__c {width:100px;}
        table.list .col_OT_CODE__c {width:100px;}
        table.list .col_Fixture_Model_No_F__c {width:100px;}
        table.list .col_Fixture_Model_Name_F__c {width:100px;}
        table.list .col_Fixture_Arrival_Process__c {width:100px;}
        table.list .col_Fixture_Arrival_Product__c {width:200px;}
        table.list .col_Internal_Asset_number_key__c {width:100px;}
        table.list .col_SerialNumber_Origin__c {width:100px;}
        table.list .col_SerialNumber__c {width:100px;}
        table.list .col_PeriodOfUse_Old_F__c {width:100px;}
        table.list .col_PeriodOfUse_Final__c {width:100px;}
        table.list .col_Packing_list_Fixture_F__c {width:100px;}
        table.list .col_RND_Status__c {width:100px;}
        table.list .col_Asset_loaner_category_F__c {width:100px;}
        table.list .col_EquipmentSet_Managment_Code__c {width:100px;}
        table.list .col_Salesdepartment__c {width:100px;}
        table.list .col_SalesProvince__c {width:100px;}
        table.list .col_Product_category__c {width:100px;}
        table.list .col_Equipment_Type__c {width:100px;}
        table.list .col_Manage_type__c {width:100px;}
        table.list .col_unknow_serial_NO_product__c {width:100px;}
        table.list .col_Loaner_accsessary__c {width:100px;}
        table.list .col_Change_Point__c {width:100px;}
        /* table.list .noClick .col_DataConfirmation__c {width:100px;} */
    </style>
    <apex:form >
        <!-- 此处隐式生成二维码图片,防止PDF页上的二维码崩坏 -->
        <apex:includeScript value="{!URLFOR($Resource.qrcode)}"/>
@@ -20,28 +47,61 @@
                sforce.connection.sessionId = '{!GETSESSIONID()}';
                 // 20210312 you WLIG-BV8CHF start
                var record = sforce.connection.query("select id from Attachment where ParentId = \'{!pageB.rn.Id}\' and name = \'QRCode-{!pageB.rn.ReceivingNoteNo_New__c}\'");
                 // 20210312 you WLIG-BV8CHF end
               // var record = sforce.connection.query("select id from Attachment where ParentId = \'{!pageB.rn.Id}\' and name = \'QRCode-{!pageB.rn.ReceivingNoteNo_New__c}\'");
               var record = sforce.connection.query("select Id,ContentDocumentId from ContentDocumentLink where LinkedEntityId = \'{!pageB.rn.Id}\'");
                if(record.size > 0){
                    var records = record.getArray("records");
                    var idList = records.map(obj => "'" + obj.ContentDocumentId + "'").join(",");
                    record = sforce.connection.query("select Id from ContentDocument where Id in (" + idList + ") and Title =  \'QRCode-{!pageB.rn.ReceivingNoteNo_New__c}\'");
                }
                // 20210312 you WLIG-BV8CHF end
                // 不存在qr文件时,新生成一个,并连到清单上
                if (record.size == 0) {
                    var atta = new sforce.SObject("Attachment");
                    // 20210312 you WLIG-BV8CHF start
                    atta.Name = "QRCode-{!pageB.rn.ReceivingNoteNo_New__c}";
                    // 20210312 you WLIG-BV8CHF end
                    atta.ParentId = "{!pageB.rn.Id}";
                    atta.Body = src;
                    var result = sforce.connection.create([atta]);
                    var version = new sforce.SObject("ContentVersion");
                    version.VersionData = src;
                    version.Title = "QRCode-{!pageB.rn.ReceivingNoteNo_New__c}";
                    version.ContentLocation = 's';
                    version.PathOnClient= "QRCode-{!pageB.rn.ReceivingNoteNo_New__c}.jpg";
                    var versionResult = sforce.connection.create([version]);
                    record = sforce.connection.query("SELECT ContentDocumentId FROM ContentVersion WHERE Id =\'" + versionResult[0].id + "\'");
                    var records = record.getArray("records");
                    var link = new sforce.SObject("ContentDocumentLink");
                    link.ContentDocumentId = records[0].ContentDocumentId;
                    link.LinkedEntityId = "{!pageB.rn.Id}";
                    link.ShareType = 'I';
                    link.Visibility = 'AllUsers';
                    var result = sforce.connection.create([link]);
                    // var atta = new sforce.SObject("Attachment");
                    // // 20210312 you WLIG-BV8CHF start
                    // atta.Name = "QRCode-{!pageB.rn.ReceivingNoteNo_New__c}";
                    // // 20210312 you WLIG-BV8CHF end
                    // atta.ParentId = "{!pageB.rn.Id}";
                    // atta.Body = src;
                    // var result = sforce.connection.create([atta]);
                    var es = new sforce.SObject("ReceivingNote__c");
                    es.Id = "{!pageB.rn.Id}";
                    es.QRId__c = result[0].id;
                    es.QRId__c = versionResult[0].id;
                    result = sforce.connection.update([es]);
                // 存在qr时,绑到清单上
                } else {
                    var records = record.getArray("records");
                    var version = new sforce.SObject("ContentVersion");
                    version = sforce.connection.query("select Id,ContentDocumentId from ContentVersion where ContentDocumentId = \'" + records[0].id + "\'");
                    version = version.getArray("records");
                    var es = new sforce.SObject("ReceivingNote__c");
                    es.Id = "{!pageB.rn.Id}";
                    es.QRId__c = records[0].Id;
                    es.QRId__c = versionResult[0].id;
                    result = sforce.connection.update([es]);
                    // var records = record.getArray("records");
                    // var es = new sforce.SObject("ReceivingNote__c");
                    // es.Id = "{!pageB.rn.Id}";
                    // es.QRId__c = records[0].Id;
                    // result = sforce.connection.update([es]);
                }
            }
@@ -223,7 +283,8 @@
                            </td>
                        </tr>
                    </table>
                    <table class="searchTable">
                    <table class="searchTable" style="margin-bottom:5px;margin-top:5px;">
                        <!-- <tr> -->
                        <tr>
                            <td>
                                收货状态:
@@ -262,75 +323,60 @@
                    <table class="searchTable" style="width:100%">
                        <tr>
                            <td>
                            <td style="padding-top:5px;">
                                <!-- 所在地区(本部) -->
                                {!$ObjectType.ReceivingNoteDetail__c.fields.Salesdepartment__c.label}
                                <img src="/img/s.gif" alt="" class="helpOrb" title="{!$ObjectType.ReceivingNoteDetail__c.fields.Salesdepartment__c.InlineHelpText}"/>
                                <apex:selectList id="appSalesdepartment" value="{!pageB.assetInput.Salesdepartment__c}" size="1">
                                <!-- lightning改造   zyh   start -->
                                <br />
                                <!-- <apex:selectList id="appSalesdepartment" value="{!pageB.assetInput.Salesdepartment__c}" size="1"> -->
                                <apex:selectList style="width:180px;" id="appSalesdepartment" value="{!pageB.assetInput.Salesdepartment__c}" size="1">
                                <!-- lightning改造   zyh   end -->
                                    <apex:selectOptions value="{!SalesdepartmentOps}"/>
                                </apex:selectList>
                            </td>
                                <!-- 所在地区(省) -->
                            <td>
                            <td style="padding-top:5px;">
                                {!$ObjectType.Asset.fields.SalesProvince__c.label}
                                <img src="/img/s.gif" alt="" class="helpOrb" title="{!$ObjectType.ReceivingNoteDetail__c.fields.SalesProvince__c.InlineHelpText}"/>
                                <apex:selectList id="appSalesProvince" value="{!pageB.assetInput.SalesProvince__c}" size="1">
                                <!-- lightning改造   zyh   start -->
                                <br />
                                <!-- <apex:selectList id="appSalesProvince" value="{!pageB.assetInput.SalesProvince__c}" size="1"> -->
                                <apex:selectList style="width:180px;" id="appSalesProvince" value="{!pageB.assetInput.SalesProvince__c}" size="1">
                                <!-- lightning改造   zyh   end -->
                                    <apex:selectOptions value="{!SalesProvinceOps}"/>
                                </apex:selectList>
                            </td>
                            <td>
                            <td style="padding-top:5px;">
                                <!-- 产品分类(GI/SP) -->
                                {!$ObjectType.Asset.fields.Product_category__c.label}:
                                <img src="/img/s.gif" alt="" class="helpOrb" title="{!$ObjectType.ReceivingNoteDetail__c.fields.Product_category__c.InlineHelpText}"/>
                                <apex:selectList id="appProduct_category" value="{!pageB.assetInput.Product_category__c}" size="1">
                                <!-- lightning改造   zyh   start -->
                                <br />
                                <!-- <apex:selectList id="appProduct_category" value="{!pageB.assetInput.Product_category__c}" size="1"> -->
                                <apex:selectList style="width:180px;" id="appProduct_category" value="{!pageB.assetInput.Product_category__c}" size="1">
                                <!-- lightning改造   zyh   end -->
                                    <apex:selectOptions value="{!ProductCategoryOps}"/>
                                </apex:selectList>
                            </td>
                            <td>
                            <td style="padding-top:5px;">
                                <!-- 备品分类 -->
                                {!$ObjectType.Asset.fields.Equipment_Type__c.label}:
                                <img src="/img/s.gif" alt="" class="helpOrb" title="{!$ObjectType.ReceivingNoteDetail__c.fields.Equipment_Type__c.InlineHelpText}"/>
                                <apex:selectList id="appEquipment_Type" value="{!pageB.assetInput.Equipment_Type__c}" size="1">
                                <!-- lightning改造   zyh   start -->
                                <br />
                                <!-- <apex:selectList id="appEquipment_Type" value="{!pageB.assetInput.Equipment_Type__c}" size="1"> -->
                                <apex:selectList style="width:180px;" id="appEquipment_Type" value="{!pageB.assetInput.Equipment_Type__c}" size="1">
                                <!-- lightning改造   zyh   end -->
                                    <apex:selectOptions value="{!EquipmentTypeOps}"/>
                                </apex:selectList>
                            </td>
                            <td>
                                <!-- 管理种类 -->
                                {!$ObjectType.Asset.fields.Manage_type__c.label}:
                                <img src="/img/s.gif" alt="" class="helpOrb" title="{!$ObjectType.ReceivingNoteDetail__c.fields.Manage_type__c.InlineHelpText}"/>
                                <apex:selectList id="appManage_type" value="{!pageB.assetInput.Manage_type__c}" size="1">
                                    <apex:selectOptions value="{!ManageTypeOps}"/>
                                </apex:selectList>
                            </td>
                            <td>
                                <!-- 无机身号码设备 -->
                                {!$ObjectType.Asset.fields.unknow_serial_NO_product__c.label}:
                                <img src="/img/s.gif" alt="" class="helpOrb" title="{!$ObjectType.ReceivingNoteDetail__c.fields.unknow_serial_NO_product__c.InlineHelpText}"/>
                                <apex:selectList id="appunknow_serial_NO_product" value="{!pageB.assetInput.unknow_serial_NO_product__c}" size="1">
                                    <apex:selectOptions value="{!UnknowSerialNOProductOps}"/>
                                </apex:selectList>
                            </td>
                            <td>
                                <!-- 备品用途附属品 -->
                                {!$ObjectType.Asset.fields.Loaner_accsessary__c.label}:
                                <img src="/img/s.gif" alt="" class="helpOrb" title="{!$ObjectType.ReceivingNoteDetail__c.fields.Loaner_accsessary__c.InlineHelpText}"/>
                                <apex:selectList id="appLoaner_accsessary" value="{!pageB.assetInput.Loaner_accsessary__c}" size="1">
                                    <apex:selectOptions value="{!LoanerAccsessaryOps}"/>
                                </apex:selectList>
                            </td>
                            <td>
                                <!-- 备品入库产品 -->
                                {!$ObjectType.ReceivingNoteDetail__c.fields.Fixture_Arrival_Product__c.label}:
                                <img src="/img/s.gif" alt="" class="helpOrb" title="{!$ObjectType.ReceivingNoteDetail__c.fields.Fixture_Arrival_Product__c.InlineHelpText}"/>
                                <apex:inputField id="appLoaner_fixture_arrival_product" value="{!rndInfo[0].Fixture_Arrival_Product__c}"/>
                                <!-- value="{!pageB.assetInput.Fixture_Arrival_Product__c}" -->
                            </td>
                            <td>
                            <td rowspan="2">
                                <span style="margin-left: 10px;">
                                    <apex:commandButton value="编辑" onclick="blockme();" action="{!changeFixModel}" reRender="allForm,checEventFrame" oncomplete="unblockUI();windowResize();"/><!-- 20210804 ljh add checEventFrame -->
                                    <apex:commandButton value="编辑" style="margin-top: 10px;" onclick="blockme();" action="{!changeFixModel}" reRender="allForm,checEventFrame" oncomplete="unblockUI();windowResize();"/><!-- 20210804 ljh add checEventFrame -->
                                </span>
                                <span style="margin-left: 10px;">
                                    <apex:commandButton value="适用" onclick="applyJs();return false;"/>
                                    <apex:commandButton value="适用" style="margin-top: 10px;" onclick="applyJs();return false;"/>
                                    <script type="text/javascript">
                                    // 适用按钮
                                    function applyJs() {
@@ -559,20 +605,77 @@
                                </script>
                                </span>
                                <span style="margin-left: 10px;">
                                    <apex:commandButton value="选择配套" action="{!selectRNS}" rendered="{!showSelectRnsButton}"/>
                                    <apex:commandButton value="保存" style="margin-top: 10px;" onclick="blockme();" action="{!saveRecord}"/>
                                </span>
                                <span style="margin-left: 10px;">
                                    <apex:commandButton value="型号提醒邮件" onclick="return setEmailBody();" />
                                    <apex:commandButton value="返回" style="margin-top: 10px;" onclick="window.close();"/>
                                </span>
                                <!-- lightning改造   zyh   start -->
                                <br />
                                <!-- lightning改造   zyh   end -->
                                <span style="margin-left: 10px;">
                                    <apex:commandButton value="选择配套" style="margin-top: 10px;" action="{!selectRNS}" rendered="{!showSelectRnsButton}"/>
                                </span>
                                <span style="margin-left: 10px;">
                                    <apex:commandButton value="保存" onclick="blockme();" action="{!saveRecord}"/>
                                    <apex:commandButton value="型号提醒邮件" style="margin-top: 10px;" onclick="return setEmailBody();" />
                                </span>
                                <!-- lightning改造   zyh   start -->
                                <!-- <br /> -->
                                <!-- lightning改造   zyh   end -->
                                <span style="margin-left: 10px;">
                                    <apex:commandButton value="打印收货清单" onclick="window.open('/apex/ReceivingNotePDF?rnid={!parId}');return false;"/>
                                    <apex:commandButton value="打印收货清单" style="margin-top: 10px;" onclick="window.open('/apex/ReceivingNotePDF?rnid={!parId}');return false;"/>
                                </span>
                                <span style="margin-left: 10px;">
                                    <apex:commandButton value="返回" onclick="window.close();"/>
                                </span>
                            </td>
                        <!-- lightning改造   zyh   start -->
                        </tr>
                        <tr>
                        <!-- lightning改造   zyh   end -->
                            <td style="padding-top:5px;">
                                <!-- 管理种类 -->
                                {!$ObjectType.Asset.fields.Manage_type__c.label}:
                                <img src="/img/s.gif" alt="" class="helpOrb" title="{!$ObjectType.ReceivingNoteDetail__c.fields.Manage_type__c.InlineHelpText}"/>
                                <!-- lightning改造   zyh   start -->
                                <br />
                                <!-- <apex:selectList id="appManage_type" value="{!pageB.assetInput.Manage_type__c}" size="1"> -->
                                <apex:selectList style="width:180px;" id="appManage_type" value="{!pageB.assetInput.Manage_type__c}" size="1">
                                <!-- lightning改造   zyh   end -->
                                    <apex:selectOptions value="{!ManageTypeOps}"/>
                                </apex:selectList>
                            </td>
                            <td style="padding-top:5px;">
                                <!-- 无机身号码设备 -->
                                {!$ObjectType.Asset.fields.unknow_serial_NO_product__c.label}:
                                <img src="/img/s.gif" alt="" class="helpOrb" title="{!$ObjectType.ReceivingNoteDetail__c.fields.unknow_serial_NO_product__c.InlineHelpText}"/>
                                <!-- lightning改造   zyh   start -->
                                <br />
                                <!-- <apex:selectList id="appunknow_serial_NO_product" value="{!pageB.assetInput.unknow_serial_NO_product__c}" size="1"> -->
                                <apex:selectList style="width:180px;" id="appunknow_serial_NO_product" value="{!pageB.assetInput.unknow_serial_NO_product__c}" size="1">
                                <!-- lightning改造   zyh   end -->
                                    <apex:selectOptions value="{!UnknowSerialNOProductOps}"/>
                                </apex:selectList>
                            </td>
                            <td style="padding-top:5px;">
                                <!-- 备品用途附属品 -->
                                {!$ObjectType.Asset.fields.Loaner_accsessary__c.label}:
                                <img src="/img/s.gif" alt="" class="helpOrb" title="{!$ObjectType.ReceivingNoteDetail__c.fields.Loaner_accsessary__c.InlineHelpText}"/>
                                <!-- lightning改造   zyh   start -->
                                <br />
                                <!-- <apex:selectList id="appLoaner_accsessary" value="{!pageB.assetInput.Loaner_accsessary__c}" size="1"> -->
                                <apex:selectList style="width:180px;" id="appLoaner_accsessary" value="{!pageB.assetInput.Loaner_accsessary__c}" size="1">
                                <!-- lightning改造   zyh   end -->
                                    <apex:selectOptions value="{!LoanerAccsessaryOps}"/>
                                </apex:selectList>
                            </td>
                            <td style="padding-top:5px;">
                                <!-- 备品入库产品 -->
                                {!$ObjectType.ReceivingNoteDetail__c.fields.Fixture_Arrival_Product__c.label}:
                                <img src="/img/s.gif" alt="" class="helpOrb" title="{!$ObjectType.ReceivingNoteDetail__c.fields.Fixture_Arrival_Product__c.InlineHelpText}"/>
                                <!-- lightning改造   zyh   start -->
                                <br />
                                <!-- <apex:inputField id="appLoaner_fixture_arrival_product" value="{!rndInfo[0].Fixture_Arrival_Product__c}"/> -->
                                <apex:inputField style="width:180px;" id="appLoaner_fixture_arrival_product" value="{!rndInfo[0].Fixture_Arrival_Product__c}"/>
                                <!-- lightning改造   zyh   end -->
                                <!-- value="{!pageB.assetInput.Fixture_Arrival_Product__c}" -->
                            </td>
                        </tr>
                    </table>
@@ -676,7 +779,7 @@
                                    </apex:outputPanel>
                                    <!-- <apex:inputField value="{!var.rnd[info.value]}" onchange="setChangeFlg('{!var.lineNo}')" rendered="{!info.value != 'Asset_loaner_category__c' || var.haveAsset }" style="{!IF('Fixture_Arrival_Product__c' == info.value, 'width:70%;', '')}"/> -->
                                    <apex:inputField value="{!var.rnd[info.value]}" onchange="setChangeFlg('{!var.lineNo}')" rendered="{!(info.value != 'Asset_loaner_category__c' || var.haveAsset) && ((var.rnd['Asset_loaner_category_F__c'] =='固定资产' && info.value != 'unknow_serial_NO_product__c' && info.value != 'Manage_type__c') || var.rnd['Asset_loaner_category_F__c'] !='固定资产')}" style="{!IF('Fixture_Arrival_Product__c' == info.value, 'width:70%;', '')}"/>
                                    <apex:inputField value="{!var.rnd[info.value]}" onchange="setChangeFlg('{!var.lineNo}')" rendered="{!(info.value != 'Asset_loaner_category__c' || var.haveAsset) && ((var.rnd['Asset_loaner_category_F__c'] =='固定资产' && info.value != 'unknow_serial_NO_product__c' && info.value != 'Manage_type__c') || var.rnd['Asset_loaner_category_F__c'] !='固定资产')}" style="{!IF('Fixture_Arrival_Product__c' == info.value || 'EquipmentSet_Managment_Code__c' == info.value, 'width:90%;', '')}"/>
                                    <!-- 20210804 ljh add id -->
                                <!-- update by rentx 20210727 end 新品收货_集中备品_建立数据逻辑限制  -->
                                </apex:outputPanel>
force-app/main/default/pages/RentalApplyBR.page
@@ -52,29 +52,61 @@
            src = srcNew.substring(22, srcNew.length);
            sforce.connection.sessionId = '{!GETSESSIONID()}';
            var record = sforce.connection.query("select id from Attachment where ParentId = \'{!Rental_Apply__c.Id}\' and name = \'BRCode-{!Rental_Apply__c.Name_No__c}\'");
            // var record = sforce.connection.query("select id from Attachment where ParentId = \'{!Rental_Apply__c.Id}\' and name = \'BRCode-{!Rental_Apply__c.Name_No__c}\'");
            var record = sforce.connection.query("select ContentDocumentId from ContentDocumentLink where LinkedEntityId = \'{!Rental_Apply__c.Id}\'");
            console.log("333333333333",record.size);
            if(record.size > 0){
                var records = record.getArray("records");
                var idList = records.map(obj => "'" + obj.ContentDocumentId + "'").join(",");
                record = sforce.connection.query("select Id from ContentDocument where Id in (" + idList + ") and Title = \'BRCode-{!Rental_Apply__c.Name_No__c}\'");
            }
            // 既にあれば無視
            if (record.size == 0) {
                var atta = new sforce.SObject("Attachment");
                atta.Name = "BRCode-{!Rental_Apply__c.Name_No__c}";
                atta.ParentId = "{!Rental_Apply__c.Id}";
                atta.Body = src;
                var result = sforce.connection.create([atta]);
                var version = new sforce.SObject("ContentVersion");
                version.VersionData = src;
                version.Title = "BRCode-{!Rental_Apply__c.Name_No__c}";
                version.ContentLocation = 's';
                version.PathOnClient= "BRCode-{!Rental_Apply__c.Name_No__c}.jpg";
                var versionResult = sforce.connection.create([version]);
                record = sforce.connection.query("SELECT ContentDocumentId FROM ContentVersion WHERE Id =\'" + versionResult[0].id + "\'");
                var records = record.getArray("records");
                var link = new sforce.SObject("ContentDocumentLink");
                link.ContentDocumentId = records[0].ContentDocumentId;
                link.LinkedEntityId = "{!Rental_Apply__c.Id}";
                link.ShareType = 'I';
                link.Visibility = 'AllUsers';
                var result = sforce.connection.create([link]);
                // var atta = new sforce.SObject("Attachment");
                // atta.Name = "BRCode-{!Rental_Apply__c.Name_No__c}";
                // atta.ParentId = "{!Rental_Apply__c.Id}";
                // atta.Body = src;
                // var result = sforce.connection.create([atta]);
                var es = new sforce.SObject("Rental_Apply__c");
                es.Id = "{!Rental_Apply__c.Id}";
                es.BRId__c = result[0].id;
                es.BRId__c = versionResult[0].id;
                result = sforce.connection.update([es]);
            //申请书更新失败的话再次更新
            } else if ("{!Rental_Apply__c.BRId__c}" == '' || "{!Rental_Apply__c.BRId__c}" == null) {
                var records = record.getArray("records");
                var es = new sforce.SObject("Rental_Apply__c");
                es.Id = "{!Rental_Apply__c.Id}";
                es.BRId__c = records[0].Id;
                result = sforce.connection.update([es]);
                // var records = record.getArray("records");
                // var es = new sforce.SObject("Rental_Apply__c");
                // es.Id = "{!Rental_Apply__c.Id}";
                // es.BRId__c = records[0].Id;
                // result = sforce.connection.update([es]);
                // TODO Name変わる可能性あり、upsertにします
                var records = record.getArray("records");
                var version = new sforce.SObject("ContentVersion");
                version = sforce.connection.query("select Id,ContentDocumentId from ContentVersion where ContentDocumentId = \'" + records[0].id + "\'");
                version = version.getArray("records");
                if(version[0].Id != "{!Rental_Apply__c.QRId__c}"){
                    var es = new sforce.SObject("Rental_Apply__c");
                    es.Id = "{!Rental_Apply__c.Id}";
                    es.QRId__c = version[0].id;
                    result = sforce.connection.update([es]);
                }
            } else {
                alert(record[0].id);
                // alert(record[0].id);
            }
        }
        // BRcode生成後、Attachmentを作成
force-app/main/default/pages/RentalApplyQR.page
@@ -13,29 +13,63 @@
            sforce.connection.sessionId = '{!GETSESSIONID()}';
            var record = sforce.connection.query("select id from Attachment where ParentId = \'{!Rental_Apply__c.Id}\' and name = \'QRCode-{!Rental_Apply__c.Name}\'");
            // 既にあれば無視
            // var record = sforce.connection.query("select id from Attachment where ParentId = \'{!Rental_Apply__c.Id}\' and name = \'QRCode-{!Rental_Apply__c.Name}\'");
            console.log("22222222222222222222222222");
            var record = sforce.connection.query("select ContentDocumentId from ContentDocumentLink where LinkedEntityId = \'{!Rental_Apply__c.Id}\'");
            console.log("2222222222222222222--------",record.size);
            if(record.size > 0){
                var records = record.getArray("records");
                var idList = records.map(obj => "'" + obj.ContentDocumentId + "'").join(",");
                record = sforce.connection.query("select Id from ContentDocument where Id in (" + idList + ") and Title = \'QRCode-{!Rental_Apply__c.Name}\'");
            }
             // 既にあれば無視
            if (record.size == 0) {
                var atta = new sforce.SObject("Attachment");
                atta.Name = "QRCode-{!Rental_Apply__c.Name}";
                atta.ParentId = "{!Rental_Apply__c.Id}";
                atta.Body = src;
                var result = sforce.connection.create([atta]);
                var version = new sforce.SObject("ContentVersion");
                version.VersionData = src;
                version.Title = "QRCode-{!Rental_Apply__c.Name}";
                version.ContentLocation = 's';
                version.PathOnClient= "QRCode-{!Rental_Apply__c.Name}.jpg";
                var versionResult = sforce.connection.create([version]);
                record = sforce.connection.query("SELECT ContentDocumentId FROM ContentVersion WHERE Id =\'" + versionResult[0].id + "\'");
                var records = record.getArray("records");
                var link = new sforce.SObject("ContentDocumentLink");
                link.ContentDocumentId = records[0].ContentDocumentId;
                link.LinkedEntityId = "{!Rental_Apply__c.Id}";
                link.ShareType = 'I';
                link.Visibility = 'AllUsers';
                var result = sforce.connection.create([link]);
                // var atta = new sforce.SObject("Attachment");
                // atta.Name = "QRCode-{!Rental_Apply__c.Name}";
                // atta.ParentId = "{!Rental_Apply__c.Id}";
                // atta.Body = src;
                // var result = sforce.connection.create([atta]);
                var es = new sforce.SObject("Rental_Apply__c");
                es.Id = "{!Rental_Apply__c.Id}";
                es.QRId__c = result[0].id;
                es.QRId__c = versionResult[0].id;
                result = sforce.connection.update([es]);
            //申请书更新失败的话再次更新
            } else if ("{!Rental_Apply__c.QRId__c}" == '' || "{!Rental_Apply__c.QRId__c}" == null) {
                var records = record.getArray("records");
                var es = new sforce.SObject("Rental_Apply__c");
                es.Id = "{!Rental_Apply__c.Id}";
                es.QRId__c = records[0].Id;
                result = sforce.connection.update([es]);
                // var records = record.getArray("records");
                // var es = new sforce.SObject("Rental_Apply__c");
                // es.Id = "{!Rental_Apply__c.Id}";
                // es.QRId__c = records[0].Id;
                // result = sforce.connection.update([es]);
                // TODO Name変わる可能性あり、upsertにします
                var records = record.getArray("records");
                var version = new sforce.SObject("ContentVersion");
                version = sforce.connection.query("select Id,ContentDocumentId from ContentVersion where ContentDocumentId = \'" + records[0].id + "\'");
                version = version.getArray("records");
                if(version[0].id != "{!Rental_Apply__c.QRId__c}"){
                    var es = new sforce.SObject("Rental_Apply__c");
                    es.Id = "{!Rental_Apply__c.Id}";
                    es.QRId__c = version[0].id;
                    result = sforce.connection.update([es]);
                }
            } else {
                alert(record[0].id);
                // alert(record[0].Id);
            }
        }
force-app/main/default/pages/TransferApplyPDF.page
@@ -47,7 +47,7 @@
                <apex:outputText value="{!ApplyHeadShow.RecordTypeName__c}" />
            </td>
            <td  rowspan="4">
                <img style="float: right; width: 55px; height: 55px;padding: 0px;margin-top: 0mm;" src="{!'/servlet/servlet.FileDownload?file=' + ApplyHeadShow.QRId__c}" />
                <img style="float: right; width: 55px; height: 55px;padding: 0px;margin-top: 0mm;" src="{!'/sfc/servlet.shepherd/version/download/' + ApplyHeadShow.QRId__c}" />
            </td>
        </tr>
        <tr>
force-app/main/default/pages/TransferApplyQR.page
@@ -13,29 +13,68 @@
            sforce.connection.sessionId = '{!GETSESSIONID()}';
            var record = sforce.connection.query("select id from Attachment where ParentId = \'{!TransferApply__c.Id}\' and name = \'QRCode-{!TransferApply__c.Name}\'");
            // var record = sforce.connection.query("select id from Attachment where ParentId = \'{!TransferApply__c.Id}\' and name = \'QRCode-{!TransferApply__c.Name}\'");
            var record = sforce.connection.query("select Id,ContentDocumentId from ContentDocumentLink where LinkedEntityId = \'{!TransferApply__c.Id}\'");
            if(record.size > 0){
                var records = record.getArray("records");
                var idList = records.map(obj => "'" + obj.ContentDocumentId + "'").join(",");
                record = sforce.connection.query("select Id from ContentDocument where Id in (" + idList + ") and Title = \'QRCode-{!TransferApply__c.Name}\'");
            }
            console.log("qqqqqqqqqqqqqqqqq",record.size);
            // 既にあれば無視
            if (record.size == 0) {
                var atta = new sforce.SObject("Attachment");
                atta.Name = "QRCode-{!TransferApply__c.Name}";
                atta.ParentId = "{!TransferApply__c.Id}";
                atta.Body = src;
                var result = sforce.connection.create([atta]);
                var version = new sforce.SObject("ContentVersion");
                version.VersionData = src;
                version.Title = "QRCode-{!TransferApply__c.Name}";
                version.ContentLocation = 's';
                version.PathOnClient= "QRCode-{!TransferApply__c.Name}.jpg";
                var versionResult = sforce.connection.create([version]);
                record = sforce.connection.query("SELECT ContentDocumentId FROM ContentVersion WHERE Id =\'" + versionResult[0].id + "\'");
                var records = record.getArray("records");
                var link = new sforce.SObject("ContentDocumentLink");
                link.ContentDocumentId = records[0].ContentDocumentId;
                link.LinkedEntityId = "{!TransferApply__c.Id}";
                link.ShareType = 'I';
                link.Visibility = 'AllUsers';
                var result = sforce.connection.create([link]);
                // var atta = new sforce.SObject("Attachment");
                // atta.Name = "QRCode-{!TransferApply__c.Name}";
                // atta.ParentId = "{!TransferApply__c.Id}";
                // atta.Body = src;
                // var result = sforce.connection.create([atta]);
                var es = new sforce.SObject("TransferApply__c");
                es.Id = "{!TransferApply__c.Id}";
                es.QRId__c = result[0].id;
                es.QRId__c = versionResult[0].id;
                result = sforce.connection.update([es]);
            //申请书更新失败的话再次更新
            } else if ("{!TransferApply__c.QRId__c}" == '' || "{!TransferApply__c.QRId__c}" == null) {
                var records = record.getArray("records");
                var es = new sforce.SObject("TransferApply__c");
                es.Id = "{!TransferApply__c.Id}";
                es.QRId__c = records[0].Id;
                result = sforce.connection.update([es]);
                var version = new sforce.SObject("ContentVersion");
                version = sforce.connection.query("select Id,ContentDocumentId from ContentVersion where ContentDocumentId = \'" + records[0].Id + "\'");
                version = version.getArray("records");
                if(version[0].Id != "{!TransferApply__c.QRId__c}"){
                    var es = new sforce.SObject("TransferApply__c");
                    es.Id = "{!TransferApply__c.Id}";
                    es.QRId__c = version[0].id;
                    result = sforce.connection.update([es]);
                }
                // TODO Name変わる可能性あり、upsertにします
            } else {
                alert(record[0].id);
                // var records = record.getArray("records");
                // alert(records[0].Id);
                var records = record.getArray("records");
                var version = new sforce.SObject("ContentVersion");
                version = sforce.connection.query("select Id,ContentDocumentId from ContentVersion where ContentDocumentId = \'" + records[0].Id + "\'");
                version = version.getArray("records");
                // 存在qr时,绑到清单上
                if(version[0].Id != "{!TransferApply__c.QRId__c}"){
                    var es = new sforce.SObject("TransferApply__c");
                    es.Id = "{!TransferApply__c.Id}";
                    es.QRId__c = version[0].id;
                    result = sforce.connection.update([es]);
                }
            }
        }