@RestResource(urlMapping='/OFSUploadRepairImage/*')
|
global with sharing class OFSUploadRepairImageRest {
|
// 20231103 chenjingwu Lightning文件修改 Start
|
@HttpPost
|
global static void doPost(String repairId, String ccImg, String acImg, String rqId) {
|
system.debug('OFSUploadImageRest.start');
|
RestResponse res = RestContext.response;
|
res.addHeader('Content-Type', 'application/json');
|
|
String jsonResponse;
|
String ccId; // 同意書
|
String acId; // 検収書
|
|
if (String.isNotBlank(repairId)) {
|
Repair__c repair = null;
|
try {
|
repair = [Select Id, Agreed_Date__c, Facility_Return_Receipt_Collection_Date__c, acceptance_id__c From Repair__c Where Id= :repairId];
|
} catch ( Exception ex ) {
|
returnMessage('{"'+ System.Label.OFSErrorStatus +'": "'+ System.Label.OFSErrorFailure +'", "'+ System.Label.OFSErrorMessage + '": "no repair found"}',200);
|
}
|
// if (repair == null) {
|
// res.statusCode = 200;
|
// jsonResponse = '{"'+ System.Label.OFSErrorStatus +'": "'+ System.Label.OFSErrorFailure +'", "'+ System.Label.OFSErrorMessage + '": "no repair found"}';
|
// res.responseBody = blob.valueOf(jsonResponse);
|
// return;
|
// }
|
if (String.isNotBlank(ccImg)) {
|
Repair_Quotation__c repairQ = null;
|
try {
|
repairQ = [Select Id, contract_consent_id__c From Repair_Quotation__c Where Id= :rqId];
|
} catch ( Exception ex ) {
|
returnMessage('{"'+ System.Label.OFSErrorStatus +'": "'+ System.Label.OFSErrorFailure +'", "'+ System.Label.OFSErrorMessage + '": "no RepairQuotation found"}',200);
|
}
|
// if (repairQ == null) {
|
// res.statusCode = 200;
|
// jsonResponse = '{"'+ System.Label.OFSErrorStatus +'": "'+ System.Label.OFSErrorFailure +'", "'+ System.Label.OFSErrorMessage + '": "no RepairQuotation found"}';
|
// res.responseBody = blob.valueOf(jsonResponse);
|
// return;
|
// }
|
// 20231103 chenjingwu Lightning文件修改 Start
|
// List<Attachment> attList = [Select Id, Name, Body, ParentId From Attachment Where Id= :repairQ.contract_consent_id__c];
|
// Attachment att = null;
|
List<ContentVersion> verisonList = [select Id,Title,VersionData from ContentVersion where Id =: repairQ.contract_consent_id__c];
|
ContentVersion version = null;
|
if (verisonList.size() > 0) {
|
version = verisonList[0];
|
} else {
|
// att = new Attachment();
|
// att.Name = 'ContractConsent.jpg';
|
// att.ParentId = rqId;
|
version = new ContentVersion();
|
version.Title = 'ContractConsent.jpg';
|
version.ContentLocation = 's';
|
version.PathOnClient = 'ContractConsent.jpg';
|
}
|
// att.Body = EncodingUtil.base64Decode(ccImg);
|
version.VersionData = EncodingUtil.base64Decode(ccImg);
|
try {
|
if (verisonList.size() > 0) {
|
update version;
|
}
|
else {
|
insert version;
|
version = [select Id,ContentDocumentId from ContentVersion where Id =: version.Id];
|
ContentDocumentLink link = new ContentDocumentLink();
|
link.ContentDocumentId = version.ContentDocumentId;
|
link.LinkedEntityId = rqId;
|
link.ShareType = 'I';
|
link.Visibility = 'AllUsers';
|
insert link;
|
}
|
ccId = version.Id;
|
repairQ.contract_consent_id__c = ccId;
|
// 20231103 chenjingwu Lightning文件修改 End
|
} catch ( Exception ex ) {
|
//TODO:
|
//error message:cannot update exception
|
returnMessage('{"'+ System.Label.OFSErrorStatus +'": "'+ System.Label.OFSErrorFailure +'", "'+ System.Label.OFSErrorMessage + '": "error when try to upsert ContractConsent Attachment. '+ ex +'"}',200);
|
// res.statusCode = 200;
|
// jsonResponse = '{"'+ System.Label.OFSErrorStatus +'": "'+ System.Label.OFSErrorFailure +'", "'+ System.Label.OFSErrorMessage + '": "error when try to upsert ContractConsent Attachment. '+ ex +'"}';
|
// res.responseBody = blob.valueOf(jsonResponse);
|
// return;
|
}
|
|
try {
|
update repairQ;
|
} catch ( Exception ex ) {
|
//TODO:
|
//error message:cannot update exception
|
returnMessage('{"'+ System.Label.OFSErrorStatus +'": "'+ System.Label.OFSErrorFailure +'", "'+ System.Label.OFSErrorMessage + '": "error when try to update RepairQuotation. '+ ex +'"}',200);
|
// res.statusCode = 200;
|
// jsonResponse = '{"'+ System.Label.OFSErrorStatus +'": "'+ System.Label.OFSErrorFailure +'", "'+ System.Label.OFSErrorMessage + '": "error when try to update RepairQuotation. '+ ex +'"}';
|
// res.responseBody = blob.valueOf(jsonResponse);
|
// return;
|
}
|
}
|
if (String.isNotBlank(acImg)) {
|
// 20231103 chenjingwu Lightning文件修改 Start
|
// List<Attachment> attList = [Select Id, Name, Body, ParentId From Attachment Where Id= :repair.acceptance_id__c];
|
List<ContentVersion> versionList = [select Id,Title,VersionData from ContentVersion where Id =: repair.acceptance_id__c];
|
// Attachment att = null;
|
ContentVersion version = null;
|
if (versionList.size() > 0) {
|
version = versionList[0];
|
} else {
|
// att = new Attachment();
|
// att.Name = 'Acceptance.jpg';
|
// att.ParentId = repairId;
|
version = new ContentVersion();
|
version.Title = 'Acceptance.jpg';
|
version.ContentLocation = 's';
|
version.PathOnClient = 'Acceptance.jpg';
|
}
|
// att.Body = EncodingUtil.base64Decode(acImg);
|
version.VersionData = EncodingUtil.base64Decode(acImg);
|
try {
|
if (versionList.size() > 0) {
|
update version;
|
}
|
else {
|
insert version;
|
version = [select Id,ContentDocumentId from ContentVersion where Id =: version.Id];
|
ContentDocumentLink link = new ContentDocumentLink();
|
link.LinkedEntityId = repairId;
|
link.ShareType = 'I';
|
link.Visibility = 'AllUsers';
|
link.ContentDocumentId = version.ContentDocumentId;
|
insert link;
|
}
|
acId = version.Id;
|
} catch ( Exception ex ) {
|
//TODO:
|
//error message:cannot update exception
|
returnMessage('{"'+ System.Label.OFSErrorStatus +'": "'+ System.Label.OFSErrorFailure +'", "'+ System.Label.OFSErrorMessage + '": "error when try to upsert Acceptance Attachment. '+ ex +'"}',200);
|
// res.statusCode = 200;
|
// jsonResponse = '{"'+ System.Label.OFSErrorStatus +'": "'+ System.Label.OFSErrorFailure +'", "'+ System.Label.OFSErrorMessage + '": "error when try to upsert Acceptance Attachment. '+ ex +'"}';
|
// res.responseBody = blob.valueOf(jsonResponse);
|
// return;
|
}
|
// 20231103 chenjingwu Lightning文件修改 End
|
}
|
|
if (String.isNotBlank(ccId)) {
|
repair.Repair_Quotation_Id__c = rqId;
|
repair.Agreed_Date__c = System.today(); // TODO GOTO 更新していい?
|
}
|
if (String.isNotBlank(acId)) {
|
repair.acceptance_id__c = acId;
|
repair.Facility_Return_Receipt_Collection_Date__c = System.today();
|
}
|
try {
|
update repair;
|
res.statusCode = 200;
|
Map<String, String> rs = new Map<String, String>();
|
if (String.isNotBlank(ccId)) {
|
rs.put('ccImgId', ccId);
|
}
|
rs.put('Agreed_Date__c', repair.Agreed_Date__c != null ?
|
String.valueOf(repair.Agreed_Date__c).replace('-', '/') : '');
|
rs.put('Facility_Return_Receipt_Collection_Date__c', repair.Facility_Return_Receipt_Collection_Date__c != null ?
|
String.valueOf(repair.Facility_Return_Receipt_Collection_Date__c).replace('-', '/') : '');
|
jsonResponse = '{"'+ System.Label.OFSErrorStatus +'": "'+ System.Label.OFSErrorSuccess +'", "'+ System.Label.OFSErrorMessage +'": ' + JSON.serialize(rs) + '}';
|
res.responseBody = blob.valueOf(jsonResponse);
|
return;
|
} catch ( Exception ex ) {
|
//TODO:
|
//error message:cannot update exception
|
returnMessage('{"'+ System.Label.OFSErrorStatus +'": "'+ System.Label.OFSErrorFailure +'", "'+ System.Label.OFSErrorMessage + '": "error when try to update repair data. '+ ex +'"}',200);
|
// res.statusCode = 200;
|
// jsonResponse = '{"'+ System.Label.OFSErrorStatus +'": "'+ System.Label.OFSErrorFailure +'", "'+ System.Label.OFSErrorMessage + '": "error when try to update repair data. '+ ex +'"}';
|
// res.responseBody = blob.valueOf(jsonResponse);
|
// return;
|
}
|
} else {
|
returnMessage('{"'+ System.Label.OFSErrorStatus +'": "'+ System.Label.OFSErrorFailure +'", "'+ System.Label.OFSErrorMessage + '": "no repair Id"}',200);
|
// res.statusCode = 200;
|
// jsonResponse = '{"'+ System.Label.OFSErrorStatus +'": "'+ System.Label.OFSErrorFailure +'", "'+ System.Label.OFSErrorMessage + '": "no repair Id"}';
|
// res.responseBody = blob.valueOf(jsonResponse);
|
// return;
|
}
|
}
|
|
public static void returnMessage(String response,Integer code){
|
RestResponse res = RestContext.response;
|
res.addHeader('Content-Type', 'application/json');
|
String jsonResponse;
|
res.statusCode = code;
|
jsonResponse = response;
|
res.responseBody = blob.valueOf(jsonResponse);
|
return;
|
}
|
// 20231103 chenjingwu Lightning文件修改 End
|
}
|