Java 实战项目之精美物流管理系统的实现流程

 更新时间:2021年11月17日 09:12:21   作者:OldWinePot  
读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用java+SpringBoot+Vue+maven+Mysql实现一个精美的物流管理系统,大家可以在过程中查缺补漏,提升水平

一、项目简述

本系统功能包括:
数据统计、收件录入、发件录入、到件录入、派件录入、问题件录入、退件录入、留仓录入、装车录入、发车录入、到车录入、卸车录入、运单录入、运单编辑、运单查询、数据导入、签收录入、签收查询、快件跟踪、自定义跟踪、问题件跟踪、预付款管理、财务报表明细、现金账单、月结账单、代收货款、业务员提成、订单分配、订单查询、物品名维护、入库、出库、库存、物料、角色管理、用户管理、系统设置、员工维护、客户维护、网点维护、报价维护、其他维护、收发记录、到件预报。

二、项目运行

环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。

项目技术: Springboot + Maven + mybatis+ Vue 等等组成,B/S模式 + Maven管理等等。

运输点管理控制层代码:

/**
 * 运输点管理控制层
 */
 
@RequestMapping("/admin/transport")
@Controller
public class TransportController {
 
    @Autowired
    private UserService userService;
    @Autowired
    private RoleService roleService;
    @Autowired
    private OperaterLogService operaterLogService;
    
    /**
     * 运输点列表页面
     * @param model
     * @param user
     * @param pageBean
     * @return
     */
    @RequestMapping(value="/list")
    public String list(Model model, User user, PageBean<User> pageBean){
        model.addAttribute("title", "运输点列表");
        model.addAttribute("username", user.getUsername());
        model.addAttribute("pageBean", userService.findList(pageBean,user.getUsername(), UserRoleTypeEnum.TRANSPORT));
        return "admin/transport/list";
    }
 
    /**
     * 新增运输点页面
     * @param model
     * @return
     */
    @RequestMapping(value="/add",method= RequestMethod.GET)
    public String add(Model model){
        model.addAttribute("roles", roleService.findAllByRoleType(UserRoleTypeEnum.TRANSPORT));
        return "admin/transport/add";
    }
 
    /**
     * 运输点添加表单提交处理
     * @param user
     * @return
     */
    @RequestMapping(value="/add",method= RequestMethod.POST)
    @ResponseBody
    public Result<Boolean> add(User user){
        //用统一验证实体方法验证是否合法
        CodeMsg validate = ValidateEntityUtil.validate(user);
        if(validate.getCode() != CodeMsg.SUCCESS.getCode()){
            return Result.error(validate);
        }
        if(user.getAddress() == null){
            return Result.error(CodeMsg.ADDRESS_ERROR);
        }
        if(user.getRole() == null || user.getRole().getId() == null){
            return Result.error(CodeMsg.TRANSPORT_USER_ROLE_EMPTY);
        }
        //判断运输点名是否存在
        if(userService.isExistUsername(user.getUsername(), 0L)){
            return Result.error(CodeMsg.TRANSPORT_USERNAME_EXIST);
        }
        user.setUserType(UserRoleTypeEnum.TRANSPORT);
        //到这说明一切符合条件,进行数据库新增
        if(userService.save(user) == null){
            return Result.error(CodeMsg.TRANSPORT_USE_ADD_ERROR);
        }
        operaterLogService.add("添加运输点,运输点名:" + user.getUsername());
        return Result.success(true);
    }
 
    /**
     * 运输点编辑页面
     * @param model
     * @return
     */
    @RequestMapping(value="/edit",method= RequestMethod.GET)
    public String edit(Model model, @RequestParam(name="id")Long id){
        model.addAttribute("roles", roleService.findAllByRoleType(UserRoleTypeEnum.TRANSPORT));
        model.addAttribute("user", userService.find(id));
        return "admin/transport/edit";
    }
 
    /**
     * 编辑运输点信息表单提交处理
     * @param user
     * @return
     */
    @RequestMapping(value="/edit",method= RequestMethod.POST)
    @ResponseBody
    public Result<Boolean> edit(User user){
        //用统一验证实体方法验证是否合法
        CodeMsg validate = ValidateEntityUtil.validate(user);
        if(validate.getCode() != CodeMsg.SUCCESS.getCode()){
            return Result.error(validate);
        }
        if(user.getAddress() == null){
            return Result.error(CodeMsg.ADDRESS_ERROR);
        }
        if(user.getRole() == null || user.getRole().getId() == null){
            return Result.error(CodeMsg.TRANSPORT_USER_ROLE_EMPTY);
        }
        if(user.getId() == null || user.getId().longValue() <= 0){
            return Result.error(CodeMsg.TRANSPORT_USE_NO_EXIST);
        }
        if(userService.isExistUsername(user.getUsername(), user.getId())){
            return Result.error(CodeMsg.TRANSPORT_USERNAME_EXIST);
        }
        //到这说明一切符合条件,进行数据库保存
        User findById = userService.find(user.getId());
        //讲提交的运输点信息指定字段复制到已存在的user对象中,该方法会覆盖新字段内容
        BeanUtils.copyProperties(user, findById, "id","createTime","updateTime","userType");
        if(userService.save(findById) == null){
            return Result.error(CodeMsg.TRANSPORT_USE_EDIT_ERROR);
        }
        operaterLogService.add("编辑运输点,运输点名:" + user.getUsername());
        return Result.success(true);
    }
 
    /**
     * 删除运输点
     * @param id
     * @return
     */
    @RequestMapping(value="/delete",method= RequestMethod.POST)
    @ResponseBody
    public Result<Boolean> delete(@RequestParam(name="id")Long id){
        try {
            userService.delete(id);
        } catch (Exception e) {
            return Result.error(CodeMsg.TRANSPORT_USE_DELETE_ERROR);
        }
        operaterLogService.add("删除运输点,运输点ID:" + id);
        return Result.success(true);
    }
    
 
 
}

到此这篇关于Java 实战项目之精美物流管理系统的实现流程的文章就介绍到这了,更多相关Java 物流管理系统内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MyBatis之关于动态SQL解读

    MyBatis之关于动态SQL解读

    这篇文章主要介绍了MyBatis之关于动态SQL解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Java实现石头剪刀布游戏

    Java实现石头剪刀布游戏

    这篇文章主要为大家详细介绍了Java实现石头剪刀布游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-10-10
  • 使用JAR包中MANIFEST.MF的注意事项

    使用JAR包中MANIFEST.MF的注意事项

    这篇文章主要介绍了使用JAR包中MANIFEST.MF的注意事项,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 浅谈java中的TreeMap 排序与TreeSet 排序

    浅谈java中的TreeMap 排序与TreeSet 排序

    下面小编就为大家带来一篇浅谈java中的TreeMap 排序与TreeSet 排序。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • Spring Boot结合IDEA自带Maven插件如何快速切换profile

    Spring Boot结合IDEA自带Maven插件如何快速切换profile

    IDEA是目前 Java 开发者中使用最多的开发工具,它有着简约的设计风格,强大的集成工具,便利的快捷键,这篇文章主要介绍了Spring Boot结合IDEA自带Maven插件快速切换profile,需要的朋友可以参考下
    2023-03-03
  • Java常用测试工具大全

    Java常用测试工具大全

    这篇文章主要为大家详细介绍了Java常用测试工具,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • java编程调用存储过程中得到新增记录id号的实现方法

    java编程调用存储过程中得到新增记录id号的实现方法

    这篇文章主要介绍了java编程调用存储过程中得到新增记录id号的实现方法,涉及Java数据库操作中存储过程的相关使用技巧,需要的朋友可以参考下
    2015-10-10
  • Mybatis-Plus 通用CRUD的详细操作

    Mybatis-Plus 通用CRUD的详细操作

    这篇文章主要介绍了Mybatis-Plus 通用CRUD的详细操作,包括插入操作,更新操作及删除操作等,针对每种操作通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2021-09-09
  • Java使用Iterator迭代器遍历集合数据的方法小结

    Java使用Iterator迭代器遍历集合数据的方法小结

    这篇文章主要介绍了Java使用Iterator迭代器遍历集合数据的方法,结合实例形式分析了java迭代器进行集合数据遍历的常见操作技巧,需要的朋友可以参考下
    2019-11-11
  • Java毕业设计实战之教室预订管理系统的实现

    Java毕业设计实战之教室预订管理系统的实现

    这是一个使用了java+SpringBoot+Maven+Vue+mysql开发的教室预订管理系统,是一个毕业设计的实战练习,具有教室预订管理该有的所有功能,感兴趣的朋友快来看看吧
    2022-02-02

最新评论