Xuli WMS Project

0x01

As a huge company which shares about 30% of the world's Christmas craft market, it requires a complicated working system to manage whole process, including manufacturing products, receiving orders and export. Obviously, hiring staff to manage it is a possible way but humans are more likely make fatal mistakes which are unbearable for such a massive factory. Furthermore, if Xuli decided to hire workers, a large unnecessary cost would appear due to expensive employee wages.

When all aspects are considered carefully, the option of being a lights out factory has a better cost performance ratio compared to the previous one.

0x02. A Short Introduction To WMS

The WMS system is a part of lights out factory, the graph shown below is a typical structure for it.

General Structure for Whole Lights-out Factory

A Typical Example

As can be seen, the functions of ERP (Enterprise Resource Planning) and WMS are task allocation and logging. In detail, ERP manages the existing tasks and WMS manages the inventory, the graph shown below describes the relationship between them

Relationship Between ERP and WMS

The relationship between ERP and WMS

During this summer internship, I focused on how the query system of WMS works and tried to use my knowledge to algorithms to contribute some code to it.

0x03. My Task

After having a discussion with the company's software engineer, I decided to try to complete the code of its query system. The system should have these functions (the format of the input should be the ID unless clarified special cases):

  1. Return the information of product.
  2. Based on ERP and MES systems, return the battery storage which is used to supply the ARV drones.
  3. Return the EL (electroluminescent) test history.
  4. According to the ID of batches, return its purchasing, allocating, manufacturing, cost and finish history.
  5. Return the details of a battery purchased.
  6. Based on CRM system, return the theoretical power and actual power of component CTM.
  7. Return the path of the EL test picture.
  8. Return the module process according to the workshop (Note: only required to input the name of the workshop, for example, you only need to type A to inquire instead of WorkshopA).
  9. Return the ID of the batch which had loaded products.
  10. Return the ID of the module which does not exsist.

0x04. Code

After days of work, I completed the last bit of the query system, the partial source code is below (The copyright of the code is owned by Zhejiang TENTAI Information Technology Co., Ltd., the core code is not allowed to be shown).

 

0x05. Summary

The internship in Xuli is a memorable experience because it was my first time to work on industrial programming. Because of the syllabus, I had learnt Free Pascal, C++ (my current favorite programming language) and python but I knew nothing about C#. Thanks to the patience of the software engineer who taught me so that I could get familiar with C# quickly, however, there are still uncountable things waiting me to learn.