The present invention relates to display technology, more particularly, to an apparatus for managing production of one or more products, a computer-implemented method, and a computer-program product.
Management of production of products is a complicated process, particularly when the process involves a large number of products and starting materials. In manufacturing a product, the management becomes more difficult when the demand for products and engineering for manufacturing processes can quickly change over a short period of time. Traditional manual management or simple programming are insufficient to manage production, often resulting in material overstock and waste.
In one aspect, the present disclosure provides an apparatus for managing production of one or more products, comprising a business backend; an interface service; a persistent data storage; a processor; and a message middleware; wherein the business backend is configured to extract and organize data; and dispatch business data to the interface service; wherein the interface service is configured to perform data validation on the business data received from the business backend; and transmit the business data to the persistent data storage and the message middleware; wherein the persistent data storage is configured to store the business data received from the interface service as a reference for the calculation and analysis; and transmit data to the processor; wherein the processor is configured to calculate overstock quantity and determine overstock type; wherein the message middleware is configured to receive the business data from the interface service, and receive analysis results from the processor; and transmit the analysis results to interface service; wherein the interface service is configured to monitor message queue in the message middleware for updates regarding ongoing processes.
Optionally, the apparatus further comprises a business database; wherein the business backend is configured to receive data from the business database, including information on one or more of production requirements, material inventory, bill of materials data, substitute material, and material priority.
Optionally, the processor is further configured to parse tag field, during which tags or identifiers in the data received from the persistent data storage is analyzed.
Optionally, the processor is further configured to match processing method, during which an algorithm is selected.
Optionally, the processor is further configured to determine which inventory items should be prioritized for processing, redistribution, or optimization; apply a set of rules to decide the next steps for processing the data; and use a linear programming model to optimize decisions about inventory levels and resource allocation to achieve cost-effectiveness or efficiency.
Optionally, the message middleware is further configured to perform one or more of queue management, message distribution, routing management, and asynchronous processing.
Optionally, the message middleware is further configured to receive data from the interface service; and place the data in a first message queue; wherein the processor is further configured to read data from the first message queue managed by the middleware; and transmit the analysis results to the message middleware; wherein the message middleware is further configured to place the analysis results in a second message queue; wherein the interface service is further configured to obtain the analysis results from the second message queue.
Optionally, the apparatus further comprises a user interface terminal; wherein the user interface terminal is configured to receive calculation requests and display results of overstocked inventory management; and the interface service is further configured to push results to the user interface terminal for display.
Optionally, the apparatus further comprises a container engine; wherein the container engine is configured to perform one or more of container construction, container orchestration, and application management.
In another aspect, the present disclosure provides a computer-implemented method, comprising extracting and organizing data by a business backend; dispatching, by the business backend, business data to an interface service; performing, by an interface service, data validation on the business data received from the business backend; transmitting, by the interface service, the business data to a persistent data storage and a message middleware; storing, by the persistent data storage, the business data received from the interface service as a reference for the calculation and analysis; transmitting, by the persistent data storage, data to the processor; calculating overstock quantity and determining overstock type, by the processor; receiving, by the message middleware, the business data from the interface service, and receive analysis results from the processor; transmitting, by the message middleware, the analysis results to interface service; and monitoring, by the interface service, message queue in the message middleware for updates regarding ongoing processes.
Optionally, the computer-implemented method further comprises receiving, by the business backend, data from a business database, including information on one or more of production requirements, material inventory, bill of materials data, substitute material, and material priority.
Optionally, the computer-implemented method further comprises parsing tag field, by the processor, during which tags or identifiers in the data received from the persistent data storage is analyzed.
Optionally, the computer-implemented method further comprises matching processing method, by the processor, during which an algorithm is selected.
Optionally, the computer-implemented method further comprises determining, by the processor, which inventory items should be prioritized for processing, redistribution, or optimization; applying, by the processor, a set of rules to decide the next steps for processing the data; and using, by the processor, a linear programming model to optimize decisions about inventory levels and resource allocation to achieve cost-effectiveness or efficiency.
Optionally, the computer-implemented method further comprises performing, by the message middleware, one or more of queue management, message distribution, routing management, and asynchronous processing.
Optionally, the computer-implemented method further comprises receiving, by the message middleware, data from the interface service; placing, by the message middleware, the data in a first message queue; reading, by the processor, data from the first message queue managed by the middleware; transmitting, by the processor, the analysis results to the message middleware; placing, by the message middleware, the analysis results in a second message queue; and obtaining, by the interface service, the analysis results from the second message queue.
Optionally, the computer-implemented method further comprises pushing, by the interface service, results to the user interface terminal for display; and receiving, by a user interface terminal, calculation requests and display results of overstocked inventory management.
Optionally, the computer-implemented method further comprises performing, by a container engine, one or more of container construction, container orchestration, and application management.
In another aspect, the present disclosure provides a computer-program product, comprising a non-transitory tangible computer-readable medium having computer-readable instructions thereon, the computer-readable instructions being executable by a processor to cause the processor to perform extracting and organizing data by a business backend; dispatching, by the business backend, business data to an interface service; performing, by an interface service, data validation on the business data received from the business backend; transmitting, by the interface service, the business data to a persistent data storage and a message middleware; storing, by the persistent data storage, the business data received from the interface service as a reference for the calculation and analysis; transmitting, by the persistent data storage, data to the processor; calculating overstock quantity and determining overstock type, by the processor; receiving, by the message middleware, the business data from the interface service, and receive analysis results from the processor; transmitting, by the message middleware, the analysis results to interface service; and monitoring, by the interface service, message queue in the message middleware for updates regarding ongoing processes.
The following drawings are merely examples for illustrative purposes according to various disclosed embodiments and are not intended to limit the scope of the present invention.
The disclosure will now be described more specifically with reference to the following embodiments. It is to be noted that the following descriptions of some embodiments are presented herein for purpose of illustration and description only. It is not intended to be exhaustive or to be limited to the precise form disclosed.
The present disclosure provides, inter alia, a computer-implemented method, an apparatus for managing production of one or more products, and a computer-program product that substantially obviate one or more of the problems due to limitations and disadvantages of the related art. In one aspect, the present disclosure provides An apparatus for managing production of one or more products. In some embodiments, the apparatus for managing production of one or more products includes a business backend; an interface service; a persistent data storage; a processor; and a message middleware. Optionally, the business backend is configured to extract and organize data; and dispatch business data to the interface service. Optionally, the interface service is configured to perform data validation on the business data received from the business backend; and transmit the business data to the persistent data storage and the message middleware. Optionally, the persistent data storage is configured to store the business data received from the interface service as a reference for the calculation and analysis; and transmit data to the processor. Optionally, the processor is configured to calculate overstock quantity and determine overstock type. Optionally, the message middleware is configured to receive the business data from the interface service, and receive analysis results from the processor; and transmit the analysis results to interface service. Optionally, the interface service is configured to monitor message queue in the message middleware for updates regarding ongoing processes.
As used herein, the term “product” refers to any product produced by a plurality of materials. Examples of products include semiconductor products, electronic products, chemical products, mechanically assembled products, and so on. A product as used herein is not limited to a complete product. The term encompasses complete products and intermediate products.
In some embodiments, the data on the plurality of materials for making one or more products may include at least one of a list of one or more products to be produced; inventory amounts of a plurality of materials; demand for one or more products in a period; information on substitution groups for a first group of one or more materials; priority levels for materials in the first group; or unit consumption of the plurality of materials with respect to the one or more products. With respect to the substitution groups, materials that are substitutable for each other in producing a respective product are in a same substitution group. With respect to the priority levels, a higher priority level for a first material in the same substitution group indicating the first material is more preferred in producing a corresponding product over a second material having a lower priority level in the same substitution group. Table 1 illustrates exemplary data on the plurality of materials for making one or more products in some embodiments according to the present disclosure.
As shown in Table 1, the data on the plurality of materials for making one or more products in some embodiments includes a list of products as indicated by product numbers, e.g., PRO-1 and PRO-2; and a list of materials as indicated by material numbers, e.g., A, B, C, D, E, and F. The data further includes unit consumption of the plurality of materials with respect to the one or more products. A same material may have different unit consumption with respect to different products. For example, both PRO-1 and PRO-2 may use material No. A as an ingredient in production, the unit consumption of material A with respect to PRO-1 is 1, and the unit consumption of material A with respect to PRO-2 is 2. A unit consumption is a ratio of an amount (either in weight or mole) of the material required to be consumed to produce an amount of a product to the amount of the product.
A same substitution group includes materials that are substitutable for each other in producing a same product. For example, material A and material B are substitutable for each other in producing product PRO-1, material A and material B are in a same substitution group D1. Material C and material D are substitutable for each other in producing product PRO-1, material C and material D are in a same substitution group D2. Product PRO-1 may be produced by four different combinations of materials, including (A, D, E), (A, C, E), (B, D, E), and (B, C, E).
A higher priority level for a first material in the same substitution group indicating the first material is more preferred in producing a corresponding product over a second material having a lower priority level in the same substitution group. For example, Material A has a priority level of 1, material B has a priority level of 2, material A is more preferred in producing product PRO-1 over material B. In Table 1, a smaller number for the priority level indicates a higher priority, e.g., more preferred.
A first group of one or more materials may be identified from the plurality of materials. A respective material in the first group is a replaceable material with respect to at least one of the one or more product. In Table 1, a material that may be identified as a material in the first group with respect to a particular product is denoted by having a non-null value for the “Substitution Group” column. Optionally, the non-null value may be denoted as Dn, wherein n stands for a substitution group number. Table 1 describes a substitution group number 1 (“D1”) and a substitution group number 2 (“D2”). The substitution group number 1 (“D1”) includes materials A and B with respect to product PRO-1. The substitution group number 2 (“D2”) includes materials C and D with respect to product PRO-1. As shown in Table 1, materials A, B, C, D may be identified as the materials in the first group, wherein each of materials A, B, C, D may be replaceable with respect to at least one of the one or more product. For example, material A is replaceable by material B with respect to product PRO-1; material C is replaceable by material D with respect to product PRO-2.
A second group of one or more materials may be identified from the plurality of materials. A respective material in the second group is a non-replaceable material with respect to at least one of the one or more product. In Table 1, a material that may be identified as a material in the second group with respect to a particular product is denoted by “Null” in the “Substitution Group” column. As shown in Table 1, materials A, E, and F may be identified as the materials in the second group, wherein each of materials A, E, and F is non-replaceable with respect to at least one of the one or more product. For example, material A is non-replaceable with respect to product PRO-2; material E is non-replaceable with respect to product PRO-1; and material F is non-replaceable with respect to product PRO-2.
A same material may be in the first group with respect to a first product, but in the second group with respect to a second product. Thus, the first group and the second group may have an intersection. For example, material A is in the first group with respect to product PRO-1, but in the second group with respect to product PRO-2.
Referring to Table 1, each of the materials in the second group may be assigned a “null” value for substitution group, and may be assigned a “0” for priority level.
As shown in Table 1, the data on the plurality of materials for making one or more products in some embodiments further includes inventory amount for each of the plurality of materials, and demand for each of the plurality of materials. The demand for each of the plurality of materials may be listed by, for example, month. Tables shows the demand for each of the plurality of materials in Month 1 to Month 6. In one example, the period is six month, and the step of calculating a maximum consumption of the respective material in the first group is performed for a period of six months.
In some embodiments, the period includes at least a sub-period in the future. Optionally, the period is entirety a period in the future, for example, a period of next six month. Optionally, the period includes a sub-period in the past and a sub-period in the future, for example, a period of last three months and next three months. Related production management methods are typically based on simple analysis and statistical calculation of historical consumption and replenishment information, and present the historical occurrence of material overstock. The computer-implemented method according to the present disclosure is based on inventory information and demand on products at least partially (e.g., entirely) in the future, to determine material overstock status with the goal of maximizing material consumption.
In some embodiments, the computer-implemented method further includes extracting data on materials in the first group from the data on the plurality of materials for making one or more products. Table 2 illustrates exemplary data on the materials in the first group in some embodiments according to the present disclosure.
In some embodiments, extracting data on materials in the first group from the data on the plurality of materials for making one or more products includes extracting data having a field value for substitution group that is not null, or data having a field value for priority level that is not zero.
Various appropriate linear programming models may be used for calculating the maximum consumption of the respective material in the first group in the period with respect to the at least one of the one or more product. In some embodiments, the linear programming model is an integer linear programming model. In one example, the linear programming model is a pure integer linear programming model, in which all variables are integers. In another example, the linear programming model is a mixed integer linear programming model, in which some variables are integers, and some are non-integers.
Various appropriate approaches may be implemented in the linear programming model. In one example, a branch-and-bound approach may be used, which is based on the principle that the total set of feasible solutions can be partitioned into smaller subsets of solutions. The smaller subsets can then be evaluated systematically until the best solution is found. The branch-and-bound approach may be implemented in either the pure integer linear programming model or in the mixed integer linear programming model. In another example, a cutting plane approach may be used, which iteratively refers a feasible set or objective function by means of linear inequalities, termed cuts. The cutting plane approach may be implemented in either the pure integer linear programming model or in the mixed integer linear programming model.
In some embodiments, an objective function for the linear programming model is expressed as:
wherein xi stands for an amount of a respective product that can be produced in the period using the respective material in the first group; di stands for a unit consumption of the respective material in the first group with respect to the respective product; and N is a positive integer, N>1. In one example, N stands for a total number of materials in the first group. In one example, xi may be a total number of the respective product that can be produced in the period using the respective material in the first group. In another example, di may be grams of the respective material in the first group with respect to the respective product for producing one respective product.
In some embodiments, the objective function is subject to a first constraint expressed as:
Σx
wherein Ql stands for a demand for the respective product in the period; (Ql, Gj) stands for a set of variables for a j-th group of materials that are substitutable for each other in producing the respective product; and 0≤xi≤Ql. Referring to Table 2, in one example, there are two groups of materials that are substitutable for each other in producing the respective product, including a group comprising A and B that are substitutable for each other in producing PRO-1, and a group comprising C and D that are substitutable for each other in producing PRO-1. Optionally, 1≤j≤J, wherein J stands for a total number of groups of materials that are substitutable for each other.
In some embodiments, the objective function is subject to a second constraint expressed as:
wherein Cm stands for an available inventory amount of a m-th material in the first group; and Xm stands for a set of variables for the m-th material. Optionally, 1≤m≤M, wherein M stands a total number of materials in the first group.
In some embodiments, an individual material in the first group is a replaceable material with respect to one product but non-replaceable material with respect to another product (e.g., in a second group with respect to the another product). A theoretical consumption of the individual material in the period is calculated with respect to the another product. In calculating the maximum consumption of the individual material in the period, and comparing the maximum consumption of the individual material with an available inventory amount of the individual material, to determining whether the individual material is overstocked in the period, the available inventory amount (e.g., Cm) of the individual material is equal to a respective inventory amount (e.g., an actual inventory amount) of the individual material subtracted by the respective theoretical consumption of the individual material in the period.
In some embodiments, the computer-implemented method further includes extracting data on materials in the second group from the data on the plurality of materials for making one or more products. Table 3 illustrates exemplary data on the materials in the second group in some embodiments according to the present disclosure.
In some embodiments, extracting data on materials in the second group from the data on the plurality of materials for making one or more products includes extracting data having a field value for substitution group that is null, or data having a field value for priority level that is zero.
In some embodiments, the computer-implemented method further includes calculating the respective theoretical consumption of the respective material in the second group in the period. Optionally, the respective theoretical consumption of the respective material in the second group in the period is equal to a sum of values of one or more demands in the period for one or more products requiring the respective material in the second group as a non-replaceable material respectively multiplied by respective unit consumptions of the respective material in the second group with respect to the one or more products. In one example, referring to Table 3, a theoretical consumption of material E is equal to a demand for PRO-1 multiplied by unit consumption of material E with respect to PRO-1, which is equal to 20000*4.
Referring to
Referring to
Referring to
In some embodiments, the computer-implemented method further includes identifying a first group of one or more materials from the plurality of materials, a respective material in the first group is a replaceable material with respect to at least one of the one or more product; and extracting data on materials in the first group.
Upon determination the respective theoretical consumption of the respective material in the second group in the period is equal to or greater than the respective inventory amount of the respective material in the second group, the computer-implemented method in some embodiments includes determining that the respective material in the second group is not overstocked in the period.
Upon determination the respective theoretical consumption of the respective material in the second group in the period is less than the respective inventory amount of the respective material in the second group, the computer-implemented method in some embodiments includes determining whether the respective material in the second group is a replaceable material with respect to another product of the one or more products.
Upon determination the respective material in the second group is not a replaceable material with respect to another product of the one or more products, the computer-implemented method in some embodiments includes determining that the respective material in the second group is overstocked in the period.
Upon determination the respective material in the second group is a replaceable material with respect to another product of the one or more products, the computer-implemented method in some embodiments includes updating data on materials in the first group. For example, the replaceable material is the respective material in the second group with respect to a first product, and is an individual material in the first group with respect to a second product. An available inventory amount of the individual material in the first group with respect to the second product is updated as being equal to an actual inventory amount subtracted by the respective theoretical consumption of the replaceable material (when treated as the respective material in the second group) with respect to the first product in the period.
Referring to
In some embodiments, the computer-implemented method further includes calculating a maximum consumption of the respective material in the first group in a period using a linear programming model with respect to the at least one of the one or more product; comparing the maximum consumption of the respective material in the first group in the period with an available inventory amount of the respective material in the first group; and determining whether the maximum consumption of the respective material in the first group in the period is equal to or greater than the available inventory amount of the respective material in the first group.
Upon determination the maximum consumption of the respective material in the first group in the period is equal to or greater than the available inventory amount of the respective material in the first group, the computer-implemented method further includes determining that the respective material in the first group is overstocked in the period.
Upon determination the maximum consumption of the respective material in the first group in the period is less than the available inventory amount of the respective material in the first group, the computer-implemented method further includes determining that the respective material in the first group is not overstocked in the period.
Accordingly, as shown in
In one example, determining that whether the respective material in the second group is overstocked in the period is performed prior to performing calculating a maximum consumption of the respective material in the first group in a period using a linear programming model with respect to the at least one of the one or more product. In another example, comparing a respective theoretical consumption of the respective material in the second group in the period with a respective inventory amount of the respective material in the second group is performed prior to performing calculating a maximum consumption of the respective material in the first group in a period using a linear programming model with respect to the at least one of the one or more product.
In some embodiments, the computer-implemented method further includes determining whether a demand for an overstocked material is zero in an entirety of the period. Upon determination the demand for the overstocked material is zero in an entirety of the period, the computer-implemented method further includes determining the overstock status as a first status.
In some embodiments, the period comprises a first sub-period followed by a second sub-period; the computer-implemented method further includes determining whether the demand for the overstocked material is zero in the second sub-period, and is non-zero in the first sub-period. In one example, the period is a period of six months, the first sub-period is month 1 to month 3; and the second sub-period is month 4 to month 6. Upon determination the demand for the overstocked material is zero in the second sub-period, and is non-zero in the first sub-period, the computer-implemented method further includes determining the overstock status as a second status.
In some embodiments, the computer-implemented method further includes determining whether the demand for the overstocked material is zero in the first sub-period, and is non-zero in the second sub-period. Upon determination the demand for the overstocked material is zero in the first sub-period, and is non-zero in the second sub-period, the computer-implemented method further includes determining the overstock status as a third status.
In some embodiments, the computer-implemented method further includes determining whether the demand for the overstocked material is non-zero in the first sub-period, and is non-zero in the second sub-period. Upon determination the demand for the overstocked material is non-zero in the first sub-period, and is non-zero in the second sub-period, the computer-implemented method further includes determining the overstock status as a fourth status.
In some embodiments, the computer-implemented method further includes analyzing an underlying reason for overstocking.
In some embodiments, the computer-implemented method further includes determining whether the overstocked material is a strategically stocked material. Upon determination the overstocked material is a strategically stocked material, the computer-implemented method further includes determining that the underlying reason for overstocking is due to strategic stocking.
In some embodiments, the computer-implemented method further includes determining whether the overstocked material is an outdated material due to engineering change. Upon determination the overstocked material is an outdated material due to engineering change, the computer-implemented method further includes determining that the underlying reason for overstocking is due to engineering change.
In some embodiments, the computer-implemented method further includes determining whether a yield for a product requiring the overstocked material increases. Upon determination the yield for the product requiring the overstocked material increases, the computer-implemented method further includes determining that the underlying reason for overstocking is due to yield improvement.
The order of steps of determining the underlying reason for overstocking depicted in
In some embodiments, upon determination of one or more underlying reasons for material overstock, the computer-implemented method further includes adjust one or more production parameters in the period for the one or more products to minimize the material overstock. In some embodiments, the data on the plurality of materials for making one or more products includes data on priority level of the one or more materials in the first group. A higher priority level for a material in the first group indicates the material is more preferred in producing a corresponding product over one having a lower priority level. In some embodiments, upon determination the respective material in the first group is overstocked in the period, the computer-implemented method further includes adjusting the priority level of the respective material in the first group; and producing the one or more products based on adjusted priority level of the one or more materials in the first group. By adjusting the priority level of the respective material (e.g., the overstocked material) in the first group, inventory costs and material overstock can be lowered.
In some embodiments, upon determination the respective material in the first group is overstocked in the period, the computer-implemented method further includes adjusting a demand in the period for the one or more products to minimize material overstock; and producing the one or more products based on adjusted demand in the period for the one or more products. By adjusting the demand in the period for the one or more products, the material overstock may be lowered, the manufacturer can better cater to the market, and the products may be made available faster.
In some embodiments, the computer-implemented method further includes generating one or more user interfaces. In some embodiments, the one or more user interfaces includes a first output interface configured to display an overstock status for the respective material in the first group or the respective material in the second group that is overstocked in the period. The overstock status indicates the reason or reasons for overstocking. In some embodiments, the first output interface is configured to display an identification number for an overstocked material in the period, and the overstock status associated with the overstocked material. In some embodiments, the overstock status is selected from a group consisting of a first status, a second status, a third status, and a fourth status. The first status indicates that a demand for an overstocked material is zero in an entirety of the period. The second status indicates that a demand for an overstocked material is zero in a second sub-period in the period, and is non-zero in a first sub-period in the period, wherein the first sub-period is followed by the second sub-period. The third status indicates that a demand for an overstocked material is zero in a first sub-period in the period, and is non-zero in a second sub-period in the period, wherein the first sub-period is followed by the second sub-period. The fourth status indicates that a demand for an overstocked material is non-zero in a first sub-period in the period, and is non-zero in a second sub-period in the period, wherein the first sub-period is followed by the second sub-period.
In some embodiments, the first output interface is further configured to display at least one of an identification number for a manufacturing site having the overstocked material or a classification of the overstocked material.
In some embodiments, the one or more user interfaces further includes a first input interface configured to receive one or more user inputs for querying a database. In some embodiments, the method includes receiving, from the first input interface, a user selection of one or more conditions for selecting an overstocked material associated with the one or more conditions; in response to the user selection, and querying the database to determine one or more overstocked materials in the database associated with the one or more conditions. The one or more conditions in some embodiments include an overstock status as discussed above. Optionally, the one or more conditions further include at least one of an identification number for a manufacturing site, an identification number for a material, or a range of dates.
In some embodiments, the one or more user interfaces further includes a second output interface configured to display the one or more overstocked materials as a result of the querying the database. Optionally, the second output interface is further configured to display an identification number for one or more products produced by the one or more overstocked materials. Optionally, the second output interface is further configured to display a demand for an overstocked material for making a respective product, e.g., in a most recent period (including a first sub-period and a second sub-period). The user can analyze the relationship between the demand and the overstock status.
In some embodiments, the one or more user interfaces further includes a second input interface configured to receive one or more user inputs for adjusting the priority level of the respective material in the first group. Based on an adjusted priority level of the respective material in the first group, the method includes re-determining the respective material in the first group is overstocked in the period. By adjusting the priority level of the respective material (e.g., the overstocked material) in the first group, inventory costs and material overstock can be lowered.
In some embodiments, the one or more user interfaces further includes a third input interface configured to receive one or more user inputs for adjusting the demand in the period for the one or more products. Based on an adjusted demand in the period for the one or more products, the method includes calculating an adjusted maximum consumption of the respective material in the first group in the period; comparing the adjusted maximum consumption of the respective material in the first group in the period with an available inventory amount of the respective material in the first group; and re-determining whether the respective material in the first group is overstocked in the period. By adjusting the demand in the period for the one or more products, the material overstock may be lowered, the manufacturer can better cater to the market, and the products may be made available faster.
In some embodiments, the one or more user interfaces further includes a third output interface configured to display an estimated surplus amount with respect to an overstock material at a first manufacturing site and an estimated deficit amount with respect the overstock material at a second manufacturing site. Optionally, the third output interface is configured to display a table comprising an identification number of the overstocked material, identification numbers of the manufacturing sites, the estimated surplus amount, and the estimated deficit amount. In some embodiments, the user may allocate the overstock material between manufacturing sites based on several factors including transportation cost, how urgent the overstock material is needed in the second manufacturing site, and so on.
The system is initiated through a user interface terminal. The user interface terminal serves as the user interface for external input and output. In some embodiments, the user interface terminal is configured to receive calculation requests and display results of overstocked inventory management. Users can interact with the system by sending calculation requests and viewing the results of overstocked inventory management. The user interface terminal connects directly with the business backend to facilitate data exchange.
In some embodiments, the business backend is responsible for configuring necessary calculation conditions. In some embodiments, the business backend is configured to configure trigger conditions.
In some embodiments, the business backend is configured to extract and organize data. The extracted data is prepared and organized for further processing. In some embodiments, the business backend is configured to receive data from a business database. Optionally, the business database includes information on one or more of production requirements, material inventory, bill of materials data, substitute material, and material priority.
In some embodiments, the business backend is configured to dispatch business data to an interface service. In some embodiments, the interface service is configured to perform data validation on the business data received from the business backend. In some embodiments, the interface service is further configured to determine whether the business data is correct and complete. Upon determination that the business data is correct and complete, the interface service is configured to transmit the business data to a persistent data storage and a message middleware, and configured to dispatch exception information to the business backend.
In some embodiments, the persistent data storage is configured to store the business data received from the interface service. The business data stored in the persistent data storage serves as a reference for the calculation and analysis phase. The storage ensures that data is retained for subsequent re-use and analysis, thereby reducing redundancy and improving efficiency.
In some embodiments, the persistent data storage is further configured to transmit data to a processor. In some embodiments, the processor is configured to parse tag field. Optionally, the processor is configured to analyze tags or identifiers in the data received from the persistent data storage, which may contain key information about the type of data, its priority, or specific attributes. The parsing process helps the system make decisions on how the data should be handled, such as determining the processing method, calculating quantities, or identifying the appropriate strategy for managing overstocked inventory.
In some embodiments, the processor is further configured to match processing method. Optionally, the processor is configured to selecting the correct processing workflow, algorithm, or procedure. This ensures that the data is processed in the most suitable manner, depending on its type, importance, or other specific conditions. This could include choosing among various algorithms, prioritization levels, or different handling strategies. In one example, the processor is configured to determine which inventory items should be prioritized for processing, redistribution, or optimization, based on predefined criteria such as shelf life or importance (“Priority Strategy”). In another example, the processor is configured to apply a set of rules to decide the next steps for processing the data (“Rule Calculation”). This could be inventory policies, thresholds, or business rules used to classify or allocate resources. In another example, the processor is configured to use a linear programming model to optimize decisions about inventory levels and resource allocation to achieve cost-effectiveness or efficiency (“Linear Modeling”).
In some embodiments, the processor is further configured to calculate overstock quantity. Optionally, the processor is configured to determine the amount of inventory that exceeds the current demand or required stock level. This is done to identify materials or products that are in excess and might require adjustments, such as redistribution, discounting, or other strategies to optimize inventory levels. Calculating overstock quantity helps in effectively managing resources, reducing holding costs, and ensuring efficient supply chain management.
In some embodiments, the processor is further configured to determine overstock type. Optionally, the processor is configured to identify the classification or category of overstocked inventory based on predefined rules or conditions. This could mean distinguishing between different causes or scenarios of overstock.
In some embodiments, the message middleware is configured to receive the business data from the interface service, and receive analysis results from the processor. In some embodiments, the message middleware is further configured to perform queue management. Optionally, the message middleware is configured to perform handling and monitoring of queues, which are sequences of tasks or data packets awaiting processing. In the context of inventory management, queue management involves keeping track of different requests or messages in the system that need to be processed, ensuring that each item in the queue is handled in a timely and orderly manner.
In some embodiments, the message middleware is further configured to perform message distribution. Optionally, the message middleware is configured to send messages (data or requests) to the appropriate components or recipients within a system. In an inventory management system, it could mean routing messages to different calculation modules, storage units, or other parts of the process based on predetermined rules. It helps in distributing tasks effectively across various modules.
In some embodiments, the message middleware is further configured to perform routing management. Optionally, the message middleware is configured to determine the correct path for data or messages to travel within a system. It is responsible for ensuring that messages are directed to the right component, whether it's a computation module, data storage, or another part of the system. Proper routing management optimizes communication efficiency and minimizes delays in processing.
In some embodiments, the message middleware is further configured to perform asynchronous processing. Optionally, the message middleware is configured to process tasks independently without waiting for each task to complete before moving to the next one. This is useful in inventory management systems to handle different parts of the workflow simultaneously, improving overall system efficiency. For example, while data is being validated, another module can already be preparing inventory calculations, thus speeding up the process.
In some embodiments, the message middleware is further configured to transmit the analysis results to interface service. In some embodiments, the interface service is configured to monitor message queue in the message middleware for updates regarding ongoing processes. In some embodiments, the analysis results include one or more of material code, associated factory, timestamp, overstock quantity, and overstock type.
In some embodiments, the interface service is further configured to push results to the user interface terminal for display.
In some embodiments, the container engine is configured to perform container construction. Optionally, the container engine is configured to create containers, which are lightweight, portable software environments that bundle an application and its dependencies. This ensures that the application runs consistently regardless of the computing environment. It involves using container images to build instances that can execute specific processes.
In some embodiments, the container engine is further configured to perform container orchestration. Optionally, the container engine is configured to manage and automate the deployment, scaling, networking, and availability of containers. It ensures that containers are efficiently coordinated and work together smoothly across different nodes in a cluster. Tools like Kubernetes are commonly used for container orchestration, automating tasks like container deployment, scaling, health monitoring, and updating.
In some embodiments, the container engine is further configured to perform application management. Optionally, the container engine is configured to manage the lifecycle of containerized applications, from deployment to monitoring and scaling. It includes the operations required to maintain the performance, availability, and reliability of applications running inside containers, as well as managing configurations and updates.
In some embodiments, the business backend is configured to perform configuring trigger conditions, request data integration, and request overstock material calculation. In some embodiments, the business backend is further configured to receive data from the business database. In some embodiments, the business backend is further configured to send requests for data integration and requests for overstocked material calculation to the interface service. The data integration request involves pulling relevant data from a business database, which may contain information related to production requirements, material inventory, bill of materials data, substitute materials, and material priorities. The business backend also manages exception handling and retry mechanisms for any errors that may occur during the workflow.
In some embodiments, the interface service is configured to receive data from the business backend and validate the data to ensure data completeness and correctness. In some embodiments, the interface service is configured to determine whether the received data is correct and complete. If the data is validated successfully, the interface service sends the data to the next component in the workflow. If the data is incomplete or incorrect, the interface service logs the error and communicates it back to the business backend for further processing. The interface service is also responsible for reading algorithm calculation results from the message middleware and pushing the results to the business backend for display and reporting.
In some embodiments, the message middleware is configured to facilitate the asynchronous transmission of data within the system. The middleware is configured to manage data queues, send data to the appropriate processing units, and perform routing management. Once data is received from the interface service, the middleware places the data in Message Queue 1, which holds data awaiting processing by the processor. The message middleware enables efficient asynchronous processing by allowing different parts of the workflow to operate independently without waiting for other components to complete their tasks
In some embodiments, the processor is configured to read data from the message queue managed by the middleware. It is configured to perform model calculations to determine overstocked inventory quantities and identify specific types of overstock. The processor utilizes different methodologies, including priority strategies, rule calculations, and linear modeling, to optimize the decision-making process for inventory management. Once the model calculation is complete, the results are placed in Message Queue 2, from which the interface service can obtain them.
In some embodiments, the business backend is further configured to perform post-processing of business data. Once the interface service obtains the calculation results from the message middleware, the results are processed by the business backend to generate reports and provide actionable insights for overstocked inventory management. The business backend is further configured to provide a comprehensive overview of inventory status, including details on overstock quantity, overstock type, and optimization recommendations, e.g., to a user interface terminal (“Report Display”).
The use of message middleware for asynchronous communication and the integration of multiple data validation, calculation, and reporting components ensures efficient management of overstocked inventory. The workflow depicted in
The calculation of overstocked materials can be triggered either as a scheduled task or as an on-demand task. When the user triggers the calculation of overstocked materials, the front-end retrieves related data tables from the business backend database, extracting and associating data from multiple tables to obtain a complete dataset needed for the calculation. For example, first, determine the list of products that need to be included in the calculation. Then, based on the material table, retrieve the material code, unit consumption information, substitute materials, and priority information for each product. After that, obtain the inventory information for the materials, which may include the current quantity in stock, items in transit, and the expected quantity of incoming materials.
The organized data is extracted from the business backend and transmitted to the data reception side of the processor in the form of sub-packages. After verifying the integrity of the incoming data, the data reception unit sends complete data to the algorithm calculation model for processing. If the data is incomplete, it is flagged as incomplete, and the system returns exception information to the business side to trigger retries or other corrective actions.
Since multiple calculation requests may be sent in batches, message middleware is used for asynchronous communication. The data reception unit assigns a unique identifier to each batch of data, and the message middleware maintains a queue, with each message containing the unique identifier and data address.
Once the algorithm calculation module detects a message, it retrieves the relevant data through the storage path and begins the calculation process.
The message middleware offers several advantages. The message middleware supports asynchronous communication, meaning the sender does not need to wait for the receiver's response, which improves system responsiveness and throughput. The message middleware typically supports message persistence and transaction processing, ensuring reliable transmission and processing of messages, thereby improving system reliability and stability. The message middleware can decouple direct dependencies between applications, thereby improving the system's scalability and maintainability. The message middleware supports multiple messaging patterns, such as point-to-point and publish/subscribe, which can be selected and configured based on specific business needs. The message middleware can provide monitoring, tracking, and statistical functions, making it convenient for developers to debug and optimize performance. The message middleware can act as a message buffer, temporarily storing unprocessed messages to balance system load and pressure.
In some embodiments, the computer-implemented method includes extracting and organizing data by a business backend; dispatching, by the business backend, business data to an interface service; performing, by an interface service, data validation on the business data received from the business backend; transmitting, by the interface service, the business data to a persistent data storage and a message middleware; storing, by the persistent data storage, the business data received from the interface service as a reference for the calculation and analysis; transmitting, by the persistent data storage, data to the processor; calculating overstock quantity and determining overstock type, by the processor; receiving, by the message middleware, the business data from the interface service, and receive analysis results from the processor; transmitting, by the message middleware, the analysis results to interface service; and monitoring, by the interface service, message queue in the message middleware for updates regarding ongoing processes.
In some embodiments, the computer-implemented method further comprises receiving, by the business backend, data from a business database, including information on one or more of production requirements, material inventory, bill of materials data, substitute material, and material priority.
In some embodiments, the computer-implemented method further comprises parsing tag field, by the processor, during which tags or identifiers in the data received from the persistent data storage is analyzed.
In some embodiments, the computer-implemented method further comprises matching processing method, by the processor, during which an algorithm is selected.
In some embodiments, the computer-implemented method further comprises determining, by the processor, which inventory items should be prioritized for processing, redistribution, or optimization; applying, by the processor, a set of rules to decide the next steps for processing the data; and using, by the processor, a linear programming model to optimize decisions about inventory levels and resource allocation to achieve cost-effectiveness or efficiency.
In some embodiments, the computer-implemented method further comprises performing, by the message middleware, one or more of queue management, message distribution, routing management, and asynchronous processing.
In some embodiments, the computer-implemented method further comprises receiving, by the message middleware, data from the interface service; placing, by the message middleware, the data in a first message queue; reading, by the processor, data from the first message queue managed by the middleware; transmitting, by the processor, the analysis results to the message middleware; placing, by the message middleware, the analysis results in a second message queue; and obtaining, by the interface service, the analysis results from the second message queue.
In some embodiments, the computer-implemented method further comprises pushing, by the interface service, results to the user interface terminal for display; and receiving, by a user interface terminal, calculation requests and display results of overstocked inventory management.
In some embodiments, the computer-implemented method further comprises performing, by a container engine, one or more of container construction, container orchestration, and application management.
In another aspect, the present disclosure provides an apparatus for managing production of one or more products.
In some embodiments, the apparatus includes a memory, and one or more processors, wherein the memory and the one or more processors are connected with each other. In some embodiments, the memory stores computer-executable instructions for controlling the one or more processors to obtain data on a plurality of materials for making one or more products; identify a first group of one or more materials from the plurality of materials, a respective material in the first group is a replaceable material with respect to at least one of the one or more product; calculate a maximum consumption of the respective material in the first group in a period using a linear programming model with respect to the at least one of the one or more product; compare the maximum consumption of the respective material in the first group in the period with an available inventory amount of the respective material in the first group; and determine whether the respective material in the first group is overstocked in the period.
In some embodiments, an objective function for the linear programming model is expressed as:
wherein xi stands for an amount of a respective product that can be produced in the period using the respective material in the first group; di stands for a unit consumption of the respective material in the first group with respect to the respective product; and N is a positive integer, N≥1.
In some embodiments, the objective function is subject to a first constraint expressed as:
Σx
I wherein Ql stands for a demand for the respective product in the period; (Ql, Gj) stands for a set of variables for a j-th group of materials that are substitutable for each other in producing the respective product; 0≤xi≤Ql; and 1≤j≤J, wherein J stands for a total number of groups of materials that are substitutable for each other.
In some embodiments, the objective function is subject to a second constraint expressed as:
wherein Cm stands for an available inventory amount of a m-th material in the first group; Xm stands for a set of variables for the m-th material; and 1≤m≤M, wherein M stands a total number of materials in the first group.
In some embodiments, the memory further stores computer-executable instructions for controlling the one or more processors to identify a second group of one or more materials from the plurality of materials, a respective material in the second group is a non-replaceable material with respect to at least one of the one or more product; compare a respective theoretical consumption of the respective material in the second group in the period with a respective inventory amount of the respective material in the second group; and determine that whether the respective material in the second group is overstocked in the period.
In some embodiments, the memory further stores computer-executable instructions for controlling the one or more processors to, upon determination that the respective theoretical consumption of the respective material in the second group in the period is equal to or greater than the respective inventory amount of the respective material in the second group, determine that the respective material in the second group is not overstocked in the period.
In some embodiments, the memory further stores computer-executable instructions for controlling the one or more processors to, upon determination that the respective theoretical consumption of the respective material in the second group in the period is less than the respective inventory amount of the respective material in the second group, determine whether the respective material in the second group is a replaceable material with respect to another product of the one or more products.
In some embodiments, the memory further stores computer-executable instructions for controlling the one or more processors to, upon determination that the respective material in the second group is not a replaceable material with respect to any product of the one or more products, determine that the respective material in the second group is overstocked in the period.
In some embodiments, the memory further stores computer-executable instructions for controlling the one or more processors to, upon determination that the respective material in the second group is a replaceable material with respect to the another product, calculate a maximum consumption of the replaceable material in the period using a linear programming model with respect to the another; compare the maximum consumption of the replaceable material in the period with an available inventory amount of the replaceable material; and determine whether the replaceable material is overstocked in the period. Optionally, the available inventory amount of the replaceable material is equal to the respective inventory amount subtracted by the respective theoretical consumption of the replaceable material in the period.
In some embodiments, the memory further stores computer-executable instructions for controlling the one or more processors to calculate the respective theoretical consumption of the respective material in the second group in the period. Optionally, the respective theoretical consumption of the respective material in the second group in the period is equal to a sum of values of one or more demands in the period for one or more products requiring the respective material in the second group as a non-replaceable material respectively multiplied by respective unit consumptions of the respective material in the second group with respect to the one or more products.
In some embodiments, the memory further stores computer-executable instructions for controlling the one or more processors to extract data on materials in the first group from the data on the plurality of materials for making one or more products; and update the data on materials in the first group upon determination an individual material in the first group is also a non-replaceable material with respect to another product of the one or more products.
In some embodiments, an available inventory amount of the individual material for the purpose of calculating a maximum consumption thereof is updated as being equal to an actual inventory amount of the individual material subtracted by a respective theoretical consumption in the period of the individual material as the non-replaceable material with respect to the another product.
In some embodiments, the memory further stores computer-executable instructions for controlling the one or more processors to, upon determining the respective material in the first group or the respective material in the second group is overstocked in the period, determine an overstock status for the respective material in the first group or the respective material in the second group that is overstocked in the period. In some embodiments, the overstock status is one of a first status, a second status, a third status, or a fourth status. Optionally, in the first status, a demand for an overstocked material is zero in an entirety of the period. Optionally, the period comprises a first sub-period followed by a second sub-period. Optionally, in the second status, the demand for the overstocked material is zero in the second sub-period, and is non-zero in the first sub-period. Optionally, in the third status, the demand for the overstocked material is zero in the first sub-period, and is non-zero in the second sub-period. Optionally, in the fourth status, the demand for the overstocked material is non-zero in the first sub-period, and is non-zero in the second sub-period.
In some embodiments, the memory further stores computer-executable instructions for controlling the one or more processors to, upon determining the respective material in the first group or the respective material in the second group is overstocked in the period, determine one or more underlying reasons for material overstock; and adjust one or more production parameters in the period for the one or more products to minimize the material overstock.
In some embodiments, the data comprises data on priority level of the one or more materials in the first group. Optionally, a higher priority level for a material in the first group indicates the material is more preferred in producing a corresponding product over one having a lower priority level.
In some embodiments, the memory further stores computer-executable instructions for controlling the one or more processors to, upon determination the respective material in the first group is overstocked in the period, adjust the priority level of the respective material in the first group; and produce the one or more products based on adjusted priority level of the one or more materials in the first group.
In some embodiments, the memory further stores computer-executable instructions for controlling the one or more processors to, upon determining the respective material in the first group or the respective material in the second group is overstocked in the period, adjust a demand in the period for the one or more products to minimize material overstock; and produce the one or more products based on adjusted demand in the period for the one or more products.
In some embodiments, the apparatus further includes one or more user interfaces.
In some embodiments, the one or more user interfaces includes a first output interface OI1 configured to display an overstock status for the respective material in the first group or the respective material in the second group that is overstocked in the period. The overstock status indicates the reason or reasons for overstocking. In some embodiments, the first output interface OI1 is configured to display an identification number for an overstocked material in the period, and the overstock status associated with the overstocked material. In some embodiments, the overstock status is selected from a group consisting of a first status, a second status, a third status, and a fourth status. The first status indicates that a demand for an overstocked material is zero in an entirety of the period. The second status indicates that a demand for an overstocked material is zero in a second sub-period in the period, and is non-zero in a first sub-period in the period, wherein the first sub-period is followed by the second sub-period. The third status indicates that a demand for an overstocked material is zero in a first sub-period in the period, and is non-zero in a second sub-period in the period, wherein the first sub-period is followed by the second sub-period. The fourth status indicates that a demand for an overstocked material is non-zero in a first sub-period in the period, and is non-zero in a second sub-period in the period, wherein the first sub-period is followed by the second sub-period.
In some embodiments, the first output interface OI1 is further configured to display at least one of an identification number for a manufacturing site having the overstocked material or a classification of the overstocked material.
In some embodiments, the one or more user interfaces further includes a first input interface II1 configured to receive one or more user inputs for querying a database. In some embodiments, the method includes receiving, from the first input interface II1, a user selection of one or more conditions for selecting an overstocked material associated with the one or more conditions; in response to the user selection, and querying the database to determine one or more overstocked materials in the database associated with the one or more conditions. The one or more conditions in some embodiments include an overstock status as discussed above. Optionally, the one or more conditions further include at least one of an identification number for a manufacturing site, an identification number for a material, or a range of dates.
In some embodiments, the one or more user interfaces further includes a second output interface OI2 configured to display the one or more overstocked materials as a result of the querying the database. Optionally, the second output interface OI2 is further configured to display an identification number for one or more products produced by the one or more overstocked materials. Optionally, the second output interface OI2 is further configured to display a demand for an overstocked material for making a respective product, e.g., in a most recent period (including a first sub-period and a second sub-period). The user can analyze the relationship between the demand and the overstock status.
In some embodiments, the one or more user interfaces further includes a second input interface II2 configured to receive one or more user inputs for adjusting the priority level of the respective material in the first group. Based on an adjusted priority level of the respective material in the first group, the memory further stores computer-executable instructions for controlling the one or more processors to re-determine the respective material in the first group is overstocked in the period. By adjusting the priority level of the respective material (e.g., the overstocked material) in the first group, inventory costs and material overstock can be lowered.
In some embodiments, the one or more user interfaces further includes a third input interface II3 configured to receive one or more user inputs for adjusting the demand in the period for the one or more products. Based on an adjusted demand in the period for the one or more products, the memory further stores computer-executable instructions for controlling the one or more processors to calculate an adjusted maximum consumption of the respective material in the first group in the period; compare the adjusted maximum consumption of the respective material in the first group in the period with an available inventory amount of the respective material in the first group; and re-determine whether the respective material in the first group is overstocked in the period. By adjusting the demand in the period for the one or more products, the material overstock may be lowered, the manufacturer can better cater to the market, and the products may be made available faster.
In some embodiments, the one or more user interfaces further includes a third output interface OI3 configured to display an estimated surplus amount with respect to an overstock material at a first manufacturing site and an estimated deficit amount with respect the overstock material at a second manufacturing site. Optionally, the third output interface OI3 is configured to display a table comprising an identification number of the overstocked material, identification numbers of the manufacturing sites, the estimated surplus amount, and the estimated deficit amount.
In some embodiments, the apparatus for managing production of one or more products includes a business backend; an interface service; a persistent data storage; a processor; and a message middleware. Optionally, the business backend is configured to extract and organize data; and dispatch business data to the interface service. Optionally, the interface service is configured to perform data validation on the business data received from the business backend; and transmit the business data to the persistent data storage and the message middleware. Optionally, the persistent data storage is configured to store the business data received from the interface service as a reference for the calculation and analysis; and transmit data to the processor. Optionally, the processor is configured to calculate overstock quantity and determine overstock type. Optionally, the message middleware is configured to receive the business data from the interface service, and receive analysis results from the processor; and transmit the analysis results to interface service. Optionally, the interface service is configured to monitor message queue in the message middleware for updates regarding ongoing processes.
In some embodiments, the apparatus for managing production of one or more products further includes a business database. Optionally, the business backend is configured to receive data from the business database, including information on one or more of production requirements, material inventory, bill of materials data, substitute material, and material priority.
In some embodiments, the processor is further configured to parse tag field, during which tags or identifiers in the data received from the persistent data storage is analyzed.
In some embodiments, the processor is further configured to match processing method, during which an algorithm is selected.
In some embodiments, the processor is further configured to determine which inventory items should be prioritized for processing, redistribution, or optimization; apply a set of rules to decide the next steps for processing the data; and use a linear programming model to optimize decisions about inventory levels and resource allocation to achieve cost-effectiveness or efficiency.
In some embodiments, the message middleware is further configured to perform one or more of queue management, message distribution, routing management, and asynchronous processing.
In some embodiments, the message middleware is further configured to receive data from the interface service; and place the data in a first message queue. Optionally, the processor is further configured to read data from the first message queue managed by the middleware; and transmit the analysis results to the message middleware. Optionally, the message middleware is further configured to place the analysis results in a second message queue. Optionally, the interface service is further configured to obtain the analysis results from the second message queue.
In some embodiments, the apparatus for managing production of one or more products further includes a user interface terminal. Optionally, the user interface terminal is configured to receive calculation requests and display results of overstocked inventory management; and the interface service is further configured to push results to the user interface terminal for display.
In some embodiments, the apparatus for managing production of one or more products further includes a container engine. Optionally, the container engine is configured to perform one or more of container construction, container orchestration, and application management.
In another aspect, the present disclosure provides a computer-program product including a non-transitory tangible computer-readable medium having computer-readable instructions thereon. In some embodiments, the computer-readable instructions being executable by a processor to cause the processor to perform obtaining data on a plurality of materials for making one or more products; identifying a first group of one or more materials from the plurality of materials, a respective material in the first group is a replaceable material with respect to at least one of the one or more product; calculating a maximum consumption of the respective material in the first group in a period using a linear programming model with respect to the at least one of the one or more product; comparing the maximum consumption of the respective material in the first group in the period with an available inventory amount of the respective material in the first group; and determining whether the respective material in the first group is overstocked in the period.
In some embodiments, an objective function for the linear programming model is expressed as:
wherein xi stands for an amount of a respective product that can be produced in the period using the respective material in the first group; di stands for a unit consumption of the respective material in the first group with respect to the respective product; and N is a positive integer, N≥1.
In some embodiments, the objective function is subject to a first constraint expressed as:
Σx
I wherein Ql stands for a demand for the respective product in the period; (Ql, Gj) stands for a set of variables for a j-th group of materials that are substitutable for each other in producing the respective product; 0≤xi≤Ql; and 1≤j≤J, wherein J stands for a total number of groups of materials that are substitutable for each other.
In some embodiments, the objective function is subject to a second constraint expressed as:
wherein Cm stands for an available inventory amount of a m-th material in the first group; Xm stands for a set of variables for the m-th material; and 1≤m≤M, wherein M stands a total number of materials in the first group.
In some embodiments, the computer-readable instructions are executable by a processor to cause the processor to further perform, identifying a second group of one or more materials from the plurality of materials, a respective material in the second group is a non-replaceable material with respect to at least one of the one or more product; comparing a respective theoretical consumption of the respective material in the second group in the period with a respective inventory amount of the respective material in the second group; and determining that whether the respective material in the second group is overstocked in the period.
In some embodiments, the computer-readable instructions are executable by a processor to cause the processor to further perform, upon determination that the respective theoretical consumption of the respective material in the second group in the period is equal to or greater than the respective inventory amount of the respective material in the second group, comprising determining that the respective material in the second group is not overstocked in the period.
In some embodiments, the computer-readable instructions are executable by a processor to cause the processor to further perform, upon determination that the respective theoretical consumption of the respective material in the second group in the period is less than the respective inventory amount of the respective material in the second group, determining whether the respective material in the second group is a replaceable material with respect to another product of the one or more products.
In some embodiments, the computer-readable instructions are executable by a processor to cause the processor to further perform, upon determination that the respective material in the second group is not a replaceable material with respect to any product of the one or more products, determining that the respective material in the second group is overstocked in the period.
In some embodiments, the computer-readable instructions are executable by a processor to cause the processor to further perform, upon determination that the respective material in the second group is a replaceable material with respect to the another product, calculating a maximum consumption of the replaceable material in the period using a linear programming model with respect to the another; and comparing the maximum consumption of the replaceable material in the period with an available inventory amount of the replaceable material, and determining whether the replaceable material is overstocked in the period. Optionally, the available inventory amount of the replaceable material is equal to the respective inventory amount subtracted by the respective theoretical consumption of the replaceable material in the period.
In some embodiments, the computer-readable instructions are executable by a processor to cause the processor to further perform, calculating the respective theoretical consumption of the respective material in the second group in the period. Optionally, the respective theoretical consumption of the respective material in the second group in the period is equal to a sum of values of one or more demands in the period for one or more products requiring the respective material in the second group as a non-replaceable material respectively multiplied by respective unit consumptions of the respective material in the second group with respect to the one or more products.
In some embodiments, the computer-readable instructions are executable by a processor to cause the processor to further perform, extracting data on materials in the first group from the data on the plurality of materials for making one or more products; and updating the data on materials in the first group upon determination an individual material in the first group is also a non-replaceable material with respect to another product of the one or more products.
In some embodiments, an available inventory amount of the individual material for the purpose of calculating a maximum consumption thereof is updated as being equal to an actual inventory amount of the individual material subtracted by a respective theoretical consumption in the period of the individual material as the non-replaceable material with respect to the another product.
In some embodiments, the computer-readable instructions are executable by a processor to cause the processor to further perform, upon determining the respective material in the first group or the respective material in the second group is overstocked in the period, determining an overstock status for the respective material in the first group or the respective material in the second group that is overstocked in the period. In some embodiments, the overstock status is one of a first status, a second status, a third status, or a fourth status. Optionally, in the first status, a demand for an overstocked material is zero in an entirety of the period. Optionally, the period comprises a first sub-period followed by a second sub-period. Optionally, in the second status, the demand for the overstocked material is zero in the second sub-period, and is non-zero in the first sub-period. Optionally, in the third status, the demand for the overstocked material is zero in the first sub-period, and is non-zero in the second sub-period. Optionally, in the fourth status, the demand for the overstocked material is non-zero in the first sub-period, and is non-zero in the second sub-period.
In some embodiments, the computer-readable instructions are executable by a processor to cause the processor to further perform, upon determining the respective material in the first group or the respective material in the second group is overstocked in the period, determining one or more underlying reasons for material overstock; and adjust one or more production parameters in the period for the one or more products to minimize the material overstock.
In some embodiments, the data comprises data on priority level of the one or more materials in the first group. Optionally, a higher priority level for a material in the first group indicates the material is more preferred in producing a corresponding product over one having a lower priority level.
In some embodiments, the computer-readable instructions are executable by a processor to cause the processor to further perform, upon determination the respective material in the first group is overstocked in the period, adjusting the priority level of the respective material in the first group; and producing the one or more products based on adjusted priority level of the one or more materials in the first group.
In some embodiments, the computer-readable instructions are executable by a processor to cause the processor to further perform, upon determining the respective material in the first group or the respective material in the second group is overstocked in the period, adjusting a demand in the period for the one or more products to minimize material overstock; and producing the one or more products based on adjusted demand in the period for the one or more products.
In some embodiments, the computer-readable instructions are executable by a processor to cause the processor to further perform generating one or more user interfaces. In some embodiments, the one or more user interfaces includes a first output interface configured to display an overstock status for the respective material in the first group or the respective material in the second group that is overstocked in the period. The overstock status indicates the reason or reasons for overstocking. In some embodiments, the first output interface is configured to display an identification number for an overstocked material in the period, and the overstock status associated with the overstocked material. In some embodiments, the overstock status is selected from a group consisting of a first status, a second status, a third status, and a fourth status. The first status indicates that a demand for an overstocked material is zero in an entirety of the period. The second status indicates that a demand for an overstocked material is zero in a second sub-period in the period, and is non-zero in a first sub-period in the period, wherein the first sub-period is followed by the second sub-period. The third status indicates that a demand for an overstocked material is zero in a first sub-period in the period, and is non-zero in a second sub-period in the period, wherein the first sub-period is followed by the second sub-period. The fourth status indicates that a demand for an overstocked material is non-zero in a first sub-period in the period, and is non-zero in a second sub-period in the period, wherein the first sub-period is followed by the second sub-period.
In some embodiments, the first output interface is further configured to display at least one of an identification number for a manufacturing site having the overstocked material or a classification of the overstocked material.
In some embodiments, the one or more user interfaces further includes a first input interface configured to receive one or more user inputs for querying a database. In some embodiments, the computer-readable instructions are executable by a processor to cause the processor to further perform receiving, from the first input interface, a user selection of one or more conditions for selecting an overstocked material associated with the one or more conditions; in response to the user selection, and querying the database to determine one or more overstocked materials in the database associated with the one or more conditions. The one or more conditions in some embodiments include an overstock status as discussed above. Optionally, the one or more conditions further include at least one of an identification number for a manufacturing site, an identification number for a material, or a range of dates.
In some embodiments, the one or more user interfaces further includes a second output interface configured to display the one or more overstocked materials as a result of the querying the database. Optionally, the second output interface is further configured to display an identification number for one or more products produced by the one or more overstocked materials. Optionally, the second output interface is further configured to display a demand for an overstocked material for making a respective product, e.g., in a most recent period (including a first sub-period and a second sub-period). The user can analyze the relationship between the demand and the overstock status.
In some embodiments, the one or more user interfaces further includes a second input interface configured to receive one or more user inputs for adjusting the priority level of the respective material in the first group. Based on an adjusted priority level of the respective material in the first group, the computer-readable instructions are executable by a processor to cause the processor to further perform re-determining the respective material in the first group is overstocked in the period. By adjusting the priority level of the respective material (e.g., the overstocked material) in the first group, inventory costs and material overstock can be lowered.
In some embodiments, the one or more user interfaces further includes a third input interface configured to receive one or more user inputs for adjusting the demand in the period for the one or more products. Based on an adjusted demand in the period for the one or more products, the computer-readable instructions are executable by a processor to cause the processor to further perform calculating an adjusted maximum consumption of the respective material in the first group in the period; comparing the adjusted maximum consumption of the respective material in the first group in the period with an available inventory amount of the respective material in the first group; and re-determining whether the respective material in the first group is overstocked in the period. By adjusting the demand in the period for the one or more products, the material overstock may be lowered, the manufacturer can better cater to the market, and the products may be made available faster.
In some embodiments, the one or more user interfaces further includes a third output interface configured to display an estimated surplus amount with respect to an overstock material at a first manufacturing site and an estimated deficit amount with respect the overstock material at a second manufacturing site. Optionally, the third output interface is configured to display a table comprising an identification number of the overstocked material, identification numbers of the manufacturing sites, the estimated surplus amount, and the estimated deficit amount. In some embodiments, the user may allocate the overstock material between manufacturing sites based on several factors including transportation cost, how urgent the overstock material is needed in the second manufacturing site, and so on.
In some embodiments, the computer-readable instructions being executable by a processor to cause the processor to perform extracting and organizing data by a business backend; dispatching, by the business backend, business data to an interface service; performing, by an interface service, data validation on the business data received from the business backend; and transmitting, by the interface service, the business data to a persistent data storage and a message middleware; storing, by the persistent data storage, the business data received from the interface service as a reference for the calculation and analysis; transmitting, by the persistent data storage, data to the processor; calculating overstock quantity and determining overstock type, by the processor; receiving, by the message middleware, the business data from the interface service, and receive analysis results from the processor; transmitting, by the message middleware, the analysis results to interface service; and monitoring, by the interface service, message queue in the message middleware for updates regarding ongoing processes.
In some embodiments, the computer-readable instructions are executable by a processor to cause the processor to further perform receiving, by the business backend, data from a business database, including information on one or more of production requirements, material inventory, bill of materials data, substitute material, and material priority.
In some embodiments, the computer-readable instructions are executable by a processor to cause the processor to further perform parsing tag field, by the processor, during which tags or identifiers in the data received from the persistent data storage is analyzed.
In some embodiments, the computer-readable instructions are executable by a processor to cause the processor to further perform matching processing method, by the processor, during which an algorithm is selected.
In some embodiments, the computer-readable instructions are executable by a processor to cause the processor to further perform determining, by the processor, which inventory items should be prioritized for processing, redistribution, or optimization; applying, by the processor, a set of rules to decide the next steps for processing the data; and using, by the processor, a linear programming model to optimize decisions about inventory levels and resource allocation to achieve cost-effectiveness or efficiency.
In some embodiments, the computer-readable instructions are executable by a processor to cause the processor to further perform performing, by the message middleware, one or more of queue management, message distribution, routing management, and asynchronous processing.
In some embodiments, the computer-readable instructions are executable by a processor to cause the processor to further perform receiving, by the message middleware, data from the interface service; placing, by the message middleware, the data in a first message queue; reading, by the processor, data from the first message queue managed by the middleware; transmitting, by the processor, the analysis results to the message middleware; placing, by the message middleware, the analysis results in a second message queue; and obtaining, by the interface service, the analysis results from the second message queue.
In some embodiments, the computer-readable instructions are executable by a processor to cause the processor to further perform pushing, by the interface service, results to the user interface terminal for display; and receiving, by a user interface terminal, calculation requests and display results of overstocked inventory management.
In some embodiments, the computer-readable instructions are executable by a processor to cause the processor to further perform performing, by a container engine, one or more of container construction, container orchestration, and application management.
In some embodiments, the computer-readable instructions are executable by a processor to cause the processor to further perform
In some embodiments, the computer-readable instructions are executable by a processor to cause the processor to further perform
Various illustrative operations described in connection with the configurations disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. Such operations may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an ASIC or ASSP, an FPGA or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to produce the configuration as disclosed herein. For example, such a configuration may be implemented at least in part as a hard-wired circuit, as a circuit configuration fabricated into an application-specific integrated circuit, or as a firmware program loaded into non-volatile storage or a software program loaded from or into a data storage medium as machine-readable code, such code being instructions executable by an array of logic elements such as a general purpose processor or other digital signal processing unit. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. A software module may reside in a non-transitory storage medium such as RAM (random-access memory), ROM (read-only memory), nonvolatile RAM (NVRAM) such as flash RAM, erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), registers, hard disk, a removable disk, or a CD-ROM; or in any other form of storage medium known in the art. An illustrative storage medium is coupled to the processor such the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a user terminal.
The foregoing description of the embodiments of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form or to exemplary embodiments disclosed. Accordingly, the foregoing description should be regarded as illustrative rather than restrictive. Obviously, many modifications and variations will be apparent to practitioners skilled in this art. The embodiments are chosen and described in order to explain the principles of the invention and its best mode practical application, thereby to enable persons skilled in the art to understand the invention for various embodiments and with various modifications as are suited to the particular use or implementation contemplated. It is intended that the scope of the invention be defined by the claims appended hereto and their equivalents in which all terms are meant in their broadest reasonable sense unless otherwise indicated. Therefore, the term “the invention”, “the present invention” or the like does not necessarily limit the claim scope to a specific embodiment, and the reference to exemplary embodiments of the invention does not imply a limitation on the invention, and no such limitation is to be inferred. The invention is limited only by the spirit and scope of the appended claims. Moreover, these claims may refer to use “first”, “second”, etc. following with noun or element. Such terms should be understood as a nomenclature and should not be construed as giving the limitation on the number of the elements modified by such nomenclature unless specific number has been given. Any advantages and benefits described may not apply to all embodiments of the invention. It should be appreciated that variations may be made in the embodiments described by persons skilled in the art without departing from the scope of the present invention as defined by the following claims. Moreover, no element and component in the present disclosure is intended to be dedicated to the public regardless of whether the element or component is explicitly recited in the following claims.
This application is a continuation-in-part of International Application No. PCT/CN2022/141880, filed Dec. 26, 2022. Each of the forgoing applications is herein incorporated by reference in its entirety for all purposes.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/CN2022/141880 | Dec 2022 | WO |
Child | 18930344 | US |