系统介绍:
随着商业竞争的日益激烈,超市行业面临着巨大的运营和管理挑战。为了提升运营效率、优化库存管理以及更好地服务顾客,开发一套高效、稳定的仓库管理系统显得尤为重要。该系统不仅需要处理大量的商品信息和销售数据,还要能够实时跟踪库存变化,同时为顾客提供个性化的购物体验。在此背景下,我们设计了一套基于Java语言和SpringBoot框架的仓库管理系统,以满足现代超市运营的多方面需求。
本系统采用Java语言作为主要开发工具,利用其跨平台性和强大的面向对象编程能力,确保系统的稳定性和可扩展性。为了加速开发过程并提升系统性能,我们选择了SpringBoot框架,它简化了Spring应用的初始搭建以及开发过程,使得开发人员可以更加专注于业务逻辑的实现。同时,我们选用MySQL数据库作为数据存储和处理的核心,利用其高效的数据存储和检索能力,支撑起整个超市管理系统的数据需求。通过这套技术组合,我们不仅实现了商品信息、销售数据和顾客信息的有效管理,还通过实时监控库存变化,优化了库存管理流程。此外,系统还支持会员积分计划,通过数据分析和个性化服务,提升了顾客满意度和超市的运营效率。
总的来说,这套基于Java、SpringBoot和MySQL的仓库管理系统,为超市行业的数字化转型提供了有力的技术支持。
功能截图:
代码实现:
@RestController
@RequestMapping(value = "/cangkuyuanxinxi")
public class CangkuyuanxinxiController {
@Resource
private CangkuyuanxinxiService cangkuyuanxinxiService;
@PostMapping
public Result<Cangkuyuanxinxi> add(@RequestBody CangkuyuanxinxiVo cangkuyuanxinxi) {
//yoxuxiaxnci
cangkuyuanxinxiService.add(cangkuyuanxinxi);
return Result.success(cangkuyuanxinxi);
}
@GetMapping("/getExcel")
public void getExcel(HttpServletResponse response) throws IOException {
// 1. 生成excel
Map<String, Object> row = new LinkedHashMap<>();
row.put("yonghuming","用户名");
row.put("xingming","姓名");
row.put("xingbie","性别");
row.put("zhiwei","职位");
row.put("beizhu","备注");
row.put("addtime","添加时间");
List<Map<String, Object>> list = CollUtil.newArrayList(row);
List<Map<String, Object>> daochuexcellist = cangkuyuanxinxiService.daochuexcel();
for (Map<String, Object> map : daochuexcellist) {
list.add(map);
}
// 2. 写excel
ExcelWriter writer = ExcelUtil.getWriter(true);
writer.write(list, true);
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
response.setHeader("Content-Disposition","attachment;filename=chaoba.xlsx");
ServletOutputStream out = response.getOutputStream();
writer.flush(out, true);
writer.close();
IoUtil.close(System.out);
}
@PostMapping("/deleteList")
public Result<Cangkuyuanxinxi> deleteList(@RequestBody CangkuyuanxinxiVo cangkuyuanxinxi) {
cangkuyuanxinxiService.deleteList(cangkuyuanxinxi.getList());
return Result.success();
}
@DeleteMapping("/{id}")
public Result delete(@PathVariable Long id) {
cangkuyuanxinxiService.delete(id);
return Result.success();
}
@PutMapping
public Result update(@RequestBody CangkuyuanxinxiVo cangkuyuanxinxi) {
cangkuyuanxinxiService.update(cangkuyuanxinxi);
return Result.success();
}
@GetMapping("/{id}")
public Result<Cangkuyuanxinxi> detail(@PathVariable Integer id) {
Cangkuyuanxinxi cangkuyuanxinxi = cangkuyuanxinxiService.findById(id);
return Result.success(cangkuyuanxinxi);
}
@GetMapping
public Result<List<Cangkuyuanxinxi>> all() {
return Result.success(cangkuyuanxinxiService.list());
}
@PostMapping("/page")
public Result<CangkuyuanxinxiVo> page(@RequestBody CangkuyuanxinxiVo cangkuyuanxinxiVo) {
return Result.success(cangkuyuanxinxiService.findPage(cangkuyuanxinxiVo));
}
@PostMapping("/login")
public Result login(@RequestBody Cangkuyuanxinxi cangkuyuanxinxi, HttpServletRequest request) {
if (StrUtil.isBlank(cangkuyuanxinxi.getYonghuming()) || StrUtil.isBlank(cangkuyuanxinxi.getMima())) {
throw new CustomException(ResultCode.PARAM_LOST_ERROR);
}
Cangkuyuanxinxi login = cangkuyuanxinxiService.login(cangkuyuanxinxi);
// if(!login.getStatus()){
// return Result.error("1001","状态限制,无法登录系统");
// }
if(login != null) {
HashMap hashMap = new HashMap();
hashMap.put("user", login);
Map<String, Object> map = MapWrapperUtils.builder(MapWrapperUtils.KEY_USER_ID,cangkuyuanxinxi.getId());
String token = JwtUtil.creatToken(map);
hashMap.put("token", token);
return Result.success(hashMap);
}else {
return Result.error();
}
}
@PutMapping("/updatePassword")
public Result updatePassword(@RequestBody Cangkuyuanxinxi info, HttpServletRequest request) {
Cangkuyuanxinxi cangkuyuanxinxi = cangkuyuanxinxiService.findById(info.getId());
String oldPassword = SecureUtil.md5(info.getMima());
if (!oldPassword.equals(cangkuyuanxinxi.getMima())) {
return Result.error(ResultCode.PARAM_PASSWORD_ERROR.code, ResultCode.PARAM_PASSWORD_ERROR.msg);
}
info.setMima(SecureUtil.md5(info.getNewPassword()));
Cangkuyuanxinxi cangkuyuanxinxi1 = new Cangkuyuanxinxi();
BeanUtils.copyProperties(info, cangkuyuanxinxi1);
cangkuyuanxinxiService.update(cangkuyuanxinxi1);
return Result.success();
}
@PostMapping("/register")
public Result<Cangkuyuanxinxi> register(@RequestBody CangkuyuanxinxiVo cangkuyuanxinxi) {
cangkuyuanxinxiService.add(cangkuyuanxinxi);
return Result.success(cangkuyuanxinxi);
}
}