global.error.request.param.missing=Missing request parameter: {0}
global.error.bad.request=Invalid request parameter: {0}
global.error.request.upload.size.exceed=Uploaded file size exceeds the limit
global.error.request.param.type.error=Request parameter type mismatch: {0}
global.error.request.not.found=Request not found: {0}
global.error.request.method.error=Incorrect request method: {0}
global.error.request.too.many=Too many requests, please try again later
global.error.request.duplicate.data.error=Data already exists, please check
global.error.default.error=System is busy, please try again later
global.error.no.permission=You do not have permission to perform this action
global.error.no.permission.to.visit.org=You do not have permission to access this organization’s data
global.error.request.organId.notExist=The requested organization ID was not provided, please check
global.org.product.not.exist=Account login exception: product package does not exist, please log in again
global.org.product.expired=The organization's product package has expired, please renew before continuing to use the service
global.not.login=The account is not logged in
be.kicked.out=Your account was logged in elsewhere at {0} and has been forced to log off. Login IP: [{1}]

order.not.exists=Order does not exist
parent.order.not.exists=Parent order {0} does not exist
order.can.not.cancel=Order has entered production and cannot be canceled
sub.order.can.not.cancel=There are sub-orders under the order that have entered the production state and cannot be invalidated
order.plate.is.plan=Some plates in the target order have been scheduled. Please remove them before deletion
order.check.customno.exists=The custom order number already exists. Please delete the original order or modify the custom order number and then operate again
order.body.not.exists=Cabinet does not exist
order.body.del.no.target=Please select a cabinet to delete
order.sub.type.not.support=Unsupported sub-order type, please select again
order.del.error=Failed to delete order
order.restore.error=Failed to restore order
order.source.query.error=Failed to query order source data
order.plate.not.exists=Plate does not exist
order.parts.not.exists=Order parts do not exist

order.custom.plateno.generate.orderno.rule.not.support.resetmode=Unsupported reset mode in custom plate order number rule: {0}
order.custom.plateno.generate.body.rule.not.support.resetmode=Unsupported reset mode in cabinet numbering rule: {0}
order.custom.plateno.generate.plate.rule.not.support.resetmode=Unsupported reset mode in plate numbering rule: {0}
order.custom.plateno.generate.org.custom.plateno.seq.modify.error=Failed to save custom plate number sequence config, please contact support

create.plan.order.update.concurrency.error=Failed to create plan: plate count of order [{0}] has changed, please refresh and retry
create.plan.goods.update.concurrency.error=Failed to create plan: plate count of material [{0}] has changed, please refresh and retry
order.plate.update.concurrency.error=Failed to update order status: plate count of order [{0}] has changed, please refresh and retry
goods.plate.update.concurrency.error=Failed to update material status: plate count of material [{0}] has changed, please refresh and retry
body.plate.update.concurrency.error=Failed to update cabinet status: plate count of cabinet [{0}] has changed, please refresh and retry

order.plate.empty=No plate data found for this order, please check or re-split the order
order.plan.data.error=Plan data not found, please re-enter or switch plan
order.plan.plate.error=Plate data in the plan is invalid, please check
order.plan.orders.empty=No order data found in the plan, please delete and recreate
order.plan.plate.data.empty=No plate data in the plan, please re-plan or check order plates
order.plan.create.plate.num.reach.threshold.error=Plate count exceeds limit {0}. Please reduce and retry
order.goods.data.error=Invalid board data, please re-import the order
order.pack.data.null.error=Package data is empty, please check again
advanced.screening.config.error=Invalid filtering configuration, please reconfigure
create.plan.plate.part.planned=Some selected plates are already planned, please query unplanned data again
create.plan.plate.empty=No plates selected for planning
del.plan.plate.data.error=Invalid plate data for deletion, please check or recreate plan
plan.process.config.is.null=Plan {0} has no process group configured
plan.process.config.all.is.null=All process group configurations are empty, please reconfigure
plan.process.scheme.is.lock=Plan is locked and cannot be modified, please unlock first
plan.optimize.data.all.opened=All plates have been cut, cannot optimize again
plan.plate.is.cut=Some plates have been cut, modification is not allowed
plan.scheme.data.error=Invalid optimization data, please reselect or re-import
plan.sort.data.error=No data available for sorting
plate.is.optimize=Plate {0} has been cut and cannot be deleted
pack.data.null=Package data is empty, operation not allowed, please delete package

plate.exists=Product number already exists
remain.plate.not.exists=Plate does not exist
plate.goods.id.not.same=Plate product number mismatch, please rename
plate.is.source=Plate {0} is a source plate and cannot be deleted
plate.attr.group.exists=Combination of name, material, color, thickness, and brand already exists

veneer.not.exist=veneer not exist
veneer.decompose.scope.required=Order ID list and goods code cannot both be empty
veneer.decompose.side.required=At least one veneer must be selected for side A or B
veneer.decompose.plate.status.changed=Plate decomposition status has changed. Please refresh and retry
veneer.decompose.plate.no.required=Plate numbers cannot be empty
veneer.decompose.outer.margin.min=Outer margin cannot be less than 0
veneer.reselect.record.required=Please select records for veneer reselection
veneer.reselect.source.required=Please select a new veneer
veneer.reselect.record.status.changed=Plate veneer data has changed. Please refresh and retry
veneer.remove.record.required=Please select veneer records to remove
veneer.remove.record.status.changed=The selected veneer data has been removed, scheduled, or changed. Please refresh and retry
veneer.unplanned.scope.invalid=Exactly one of the order ID list and goods code list must be provided
veneer.plan.record.required=Please select veneer records to schedule
veneer.plan.record.status.changed=The selected veneer data has been scheduled, removed, or changed. Please refresh and retry
veneer.plan.area.data.invalid=Veneer record {0} has invalid plate dimensions or outer margin
veneer.plan.create.failed=Failed to create the veneer plan. Please retry later
veneer.plan.group.required=Please submit at least one veneer plan group
veneer.plan.group.source.no.required=The veneer product number of a plan group is required
veneer.plan.group.duplicate=Duplicate plan groups exist for veneer product number {0}
veneer.plan.record.duplicate=Veneer record {0} was submitted in multiple plan groups
veneer.plan.source.no.mismatch=Veneer record {0} does not belong to veneer product number {1}. Please refresh and retry
veneer.plan.source.no.not.exist=Veneer product number {0} does not exist in the veneer library. Please refresh and retry
veneer.plan.source.no.duplicate=Veneer product number {0} is duplicated in the current organization and cannot be scheduled
veneer.plan.delete.record.required=Please select veneer plans to delete
veneer.plan.delete.limit.exceeded=At most {0} veneer plans can be deleted at a time
veneer.plan.delete.not.exist=The selected veneer plan does not exist or has been deleted. Please refresh and retry
veneer.plan.delete.not.allowed=Veneer plan {0} has entered production and cannot be deleted
veneer.plan.delete.status.changed=The veneer plan or its associated veneer status has changed. Please refresh and retry
veneer.plan.sort.record.required=Please submit veneer plans whose priority needs to be updated
veneer.plan.sort.record.duplicate=Veneer plan {0} was submitted more than once. Please check and retry
veneer.plan.sort.status.changed=The veneer plan does not exist or its status has changed. Please refresh and retry
veneer.plan.not.exist=Veneer plan {0} does not exist or has been deleted. Please refresh and retry
veneer.plan.id.required=Veneer plan ID is required
veneer.plan.process.required=Please select a process scheme for the veneer plan
veneer.plan.operation.status.changed=The status of veneer plan {0} has changed, so the operation cannot be performed. Please refresh and retry
veneer.plan.plate.record.required=Please select veneer records to add or remove
veneer.plan.plate.source.mismatch=Veneer record {0} does not match the veneer product of the target plan
veneer.plan.plate.status.changed=The selected veneer record or target plan status has changed. Please refresh and retry
veneer.no.exist=veneer no already exists

veneer.import.required.lack=The required field is empty in line {0}, please check the file
veneer.import.veneer.no.duplicate=The veneer number {1} is duplicated in the import file at line {0}, please correct it and try again
veneer.import.veneer.no.format.error=The veneer number {1} in line {0} has an invalid format and cannot contain these special characters: \\ / : * ? " , | < >
veneer.import.product.level.error=The product level in line {0} is invalid. Please enter a product level supported by the system according to the import template
veneer.import.length.error=The length of the field cannot exceed {0} characters in line {1}, please check the file
veneer.import.digital.type.error=The field can only be filled in with numbers in line {0}, please check the file
veneer.import.positive.number.error=The field must be greater than 0 in line {0}, please check the file
veneer.import.number.length.error=The length of the field cannot exceed integer {0} digits and decimal {1} digits in line {2}, please check the file
veneer.org.classification.name.exist=The classification name already exists under the organization, please check
veneer.org.classification.name.empty=The classification name does not exist under the organization, Please go to the [Add] window to maintain the classification name
veneer.org.classification.name.not.exist=The classification name does not exist under the organization, please refresh and retry
veneer.org.classification.name.used=The classification name is already used by veneer and cannot be deleted
veneer.import.template.download.error=Import template download failed
veneer.import.org.classification.name.not.exist=The classification name {1} does not exist in line {0}, please go to the [Add] window to maintain the classification name
veneer.pic.exceed.size=Veneer image size cannot exceed 5MB

order.component.not.exist=The order component does not exist
order.component.delete.plate.in.plan=There are already listed boards under the component. Please remove the component and delete it again
order.component.restore.parent.is.deleted=The upper level of this component has been deleted. Please restore the upper level component first
order.component.no.need.to.restore=This component has not been deleted and does not need to be restored
order.component.processed.repeat=This component has been processed and should not be operated repeatedly. Please refresh the list and check the status
order.component.assembly.config.query.error=Assembly settings query failed, please check service status
order.component.not.process=The current component does not require processing. Please refresh the list and check the status
order.component.restore.repeat=The component has been restored. Do not repeat the operation. Please refresh the list and check the status

heap.split.task.not.exist=The heap split task does not exist
heap.split.task.name.exist=The task name for heap splitting already exists, please rename it
heap.split.no.need.restart=This heap splitting task does not require a restart. Please refresh the list and check the status
heap.split.need.restart=The heap splitting task has been completed. Please restart the task and check again

order.already.packaged=The order has been packaged and cannot be processed

parts.pack.num.not.enough=The number of accessories that can be packaged is insufficient. Please refresh and pack again
parts.pack.item.source.not.exist=Abnormal accessory packaging data, please refresh and package again
parts.heapsplit.num.not.enough=The number of accessories that can be stacked is insufficient. Please refresh and stack again
parts.heapsplit.item.source.not.exist=Abnormal accessory stacking data, please refresh and stack again

plan.not.allow.delete=Plan number: {0} has been cut and cannot be deleted
