springboot food traceability system based on javaweb+mysql (java+springboot+maven+mybatis+vue+mysql)

Springboot food traceability system based on javaweb + mysql (java + springboot + maven + mybatis + vue + mysql)

Operating environment

Java≥8, MySQL≥5.7, Node.js≥10

development tools

Backend: eclipse/idea/myeclipse/sts, etc. can be configured and run

Front-end: WebStorm/VSCode/HBuilderX, etc.

Be applicable

Course design, major assignments, graduation design, project exercises, learning presentations, etc.

Function Description

SpringBoot food traceability system based on javaweb + mysql (java + springboot + maven + mybatis + vue + mysql)

1. Project running environment configuration:

Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX (Webstorm also works) + Eclispe (IntelliJ IDEA, Eclispe, MyEclispe, Sts are all supported).

Project technology:

It is composed of Springboot + Maven + mybatis + Vue, etc., B/S mode + Maven management, etc.

//http://127.0.0.1:11451/breeder/insertOne?id=1 & amp;ename=asd

/**
 * (Breeder) table control layer
 *
 */
@RestController
@RequestMapping("breeder")
public class BreederController {<!-- -->
    /**
     * Service objects
     */
    @Resource
    private BreederService breederService;

    @Resource
    private AnimalService animalService;
    /**
     * Query a single piece of data by primary key
     *
     * @param bid primary key
     * @return single piece of data
     */
    @GetMapping("selectOne")
    public Breeder selectOne(Integer bid) {<!-- -->
        return this.breederService.queryById(bid);
    }
    /**
     * New data
     *
     * @param bname breeder name
 @Resource
    private BreederController breederController;
    @Resource
    private ButcherController butcherController;
    @Resource
    private LicController licController;
    @Resource
    private AnimalController animalController;
    @Resource
    private ProductController productController;
    @Resource
    private AnimalService animalService;
    @Resource
    private ProductService productService;
    @Resource
    private BreederService breederService;
    @Resource
    private LicService licService;
    @Resource
    private OrderTblService orderTblService;
    @Resource
    private ProcessService processService;
    @Resource
    private TypeTblService typeTblService;
    @Resource
    private StockService stockService;
    //Account management
    /**
     * Log in
     *
     * @param username username
     * @param password password
     * @return Result object
     */
    @GetMapping( "login")
    public Result login(String username,String password) {<!-- -->
        BCryptPasswordEncoder bCryptPasswordEncoder=new BCryptPasswordEncoder();
        System.out.println(username);
        System.out.println(password);
        Result result = new Result();
@WebFilter(urlPatterns = "/*",filterName ="RequestFilter")
public class RequestFilter implements Filter {<!-- -->
    private final Logger logger = LoggerFactory.getLogger(this.getClass());
    @Autowired
    EntService entService;
    @Autowired
    AdminAcctService adminAcctService;
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {<!-- -->

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {<!-- -->
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        String token = request. getHeader("token");
        String url = request. getRequestURI();
        Map<String, String[]> extraParams = new HashMap<String, String[]>();
        if(token==null){<!-- -->

        }
        String urls[] = {<!-- -->
                "/ent/login",
                "/ent/register",
 * @param licType
     * @param licState
     * @return single piece of data
     */
    //http://127.0.0.1:11451/lic/updateOne?lid=2 & amp;eid=3
    @GetMapping("updateOne")
    public Lic update(Integer lid, Integer eid, String serNum,Integer licType,Integer licState) {<!-- -->
        Lic lic = new Lic();
        lic. setLid(lid);
        lic.setEid(eid);
        lic.setSerNum(serNum);
        lic.setLicType(licType);
        lic.setLicState(licState);
        return licService.update(lic);
    }
    /**
     * delete data
     *
     * @param lid primary key
     * @return Boolean value of whether the data was deleted
     */
    //http://127.0.0.1:11451/lic/deleteOne?lid=2
    @GetMapping("deleteOne")
    public boolean deleteById(Integer lid) {<!-- -->
        return licService.deleteById(lid);
    }

}

/**
 * (Process) table control layer
 *
 */
@RestController
@RequestMapping("process")
public class ProcessController {<!-- -->
@SpringBootTest
public class OTCtest {<!-- -->
    @Autowired
    private OrderTblService orderTblService;
    @Autowired
    private AnimalController AC;
    @Autowired
    private BreederController BC;
    @Autowired
    private AdminAcctController adminAcctController;
    @Autowired
    private EntController entController;
    @Autowired
    private ProductController PC;
    @Autowired
    private LicService LS;
    @Autowired
    private EntService ES;
    @Autowired
    private AnimalService AS;
    @Autowired
    private BreederService BS;
    @Autowired
    private ButcherService BCS;
    @Autowired
    private ProductService PS;
    @Autowired
    private OrderTblController OTC;
    @Autowired
    private HandleController handleController;
    @Autowired
    private TypeTblService TTC;
    @Autowired
    private ProcessService processService;
    @Test
    void fn()
    {<!-- -->
        /**
         * HandleController test

        System.out.println(handleController.SelectG(1,0));//msg='Query livestock information successfully'
        System.out.println(handleController.SelectG(11,3));//msg='Wrong product id or product type'
        System.out.println(handleController.Chain_Form(1,0));//msg='Chain synthesis successful'
        System.out.println(handleController.Chain_Form(11,0));//msg='The livestock information record is incorrect'
        System.out.println(handleController.Chain_Form(1,2));//msg='Input type error'
 chainModel.setTime(orderTbl.getConfirmTime());
            chain. add(chainModel);
            if(!it. hasNext())
            {<!-- -->
                ChainModel temp=new ChainModel(chainModel);
                temp.setEid(orderTbl.getInEid());
                EntModel entModel2=entService.queryModelById(temp.getEid());
                temp.setEtype(entModel2.getEtype());
                temp.setEname(entModel2.getEname());
                if(gtype==0)//whole
                {<!-- -->
                    AnimalModel animalModel=animalService.queryModelById(gid);
                    result. setInfo(animalModel);
                }
                else if(gtype==1)//cutting
                {<!-- -->
                    ProductModel productModel=productService.queryModelById(gid);
                    AnimalModel animalModel=animalService.queryModelById((processService.queryByPId(productModel.getPid())).getAid());
                    PAModel paModel = new PAModel();
                    paModel.setAnimalModel(animalModel);
                    paModel.setProductModel(productModel);
                    result.setInfo(paModel);
                }
                chain. add(temp);
            }
        }
        result. setDetail(chain);
        result.setMsg("The chain synthesis is successful");
        result. setSuccess(true);
        return result;
    }

    /**
     * Query livestock operator data
     *
     * @param bid operator id
     * @return Result object
     */
    public Result SelectButcher(Integer bid){<!-- -->
        Result result = new Result();
        result. setSuccess(false);
        Butcher butcher=butcherController.selectOne(bid);
        if(butcher==null){<!-- -->
//http://127.0.0.1:11451/animal/selectOne?id=1

/**
 * (Animal) table control layer
 *
 */
@RestController
@RequestMapping("animal")
public class AnimalController {<!-- -->
    /**
     * Service object
     */
    @Resource
    private AnimalService animalService;

    /**
     * Query a single piece of data by primary key
     *
     * @param aid primary key
     * @return single data
     */
    @GetMapping("selectOne")
    public Animal selectOne(Integer aid) {<!-- -->
        return this.animalService.queryById(aid);
    }
    /**
     * New record
     *
     * @param time time of birth
     * @param type type
     * @param breed the breed
 */
    @GetMapping("butcher/list")
    @Transactional(readOnly = true)
    public Result SelectAllButcher(Integer eid){<!-- -->
        System.out.println(eid);
        Result result = new Result();
        result. setSuccess(false);
        if(entService.queryById(eid)==null) {<!-- -->
            result.setMsg("The company does not exist");
            result. setDetail(null);
            return result;
        }
        List<ButcherModel> list=butcherService.queryModelByEId(eid);
        if(list.isEmpty()){<!-- -->
            result.setMsg("There is no operator information under this enterprise");
            result. setDetail(null);
            return result;
        }
        result. setDetail(list);
        result.setMsg("Querying operator information successful");
        result. setSuccess(true);
        return result;
    }
    /**
     * Query shelf data
     *
     * @param eid breeder id
     * @return Result object
     */
    @GetMapping("stock/list")
    public Result SelectAllStock(Integer eid){<!-- -->
        System.out.println(eid);
        Result result=new Result();
        result.setSuccess(false);
        if(entService.queryById(eid)==null) {<!-- -->
            result.setMsg("The enterprise does not exist");
            result. setDetail(null);
            return result;
        }
        List<Stock> list=stockService.queryAllByEId(eid);
        if(list.isEmpty()){<!-- -->
            result.setMsg("There is no shelf information under this enterprise");
            result. setDetail(null);
            return result;
        }
        result. setDetail(list);
        result.setMsg("Querying shelf record information successfully");
        result. setSuccess(true);
        return result;
 return processService.insert(process);
    }

}

/**
 * (Butcher) table control layer
 *
 */
@RestController
@RequestMapping("butcher")
public class ButcherController {<!-- -->
    /**
     * Service object
     */
    @Resource
    private ButcherService butcherService;
    /**
     * Added livestock operator data
     *
     * @param bname livestock operator name
     * @param eid enterprise id
     * @return single data
     */
    //http://127.0.0.1:11451/butcher/insertOne?bname=lk5j & amp;eid=1
    @GetMapping("insertOne")
    public Butcher insert(String bname, Integer eid) {<!-- -->
        Butcher butcher=new Butcher();
        butcher.setBname(bname);
        butcher.setEid(eid);
Integer id;

        if(gtype==0)//Whole pig
        {<!-- -->
            if(animalService.queryById(gid)==null){<!-- -->
                result.setMsg("Wrong product id or wrong product type");
                return result;
            }
            id=animalService.queryById(gid).getLastOid();
            if(orderTblService.queryById(id)==null){<!-- -->
                result.setMsg("There is an error in the livestock information record");
                return result;
            }
        }
        else if(gtype==1)//after cutting
        {<!-- -->
            if(productService.queryById(gid)==null){<!-- -->
                result.setMsg("Wrong product id or wrong product type");
                return result;
            }
            id=productService.queryById(gid).getLastOid();
            if(orderTblService.queryById(id)==null){<!-- -->
                result.setMsg("The product information record is wrong");
                return result;
            }
        }
        else{<!-- -->
            result.setMsg("Input type error");
            return result;
        }
        OrderTbl tempOT=this.orderTblService.queryById(id);
        List<OrderTbl> List_OT=new ArrayList<OrderTbl>();
        List_OT.add(tempOT);
        while(tempOT. getLastOid()!=null)
        {<!-- -->
            tempOT=this.orderTblService.queryById(tempOT.getLastOid());
            List_OT.add(0,tempOT);
        }
        Iterator<OrderTbl> iterator= List_OT. listIterator();
        while(iterator. hasNext())
        {<!-- -->
            System.out.println(iterator.next().getOid());
        }
        List<ChainModel> chain=new ArrayList<ChainModel>();
        Iterator it=List_OT.listIterator();
        while (it. hasNext())
 /**
     * Log in
     *
     * @param username username
     * @param password password
     * @return Result object
     */
    @GetMapping( "login")
    public Result login(String username, String password) {<!-- -->
        BCryptPasswordEncoder bCryptPasswordEncoder=new BCryptPasswordEncoder();
        Result result = new Result();
        result. setSuccess(false);
        result.setDetail(null);
        if (username==null||username=="")
        {<!-- -->
            result.setMsg("User name cannot be empty");
            System.out.println("User name cannot be empty");
            return result;
        }
        if(password==""||password==null)
        {<!-- -->
            result.setMsg("The password cannot be empty");
            System.out.println("The password cannot be empty");
            return result;

        }
        AdminAcct temp=new AdminAcct();
        temp=this.adminAcctService.queryByUserName(username);
        if(temp==null) {<!-- -->
            System.out.println("Username does not exist");
            result.setMsg("Username does not exist");
            return result;
        }
        System.out.println(bCryptPasswordEncoder.encode(password));
        boolean flag=bCryptPasswordEncoder.matches(password,temp.getPwd());
        if(flag)
        {<!-- -->
            temp.setPwd("");
            System.out.println("Successful login");
            result.setMsg("Login successful");
            result. setSuccess(true);
            if(temp. getToken()==null)
            {<!-- -->
                String uuid = UUID.randomUUID().toString().replaceAll("-","");
                temp.setToken(uuid);
                this.adminAcctService.update(temp);
            }
            result.setDetail(temp);
            return result;
        }
 return result;
    }
    /**
     * Query product data
     *
     * @param pid product id
     * @return Result object
     */
    public Result SelectProduct(Integer pid){<!-- -->
        Result result = new Result();
        result. setSuccess(false);
        ProductModel product=productService.queryModelById(pid);
        if(product==null){<!-- -->
            result.setMsg("The product does not exist");
            result.setDetail(null);
            return result;
        }
        result. setDetail(product);
        result.setMsg("Query product information successfully");
        result. setSuccess(true);
        return result;
    }

    /**
     * Basic Information
     * @param gid cargo id
     * @param gtype cargo type
     * @return Result object
     */
    @Transactional(readOnly=true)
    @GetMapping("ginfo")
    public Result SelectG(Integer gid,Integer gtype){<!-- -->
        if(gtype==0)//integer
        {<!-- -->
            return SelectAnimal(gid);
        }
        else if(gtype==1)//cutting
        {<!-- -->
            return SelectProduct(gid);
        }
        else {<!-- -->
            Result result = new Result();
            result.setMsg("Wrong product id or product type");
 return result;
        }
        result. setDetail(product);
        result.setMsg("Query livestock information successfully");
        result. setSuccess(true);
        return result;
    }
    /**
     * Query livestock operator data
     *
     * @param bid operator id
     * @return Result object
     */
    public Result SelectButcher(Integer bid){<!-- -->
        Result result = new Result();
        result. setSuccess(false);
        Butcher butcher=butcherController.selectOne(bid);
        if(butcher==null){<!-- -->
            result.setMsg("Livestock does not exist");
            result.setDetail(null);
            return result;
        }
        result. setDetail(butcher);
        result.setMsg("Query livestock information successfully");
        result. setSuccess(true);
        return result;
    }

    /**
     * Update livestock data
     * @param id primary key
     * @param time time of birth
     * @param type type
     * @param breed breed
     * @param bid breeder id
     * @param lastoid last order number
     * @param state time of birth
     * @return single piece of data
     */
    public Result UpdateAnimal(Integer id,String time, Integer type, Integer breed,Integer bid,Integer lastoid,short state){<!-- -->
        Result result = new Result();
        result. setSuccess(false);
        if(animalService. queryById(id)==null){<!-- -->
            result.setMsg("Livestock id error");
            return result;
        }
        Animal temp = new Animal();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        try {<!-- -->
            format. setLenient(false);
            format.parse(time);
        } catch (ParseException e) {<!-- -->
            System.out.println("Time input format error");
 if (!matcher.matches()) {<!-- -->
                result.setMsg("Email format error");
                System.out.println("Mailbox format error");
                return result;
            }
        }
        Ent ent=new Ent();
        ent.setEid(eid);
        ent.setEtype(etype);
        ent.setTel(tele);
        ent.setEname(ename);
        result. setSuccess(true);
        result.setMsg("Modified successfully");
        ent=entService.update(ent);
        ent.setPwd("");
        result.setDetail(ent);
        return result;
    }
    /**
     *Reset corporate account token
     * @param eid enterprise id
     * @return
     */
    @PostMapping("resetEntToken")
    public Result ResetEntToken(Integer eid){<!-- -->
        Result result = new Result();
        result. setSuccess(false);
        if(eid==null){<!-- -->
            result.setMsg("eid cannot be empty");
            return result;
        }
        if(entService.queryById(eid)==null){<!-- -->
            result.setMsg("eid error");
            return result;
        }
        Ent ent=entService.queryById(eid);
        String token=UUID.randomUUID().toString().replaceAll("-","");
        ent.setToken(token);
        ent=entService.update(ent);
        result.setMsg("Reset token successfully");
        result. setSuccess(true);
        result. setDetail(ent);
        return result;
 return result;
    }
    /**
     * Update breeder data
     * @param bid breeder id
     * @param bname breeder name
     * @param eid enterprise id
     * @return single data
     */
    public Result UpdateBreeder(Integer bid,String bname,Integer eid){<!-- -->
        Result result=new Result();
        result.setSuccess(false);
        if (breederService.queryById(bid)==null){<!-- -->
            result.setMsg("Wrong breeder id");
            return result;
        }
        if (entService.queryById(eid)==null){<!-- -->
            result.setMsg("Enterprise ID error");
            return result;
        }
        Breeder breeder=new Breeder();
        breeder.setBid(bid);
        breeder.setEid(eid);
        breeder.setBname(bname);
        result.setDetail(breederService.update(breeder));
        result. setSuccess(true);
        result.setMsg("Update breeder information");
        return result;
    }
    /**
     * Updated livestock operator data
     * @param bid livestock operator id
     * @param bname livestock operator name
     * @param eid enterprise id
     * @return Result object
     */
    public Result UpdateButcher(Integer bid, String bname, Integer eid){<!-- -->
        Result result=new Result();
        result.setSuccess(false);
        if(butcherService.queryById(bid)==null){<!-- -->
 if(url.startsWith("/admin")) {<!-- -->
                AdminAcct adminAcct=adminAcctService.queryByToken(token);
                if(adminAcct==null){<!-- -->
                    flag=true;
                }
                else {<!-- -->
                    System.out.println("id:" + String.valueOf(adminAcct.getId()));
                }
            }
            else if(url.startsWith("/ent")){<!-- -->
                Ent ent=entService.queryByToken(token);
                if(ent==null){<!-- -->
                    flag=true;
                }
                else {<!-- -->
                System.out.println("eid:" + String.valueOf(ent.getEid())); }
            }

            if (flag){<!-- -->
                response.setCharacterEncoding("UTF-8");
                response.setContentType("application/json; charset=utf-8");
                PrintWriter out = null;
                try{<!-- -->
                    Result res = new Result();
                    res.setMsg("Token verification failed, login failed");
                    res. setSuccess(false);
                    String json = JSON.toJSONString(res);
                    response.setContentType("application/json");
                    out = response.getWriter();
                    // Return json information to the front end
                    out.append(json);
                    out. flush();
                    return false;
                } catch (Exception e){<!-- -->
                    e.printStackTrace();
                    response. sendError(500);
                    return false;
                }
            }
            return true;
        }
        return true;
    }

}

}

/**
 * (OrderTbl) table control layer
 *
 */
@RestController
@RequestMapping("orderTbl")
public class OrderTblController {<!-- -->
    /**
     * Service object
     */
    @Resource
    private OrderTblService orderTblService;
    @Resource
    private AnimalService animalService;
    @Resource
    private ProductService productService;
    @Resource
    private EntController entController;
    @Resource
    private EntService entService;
    /**
     * Query a single piece of data by primary key
     *
     * @param oid primary key
     * @return single data
     */
    @GetMapping("selectOne")
    public OrderTbl selectOne(Integer oid) {<!-- -->
        return this.orderTblService.queryById(oid);
 //EC.register("clearlovetu","1145141",102,"1919810","Slaughterhouse");
        /**Enterprise account registration and login
         *
         System.out.println(EC.register("clearloveyangzhi","1145141",1,"1919810","Pig Factory"));
        Result result= EC.login("clearloveyangzhi","1145141");
        result. getDetail();
        System.out.println(result);
         */
         /**status code
        System.out.println(StateCode.Login_Fail.getState());
        System.out.println(StateCode.Login_Fail.getCodenum());
        System.out.println(StateCode.Login_Fail.toString());
        */
         /**encryption
        String temp=bCryptPasswordEncoder.encode("114514");
        System.out.println(temp);
        System.out.println(bCryptPasswordEncoder.matches("114514",temp));
         */
        /**Generate list by enterprise number
        Iterator<Breeder> it=BC.selectAllByEid(1).listIterator();
        while (it. hasNext())
        {
            System.out.println(it.next());
        }*/
    }

}

@SpringBootTest
public class OTCtest {<!-- -->

Please add a picture description
Please add an image description
Please add an image description
Please add an image description
Please add a picture description
Please add a picture description