A personnel archive double-difference amount shunting and solidification playback method, system, device and storage medium based on a historical source field domain
Patent Information
- Application Number
- CN202611503215.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-09-24
- Publication Date
- 2026-11-03
AI Technical Summary
When the existing personnel file import and update methods have inconsistent field ranges from different sources, it can easily lead to erroneous field updates, unreasonable review scopes, and the need to reorganize the written objects after confirmation, making it difficult to guarantee the consistency of the updated content.
By generating a unified archive object, combining the historical source field and the current source field, it separates the differences that require manual confirmation from the null values that can be automatically filled in, uses a review title list to control the flow, and writes directly to the archive during playback, isolates change records, and adapts to various abnormal scenarios.
This solved the problem of erroneous field updates, ensured the consistency of updated content, reduced the complexity of manual confirmation, and improved the accuracy and efficiency of archival data processing.
Smart Images

Figure CN123030619A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the technical field of personnel file management, and in particular to a method for the diversion, solidification, and playback of personnel files. Background Technology
[0002] Personnel files can be imported from appointment and dismissal approval documents and spreadsheets. These two types of documents contain different ranges of fields; even for the same person, they may provide current position, education, employer type, or appointment / dismissal information respectively. After parsing the document into field objects, it is usually necessary to search for existing records by identity and update those records.
[0003] One existing approach is to parse the file into field objects, search for existing records by identity, and then overwrite the existing records with the current object. This approach affects fields not provided in the current source; while simply padding with null values cannot handle situations where old non-null values have changed. For example, if the old value already contains content and the new value is different, or even if the new value is empty and needs to be cleared, simply padding with null values cannot correctly determine the updated content.
[0004] Another existing approach is to compare all fields uniformly and have all differences manually confirmed. This method fails to distinguish whether a field falls within the scope of previous data sources. For example, if a previous appointment / removal approval source did not cover a particular unit category, and this spreadsheet provides that field, this has a different data source background compared to a previous spreadsheet where the field was covered but still empty. Simply because the old and new field values are the same cannot distinguish between these two scenarios, making it difficult to determine which fields can be automatically filled and which require review.
[0005] Furthermore, for records requiring confirmation, if only the error message is retained without the specific fields and the intended values, the update object needs to be reorganized during confirmation. This not only increases the complexity of post-confirmation processing but also makes it difficult to guarantee that the confirmed content is consistent with the field update content determined during the import phase.
[0006] In summary, under conditions where the ranges of fields from different sources are inconsistent, the existing method of importing and updating personnel files suffers from problems such as erroneous field updates, unreasonable review scopes, and the need to reorganize the objects to be written after confirmation. Therefore, it is necessary to clarify the comparison scope and source background during the import phase, and to associate and save the judgment results with the differences in fields available for subsequent writing. Summary of the Invention
[0007] To address the aforementioned technical issues, this invention proposes a method, system, device, and storage medium for personnel file dual-difference distribution and solidification playback based on historical source fields. This invention overlays a historical source background onto each field, using two independent differential values to respectively carry changes requiring manual confirmation and automatically filled null values. Distribution is uniformly controlled by a review title list. During the isolation phase, the fields to be written are completely solidified, and during playback, they are directly stored without recalculating the differential values. This preserves the ability to trace changes while adapting to various abnormal scenarios, achieving incremental updates of file data and isolated management of change records.
[0008] To achieve the above objectives, the technical solution of the present invention is implemented as follows:
[0009] A method for dual-difference splitting and fixed playback of personnel files based on the historical source field includes the following steps:
[0010] S001. Receive the structure object output by the appointment and dismissal approval parser or the row object output by the spreadsheet parser, perform source adaptation and preprocessing, and generate identity keys to form a unified file object U.
[0011] S002. Perform identity and field format validation on the unified file object U. If the validation fails, save the failure record and end the process. If the validation passes, proceed to S003.
[0012] S003. Query the master record using the identity key in the verified unified file object U. If no match is found, set the historical source of the unified file object U to the current source, save it as a new master record, and save the creation result mark before ending. If a match is found, retrieve the query record from the master record and generate an existing file object O by merging the file object with the query record attributes with the file object with default attributes.
[0013] S004. Select a preset source dictionary based on the source code of the unified file object U to obtain the current source field set F_s; construct the historical source field field F_H based on the historical source code of O;
[0014] S005. Traverse the enumerable fields of the existing archive object O that belong to the current source field set F_s, and generate the review difference mapping D_review and the review title list R;
[0015] S006. Iterate through the enumerable fields of the existing file object O and generate null values to fill the gap D_fill.
[0016] S007. Determine if the review title list R is empty: If yes, write the null value filling difference D_fill to the main record and update the source code and update time; if no, do not modify the main record, merge the review difference mapping D_review and the null value filling difference D_fill into the playback difference D_replay, and form the difference review isolation record Q.
[0017] S008. After the user selects the differential review isolation record Q list, the main record is located using the identity key in the differential review isolation record Q and the differential to be replayed D_replay is used to modify the main record. The isolation record is deleted using the identity key in the differential review isolation record Q and the result is marked.
[0018] Further, in step S001, source adaptation and preprocessing are performed to generate identity keys, forming a unified file object U, including:
[0019] Read the name, gender, date of birth, place of origin, and appointment / removal fields from the structure object according to the preset field mapping rules, map them to the unified file fields, mark the appointment / removal approval source data_type='r', and obtain the appointment / removal approval structure object with source adaptation;
[0020] Assign the row object to the default file object to achieve format uniformity, mark the spreadsheet source data_type='e', and obtain the spreadsheet row object adapted to the source;
[0021] Clean up blank spaces in the identity text of the source-adapted appointment and dismissal approval structure object and the source-adapted spreadsheet row object, convert all times to time values, and retain the original times to obtain the preprocessed source-adapted appointment and dismissal approval structure object and the preprocessed source-adapted spreadsheet row object.
[0022] For both the source-adapted appointment and dismissal approval structure object and the source-adapted spreadsheet row object, the names are concatenated into a name string in the order of name, date of birth, place of origin, and gender. Combined with a fixed namespace, the fifth version of the universally unique identifier UUIDv5 is calculated as the identity key uid.
[0023] The preprocessed source is adapted to the appointment and dismissal approval structure object and the corresponding structure object identity key; or the preprocessed source is adapted to the spreadsheet row object and the corresponding row object identity key; combined with the business fields of the corresponding source, the current file object U is formed.
[0024] Furthermore, in step S004, the preset source dictionary is a mapping between preset field keys and Chinese titles, including spreadsheet dictionaries and appointment / removal approval dictionaries;
[0025] The source field set F_s consists of the set of field keys from the selected preset source dictionary;
[0026] The history source field F_H is constructed based on the history source import_history_type of O, including:
[0027] Read the history source of the existing file object O (import_history_type), and determine whether it contains the string 'r' or the string 'e', considering four cases:
[0028] When both the string 'r' and the string 'e' are present, merge the spreadsheet dictionary and the appointment and approval dictionary, and use the latter dictionary as the title for duplicate field keys;
[0029] Use the appointment and removal approval dictionary when the string 'r' is the only one present.
[0030] Use a spreadsheet dictionary when the string 'e' is the only element.
[0031] None of them contain the historical source field field used during the time period.
[0032] Further, in step S005, the fields belonging to the current source field set F_s in the enumerable fields of the existing file object O are traversed to generate the review difference mapping D_review and the review title list R, including:
[0033] Establish empty review differential mapping D_review and empty review title list R;
[0034] Iterate through all enumerable fields k of the existing file object O. When field k belongs to the current source field set F_s, proceed to the review and judgment, including:
[0035] The old empty and new non-empty review branch in the history domain: when field k belongs to the historical source field domain F_H, field k does not belong to the filter set B, E(T(O[k])) is true and E(T(U[k])) is false; write the new value U[k] into the array element D_review[k], and add the Chinese title of the field in the historical source field domain F_H to the review title list R;
[0036] Old non-null value change verification branch: If field k does not enter the old null new non-null verification branch in the historical domain, and E(T(O[k])) is false, then perform original value comparison Eq(O[k],U[k]) on the old value O[k] and the new value U[k]; otherwise, proceed to the judgment of the next field;
[0037] If the original values are not equal, write the new value U[k] into the value D_review[k] and add the Chinese title in the current source field set F_s to the review title list R; if the original values are equal, proceed to the next field judgment.
[0038] In step S006, the enumerable fields of O are traversed to generate null value filler difference D_fill, including:
[0039] Initialize the null value filling difference mapping D_fill; iterate through all enumerable fields k of the existing file object O again; when E(O[k]) is true, field k does not belong to the filter set B and E(U[k]) is false, write the original new value U[k] into the value D_fill[k], otherwise, do not write it, until all fields are processed; write the source code of the current file object U into the null value filling difference mapping D_fill to form the data_type field;
[0040] E() is the basic empty function, which is true if empty and false otherwise. T() is the transformation function, and Eq() is the function to check if the original values are equal.
[0041] Furthermore, the basic null check function E() returns non-null for all boolean values and numbers; null when the array length is zero; null when an object is serialized to the string "{}"; null strings, null values, undefined values, and the literal string "null" are all null values. "Undefined" is null, and strings containing only spaces or newlines are not considered null values in the basic null check.
[0042] The conversion function T() converts the null value to an empty string, and converts other values to strings first, then removes newline characters, carriage returns, and all whitespace characters.
[0043] The function Eq() compares the lengths of two arrays when the original value is an array. If the lengths are different, they are considered equal. If the lengths are equal, each item is compared for strict equality. When the original value is an object, the serialized strings of the two arrays are compared. For other types besides objects, they are compared for strict equality.
[0044] Furthermore, step S007 includes:
[0045] If the review title list R is empty, add the new update time to the null value fill difference mapping D_fill, and connect the historical source code of the existing file object O and the source code of the current file object U with a colon as the historical source field. Write the identity key uid into the null value fill difference mapping D_fill to modify the master record, and then write the result mark "Merge into existing user".
[0046] If the review title list R is not empty, first copy the review difference mapping D_review as the initial difference to be replayed D_replay, then fill in the null values with the difference mapping D_fill and overwrite and merge it with the initial difference to be replayed D_replay to form the final difference to be replayed D_replay; the overlapping field key is based on D_fill and overwrites the original value in D_replay; save the final difference to be replayed D_replay in U to form the repeat_data field, save the review title list R as the review reason, and set the difference review type to form the difference review isolation record Q; the historical source after the connection is written at the top level of the difference review isolation record Q, and is not put into D_replay.
[0047] Furthermore, step S008 includes:
[0048] The user selects the list of differential review isolation records, and retrieves the differential review isolation records Q one by one in the list order. The repeat_data of the differential review isolation record Q is added to the current playback time.
[0049] A master record is created with the identity of the differential review isolation record Q. The repeat_data field is used as the modification object and the modification call is waited for to complete. The number of modified records is not verified and the historical source of the outer layer of differential review isolation record Q is not written back to the master record. If the master record is modified abnormally, an exception is thrown and subsequent differential review isolation records will not be updated, and the loop is interrupted.
[0050] Then, based on the identity of Q in the differential review of the isolation record, an initiation for deletion of the isolation record is made, but the deletion is not waited for to be completed;
[0051] Write a result flag; if the flag fails, do not roll back the completed master record modifications and isolated deletions, and the loop will be interrupted; if the flag is successful, process the next differential review isolated record.
[0052] The loop ends when the list is exhausted.
[0053] A personnel file dual-differential diversion and fixed playback system based on historical source field includes: a source adaptation component, a verification component, a master record access component, a field construction component, a differential verification component, a differential completion component, a diversion component, and a playback component, each corresponding to steps S001 to S008. Each component is configured to execute the method described in steps S001 to S008.
[0054] An electronic device includes a processor and a memory, wherein the memory stores a computer program that, when executed by the processor, implements the method described in steps S001 to S008.
[0055] A non-transient computer-readable storage medium having a computer program stored thereon, wherein the computer program, when executed by a processor, implements the method described in steps S001 to S008.
[0056] The beneficial effects of this invention are as follows:
[0057] A unified archive object U is generated through source adaptation. When a master record is hit, the default archive object is merged with the database record attributes to generate an existing archive object O. Subsequent two rounds of differential processing iterate through the enumerable attributes of O instead of directly iterating through all attributes of U. Furthermore, the verification judgment only applies to fields belonging to the current source field set F_s. Therefore, fields not provided in the current source will not be incorrectly updated due to object overwriting, resolving the problem of erroneous field updates caused by the existing direct overwriting method.
[0058] This application independently generates a null value filling difference D_fill. During the generation of the difference that requires review, if the old value is determined to be non-null by the transformation function T and the basic null detection function E, and the old and new original values are not equal after comparison by the original value equality function Eq, the new value is written into the difference that requires review, D_review. Therefore, it can not only handle the filling situation where the old value is null and the new value is not null, but also handle situations where the old non-null value changes, or even when the new value is null and needs to be cleared after confirmation, avoiding the limitation of simply filling null values in handling changes to the old non-null value.
[0059] This application determines the current source field set F_s based on the current source dictionary, constructs the historical source field field F_H based on the existing historical source import_history_type, and introduces F_s and F_H into the review judgment. For old empty and new non-empty fields in the historical field and old non-empty changed fields in the current field, they are included in the differences that need to be reviewed and the corresponding Chinese titles are retained in the review title list R. Thus, the same old and new field values can enter the automatic completion or review path according to different historical source backgrounds, avoiding the automatic writing of all old empty and new non-empty fields and avoiding the need for manual confirmation for a unified comparison of all fields;
[0060] This application establishes two types of differential statements with different responsibilities: the differential statement D_review, which requires review, and the differential statement D_fill, which fills in null values. It allows the same field to be entered into both types of differential statements simultaneously. Mutual exclusion is controlled by whether the review header list R is empty. When R is empty, D_fill is automatically written; when R is not empty, the main record is not modified, but the isolation record Q is saved. Whether isolation is performed is controlled by R, not by whether D_review and D_fill overlap. Therefore, automatic completion and isolation are mutually exclusive within a single object processing step, avoiding the situation of only isolating conflicting fields while automatically writing other filler fields, and also avoiding writing to the main record first and then reversing the write.
[0061] This application first copies D_review during isolation, then merges and overwrites D_fill to form the difference to be replayed, D_replay. D_replay is then stored in the repeat_data field of the isolation record Q. Simultaneously, the review title list R and the difference review type are also saved. After manual review approval, the fixed difference is directly read and written to the master record, without re-parsing the source file or recalculating the difference. Therefore, the confirmed write object retains both the content to be confirmed and related supplementary information, eliminating the need to reorganize these business fields from the source file.
[0062] This application employs field-level fixed differential values, ensuring that replay uses the specific values to be written during isolation, while maintaining the main record fields not included in the differential value. During replay, the main record is located using Q.uid, and isolation record deletion is initiated using Q.id, with a result marker written. The replay time is added during execution. The top-level Q field `import_history_type` is not copied to `repeat_data`, thus preventing the written history source after isolation from being written back to the main record. Therefore, the replay process directly consumes the business differential values saved during isolation without recalculating them, ensuring that the replay content corresponds to the isolation confirmation content. Attached Figure Description
[0063] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0064] Figure 1 This is a flowchart of the personnel file dual-differential diversion and solidification playback method based on the historical source field of the present invention.
[0065] Figure 2 for Figure 1 Flowchart of the method for source adaptation and identity key generation in step S001.
[0066] Figure 3 for Figure 1 Flowchart of the method for verifying identity and field format in step S002.
[0067] Figure 4 for Figure 1 Flowchart of the method for querying and creating master records in step S003.
[0068] Figure 5 for Figure 1 Flowchart of the method for generating the historical source field in step S004.
[0069] Figure 6for Figure 1 The flowchart for step S005, generating the review difference and title list.
[0070] Figure 7 for Figure 1 The flowchart for step S006, which generates null values and fills in the difference, is shown.
[0071] Figure 8 for Figure 1 Flowchart of the automatic completion and isolation / diversion method in step S007.
[0072] Figure 9 for Figure 1 Flowchart of the method for playing back differential curing in step S008. Detailed Implementation
[0073] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0074] This paper presents a method for dual-difference data routing and fixed playback of personnel files based on historical source field domains. The method primarily follows an import processing flow. First, it maps two types of source data to a unified file object and generates an identity key. After verification, it queries the master record. If no match is found, a new field is created; if a match is found, field domains are created based on the current source and the master record's historical source. Differences requiring review and null-filled differences are generated between the new and old objects, along with a review title list. The list's emptiness controls automatic writing or isolated saving. Selecting an isolated record modifies the master record based on its saved differences. Dual differences represent two field mappings with different responsibilities, not mutually exclusive field divisions. Differences requiring review record the fields to be confirmed, while null-filled difference records record fields where the original value was empty but a new value can be filled. The same field can be entered into both types of differences simultaneously; isolation is controlled by the review title list, not by whether differences overlap. Specific steps are as follows... Figure 1 As shown, it includes:
[0075] S001. Receive the structure object output by the appointment / removal approval parser or the row object output by the spreadsheet parser, perform source adaptation and preprocessing, and generate identity keys to form a unified file object U, such as... Figure 2 As shown.
[0076] S0011, Receive the structure object output by the appointment and dismissal approval parser or the row object output by the spreadsheet parser;
[0077] S0012, Source field mapping adaptation:
[0078] Appointment and dismissal approval adaptation: Read the name, gender, date of birth, place of origin and appointment and dismissal fields in the structure object according to the preset field mapping rules, map them to unified file fields, mark the appointment and dismissal approval source data_type ='r', and obtain the appointment and dismissal approval structure object with source adaptation;
[0079] Spreadsheet adaptation: Assign the row object to the default file object to achieve format uniformity, mark the spreadsheet source data_type ='e', and obtain the spreadsheet row object adapted to the source;
[0080] S0014. Identity field preprocessing: The source-adapted appointment and dismissal approval structure object and the source-adapted spreadsheet row object are both cleaned of blanks in the identity text (name, gender, date of birth, place of origin), the date of birth is converted into a time value, the original date of birth is retained, and the other date fields are converted accordingly to obtain the preprocessed source-adapted appointment and dismissal approval structure object and the preprocessed source-adapted spreadsheet row object.
[0081] S0015. Generate Identity Key UID: For preprocessed source-adapted appointment and dismissal approval structure objects and preprocessed source-adapted spreadsheet row objects, concatenate the name string in the order of name, date of birth, place of origin, and gender. Combined with the fixed namespace, calculate the fifth-generation universal unique identifier UUIDv5 as the identity key UID. The identity key is used for main record query and update. The main record table sets a unique index on this key. The isolated record table allows multiple records with the same identity key, distinguished by the auto-incrementing record number id. If any of the four items is empty, an empty identity key is returned.
[0082] S0016. The pre-processed source-adapted appointment / removal approval structure object and its identity key, or the pre-processed source-adapted spreadsheet row object and its identity key, combined with the business fields of the corresponding source object, constitute the current file object U, and input it into S002. Non-identity business fields are not uniformly guaranteed to remove blanks; for example, internal spaces in the current position can still participate in subsequent original value comparisons. Parsing or conversion exceptions return along the import call chain, and do not enter the differential calculation with unadapted objects. U contains the identity field, uid, data_type, and the corresponding source business field; the appointment / removal approval object and the spreadsheet row object generate their respective Us.
[0083] S002. Perform identity and field format validation on the unified file object U. If the validation fails, save the failure record and end the process. If the validation passes, proceed to S003. Figure 3 As shown.
[0084] S0021. Metadata Initialization: After receiving the current file object U, set the data version and import time; the data version `data_version` is assigned 0.3 by the database auxiliary component when entering the import storage process; this value is also used for database structure version configuration, and is not a concurrent version that increments sequentially. The appointment / removal document version `irmx_version` comes from the version field in the appointment / removal approval structure. The two do not have the same purpose and are not used as comparison exchange conditions during playback.
[0085] S0022. Identity Verification: Use the basic null check function E to check whether the name, date of birth, place of origin, and gender are empty;
[0086] If a field is missing, i.e., identity verification fails, append the missing field title and required missing type, save the failure record, and end the processing of the object.
[0087] If identity verification is successful, proceed to format verification;
[0088] It should be noted that the basic null check function E always returns non-null for Boolean values and numbers, therefore false and 0 are not null; arrays with a length of zero are null; other objects serialized to the string "{}" are null; empty strings, null values, undefined values, and the literal strings "null" and "undefined" are null. Strings containing only spaces or newlines are not considered null values in the basic null check.
[0089] S0023. Format Validation: Check whether the name and place of origin are in a valid Chinese format; check whether the gender is male or female; check whether the date of birth and other related dates are valid values; if the date of employment has a value, check the format validity item by item.
[0090] If the format check fails, save the format error type and reason, and then terminate.
[0091] When the format check is successful, the verified file object U carries the identity key generated by S001 into S003. No new identity key is generated here.
[0092] S003. Query the master record using the identity key in the verified unified file object U. If no match is found, set the historical source of the unified file object U to the current source, save it as a new master record, and save the creation result marker before ending. If a match is found, retrieve the query record from the master record, and generate an existing file object O by merging the file object with the query record attributes using the file object with default attributes. Figure 4 As shown.
[0093] It's important to note that when reading the master record, a file object with default attributes is created first, then the attributes in the database are overridden. Therefore, if a predefined field is missing from the database, that field can still have a default empty string or a null value in the existing file object O. For example, if a unit category is missing, the unit category in the existing file object O will be a default empty string; if a null value is explicitly present, that null value will override the default value. Only an extended field that is neither in the default model nor in the database record truly does not exist in the existing file object O. Both rounds of differential processing iterate through the enumerable attributes of the existing file object O, rather than directly iterating through all attributes of U.
[0094] S0031. Use the uid of the verified file object U to query the main record table. The main record table has a unique index on uid.
[0095] S0032. If the query fails, set the import_history_type of the current file object U (which passed the validation) to the data_type of the current source, save it as a new master record, and then save the "Create New User" result flag, ending the processing of the current object. Saving the master record and saving the result flag are performed sequentially. If the result flag fails, the already saved master record is not undone.
[0096] It should be noted that the historical source `import_history_type` is stored in the main record, and is equal to the current source source code when the record is first created. During autocomplete, the old historical string, colon, and the current source source code are concatenated and written back. The same source can appear repeatedly, for example, `r:e:e`, without deduplication. When an isolated record is formed, the concatenated historical source is stored in the outer field of the isolated record.
[0097] S0033. When a query is hit, retrieve the query record from the main record; first initialize a default file object with default null values, and then merge the default file object with the attributes of the query record to generate an existing file object O;
[0098] S0034. Transfer the existing file object O, the verified current file object U, and the historical source of the existing file object O to step S004. The master record's unique identity index restricts the repeated storage of the same identity key; the isolated record uses another storage, allowing the same identity key to be associated with multiple objects to be reviewed.
[0099] S004. Based on the source code of the unified archive object U, select the preset source dictionary to obtain the current source field set F_s; construct the historical source field F_H based on the historical source code of O, such as... Figure 5 As shown.
[0100] S0041. Generate the source field set F_s for this operation:
[0101] Based on the source data_type of the current archive object U that has passed the verification, select a preset source dictionary (spreadsheet dictionary and / or appointment and dismissal approval dictionary), and use the set of field keys of the selected source dictionary as the set of source fields F_s for this time;
[0102] S0042. Generate the historical source field F_H:
[0103] Read the history source of the existing file object O (import_history_type), and determine whether it contains the string 'r' or the string 'e', considering four cases:
[0104] When both the string 'r' and the string 'e' are present, merge the spreadsheet dictionary and the appointment and approval dictionary, and use the latter dictionary as the title for duplicate field keys;
[0105] Use the appointment and removal approval dictionary when the string 'r' is the only one present.
[0106] Use a spreadsheet dictionary when the string 'e' is the only element.
[0107] None of them contain the historical source field field used during the time period.
[0108] It should be noted that the historical source field introduces the null value change judgment into the previous source coverage range, so that the same old and new field values can enter the automatic completion or review path according to different historical backgrounds, avoiding the automatic writing of all old null and new non-null fields.
[0109] It should be noted that the source field dictionary is a pre-defined "field key - Chinese title" mapping, and is not temporarily inferred from non-empty fields in the current file. The current source field set F_s is the key set of the selected dictionary; the historical source field field F_H is formed by selecting or merging dictionaries from the source source data appearing in the main record history. The Chinese title is used for the review list, and the field key is used for differential assignment.
[0110] The common fields of the two types of dictionaries include: current job title (current_job), full-time education degree (ft_degree), full-time graduating college and major (ft_graduated_colleges_majors), in-service education degree (academic_now), in-service graduating college and major (oj_graduated_colleges_majors), work date (work_date), and party membership date (party_date).
[0111] The spreadsheet dictionary also includes: service_date of appointment, same_position_date of appointment at the same level, current_grade_date of appointment at the current rank, same_grade_date of appointment at the same rank, dept_type of organization, education level, as well as ot_zxj_z for county-level principal, ot_zxj_f for county-level deputy, ot_fxj_ld for deputy county-level leader, ot_dyy_a to ot_dyy_d for level 1 to 4 researcher, ot_bl_dy_yzj for retaining original rank and benefits, ot_jwy_xl for police officer quota, ot_qy_ld for enterprise leader, ot_zg_n for non-CPC members, ot_gb_w for female cadres, ot_mz_ss for ethnic minorities, ot_ssy_b for level 2 inspector, and ot_jl_xz_jd for experience as a township / street party and government principal.
[0112] The appointment and dismissal approval dictionary also includes: nation, birthplace, health condition, specialized technical job, familiar professional expertise, full-time degree (ft_degree_xw), full-time college major degree (ft_graduated_colleges_majors_xw), on-the-job degree (academic_now_xw), on-the-job college major degree (oj_graduated_colleges_majors_xw), proposed job, removed job, resume, rewards, annual assessment results, appointment and dismissal reason, family member information, reporting department, form filling date, filler, ID card, and appointment / dismissal document version (irmx_version).
[0113] S0043. Output the current source field set F_s, the historical source field field F_H, and the corresponding title mapping, along with the existing file object O and the verified current file object U, and send them to S005. If F_s is not equal to F_H, the two are not forcibly unified. Historical judgments directly use string inclusion relationships, without sorting or deduplication of historical strings; empty strings can form empty fields, and exceptions will occur if historical fields are explicitly null or other values that do not support string inclusion operations.
[0114] S005. Iterate through the enumerable fields of the existing file object O that belong to the current source field set F_s, and generate the review difference mapping D_review and the review title list R, such as... Figure 6 As shown.
[0115] S0051. Initialize variables: Create an empty review differential mapping D_review(object mapping, key = field name k, value = U[k]) and an empty review title list R;
[0116] S0052. Traverse all enumerable fields k of the existing file object O, taking the field structure of the existing file object O as the standard, without traversing the fields of the current file object U, to avoid generating differences out of thin air by extending the fields of the current file object U.
[0117] S0053, First Branch: Historical Domain Old Empty and New Non-empty Verification:
[0118] When field k belongs to the current source field set F_s, the review process begins, and the following conditions are met:
[0119] Field k belongs to the historical source field domain F_H, field k does not belong to the filter set B, E(T(O[k])) is true (the old value is empty after format conversion, and the result is empty) and E(T(U[k])) is false (the new value is not empty after format conversion); the basic empty function E() is true if it is empty, otherwise it is false;
[0120] When the conditions are met, write the new value U[k] into the value D_review[k], add the Chinese title of the field in the historical source field field F_H to the review title list R, and mark the field as having entered the old empty new non-empty review branch, and not entering the second branch;
[0121] It should be noted that filter set B includes record number (id), appointment / removal file version (irmx_version), data update time (data_update_time), data version (data_version), and historical source (import_history_type). This set is used for the old empty new non-empty verification branch and the null value completion branch within the historical domain, and does not uniformly exclude fields in the old non-empty change branch.
[0122] It's important to note that during the verification phase, the conversion function T() is used first: null values are converted to empty strings, and other values are first converted to strings, then newline characters, newlines, and all whitespace characters are removed. The verification condition uses E(T()). This operation not only handles strings: empty arrays are converted to empty strings, but empty objects are converted to "[objectObject]" after removing spaces; the verification results for these two are different. The null value padding phase directly uses E(), without going through T().
[0123] S0054, Second Branch: Review of Changes in Old Non-Null Values:
[0124] If field k has not entered the first branch mentioned above, and E(T(O[k])) is false (the old value is not empty after conversion), then perform the original value comparison Eq(O[k],U[k]) on the old value O[k] and the new value U[k]; otherwise, proceed to the judgment of the next field.
[0125] If the original values are not equal, the new value U[k] is written to the array element D_review[k], and the Chinese title in the current source field set F_s is added to the review title list R; if the original values are equal, proceed to the next field judgment. This branch does not require the new value to be non-empty, so a new empty value can also be a clear operation that needs to be confirmed; this branch no longer uses B filtering.
[0126] It's important to note that comparisons of changes to old non-empty values use the original value equality function `Eq()`, not the value processed by `T`. When the old value is an array, the lengths of the two are compared; if the lengths are different, they are directly considered unequal; if the lengths are equal, each element is checked for strict equality. When the old value is an object, the serialized strings of the two are compared; other types are directly checked for strict equality. Therefore, the number 0 is different from the string "0", elements in arrays with the same content but different references are not equal, and objects with different attribute sequences may also be unequal. When the old value is a non-empty array and the new value is an empty value or a value of inaccessible length, the comparison may throw an exception, and the object will not continue to form a normal difference result.
[0127] S0055. Fields that do not meet the aforementioned writing conditions will not be included in the review differential mapping D_review. Output the review differential mapping D_review, the review title list R, the existing file object O, and the current file object U that has passed the verification up to S006. R is a list of titles appended in the processing order, and the titles are not required to be unique; whether its length is zero determines the splitting in S007.
[0128] S006. Iterate through the enumerable fields of the existing file object O, and generate null values to fill the gaps D_fill, such as... Figure 7 As shown.
[0129] S0061. Initialize null value padding difference mapping D_fill;
[0130] S0062. Iterate through all enumerable fields k of the existing file object O again; this is an independent second iteration, not dependent on the result of S005.
[0131] S0063, Null Value Filling Judgment: When E(O[k]) is true (the old value is considered null based on null), field k does not belong to the filter set B, and E(U[k]) is false (the new value is considered non-null based on null), the original new value U[k] is written to the array element D_fill[k]. Otherwise, it is not written until all fields have been processed. In this round, it does not restrict the sub-field k to belong to the current source field set F_s or the historical source field field F_H, and does not add or delete the review title list R formed by S005.
[0132] S0064, Supplementary source code:
[0133] After traversal, the source code of the current file object U is unconditionally written into the null-filling difference mapping D_fill to form the data_type field. The null-filling difference mapping D_fill, the review difference mapping D_review, and the review title list R to S007 are output. D_fill contains the source code, which is the written metadata, and is not an empty object even if there are no business completion items. The same field can be entered into both the review difference mapping D_review and the null-filling difference mapping D_fill simultaneously; for example, the unit category in the history spreadsheet field changes from an empty string to an agency.
[0134] S007. Determine if the review title list R is empty: If yes, write the null-filled difference D_fill to the main record and update the source code and update time; if no, do not modify the main record, merge the review difference mapping D_review and the null-filled difference D_fill into the difference to be replayed D_replay, and form a difference review isolation record Q, such as... Figure 8 As shown.
[0135] S0071. Determine if the length of the review title list R is 0;
[0136] S0072, Branch 1: The title list R is empty; auto-fill and add:
[0137] When the length of R is zero, a new update time is added to the null-filling difference mapping D_fill. The historical source code of the existing file object O and the source code of the current file object U are concatenated with a colon as the historical source field. This is written to the null-filling difference mapping D_fill to modify the master record using the identity key uid, and then a result flag of "Merged into existing user" is written. Because the null-filling difference mapping D_fill contains the source code, this write path is executed even if the business fields are completely identical, instead of skipping the update time and source history.
[0138] S0073, Branch Two: Review the title list R is not empty, save it in isolation:
[0139] If the length of the review title list R is non-zero, the main record is not modified in this step. First, copy the review differential mapping D_review as the initial differential to be replayed D_replay. Then, fill the null values in the differential mapping D_fill and merge it with the initial differential to be replayed D_replay to form the final differential to be replayed D_replay. Overlapping field keys are based on D_fill, overwriting the original values in D_replay. When normal fields overlap, both save the same original new value, and the value will not change after overwriting. Save the final differential to be replayed D_replay in U to form the repeat_data field. Save the review title list R as the review reason and set the differential review type to form the differential review isolation record Q. The historical source after joining is written in the top-level field import_history_type of the isolation record Q, at the same level as the repeat_data field, and is not placed in D_replay. After saving Q, the automatic import of this object ends.
[0140] It should be noted that the two differential values retain the content that needs to be reviewed and the content that can be supplemented, respectively, and the review title list is uniformly controlled to prevent mutual exclusion and flow. When isolated, the two types of differential values are merged and saved, so that the confirmed write object retains both the content that needs to be confirmed and the relevant supplementary content, without requiring these business fields to be reorganized from the source file.
[0141] It should be noted that the isolation record Q consists of the failure type of the current object U, the list of review titles, the repeat_data of the difference to be replayed, and the historical source after the link. Only records with different review types enter the overwrite replay candidate; records with missing required fields and incorrect formats retain the failure reason and do not go through this overwrite entry point. The result is marked and saved as an identity key, name, gender, formatted date of birth, place of origin, processing description, and mark time.
[0142] Q provides the fields to be updated and their corresponding values for user review and selection, and serves as input S008. Autocomplete and isolation are mutually exclusive within a single object processing step; isolation does not mean writing to the main record first and then retracting, nor does it mean isolating only conflicting fields while automatically writing to the remaining complete fields.
[0143] It should be noted that D_replay refers to the fixed differential value saved during isolation, and the double differential value is not recalculated during playback. Field-level fixed differential values ensure that playback uses the specific values to be written during isolation, while retaining the main record fields not included in the differential value. The above effects are limited by the determination of field selection, routing, and write content, and are not contingent on cross-store atomic commits, deduplication playback, or concurrent overwrite protection.
[0144] S008. After the user selects the differential review isolation record Q list, the master record is located using the identity key in the differential review isolation record Q, and the master record is modified using the differential D_replay to be played back. The isolation record deletion is initiated using the identity key in the Q differential review isolation record, and a result marker is written, such as... Figure 9 As shown.
[0145] S0081. Traverse isolation records in order: The user selects the list of difference review isolation records, and retrieves the difference review isolation records Q one by one in the list order;
[0146] S0082. Prepare for playback difference: Add the playback time to the repeat_data of the difference review isolation record Q; solidification refers to saving the business fields and the values to be written during isolation. Playback does not recalculate the difference to be played back. The playback time is added during execution, so the entire object does not remain unchanged byte by byte.
[0147] S0083. Update the master record: Locate the master record with Q.uid, use repeat_data as the field to modify and wait for the modification call to complete. Do not verify the number of modified records, and do not write the historical source of Q back to the master record. If the master record modification fails, throw an exception, and subsequent difference review isolation records will not be updated. The loop will be interrupted.
[0148] S0085. Delete Isolation Record: Then press Q.uid to initiate the deletion of the isolation record, but do not wait for the deletion to be completed, that is, continue writing and wait for the result mark; the independent continuation of deletion may succeed or fail and does not constitute a barrier to writing the result mark. The result mark can be written while the deletion is not yet complete.
[0149] S0086. Write the result flag. If the flag fails, do not roll back the completed master record modification and isolation deletion, and the loop will be interrupted. If the flag is successful, process the next difference review isolation record.
[0150] S0087. List exhausted, loop ends:
[0151] It's important to note that a successful modification call does not guarantee a record has been matched. There is no shared barrier between isolated deletion and result marking; result marking can be written while deletion is still incomplete. Record-by-replay does not possess overall atomicity across three storage locations, nor does it reject stale differentials based on data version or update time. If the same isolated record appears repeatedly in the select list, it will be executed again; when there are multiple isolated records for the same identity, their differentials are applied in the order of the select list, overlapping fields can be overwritten by later executed differentials, and fields not appearing in later differentials retain their previous state. If other operations modify the master record during replay, the subsequently applied fixed differentials can still overwrite their corresponding fields.
[0152] It should be noted that:
[0153] Before a new import batch begins, failure records and result markers are cleared. Therefore, the isolated records are processed for the current batch and are not part of the long-term historical archive. In step S002, required missing fields or incorrectly formatted objects are entered into the failure records according to their respective error types and are not included in the difference playback candidate.
[0154] When a field conversion (S001), history read (S004), or comparison throws an exception (S005), the current object has not formed a subsequent normal routing result; in S003, S007, and S008, when a storage operation throws an exception, the current call is interrupted at that point, and the completed preceding writes are not automatically rolled back. The system uses the actual persisted content at each location to constitute the current state, and does not presume that all storage actions have been completed based on a single result marker.
[0155] In step S008, if an exception is thrown during the replay of the master record modification, subsequent deletions and marking of this record will not be initiated; if the modification is completed normally but zero records are actually hit, the process may still continue to delete the isolated record and write the mark. Asynchronous isolation deletion failure does not prevent already initiated mark writing. When mark writing fails, the master record may have been modified, and the isolated record may have been deleted or not yet deleted; subsequent selections will not continue to be executed sequentially. Previously completed selections retain their results.
[0156] To further illustrate the present invention, the following different scenarios are provided:
[0157] Scenario 1: The same business input is split across different historical sources
[0158] Assume that O and U have the same identity key, the old value of the unit category `dept_type` is an empty string, and the new value is "Government Agency". The current source is "e", and other business fields remain consistent. The unit category belongs to the spreadsheet dictionary, not the appointment and dismissal approval dictionary.
[0159] When O (history) is an empty string, F_H is empty, D_review does not contain a unit category, and R is empty; D_fill contains the unit category and data_type=e, and S007 automatically completes the data, making the main record history ":e". When O (history) is r, F_H is the appointment / approval field, and the result is also automatically completed, making the history "r:e".
[0160] When the O history is 'e', the unit category enters the history field. Both D_review and D_fill contain "Unit Category = Agency", R contains "Unit Category", and S007 saves Q without modifying the master record; the Q history is "e:e". When the O history is 'r:e', the merge field also contains the unit category, but it remains isolated; the Q history is "r:e:e". In all four scenarios, the old and new business values are the same; only the historical source changes, thus altering the traffic distribution.
[0161] After the user selects Q of the third scenario, S008 writes "unit category = government agency" and the source code, and adds the playback time. The main record history remains e before playback, and the "e:e" outside Q is not written along with the difference. If the modification of the main record is completed normally, a deletion is subsequently initiated and a result flag is written.
[0162] Scenario 2: Missing fields, explicit null values and blank strings
[0163] When the main record lacks the predefined unit category field, the field takes the default empty string after being read as O. The current e source provides "government agency", and the old history is e, so two types of differences are entered simultaneously according to the old-empty-and-new-non-empty scenario of the first embodiment. If the main record explicitly stores null, the default value is overwritten, but this example still satisfies both null judgment conditions at the same time.
[0164] If the unit category of O is "space plus line break", T converts it to an empty string in the review phase, so when the history is e and the new value is government agency, it enters D_review; in the completion phase, it is directly judged as null and the original blank string is considered non-empty, so it does not enter the unit category item of D_fill. If the unit category of O is null and this field of U is the same blank string, both the old and new values are null in the review phase, and no review item is generated; in the completion phase, the new blank string is considered non-empty, and D_fill retains the original blank string which can be automatically written.
[0165] If U further contains extended fields that are not declared by the model and not stored in the old database records, such fields do not exist in O, and no difference will be generated in both rounds of traversal just because U provides them. This scenario is different from the scenario where a predefined field is supplemented from the default value.
[0166] Scenario 3: Original value comparison and clearing after confirmation
[0167] Assume that the current source is r, the old value of the current position current_job is "A B", and the new value is "AB". The old value processed by T is non-empty, and the original string is still used for comparison, so it enters D_review and R. If the old value is changed to "Director" and the new value is an empty string, it still enters D_review because the old value is non-empty and the original values are not equal, and D_fill does not contain this business field.
[0168] Both scenarios are isolated first. For the clearing scenario, the to-be-played-back difference of Q stores the empty string of the current position, and the playback clears this field after user confirmation. The system does not uniformly interpret all "new null" as "do not update"; whether a new null can be written depends on whether it has formed a difference to be reviewed and is selected for playback.
[0169] Scenario 4: No business difference, repeated selection and multiple records of the same identity
[0170] When O and U have the same business field and R is empty, D_fill still has data_type. S007 updates the source code, update time, and historical source after connection, and records the merge result.
[0171] Let the difference between the same isolated record Q1 be "Current Position = Director", and Q2 be "Current Position = Deputy Director, Unit Category = Agency". When the selection order is Q1, then Q2, the final current position is Deputy Director; when the order is reversed, Director is selected, and the unit category is still Agency. If Q1 is repeatedly added to the selection list, the replay function will still repeatedly modify, initiate deletion, and generate markers, without automatically merging duplicate selections into one.
[0172] Scenario 5: Partially Completed
[0173] If selecting Q results in an exception being thrown during the main record modification call, neither the deletion nor the marking operation will be initiated. Whether the main record is affected at a lower level depends on the actual result of this failed operation. If the modification completes normally while the deletion is still in progress, the marking process may have already finished, and this does not necessarily mean the isolated record has been cleared.
[0174] If the write operation fails after the primary record has been modified, the primary record has already been modified, and deletion may be in progress or completed; this state cannot be described as a complete playback failure and rollback. If the primary record has been deleted by other operations, a modification call hitting zero records will still return normally, and subsequent deletion and marking can still occur. The final states mentioned above are determined by the actual completion status of modification, deletion, and marking, respectively.
[0175] Example 2
[0176] A personnel file dual-differential diversion and solidification playback system based on historical source field includes: a source adaptation component, a verification component, a master record access component, a field construction component, a differential verification component, a differential completion component, a diversion component, and a playback component corresponding one-to-one with steps S001 to S008, each component being configured to perform the method described in any one of claims 1-8.
[0177] Example 3
[0178] An electronic device includes a processor and a memory, wherein the memory stores a computer program that, when executed by the processor, implements the method described in steps S001 to S008.
[0179] Example 4
[0180] A non-transient computer-readable storage medium, characterized in that it stores a computer program thereon, which, when executed by a processor, implements the method described in steps S001 to S008.
[0181] The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention should be included within the protection scope of the present invention.
Claims
1. A method for dual-difference diversion and fixed playback of personnel files based on the historical source field, characterized in that, Including the following steps: S001. Receive the structure object output by the appointment and dismissal approval parser or the row object output by the spreadsheet parser, perform source adaptation and preprocessing, and generate identity keys to form a unified file object U. S002. Perform identity and field format validation on the unified file object U. If the validation fails, save the failure record and end. If the validation passes, proceed to S003. S003. Query the master record using the identity key in the verified unified file object U. If no match is found, set the historical source of the unified file object U to the current source, save it as the new master record, save the creation result mark, and then end. If a match is found, the query record is retrieved from the main record, and the existing file object O is generated by merging the file object with the query record attributes using the file object with default attributes. S004. Select a preset source dictionary based on the source code of the unified file object U to obtain the current source field set F_s; construct the historical source field field F_H based on the historical source code of O; S005. Traverse the enumerable fields of the existing archive object O that belong to the current source field set F_s, and generate the review difference mapping D_review and the review title list R; S006. Iterate through the enumerable fields of the existing file object O and generate null values to fill the gap D_fill. S007. Determine if the review title list R is empty: If yes, fill the empty value difference D_fill into the main record, and update the source code and update time. No, then the master record is not modified, and the review difference mapping D_review and null value filling difference D_fill are merged into the playback difference D_replay, and a difference review isolation record Q is formed; S008. After the user selects the differential review isolation record Q list, the main record is located using the identity key in the differential review isolation record Q and the differential to be replayed D_replay is used to modify the main record. The isolation record is deleted using the identity key in the differential review isolation record Q and the result is marked.
2. The method for dual-difference diversion and fixed playback of personnel files based on the historical source field as described in claim 1, characterized in that, In step S001, source adaptation and preprocessing are performed to generate identity keys, forming a unified file object U, including: Read the name, gender, date of birth, place of origin, and appointment / removal fields from the structure object according to the preset field mapping rules, map them to the unified file fields, mark the appointment / removal approval source data_type='r', and obtain the appointment / removal approval structure object with source adaptation; Assign the row object to the default file object to achieve format uniformity, mark the spreadsheet source data_type='e', and obtain the spreadsheet row object adapted to the source; Clean up blank spaces in the identity text of the source-adapted appointment and dismissal approval structure object and the source-adapted spreadsheet row object, convert all times to time values, and retain the original times to obtain the preprocessed source-adapted appointment and dismissal approval structure object and the preprocessed source-adapted spreadsheet row object. For both the source-adapted appointment and dismissal approval structure object and the source-adapted spreadsheet row object, the names are concatenated into a name string in the order of name, date of birth, place of origin, and gender. Combined with a fixed namespace, the fifth version of the universally unique identifier UUIDv5 is calculated as the identity key uid. The preprocessed source is adapted to the appointment and dismissal approval structure object and the corresponding structure object identity key; or the preprocessed source is adapted to the spreadsheet row object and the corresponding row object identity key; combined with the business fields of the corresponding source, the current file object U is formed.
3. The method for dual-difference diversion and solidification playback of personnel files based on the historical source field as described in claim 2, characterized in that, In step S004, the preset source dictionary is a mapping between preset field keys and Chinese titles, including spreadsheet dictionaries and appointment / removal approval dictionaries; The source field set F_s consists of the set of field keys from the selected preset source dictionary; The history source field F_H is constructed based on the history source import_history_type of O, including: Read the history source of the existing file object O (import_history_type), and determine whether it contains the string 'r' or the string 'e', considering four cases: When both the string 'r' and the string 'e' are present, merge the spreadsheet dictionary and the appointment and approval dictionary, and use the latter dictionary as the title for duplicate field keys; Use the appointment and removal approval dictionary when the string 'r' is the only one present. Use a spreadsheet dictionary when the string 'e' is the only element. None of them contain the historical source field field used during the time period.
4. The method for dual-difference diversion and fixed playback of personnel files based on the historical source field as described in claim 3, characterized in that, In step S005, the fields belonging to the current source field set F_s in the enumerable fields of the existing file object O are traversed to generate the review difference mapping D_review and the review title list R, including: Establish empty review differential mapping D_review and empty review title list R; Iterate through all enumerable fields k of the existing file object O. When field k belongs to the current source field set F_s, proceed to the review and judgment, including: The old empty and new non-empty review branch in the history domain: when field k belongs to the historical source field domain F_H, field k does not belong to the filter set B, E(T(O[k])) is true and E(T(U[k])) is false; write the new value U[k] into the array element D_review[k], and add the Chinese title of the field in the historical source field domain F_H to the review title list R; Old non-null value change verification branch: If field k does not enter the old null new non-null verification branch in the historical domain, and E(T(O[k])) is false, then perform original value comparison Eq(O[k],U[k]) on the old value O[k] and the new value U[k]; otherwise, proceed to the judgment of the next field; If the original values are not equal, write the new value U[k] into the value D_review[k] and add the Chinese title in the current source field set F_s to the review title list R; if the original values are equal, proceed to the next field judgment. In step S006, the enumerable fields of O are traversed to generate null value filler difference D_fill, including: Initialize the null value filling difference mapping D_fill; iterate through all enumerable fields k of the existing file object O again; when E(O[k]) is true, field k does not belong to the filter set B and E(U[k]) is false, write the original new value U[k] into the value D_fill[k], otherwise, do not write it, until all fields are processed; write the source code of the current file object U into the null value filling difference mapping D_fill to form the data_type field; E() is the basic empty function, which is true if empty and false otherwise. T() is the transformation function, and Eq() is the function to check if the original values are equal.
5. The method for dual-difference diversion and fixed playback of personnel files based on the historical source field as described in claim 4, characterized in that, The basic null check function E() returns non-null for all boolean and number values; null when the array length is zero; null when an object is serialized to the string "{}"; null string, null value, undefined value, and literal string "null" are all null values; strings containing only spaces or newlines are not considered null values in the basic null check. The conversion function T() converts the null value to an empty string, and converts other values to strings first, then removes newline characters, carriage returns, and all whitespace characters. The function Eq() compares the lengths of two arrays when the original value is an array. If the lengths are different, they are considered equal. If the lengths are equal, each item is compared for strict equality. When the original value is an object, the serialized strings of the two arrays are compared. For other types besides objects, they are compared for strict equality.
6. The method for dual-difference diversion and solidification playback of personnel files based on the historical source field as described in claim 5, characterized in that, Step S007 includes: If the review title list R is empty, add the new update time to the null value fill difference mapping D_fill, and connect the historical source code of the existing file object O and the source code of the current file object U with a colon as the historical source field. Write the identity key uid into the null value fill difference mapping D_fill to modify the master record, and then write the result mark "Merge into existing user". If the review title list R is not empty, first copy the review difference mapping D_review as the initial difference to be replayed D_replay, then fill in the null values with the difference mapping D_fill and overwrite and merge it with the initial difference to be replayed D_replay to form the final difference to be replayed D_replay; the overlapping field key is based on D_fill and overwrites the original value in D_replay; save the final difference to be replayed D_replay in U to form the repeat_data field, save the review title list R as the review reason, and set the difference review type to form the difference review isolation record Q; the historical source after the connection is written at the top level of the difference review isolation record Q, and is not put into D_replay.
7. The method for dual-difference diversion and fixed playback of personnel files based on the historical source field as described in claim 6, characterized in that, Step S008 includes: The user selects the list of differential review isolation records, and retrieves the differential review isolation records Q one by one in the list order. The repeat_data of the differential review isolation record Q is added to the current playback time. A master record is created with the identity of the differential review isolation record Q. The repeat_data field is used as the modification object and the modification call is waited for to complete. The number of modified records is not verified and the historical source of the outer layer of differential review isolation record Q is not written back to the master record. If the master record is modified abnormally, an exception is thrown and subsequent differential review isolation records will not be updated, and the loop is interrupted. Then, based on the identity of Q in the differential review of the isolation record, an initiation for deletion of the isolation record is made, but the deletion is not waited for to be completed; Write a result flag; if the flag fails, do not roll back the completed master record modifications and isolated deletions, and the loop will be interrupted; if the flag is successful, process the next differential review isolated record. The loop ends when the list is exhausted.
8. A personnel file dual-difference diversion and fixed playback system based on the historical source field, characterized in that, include: The source adaptation component, verification component, master record access component, field construction component, verification difference component, supplementary difference component, splitting component, and playback component, which correspond one-to-one with steps S001 to S008, are each configured to perform the method described in any one of claims 1-7.
9. An electronic device, characterized in that, It includes a processor and a memory, wherein the memory stores a computer program that, when executed by the processor, implements the method according to any one of claims 1 to 7.
10. A non-transient computer-readable storage medium, characterized in that, It stores a computer program thereon, which, when executed by a processor, implements the method described in any one of claims 1 to 7.
