package com.dgut.sms.controller;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import com.dgut.sms.bean.Bill;
import com.dgut.sms.bean.BillSearchCondition;
import com.dgut.sms.bean.Contract;
import com.dgut.sms.bean.Product;
import com.dgut.sms.bean.Purchase;
import com.dgut.sms.dao.PurchaseDao;
import com.dgut.sms.service.BillService;
import com.dgut.sms.service.ContractService;
import com.dgut.sms.service.ProductService;
@RequestMapping("bill")
@Controller
public class BillController {
@Autowired
public BillService service;
@Autowired
public ProductService productService;
@Autowired
public ContractService contractService;
@Autowired
public PurchaseDao purchaseDao;
private Double beforePrice;
@GetMapping("/billManagerList")
public String billManagerList(Model model) {
List<Bill> bills = service.getAllBill();
model.addAttribute("bills", bills);
model.addAttribute("condition", new BillSearchCondition());
return "bill/salesManagerBillList";
}
@GetMapping("/billEdit/{id}")
public String billEdit(@PathVariable("id") Integer id, Model model) {
Bill bill = service.getBillByBillId(id);
String busyMessage = service.lockBillByBillId(id); //判断该订单是否被操作中
if(busyMessage.equals("该订单正在被操作,请稍后再试!")) {
model.addAttribute("busyMessage",busyMessage);
List<Bill> bills = service.getAllBill();
model.addAttribute("bills", bills);
model.addAttribute("condition", new BillSearchCondition());
return "bill/salesManagerBillList";
}
beforePrice = bill.getTotalPrice(); //获取修改前订单的价格
List<Product> products = productService.getAllProduct();
List<Contract> contracts = contractService.getAllContract();
model.addAttribute("contracts", contracts);
model.addAttribute("products", products);
model.addAttribute("bill", bill);
return "bill/billEdit";
}
@ModelAttribute //准备模型数据
public void prepareModelAttribute(@RequestParam(value="billId", required=false) Integer id, HttpServletRequest request, Model model) {
String servletPath = request.getServletPath();
if(servletPath.equals("/contract/updateContract")) {
//为/update请求准备模型数据
Bill bill = service.getBillByBillId(id);
model.addAttribute("bill", bill);
}
}
@PostMapping("/updateBill")
public String updateBill(@Valid Bill bill, BindingResult result, Model model) {
if(result.hasErrors()) {
return "bill/billEdit";
}
else {
String message;
if(productService.getProductById(bill.getProductId())==null) {
model.addAttribute("BillProductNotExist", "商品不存在!");
List<Product> products = productService.getAllProduct();
List<Contract> contracts = contractService.getAllContract();
model.addAttribute("contracts", contracts);
model.addAttribute("products", products);
return "bill/billEdit";
}
if(productService.getProductById(bill.getProductId()).getSell().equals("否")) {
String unSellMessage = "商品已下架,无法更新订单!";
List<Product> products = productService.getAllProduct();
List<Contract> contracts = contractService.getAllContract();
model.addAttribute("contracts", contracts);
model.addAttribute("products", products);
model.addAttribute("message", unSellMessage);
return "bill/billEdit";
}
try {
service.updateBill(bill);
service.unlockBillByBillId(bill.getBillId());
} catch (Exception e) {
message = "商品数量不足!";
List<Product> products = productService.getAllProduct();
List<Contract> contracts = contractService.getAllContract();
model.addAttribute("contracts", contracts);
model.addAttribute("products", products);
model.addAttribute("message", message);
return "bill/billEdit";
}
if(service.getBillByBillId(bill.getBillId()).getPerform().equals("未发货")) {
Contract contract = contractService.getContractByContractId(bill.getContractId());
Double price = service.getBillByBillId(bill.getBillId()).getPrice() * service.getBillByBillId(bill.getBillId()).getQuantity();
contractService.addPriceByContractId(contract.getContractId(), price); //添加修改后订单的价格
contractService.reducePriceByContractId(contract.getContractId(), beforePrice); //减去修改前订单的价格
return "redirect:/bill/billManagerList";
}
else {
List<Product> products = productService.getAllProduct();
List<Contract> contracts = contractService.getAllContract();
model.addAttribute("contracts", contracts);
model.addAttribute("products", products);
model.addAttribute("message", "商品已发货,无法修改!");
return "bill/billEdit";
}
}
}
@GetMapping("/billDelete/{id}")
public String billDelete(@PathVariable("id") Integer id) {
Contract contract = contractService.getContractByContractId(service.getBillByBillId(id).getContractId());
Integer contractId = contract.getContractId();
Double price = service.getBillByBillId(id).getPrice() * service.getBillByBillId(id).getQuantity();
contractService.reducePriceByContractId(contractId, price);
service.deleteBillById(id);
return "redirect:/bill/billManagerList";
}
@GetMapping("/addEdit")
public String addEdit(Model model) {
model.addAttribute("bill", new Bill());
List<Product> products = productService.getAllProduct();
List<Contract> contracts = contractService.getAllContract();
model.addAttribute("contracts", contracts);
model.addAttribute("products", products);
return "bill/addEdit";
}
@PostMapping("add")
public String add(@Valid Bill bill, BindingResult result, Model model) {
if(result.hasErrors()) {
return "bill/addEdit";
}
else {
if(contractService.getContractByContractId(bill.getContractId()).getPerform().equals("已履行")) {
List<Product> products = productService.getAllProduct();
List<Contract> contracts = contractService.getAllContract();
model.addAttribute("contracts", contracts);
model.addAttribute("products", products);
model.addAttribute("message", "合同已履行,无法添加发货单!");
return "bill/addEdit";
}
if(productService.getProductById(bill.getProductId())==null) {
model.addAttribute("BillProductNotExist", "商品不存在!");
List<Product> products = productService.getAllProduct();
List<Contract> contracts = contractService.getAllContract();
model.addAttribute("contracts", contracts);
model.addAttribute("products", products);
return "bill/addEdit";
}
if(productService.getProductById(bill.getProductId()).getSell().equals("否")) {
String unSellMessage = "商品已下架,无法创建订单!";
model.addAttribute("message", unSellMessage);
List<Product> products = productService.getAllProduct();
List<Contract> contracts = contractService.getAllContract();
model.addAttribute("contracts", contracts);
model.addAttribute("products", products);
return "bill/addEdit";
}
bill.setPerform("未发货");
bill.setPrice(productService.getPriceByProductId(bill.getProductId()));
bill.setTotalPrice(productService.getPriceByProductId(bill.getProductId())*bill.getQuantity());
try {
service.addBill(bill);
contractService.addPriceByContractId(bill.getContractId(), bill.getTotalPrice());
没有合适的资源?快使用搜索试试~ 我知道了~
基于JAVA EE技术,采用MVC模式SSM框架开发一个销售管理系统。
共200个文件
class:47个
java:47个
jsp:37个
需积分: 45 23 下载量 163 浏览量
2021-03-18
22:20:10
上传
评论 10
收藏 20.14MB ZIP 举报
温馨提示
综合运用前面章节相关概念与原理,设计和开发一个企业信息管理系统,通过本实验项目的练习,有助于学生对Spring、MyBatis、Spring MVC技术的了解和认识,提高项目开发实践能力。主要内容为对项目进行需求分析,规划,框架设计,编码,布署,发布等。 基于JAVA EE技术,采用MVC模式开发一个销售管理系统。 某公司销售管理系统 公司销售管理系统主要实现管理与客户之间销售合同的签订、履行、及相关销售数据的统计。 公司与客户之间签订销售合同后,销售管理员会根据客户每次已付款的采购清单以及商品的库存情况生成发货单(为简单起见一张发货单对应一种商品的发货),用于仓库管理员给客户发货。仓库管理员发货后需要对发货单进行确认,并记录相关物流信息。如果一个合同所涉及的所有商品均已发货完毕,则该合同履行完毕。如果商品的库存量不够或发货后库存为0,则生成进货单,用于仓库管理员进货。仓库管理员进货后需要记录进货信息,并修改对应商品的库存。 除了上述功能以外,销售管理员可以对合同基本信息进行管理,包括合同的录入、修改及查询,一个合同在履行前可以修改基本信息,在履行中则不能修改;可以管理客户信息,包括客户信息的新增、修改及查询;可以管理销售人员信息,包括新增、修改及查询。仓库管理员可以对库存商品的基本信息进行管理,包括新增商品,商品信息修改,商品下架以及查询。 查询统计(选做) 销售管理员可以对合同进行多条件查询,以及关联查询(即在查询合同时同时查出客户以及销售人员信息);可以对客户进行多条件查询,以及关联查询(同时查询合同);可以对销售人员进行多条件查询,以及关联查询(同时查询合同);仓库管理员可以对库存商品进行多条件查询;销售管理员可以按客户、销售人员、以及商品种类完成销售情况的统计。
资源推荐
资源详情
资源评论
收起资源包目录
基于JAVA EE技术,采用MVC模式SSM框架开发一个销售管理系统。 (200个子文件)
BillController.class 10KB
ContractController.class 9KB
UserController.class 6KB
PurchaseController.class 6KB
ProductController.class 5KB
SalesmanController.class 5KB
Contract.class 5KB
LogisticsController.class 4KB
BillService.class 4KB
WarehouseKeeperController.class 4KB
Purchase.class 3KB
ContractService.class 3KB
Bill.class 3KB
SalesManagerController.class 3KB
PurchaseSearchCondition.class 2KB
Salesman.class 2KB
Product.class 2KB
User.class 2KB
BillSearchCondition.class 2KB
ProductService.class 2KB
ContractSearchCondition.class 2KB
ProductSearchCondition.class 2KB
PurchaseService.class 2KB
UserService.class 2KB
Logistics.class 2KB
SalesmanService.class 2KB
WarehouseKeeper.class 2KB
SalesManager.class 2KB
LogisticsService.class 2KB
ContractUserSalesman.class 1KB
ContractHasBillException.class 1KB
ProductNotEnoughExcetion.class 1KB
WarehouseKeeperService.class 1KB
ContractDao.class 1KB
BillDao.class 964B
ProductDao.class 933B
SalesmanSearchCondition.class 929B
UserSearchCondition.class 905B
PurchaseDao.class 867B
ContractUserSalesmanService.class 844B
SalesManagerService.class 834B
UserDao.class 701B
SalesmanDao.class 684B
LogisticsDao.class 587B
WarehouseKeeperDao.class 339B
ContractUserSalesmanDao.class 257B
SalesManagerDao.class 232B
.classpath 842B
org.eclipse.wst.common.component 461B
org.eclipse.wst.jsdt.ui.superType.container 49B
课程实验报告-实验4(2).docx 5.71MB
mysql-connector-java-8.0.21.jar 2.29MB
aspectjweaver-1.9.4.jar 1.95MB
mybatis-3.5.1.jar 1.61MB
spring-core-5.2.8.RELEASE.jar 1.38MB
spring-web-5.2.8.RELEASE.jar 1.37MB
spring-context-5.2.8.RELEASE.jar 1.17MB
hibernate-validator-6.0.17.Final.jar 1.1MB
spring-webmvc-5.2.8.RELEASE.jar 934KB
spring-beans-5.2.8.RELEASE.jar 673KB
mchange-commons-java-0.2.15.jar 609KB
c3p0-0.9.5.4.jar 488KB
spring-jdbc-5.2.8.RELEASE.jar 398KB
standard.jar 384KB
spring-aop-5.2.8.RELEASE.jar 364KB
spring-tx-5.2.8.RELEASE.jar 307KB
spring-expression-5.2.8.RELEASE.jar 276KB
javax.el-3.0.1-b09.jar 232KB
taglibs-standard-impl-1.2.5.jar 202KB
taglibs-standard-jstlel-1.2.5.jar 159KB
validation-api-2.0.1.Final.jar 91KB
mybatis-spring-2.0.5.jar 67KB
jboss-logging-3.3.2.Final.jar 65KB
classmate-1.3.4.jar 64KB
commons-logging-1.2.jar 60KB
spring-aspects-5.2.8.RELEASE.jar 46KB
taglibs-standard-spec-1.2.5.jar 39KB
jstl.jar 20KB
BillController.java 10KB
ContractController.java 8KB
PurchaseController.java 5KB
UserController.java 5KB
ProductController.java 4KB
LogisticsController.java 4KB
SalesmanController.java 4KB
Contract.java 3KB
BillService.java 3KB
WarehouseKeeperController.java 3KB
Purchase.java 3KB
Bill.java 2KB
ContractService.java 2KB
PurchaseSearchCondition.java 2KB
SalesManagerController.java 2KB
BillSearchCondition.java 2KB
ContractSearchCondition.java 2KB
Product.java 2KB
Salesman.java 1KB
User.java 1KB
ProductService.java 1KB
ProductSearchCondition.java 1KB
共 200 条
- 1
- 2
资源评论
zjojk
- 粉丝: 79
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功