目录
大家好呀,我是一个混迹在java圈的码农。今天要和大家分享的是 一款基于SpringBoot+Vue的库存试管理系统,项目源码请点击文章末尾联系我哦~目前有各类成品 毕设 JavaWeb SSM SpringBoot等等项目框架,源码丰富,欢迎咨询。
一、项目介绍
当下,如果还依然使用纸质文档来记录并且管理相关信息,可能会出现很多问题,比如原始文件的丢失,因为采用纸质文档,很容易受潮或者怕火,不容易备份,需要花费大量的人员和资金来管理用纸质文档存储的信息,最重要的是数据出现问题寻找起来很麻烦,并且修改也困难,如果还这样操作会造成很大的资源浪费和经济损失。
库存管理系统运用的工具包括IDEA,Tomcat,Spring Boot框架以及MySQL等。该系统可以实现对公告信息,员工,供应商类型,供应商信用等级,商品类型,公告类型,供应商,商品,商品预定,采购入库,采购入库详情,客户等信息进行管理。
库存管理系统就是采用目前最流行的互联网应用思维,让信息处理变得更加高效,并且处理结果更加的符合预期,只要是关于数据管理方面,不管是添加还是修改,以及数据维护甚至是数据迁移,都可以达到更快更安全的要求。
二、开发环境
开发系统:Windows
JDK版本:Java JDK1.8(推荐)
开发工具:IDEA/MyEclipse(推荐IDEA)
数据库版本: mysql8.0(推荐)
数据库可视化工具: navicat
服务器:SpringBoot自带 apache tomcat
框架:springboot,vue
三、功能介绍
供应商管理功能。供应商信息有供应商类型,供应商信用等级名称,供应商名称等信息,管理员需要新增供应商,发现登记错误数据的供应商信息可以使用修改功能及时更改,需要删除的供应商信息可以使用删除功能删除。
商品管理功能。商品信息有商品类型,存储仓库,单位,单价,供应商名称等信息,管理员新增商品信息,使用修改功能对有错误数据的商品信息进行更改,需要删除的商品信息可以使用删除功能删除。
商品统计报表功能。管理员通过柱形图可以查看各个商品的库存数据,管理员可以切换柱形图统计报表为折线图,可以下载商品库存的统计报表图片。
商品预定管理功能。商品预定信息有预定数量,客户姓名,员工姓名,预定的商品,预定时间等信息。商品预定信息可以让管理员新增,需要删除的商品预定信息可以使用删除功能删除。
采购入库管理功能。采购入库信息包括采购入库名称,采购入库流水号等信息,采购入库信息也允许管理员新增,需要删除的采购入库信息也能够使用删除功能删除。管理员查询采购入库信息需要提供的查询条件是采购入库名称。
公告信息管理功能。公告信息有公告类型,公告图片等信息,公告信息允许管理员新增,发现有错误数据的公告信息可以使用修改功能更正,需要删除的公告也能使用删除功能删除。
客户管理功能。客户信息有客户姓名,客户联系方式,客户性别等信息,管理员也能新增客户信息,客户信息存在数据登记错误的情况,管理员可以使用修改功能更改,需要删除的客户信息可以使用删除功能删除。对于客户信息的查询,需要管理员提供客户姓名,提供客户联系方式等。
商品管理功能。员工查看商品存储仓库,查看商品库存,查看商品单价等信息,员工查询商品有很多种方式,可以根据商品名字,商品类型,存储仓库,单价,供应商名称等信息来查询商品。
等...
四、核心代码
/**
* 供应商
* 后端接口
* @author
* @email
*/
@RestController
@Controller
@RequestMapping("/gongyinghsang")
public class GongyinghsangController {
private static final Logger logger = LoggerFactory.getLogger(GongyinghsangController.class);
@Autowired
private GongyinghsangService gongyinghsangService;
@Autowired
private TokenService tokenService;
@Autowired
private DictionaryService dictionaryService;
//级联表service
@Autowired
private YonghuService yonghuService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
String role = String.valueOf(request.getSession().getAttribute("role"));
if(false)
return R.error(511,"永不会进入");
else if("员工".equals(role))
params.put("yonghuId",request.getSession().getAttribute("userId"));
if(params.get("orderBy")==null || params.get("orderBy")==""){
params.put("orderBy","id");
}
PageUtils page = gongyinghsangService.queryPage(params);
//字典表数据转换
List<GongyinghsangView> list =(List<GongyinghsangView>)page.getList();
for(GongyinghsangView c:list){
//修改对应字典表字段
dictionaryService.dictionaryConvert(c, request);
}
return R.ok().put("data", page);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id, HttpServletRequest request){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
GongyinghsangEntity gongyinghsang = gongyinghsangService.selectById(id);
if(gongyinghsang !=null){
//entity转view
GongyinghsangView view = new GongyinghsangView();
BeanUtils.copyProperties( gongyinghsang , view );//把实体数据重构到view中
//修改对应字典表字段
dictionaryService.dictionaryConvert(view, request);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody GongyinghsangEntity gongyinghsang, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,gongyinghsang:{}",this.getClass().getName(),gongyinghsang.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
if(false)
return R.error(511,"永远不会进入");
Wrapper<GongyinghsangEntity> queryWrapper = new EntityWrapper<GongyinghsangEntity>()
.eq("gongyinghsang_name", gongyinghsang.getGongyinghsangName())
.eq("gongyinghsang_types", gongyinghsang.getGongyinghsangTypes())
.eq("gongyinghsang_xinyong_types", gongyinghsang.getGongyinghsangXinyongTypes())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
GongyinghsangEntity gongyinghsangEntity = gongyinghsangService.selectOne(queryWrapper);
if(gongyinghsangEntity==null){
gongyinghsang.setInsertTime(new Date());
gongyinghsang.setCreateTime(new Date());
gongyinghsangService.insert(gongyinghsang);
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
/**
* 后端修改
*/
@RequestMapping("/update")
public R update(@RequestBody GongyinghsangEntity gongyinghsang, HttpServletRequest request){
logger.debug("update方法:,,Controller:{},,gongyinghsang:{}",this.getClass().getName(),gongyinghsang.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
// if(false)
// return R.error(511,"永远不会进入");
//根据字段查询是否有相同数据
Wrapper<GongyinghsangEntity> queryWrapper = new EntityWrapper<GongyinghsangEntity>()
.notIn("id",gongyinghsang.getId())
.andNew()
.eq("gongyinghsang_name", gongyinghsang.getGongyinghsangName())
.eq("gongyinghsang_types", gongyinghsang.getGongyinghsangTypes())
.eq("gongyinghsang_xinyong_types", gongyinghsang.getGongyinghsangXinyongTypes())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
GongyinghsangEntity gongyinghsangEntity = gongyinghsangService.selectOne(queryWrapper);
if(gongyinghsangEntity==null){
gongyinghsangService.updateById(gongyinghsang);//根据id更新
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Integer[] ids){
logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
gongyinghsangService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
五、效果图
六、源码获取:
同系统在主页搜索资源可下载~
标签:Vue,return,SpringBoot,删除,request,信息,商品,源码,gongyinghsang From: https://blog.csdn.net/m0_48205251/article/details/143092592