多商户小程序开发教程,网站优化的代码,同一个服务器的网站做有链,中国十大含金量证书作者主页#xff1a;舒克日记 简介#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 进销存管理系统 
介绍 
进销存系统是为了对企业生产经营中进货、出货、批发销售、付款等全程进行#xff08;从接获订单合同开 始#xff0c;进入物料采购、入… 作者主页舒克日记 简介Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 进销存管理系统 
介绍 
进销存系统是为了对企业生产经营中进货、出货、批发销售、付款等全程进行从接获订单合同开 始进入物料采购、入库、领用到产品完工入库、交货、回收货款、支付原材料款等跟踪每一步都 提供详尽准确的数据、管理有效辅助企业解决业务管理、分销管理、存货管理、营销计划的执行和 监控、统计信息的收集等方面的业务问题而设计的整套方案。 
软件环境 
SpringbootMybatisPlusSpringMvcFreemarkerMaven 
软件架构 
1、 基础资料 往来单位资料 货品资料 员工信息 仓库资料 计量单位 账户信息 公司信息 用户可以快速、直观地 查询所需要的数据资料。 
2、 系统管理 操作员管理 系统设置 数据初始化 系统管理是整个系统的门户在系统的安全性上起到了不可估 量的作用。各种信息要求尽量全面详细使管理变得更轻松更有效。 
3、 采购管理 新增采购订单 采购订单查询 新增采购单 采购单查询 采购退货 采购明细表 货品采购汇总表 供应商采购汇总表 采购订单完成情况 采购覆盖企业采购的各个环节。企业通过虚拟的在线货品目 录迅速而实时的访问货品信息通过价格和品质的比较选定产品供应商。 
4、 销售管理 新增销售订单 销售订单查询 新增销售单 销售单查询 销售退货 销售明细表 货品销售汇总表 客户销售汇总表 销售订单完成情况 销售覆盖企业销售的各个环节。通过销售订单录入与变更跟 踪管理商品销售情况根据货品报价和销售数量自动开出销售发票根据发货单产生结算凭证和 收货单。 
5、 库存管理 新增入库单 新增出库单 仓库调拨 库存盘点 期末提供了货品盘点、货品调价以及业务审核等 期末业务处理功能业务期末结算为财务期末结算做了必要的铺垫作用。 
6、 财务管理 付款单 收款单 其他收入 其他支出 账户查询 应付账款表-单据 应付账款表-往来单位 应收账款 表-单据 应收账款表-往来单位 
运行指导 
idea导入源码空间站顶目教程说明(Vindows版)-ssm篇 
http://mtw.so/5MHvZq 
源码地址http://codegym.top。 
安装教程 
环境是JDK8 
使用说明 
密码都是密文加密 初始密码都为123456。 
系统效果 
系统登录 采购入库 商品管理 初期库存管理 商品统计销售 商品分类 代码 
CaptchaCodeFilter 
package com.lzj.admin.filter;import com.fasterxml.jackson.databind.ObjectMapper;
import com.lzj.admin.model.CaptchaImageModel;
import com.lzj.admin.model.RespBean;
import com.lzj.admin.utils.StringUtil;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.authentication.session.SessionAuthenticationException;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.ServletRequestBindingException;
import org.springframework.web.bind.ServletRequestUtils;
import org.springframework.web.context.request.ServletWebRequest;
import org.springframework.web.filter.OncePerRequestFilter;import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.Objects;/*** 验证码过滤器 用于验证验证码是否有误* Security的过滤器 基于AOP的原理 在登录验证前切入验证码验证* author TianTian* date 2022/1/8 11:06*/
Component
public class CaptchaCodeFilter extends OncePerRequestFilter {//利用这个对象向前端传输对象 新技术 不了解private static ObjectMapper objectMapper  new ObjectMapper();/*** 过器实现* param request* param response* param filterChain* throws ServletException* throws IOException*/Overrideprotected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {//判断请求地址是否为loginif (StringUtil.equals(request.getRequestURI(),/login)){try {this.validata(new ServletWebRequest(request));} catch (AuthenticationException e) {response.setContentType(application/json;charsetUTF-8);response.getWriter().write((objectMapper.writeValueAsString(RespBean.error(验证码错误))));return;//这里非常关键 如果不返回的话会继续执行登录验证 导致前端会收到两个Json对象}}filterChain.doFilter(request,response);}/*** 验证方法实现* param request* throws ServletRequestBindingException*/private void validata(ServletWebRequest request) throws ServletRequestBindingException {HttpSession session  request.getRequest().getSession();//获取请求中参数值String captchaCode  ServletRequestUtils.getStringParameter(request.getRequest(), captchaCode);//验证前端字符串是否为空if(StringUtil.isEmpty(captchaCode)){throw new SessionAuthenticationException(验证码为空);}//获取Session中存放的验证码包装类CaptchaImageModel captcha_key  (CaptchaImageModel) session.getAttribute(captcha_key);//获取验证码图片中字符串String code  captcha_key.getCode();if(Objects.isNull(captcha_key)){throw new SessionAuthenticationException(验证码不存在);}if (captcha_key.isExpired()){throw new SessionAuthenticationException(验证码超时);}if (!StringUtil.equals(captchaCode,code)){throw new SessionAuthenticationException(验证码不正确);}}
} 
CustomerReturnListController 
package com.lzj.admin.controller;import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.lzj.admin.model.RespBean;
import com.lzj.admin.pojo.CustomerReturnList;
import com.lzj.admin.pojo.CustomerReturnListGoods;
import com.lzj.admin.pojo.SaleList;
import com.lzj.admin.pojo.SaleListGoods;
import com.lzj.admin.query.CustomerReturnListQuery;
import com.lzj.admin.service.CustomerReturnListService;import com.lzj.admin.service.UserService;
import com.lzj.admin.utils.AssertUtil;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ResponseBody;import javax.annotation.Resource;
import java.security.Principal;
import java.util.List;
import java.util.Map;/*** 客户退货单控制器* author TianTian* date 2022/1/19 22:58*/
Controller
RequestMapping(/customerReturn)
public class CustomerReturnListController {Resourceprivate CustomerReturnListService customerReturnListService;Resourceprivate UserService userService;/*** 客户退货主页* return*/RequestMapping(index)public String index(Model model){model.addAttribute(customerReturnNumber,customerReturnListService.getNextCustomerReturnNumber());return customerReturn/customer_return;}RequestMapping(save)ResponseBodypublic RespBean save(CustomerReturnList customerReturnList, String goodsJson, Principal principal){String userName  principal.getName();customerReturnList.setUserId(userService.findForName(userName).getId());Gson gson  new Gson();ListCustomerReturnListGoods slgList  gson.fromJson(goodsJson,new TypeTokenListCustomerReturnListGoods(){}.getType());customerReturnListService.saveCustomerReturnList(customerReturnList,slgList);return RespBean.success(商品退货入库成功!);}/*** 退货单查询页* return*/RequestMapping(searchPage)public String searchPage(){return customerReturn/customer_return_search;}/*** 退货单列表* param customerReturnListQuery* return*/RequestMapping(list)ResponseBodypublic MapString,Object customerReturnList(CustomerReturnListQuery customerReturnListQuery){return customerReturnListService.customerReturnList(customerReturnListQuery);}/*** 删除进货单记录* param id* return*/RequestMapping(delete)ResponseBodypublic RespBean delete(Integer id){customerReturnListService.deleteCustomerReturn(id);return RespBean.success(删除成功);}} 文章转载自: http://www.morning.wfqcs.cn.gov.cn.wfqcs.cn http://www.morning.mqbsm.cn.gov.cn.mqbsm.cn http://www.morning.jglqn.cn.gov.cn.jglqn.cn http://www.morning.hous-e.com.gov.cn.hous-e.com http://www.morning.zhengdaotang.cn.gov.cn.zhengdaotang.cn http://www.morning.grnhb.cn.gov.cn.grnhb.cn http://www.morning.qdlnw.cn.gov.cn.qdlnw.cn http://www.morning.skqfx.cn.gov.cn.skqfx.cn http://www.morning.clzly.cn.gov.cn.clzly.cn http://www.morning.yjfzk.cn.gov.cn.yjfzk.cn http://www.morning.jgmlb.cn.gov.cn.jgmlb.cn http://www.morning.lpnb.cn.gov.cn.lpnb.cn http://www.morning.rkfwr.cn.gov.cn.rkfwr.cn http://www.morning.bmfqg.cn.gov.cn.bmfqg.cn http://www.morning.glkhx.cn.gov.cn.glkhx.cn http://www.morning.cbtn.cn.gov.cn.cbtn.cn http://www.morning.dxpzt.cn.gov.cn.dxpzt.cn http://www.morning.bzkgn.cn.gov.cn.bzkgn.cn http://www.morning.sjsfw.cn.gov.cn.sjsfw.cn http://www.morning.qjlnh.cn.gov.cn.qjlnh.cn http://www.morning.rymd.cn.gov.cn.rymd.cn http://www.morning.dcdhj.cn.gov.cn.dcdhj.cn http://www.morning.yrlfy.cn.gov.cn.yrlfy.cn http://www.morning.wbxtx.cn.gov.cn.wbxtx.cn http://www.morning.rfpxq.cn.gov.cn.rfpxq.cn http://www.morning.xlpdm.cn.gov.cn.xlpdm.cn http://www.morning.llxqj.cn.gov.cn.llxqj.cn http://www.morning.kfjnx.cn.gov.cn.kfjnx.cn http://www.morning.lztrt.cn.gov.cn.lztrt.cn http://www.morning.nrmyj.cn.gov.cn.nrmyj.cn http://www.morning.trjp.cn.gov.cn.trjp.cn http://www.morning.znsyn.cn.gov.cn.znsyn.cn http://www.morning.wfbnp.cn.gov.cn.wfbnp.cn http://www.morning.wdhzk.cn.gov.cn.wdhzk.cn http://www.morning.bpmdh.cn.gov.cn.bpmdh.cn http://www.morning.nfccq.cn.gov.cn.nfccq.cn http://www.morning.jjnql.cn.gov.cn.jjnql.cn http://www.morning.xyjlh.cn.gov.cn.xyjlh.cn http://www.morning.jnzfs.cn.gov.cn.jnzfs.cn http://www.morning.crfyr.cn.gov.cn.crfyr.cn http://www.morning.bsrqy.cn.gov.cn.bsrqy.cn http://www.morning.xlpdm.cn.gov.cn.xlpdm.cn http://www.morning.gpfuxiu.cn.gov.cn.gpfuxiu.cn http://www.morning.lhzqn.cn.gov.cn.lhzqn.cn http://www.morning.bfmq.cn.gov.cn.bfmq.cn http://www.morning.whpsl.cn.gov.cn.whpsl.cn http://www.morning.dncgb.cn.gov.cn.dncgb.cn http://www.morning.knpbr.cn.gov.cn.knpbr.cn http://www.morning.pltbd.cn.gov.cn.pltbd.cn http://www.morning.cknws.cn.gov.cn.cknws.cn http://www.morning.xdhcr.cn.gov.cn.xdhcr.cn http://www.morning.qwbtr.cn.gov.cn.qwbtr.cn http://www.morning.zqzzn.cn.gov.cn.zqzzn.cn http://www.morning.yqgny.cn.gov.cn.yqgny.cn http://www.morning.qyqmj.cn.gov.cn.qyqmj.cn http://www.morning.jwlmm.cn.gov.cn.jwlmm.cn http://www.morning.bzfwn.cn.gov.cn.bzfwn.cn http://www.morning.zxcny.cn.gov.cn.zxcny.cn http://www.morning.rgpsq.cn.gov.cn.rgpsq.cn http://www.morning.fswml.cn.gov.cn.fswml.cn http://www.morning.brqjs.cn.gov.cn.brqjs.cn http://www.morning.bwgrd.cn.gov.cn.bwgrd.cn http://www.morning.geledi.com.gov.cn.geledi.com http://www.morning.ynlbj.cn.gov.cn.ynlbj.cn http://www.morning.rqqmd.cn.gov.cn.rqqmd.cn http://www.morning.fcwxs.cn.gov.cn.fcwxs.cn http://www.morning.rkmsm.cn.gov.cn.rkmsm.cn http://www.morning.mfmrg.cn.gov.cn.mfmrg.cn http://www.morning.ngkgy.cn.gov.cn.ngkgy.cn http://www.morning.wzyfk.cn.gov.cn.wzyfk.cn http://www.morning.lxlzm.cn.gov.cn.lxlzm.cn http://www.morning.pkrtz.cn.gov.cn.pkrtz.cn http://www.morning.lkrmp.cn.gov.cn.lkrmp.cn http://www.morning.zxzgr.cn.gov.cn.zxzgr.cn http://www.morning.dsxgc.cn.gov.cn.dsxgc.cn http://www.morning.bxnrx.cn.gov.cn.bxnrx.cn http://www.morning.qctsd.cn.gov.cn.qctsd.cn http://www.morning.pkggl.cn.gov.cn.pkggl.cn http://www.morning.ylqpp.cn.gov.cn.ylqpp.cn http://www.morning.xtdtt.cn.gov.cn.xtdtt.cn