基于javaweb+mysql的springboot医药进销存管理系统(java+springboot+html+echarts+jquery+maven+mysql)

基于javaweb+mysql的springboot医药进销存管理系统(java+springboot+html+echarts+jquery+maven+mysql)

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb+mysql的SpringBoot医药进销存管理系统(java+springboot+html+echarts+jquery+maven+mysql)

功能介绍

医药进销存系统,主要分两种角色:员工、客户。本系统具有进销存系统的通用性,可以修改为其它进销存系统,如家电进销存、手机进销存等;

员工登录后主要功能模块有: 我的面板:个人信息、修改信息、修改密码; 员工管理:员工添加、员工查询; 药品管理:药品类别添加、药品类别查询、药品添加、药品查询; 客户管理:客户查询; 供货商管理:供货商添加、供货商查询; 账单管理:进货添加、进货查询、退货账单、销售账单查询; 客户登录后主要功能模块有: 我的面板:个人信息、修改信息、修改密码;

购买药品:药品展示、已购药品;

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。

2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目

6.数据库:MySql 5.7版本;

系统框架

1.后端:SpringBoot

2.前端:HTML+Echarts+JQuery

使用说明

  1. 使用IDEA/Eclipse/MyEclipse导入后端项目源码,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;

  2. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 3. 运行项目前,需要配置好MqSQL数据库,在application.properties中修改数据库对应的配置文件; 4. 配置Tomcat,在Tomcat中运行后端项目; 5. 运行成功后,在浏览器中访问:http://localhost:8888 6. 客户和员工对应数据库表t_customers和t_employees表,用户名是手机号,密码也是对应的手机号 客户账号:15133480838 密码:15133480838

员工账号:15133330551 密码:15133330551


@RestController
@RequestMapping("/drugCategory")
public class DrugCategoryController extends BaseController{
	@Autowired	//自动装配
	private IDrugCategoryService drugCategoryService;
	
	/**
	 * 添加数据。药品类别信息
	 * @param user
	 * @return	返回成功
	 */
	@RequestMapping("/addDrugCategory")
	public ResponseResult<Void> addDrugCategory(DrugCategory drugCategory) {
		drugCategoryService.addDrugCategory(drugCategory);
		return new ResponseResult<Void>(SUCCESS);
	}
	
	/**
	 * 查询药品类别数据,多条件查询
	 * @param drugCategory
	 * @return
	 * @throws JsonProcessingException 
	 */
	@RequestMapping("/selectDrugCategory")
	public ResponseResult<PaginationVO<DrugCategory>> selectDrugCategory(String categoryName,String pageNoStr,String pageSizeStr) throws JsonProcessingException {
		//获取参数
		long pageNo = 1;	//如果没有传数据,默认为第一页
				supmap.put(s.getUid(), s.getUsername());
				supId.add(supmap);
			}
		}
		UAN.add(supId);
		
		List<Employees> emp = findEmpByUidUsername();
		for(Employees e : emp){
			if(!count.equals(e.getIsDelete())){
				Map<Integer, String> empmap = new HashMap<Integer, String>();
				empmap.put(e.getUid(), e.getUsername());
				empId.add(empmap);
			}
		}
		UAN.add(empId);
		return UAN;
	}
	
	/**
	 * 查询员工表uid,username
	 * @return
	 */
	private List<Employees> findEmpByUidUsername(){
		List<Employees> list = employees.findByUidUsername();
		return list;
	}
	
	/**
	 * 查询药品里面所有的id以及药品名字
	 * @return
	 */
	private List<Drug> findDrgByUidUsername(){
		List<Drug> list = drugDao.findUidName();
		return list;
	}
	
	/**
	 * 查询供货商表的uid,username
	 * @return
	 */
	private List<Supplier> findSupByUidUsername(){
		//测试正常
		List<Supplier> list = supplier.findByUidUsername();
		return list;
	//************************修改头像***********************************
	/**
	 * 上传员工头像
	 * @param request
	 * @param file
	 * @return MultipartFile file
	 */
	@RequestMapping("/change_avatar")
	public ResponseResult<String> changeAvatar(HttpServletRequest request,@RequestParam("file") MultipartFile file){
		if(file.isEmpty()) {
			throw new FileEmptyException("上传头像错误!上传文件不能为空!");
		}
		if(!UPLOAD_CONTENT_TYPE.contains(file.getContentType())) {
			throw new FileContentTypeException("上传头像错误!不支持所选的文件类型!");
		}
		if(file.getSize()>UPLOAD_MAX_SIZE) {
			throw new FileSizeException("上传文件过大!请选择小于"+UPLOAD_MAX_SIZE+"的文件!");
		}
		String parentPath = request.getServletContext().getRealPath(UPLOAD_DIR);
		File parent = new File(parentPath);
		if(!parent.exists()) {
			parent.mkdirs();
		}
		String originalFilename = file.getOriginalFilename();
		//使用系统纳秒值给头像命名
		//String prefic = System.nanoTime()+"";
		//使用uid+username为头像文件命名,新头像会将旧头像替换
		HttpSession session = request.getSession();
		String prefic = session.getAttribute("uid").toString()+session.getAttribute("username").toString();
		int beginIndex = originalFilename.lastIndexOf(".");
		String suffix = "";
		if(beginIndex > 0) {
			suffix = originalFilename.substring(beginIndex);
		}
		String filename = prefic+suffix;
		File dest = new File(parent,filename);
		try {
			file.transferTo(dest);
		} catch (IllegalStateException e) {
			e.printStackTrace();
			throw new FileIllegalStateException("上传头像错误!存储头像文件时状态异常!");
		} catch (IOException e) {
			e.printStackTrace();
			throw new FileIOException("上传头像错误!读写文件时出现错误!");
		}
		Integer uid = getUidFromSession(session);
		String avatar = "/"+UPLOAD_DIR+"/"+filename;
		empService.changeAvatar(avatar,uid);
		return new ResponseResult<String>(SUCCESS,avatar);

@RestController		//相当于配置文件(Controller,ResponseBody)
@RequestMapping("/customer")
public class CustomerController extends BaseController {
	@Autowired	//自动装配
	private ICustomerService customerService;
	
	/**
	 * 注册用户
	 * @param user
	 * @return	返回成功
	 */
	@RequestMapping("/reg")
	public ResponseResult<Void> reg(Customer customer) {
		customerService.reg(customer);
		return new ResponseResult<Void>(SUCCESS);
	}
	
	/**
	 * 登录
	 * @param username
	 * @param password
	 * @return
	 */
	@PostMapping("/login")
	public ResponseResult<Customer> login(String phone,String password,HttpSession session) {
		Customer customer = customerService.getloginCustomer(phone, password);
		session.setAttribute( "user", customer );
		session.setAttribute( "uid", customer.getUid());
		session.setAttribute( "username", customer.getUsername() );
		return new ResponseResult<Customer>(SUCCESS,customer);
	}
	
	/**
	 * 查询客户数据,多条件查询
	 * @param drugCategory
	 * @return

@RestController		//相当于配置文件(Controller,ResponseBody)
@RequestMapping("/customer")
public class CustomerController extends BaseController {
	@Autowired	//自动装配
	private ICustomerService customerService;
	
	/**
	 * 注册用户
	 * @param user
	 * @return	返回成功
	 */
	@RequestMapping("/reg")
	public ResponseResult<Void> reg(Customer customer) {
		customerService.reg(customer);
		return new ResponseResult<Void>(SUCCESS);
	}

	/**
	 * 删除某条数据
	 */
	@Override
	public void deleteDrugStock(String ids,HttpSession session) {
		String[] id = ids.split(",");
		String username = session.getAttribute("username").toString();
		Date now = new Date();
		for(int i=0;i<id.length;i++){
			System.err.println(Integer.parseInt(id[i]));
			Integer upd = updateIsDelete(Integer.parseInt(id[i]),username,now);
			if(upd!=1){
				throw new InsertException("删除数据时出现未知错误!!");
			}
		}
	}
	
	/**
	 * 在员工表和供货商表药品表中查询所有存在的id,名字,并且返回出去
	 */
	@Override
	public List<List<Map<Integer, String>>> findDrgEmpSupId() {
		List<List<Map<Integer, String>>> UAN = new ArrayList<List<Map<Integer, String>>>();
		List<Map<Integer, String>> drgId = new ArrayList<Map<Integer, String>>();
		List<Map<Integer, String>> supId = new ArrayList<Map<Integer, String>>();
		List<Map<Integer, String>> empId = new ArrayList<Map<Integer, String>>();
		Integer count = 1;
		
		List<Drug> drg = findDrgByUidUsername();
		for(Drug d : drg){
			if(!count.equals(d.getIsDelete())){
				Map<Integer, String> drgmap = new HashMap<Integer, String>();
				drgmap.put(d.getId(), d.getDrugName());
				drgId.add(drgmap);
			}
		}
		UAN.add(drgId);
		
		List<Supplier> sup = findSupByUidUsername();
		for(Supplier s : sup){
			if(!count.equals(s.getIsDelete())){
				Map<Integer, String> supmap = new HashMap<Integer, String>();
				supmap.put(s.getUid(), s.getUsername());
				supId.add(supmap);
			}
		drugStockService.modificationDrugStock(drugStock);
		return new ResponseResult<Void>(SUCCESS);
	}
	
	/**
	 * 插入进货数据
	 * @param drugStock 需要插入的数据
	 * @return 返回执行信息错误与否
	 */
	@PostMapping("/insert")
	public ResponseResult<Void> add(DrugStock drugStock,HttpSession session){
		drugStockService.addDrugStock(drugStock,session);
		return new ResponseResult<Void>(SUCCESS);
	}
	
	/**
	 * 查询员工与客户中所有已存在的id
	 * @return 返回list集合封装的id
	 */
	@GetMapping("/findid")
	public ResponseResult<List<List<Map<Integer, String>>>> findEmpSupId(){
		List<List<Map<Integer, String>>> id = drugStockService.findDrgEmpSupId();
		return new ResponseResult<List<List<Map<Integer, String>>>>(SUCCESS, id);
	}
	
	/**
	 * 查询所有的drugStock
	 * @return 返回结果
	 */
	@GetMapping("/findall")
	public ResponseResult<JSONArray> findAllDrugStock(Integer pageNoStr,Integer pageSizeStr,String documentNo){
		List<DrugStockFindAll> drugStocks = drugStockService.findDrugStock((pageNoStr-1)*pageSizeStr,pageSizeStr,documentNo);
		//解决前后端json遍历的时间问题(把vo换成jsonObj)
		JsonConfig jsonConfig = new JsonConfig();
		jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor());
		JSONArray jsonArr = JSONArray.fromObject(drugStocks, jsonConfig);
		return new ResponseResult<JSONArray>(SUCCESS,jsonArr);
	}
	
	/**
	 * 删除数据
	 * @param Id 需要删除的id
	 * @param session 获取绑定数据
	 * @return 返回结果
	 */
	@PostMapping("/deletebyid")

@RestController
@RequestMapping("/supplier")
public class SupplierController extends BaseController{

	@Autowired
	private ISupplierService supplierService;

	@RequestMapping("/addnew")
	public ResponseResult<Void> reg(Supplier supplier){

		supplierService.addnew(supplier);

		return new ResponseResult<Void>(SUCCESS);

	}

	@RequestMapping("/change_info")
	public ResponseResult<Void> changeInfo(Supplier supplier,Integer uid){
		supplier.setUid(uid);
		supplierService.changeInfo(supplier);

		return new ResponseResult<Void>(SUCCESS);
	}
	
	@GetMapping("/info")
	public ResponseResult<Supplier> getByUid(Integer uid){
		Supplier data = supplierService.getByUid(uid);
		return new ResponseResult<Supplier>(SUCCESS,data);
	}
	
	@RequestMapping("/select_all")
	public ResponseResult<List<Supplier>> selectAll(){
		List<Supplier> data = supplierService.selectAll();
		return new ResponseResult<List<Supplier>>(SUCCESS,data);
	}
	
	@RequestMapping("/change_isDelete")
	public ResponseResult<Void> changeIsDelete(String uids,HttpSession session){
		String[] uid = uids.split(",");
		String username = session.getAttribute("username").toString();
		supplierService.changeIsDelet(uid,username);
	/**
	 * 查询客户数据,多条件查询
	 * @param drugCategory
	 * @return
	 * @throws JsonProcessingException 
	 */
	@RequestMapping("/selectCustomer")
	public ResponseResult<PaginationVO<Customer>> selectCustomer
	(String username,String gender,String address,String pageNoStr,String pageSizeStr) throws JsonProcessingException {
		//获取参数
		long pageNo = 1;	//如果没有传数据,默认为第一页
		if( pageNoStr != null && pageNoStr.trim().length()>0 ){
			pageNo = Long.parseLong(pageNoStr);
		}
		int pageSize = 1;	//如果没有传数据,默认为10条数据
		if( pageSizeStr != null && pageSizeStr.trim().length()>0 ){
			pageSize = Integer.parseInt(pageSizeStr);
		}
		long beginNo = (pageNo-1)*pageSize;
		Map<String ,Object> map = new HashMap<String ,Object>();
		map.put("beginNo", beginNo);
		map.put("pageSize", pageSize);
		map.put("username", username);
		map.put("gender", gender);
		map.put("address", address);
		PaginationVO<Customer> vo = customerService.getSelectCustomer(map);
		return new ResponseResult<PaginationVO<Customer>>(SUCCESS,vo);
	}
	
	/**
	 * 删除客户数据
	 * @param uid
	 * @param session
	 * @return
	 */
	@RequestMapping("/deleteCustomer")
	public ResponseResult<Void> deleteCustomer(Integer uid,HttpSession session){
		String username = (String) session.getAttribute("username");
		customerService.getdeleteId(uid, username);
		return new ResponseResult<Void>(SUCCESS);
	}
	
	/**
	 * 修改客户数据
	 */
	@RequestMapping("/updateCustomer")
	public ResponseResult<Void> updateCustomer(Customer customer,HttpSession session){
		String username = (String) session.getAttribute("username");
		customerService.getupdateCustomer(customer, username);
		return new ResponseResult<Void>(SUCCESS);
	}
	
	 * 添加销售数据
	 * @return
	 */
	@RequestMapping("/insertDrugSales")
	public ResponseResult<Void> addDrugSales(String ids,String number,HttpSession session){
		DrugSales drugSales = new DrugSales();
		drugSales.setInventoryQuantity(Integer.parseInt(number));	//添加销售数量
		drugSales.setCustomerId( getUidFromSession(session) );		//添加客户id
		String[] id = ids.split(",");
		String username = session.getAttribute("username").toString();
		drugSalesService.addDrugSales(id, drugSales, username);
		
		return new ResponseResult<Void>(SUCCESS);
	}
	
	
	/**
	 * 查询数据,多条件查询
	 * @param drugCategory
	 * @return
	 * @throws JsonProcessingException 
	 */
	@RequestMapping("/selectDrugSales")
	public ResponseResult<JSONObject> selectDrugSales
	(String drugName,String storageTime,String pageNoStr,String pageSizeStr,HttpSession session) 
			throws JsonProcessingException {
		//获取参数
		long pageNo = 1;	//如果没有传数据,默认为第一页
		if( pageNoStr != null && pageNoStr.trim().length()>0 ){
			pageNo = Long.parseLong(pageNoStr);
		}
		int pageSize = 1;	//如果没有传数据,默认为10条数据
		if( pageSizeStr != null && pageSizeStr.trim().length()>0 ){
			pageSize = Integer.parseInt(pageSizeStr);
		}
		long beginNo = (pageNo-1)*pageSize;
		
		Map<String ,Object> map = new HashMap<String ,Object>();
		map.put("beginNo", beginNo);
		map.put("pageSize", pageSize);
		map.put("storageTime", storageTime);
		map.put("drugName", drugName);
		map.put("customerId", getUidFromSession(session));
		PaginationVO<DrugSales> vo = drugSalesService.getSelectDrugSales(map);
		//解决前后端json遍历的时间问题(把vo换成jsonObj)
		JsonConfig jsonConfig = new JsonConfig();
		jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor());
		JSONObject jsonObj = JSONObject.fromObject(vo, jsonConfig);
		return new ResponseResult<JSONObject>(SUCCESS,jsonObj);
	}
	
	/**
	 * 查询数据,多条件查询,销售账单
	
	
	
	
	
	
	
	
	
}
package cn.tedu.drug.controller;

@RestController
@RequestMapping("/drugSales")
public class DrugSalesController extends BaseController{
	@Autowired	//自动装配
	private IDrugSalesService drugSalesService;
	
	/**
	 * 添加销售数据
	 * @return
	 */
		session.setAttribute( "user", emp );
		session.setAttribute( "username", emp.getUsername() );
		return new ResponseResult<Employees>(SUCCESS,emp);
	}
	
	@RequestMapping("/changePassword")
	public ResponseResult<Void> changePassword(Integer uid,String oldPassword,String newPassword,HttpSession session){
		empService.changePassword(oldPassword, newPassword, uid);
		return new ResponseResult<Void>(SUCCESS);
	}
	
	/**
	 * 查询员工数据,后期改为多条件查询
	 * @param drugCategory
	 * @return
	 */
	@RequestMapping("/selectEmployees")
	public ResponseResult<List<Employees>> selectEmp() {
		List<Employees> list = empService.getSelectEmployees();
		return new ResponseResult<List<Employees>>(SUCCESS,list);
	}
	
	/**
	 * 根据uid查询emp信息
	 * @param session
	 * @return
	 */
	@RequestMapping("/show_EmpInfo")
	public ResponseResult<Employees> showEmpInfo(Integer uid){
		Employees emp = empService.findEmpInfo(uid);
		return new ResponseResult<Employees>(SUCCESS,emp);
	}
	
	
	//************************修改头像***********************************
	/**
	 * 上传员工头像
	 * @param request
	 * @param file
	 * @return MultipartFile file
	 */
	@RequestMapping("/change_avatar")
	public ResponseResult<String> changeAvatar(HttpServletRequest request,@RequestParam("file") MultipartFile file){
		if(file.isEmpty()) {
			throw new FileSizeException("上传文件过大!请选择小于"+UPLOAD_MAX_SIZE+"的文件!");
		}
		String parentPath = request.getServletContext().getRealPath(UPLOAD_DIR);
		File parent = new File(parentPath);
		if(!parent.exists()) {
			parent.mkdirs();
		}
		String originalFilename = file.getOriginalFilename();
		//使用系统纳秒值给头像命名
		//String prefic = System.nanoTime()+"";
		//使用uid+username为头像文件命名,新头像会将旧头像替换
		HttpSession session = request.getSession();
		String prefic = session.getAttribute("uid").toString()+session.getAttribute("username").toString();
		int beginIndex = originalFilename.lastIndexOf(".");
		String suffix = "";
		if(beginIndex > 0) {
			suffix = originalFilename.substring(beginIndex);
		}
		String filename = prefic+suffix;
		File dest = new File(parent,filename);
		try {
			file.transferTo(dest);
		} catch (IllegalStateException e) {
			e.printStackTrace();
			throw new FileIllegalStateException("上传头像错误!存储头像文件时状态异常!");
		} catch (IOException e) {
			e.printStackTrace();
			throw new FileIOException("上传头像错误!读写文件时出现错误!");
		}
		Integer uid = getUidFromSession(session);
		String avatar = "/"+UPLOAD_DIR+"/"+filename;
		empService.changeAvatar(avatar,uid);
		return new ResponseResult<String>(SUCCESS,avatar);
	}
	
	@RequestMapping("/change_EmpInfo")
	public ResponseResult<Void> changeEmpInfo(Employees emp){
		empService.changeEmpInfo(emp);
		return new ResponseResult<Void>(SUCCESS);
	}
	
	@RequestMapping("/delete_Employees")
	public ResponseResult<Void> deleteEmployess(Integer uid){
		empService.deleteEmployeesByUid(uid);
		return new ResponseResult<Void>(SUCCESS);
	}
	
	@RequestMapping("/getOutEmp")
	public ResponseResult<Void> getOutEmp(Integer uid){
		empService.getOutEmp(uid);

@RestController
@RequestMapping("/drugCategory")
public class DrugCategoryController extends BaseController{
	@Autowired	//自动装配
	private IDrugCategoryService drugCategoryService;
	
	/**
	 * 添加数据。药品类别信息
	 * @param user
	 * @return	返回成功
	 */
	@RequestMapping("/addDrugCategory")
	public ResponseResult<Void> addDrugCategory(DrugCategory drugCategory) {
		drugCategoryService.addDrugCategory(drugCategory);
		return new ResponseResult<Void>(SUCCESS);
	}
	
	/**
	 * 查询药品类别数据,多条件查询
	 * @param drugCategory
	 * @return
	 * @throws JsonProcessingException 
	 */
	@RequestMapping("/selectDrugCategory")
	public ResponseResult<PaginationVO<DrugCategory>> selectDrugCategory(String categoryName,String pageNoStr,String pageSizeStr) throws JsonProcessingException {
		//获取参数
		long pageNo = 1;	//如果没有传数据,默认为第一页
@RequestMapping("/drug")
public class DrugController extends BaseController{
	@Autowired	//自动装配
	private IDrugService drugService;
	@Autowired //自动装配 
	private IDrugCategoryService drugCategoryService;
	
	/**
	 * 添加数据。药品类别信息
	 * @param user
	 * @return	返回成功
	 */
	@RequestMapping("/addDrug")
	public ResponseResult<Void> addDrug(Drug drug,HttpSession session) {
		String username = (String) session.getAttribute("username");
		drugService.addDrug(drug, username);
		return new ResponseResult<Void>(SUCCESS);
	}
	
	/**
	 * 为添加药品时,药品类别选择所设计
	 * @return
	 */
	@RequestMapping("/selectDrugCategory")
	public ResponseResult<List<DrugCategory>> selectDrugCategory(){
		List<DrugCategory> list = drugCategoryService.getfindByCategoryIdCategoryName();
		return new ResponseResult<List<DrugCategory>>(SUCCESS,list);
	}
	
	/**
	 * 查询药品数据(关联查询)药品类别表,后期改为多条件查询
	 * @param drugCategory
	 * @return
	 * @throws JsonProcessingException 
	 */
	@RequestMapping("/selectDrug")
	public ResponseResult<PaginationVO<DrugANDDrugCategory>> selectDrug(String drugName,String unit,String origin,Integer categoryId,String pageNoStr,String pageSizeStr) throws JsonProcessingException {
		//获取参数
		long pageNo = 1;	//如果没有传数据,默认为第一页
		if( pageNoStr != null && pageNoStr.trim().length()>0 ){
		}
		int pageSize = 1;	//如果没有传数据,默认为10条数据
		if( pageSizeStr != null && pageSizeStr.trim().length()>0 ){
			pageSize = Integer.parseInt(pageSizeStr);
		}
		long beginNo = (pageNo-1)*pageSize;
		
		Map<String ,Object> map = new HashMap<String ,Object>();
		map.put("beginNo", beginNo);
		map.put("pageSize", pageSize);
		map.put("storageTime", storageTime);
		map.put("drugName", drugName);
		map.put("customerId", getUidFromSession(session));
		PaginationVO<DrugSales> vo = drugSalesService.getSelectDrugSales(map);
		//解决前后端json遍历的时间问题(把vo换成jsonObj)
		JsonConfig jsonConfig = new JsonConfig();
		jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor());
		JSONObject jsonObj = JSONObject.fromObject(vo, jsonConfig);
		return new ResponseResult<JSONObject>(SUCCESS,jsonObj);
	}
	
	/**
	 * 查询数据,多条件查询,销售账单
	 * @param drugCategory
	 * @return
	 * @throws JsonProcessingException 
	 */
	@RequestMapping("/getselectDrugSales")
	public ResponseResult<JSONObject> getselectDrugSales
	(String drugName,String storageTime,String username,String pageNoStr,String pageSizeStr) 
			throws JsonProcessingException {
		//获取参数
		long pageNo = 1;	//如果没有传数据,默认为第一页
		if( pageNoStr != null && pageNoStr.trim().length()>0 ){
			pageNo = Long.parseLong(pageNoStr);
		}
		int pageSize = 1;	//如果没有传数据,默认为10条数据
		if( pageSizeStr != null && pageSizeStr.trim().length()>0 ){
			pageSize = Integer.parseInt(pageSizeStr);
		}
		long beginNo = (pageNo-1)*pageSize;
		
		Map<String ,Object> map = new HashMap<String ,Object>();
		map.put("beginNo", beginNo);
		map.put("pageSize", pageSize);
	}
}
package cn.tedu.drug.controller;

@RestController
@RequestMapping("/logOperation")
public class LogOperationController extends BaseController{
	@Autowired	//自动装配
	private ILogOperationService logOperationService;
	
	/**
	 * 查询日志数据,多条件查询
	 * @param drugCategory
	 * @return
	 * @throws JsonProcessingException 
	 */
	@RequestMapping("/selectLogOperation")
	public ResponseResult<JSONObject> selectDrugCategory
	(String category,String location,String time,String pageNoStr,String pageSizeStr) throws JsonProcessingException {
		//获取参数
		long pageNo = 1;	//如果没有传数据,默认为第一页
		if( pageNoStr != null && pageNoStr.trim().length()>0 ){
			pageNo = Long.parseLong(pageNoStr);
		}
		int pageSize = 1;	//如果没有传数据,默认为10条数据
	private IDrugService drugService;
	
	@RequestMapping("/excelDrug")
	public ResponseResult<Void> ExcelDrug(
			String drugName,String unit,String origin,Integer categoryId) {
		System.err.println(drugName+","+unit+","+origin+","+categoryId);
		String title="药品表";
		String[] rowName = new String[]{"药品名","药品类别","条形码","简称","规格","单位","产地","批准文号","进货价","销售价","库存","销售总量","药品备注"};
		
		Map<String ,Object> map = new HashMap<String ,Object>();
		map.put("drugName", drugName);
		map.put("unit", unit);
		map.put("origin", origin);
		map.put("categoryId", categoryId);
		List<DrugANDDrugCategory> drugs = drugService.findselectIsdelete(map);
		List<Object[]>  list = new ArrayList<Object[]>();
		String url="D:/药品数据表.xls";  
		Object[] objs = null;
		for (DrugANDDrugCategory drug : drugs) {
			System.err.println(drug);
			objs = new Object[rowName.length];
			objs[0] = drug.getDrugName();
			objs[1] = drug.getCategoryName();
			objs[2] = drug.getBarCode();
			objs[3] = drug.getReferred();
			objs[4] = drug.getSpecifications();
			objs[5] = drug.getUnit();
			objs[6] = drug.getOrigin();
		    objs[7] = drug.getApprovalNumber();
			objs[8] = drug.getPleasedTo();
			objs[9] = drug.getSalesPrice();
			objs[10] = drug.getInventory();
			objs[11] = drug.getTotalSales();
			objs[12] = drug.getDrugNote();
			list.add(objs);
		}
		try {
			ExcelFromInterface excelInterface=new ExcelFromServiceImpl();
			excelInterface.excel(title, rowName, list, url);
		} catch (Exception e) { }
		return new ResponseResult<Void>(SUCCESS);
	}
}
package cn.tedu.drug.controller;
	@Override
	public Integer modificationDrugStock(DrugStock drugStock) throws InsertException{
		Integer upd = updateDrugStock(drugStock);
		return upd;
	}
	
	/**
	 * 添加进货信息
	 */
	@Override
	public Integer addDrugStock(DrugStock drugStock , HttpSession session)throws InsertException,OnExistException{
		//先根据入库单据号查询数据库是否有这条数据
		String documentNo = drugStock.getDocumentNo();
		if(findBydocumentNo(documentNo) != 0){
			throw new OnExistException("入库单据号已存在!!!");
		}
		//因为前段穿过来的数据不完整,需要在后台补上完整的信息(是否删除,创建人,创建时间,修改人,修改时间)
		drugStock.setIsDelete(0);
		//创建人需要登入后在session中获取
		drugStock.setCreatedUser(session.getAttribute("username").toString());
		drugStock.setCreatedTime(new Date());
		drugStock.setModifiedUser(session.getAttribute("username").toString());
		drugStock.setModifiedTime(new Date());
		Integer upd = insertDrugStock(drugStock);
		return upd;
	}

	/**
	 * 查询进货表中所有的信息
	 */
	@Override
	public List<DrugStockFindAll> findDrugStock(Integer pageNoStr,Integer pageSizeStr,String documentNo) {
		List<DrugStockFindAll> drugStocks = findAll(pageNoStr,pageSizeStr,documentNo);
		Integer del = 1;
		List<DrugStockFindAll> allDrugStock = new ArrayList<>();
		for(DrugStockFindAll d : drugStocks){
			if(!del.equals(d.getIsDelete())){
				d.setIsDelete(null);
				allDrugStock.add(d);
			}
		}
		return allDrugStock;
	}

	/**
	 * 删除某条数据
	 */
	@Override
	public void deleteDrugStock(String ids,HttpSession session) {
		String[] id = ids.split(",");
		}
		
		
		
		return rr;
	}
}
package cn.tedu.drug.controller;

@RestController
@RequestMapping("/drug")
public class DrugController extends BaseController{
	@Autowired	//自动装配
	private IDrugService drugService;
	@Autowired //自动装配 
	private IDrugCategoryService drugCategoryService;
	
	/**
	 * 添加数据。药品类别信息
	 * @param user
	 * @return	返回成功
	 */
	@RequestMapping("/addDrug")
	public ResponseResult<Void> addDrug(Drug drug,HttpSession session) {
		String username = (String) session.getAttribute("username");
		drugService.addDrug(drug, username);
		return new ResponseResult<Void>(SUCCESS);
	}
	
	/**
	 * 为添加药品时,药品类别选择所设计
	 * @return
	 */
	@RequestMapping("/selectDrugCategory")
	public List<List<Map<Integer, String>>> findDrgEmpSupId() {
		List<List<Map<Integer, String>>> UAN = new ArrayList<List<Map<Integer, String>>>();
		List<Map<Integer, String>> drgId = new ArrayList<Map<Integer, String>>();
		List<Map<Integer, String>> supId = new ArrayList<Map<Integer, String>>();
		List<Map<Integer, String>> empId = new ArrayList<Map<Integer, String>>();
		Integer count = 1;
		
		List<Drug> drg = findDrgByUidUsername();
		for(Drug d : drg){
			if(!count.equals(d.getIsDelete())){
				Map<Integer, String> drgmap = new HashMap<Integer, String>();
				drgmap.put(d.getId(), d.getDrugName());
				drgId.add(drgmap);
			}
		}
		UAN.add(drgId);
		
		List<Supplier> sup = findSupByUidUsername();
		for(Supplier s : sup){
			if(!count.equals(s.getIsDelete())){
				Map<Integer, String> supmap = new HashMap<Integer, String>();
				supmap.put(s.getUid(), s.getUsername());
				supId.add(supmap);
			}
		}
		UAN.add(supId);
		
		List<Employees> emp = findEmpByUidUsername();
		for(Employees e : emp){
			if(!count.equals(e.getIsDelete())){
				Map<Integer, String> empmap = new HashMap<Integer, String>();
				empmap.put(e.getUid(), e.getUsername());
				empId.add(empmap);
			}
		}
		UAN.add(empId);
		return UAN;
	}
	
	/**
	 * 查询员工表uid,username
	 * @return
	 */
	private List<Employees> findEmpByUidUsername(){
		List<Employees> list = employees.findByUidUsername();
		return list;
	}
	
	public ResponseResult<JSONArray> findStockReturn(Integer pageNoStr,Integer pageSizeStr,String documentNo){
		List<StockReturn> allStockReturn = stockReturnService.findAll((pageNoStr-1)*pageSizeStr,pageSizeStr,documentNo);
		//解决前后端json遍历的时间问题(把vo换成jsonObj)
		JsonConfig jsonConfig = new JsonConfig();
		jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor());
		JSONArray jsonArr = JSONArray.fromObject(allStockReturn, jsonConfig);
		return new ResponseResult<JSONArray>(SUCCESS,jsonArr);
	}
	
	/**
	 * 添加退货信息
	 * @param stockReturn 退货信息
	 * @param session 获取登录的用户名
	 * @return 返回成功与否
	 */
	@PostMapping("/addstockreturn")
	public ResponseResult<Void> addStockReturn(StockReturn stockReturn,HttpSession session){
		System.err.println(stockReturn);
		stockReturnService.addStockReturn(stockReturn, session.getAttribute("username").toString());
		return new ResponseResult<>(SUCCESS);
	}
}
package cn.tedu.drug.service;

/**
 * 进货业务层接口
 *
 */
public interface IDrugStockService {
	
	/**
	 * 修改数据
	 * @param drugStock 需要修改的数据
	 * @return 返回受影响的行数
	 * @throws InsertException 数据操作异常
	 */
	Integer modificationDrugStock(DrugStock drugStock) throws InsertException;
	
	/**
	 * 删除某条数据
	 * @param ids 需要删除的id字符串
	 * @param session session获取登入名
	 */
	void deleteDrugStock(String ids,HttpSession session);
	
		map.put("email", email);
		map.put("pageSize", pageSize);
		PaginationVO<Supplier> vo = supplierService.getSelectSupplier(map);
		return new ResponseResult<PaginationVO<Supplier>>(SUCCESS,vo);
	}
	
	/**
	 * 查询供货商的数量
	 */
	@RequestMapping("/selectIdCount")
	public ResponseResult<Long> selectIdCount(){
		Long count = supplierService.getselectIdCount();
		return new ResponseResult<Long>(SUCCESS,count);
	}
	
	
	
}

package cn.tedu.drug.controller;

@RestController
@RequestMapping("/drugCategory")
public class DrugCategoryController extends BaseController{
	@Autowired	//自动装配
	private IDrugCategoryService drugCategoryService;
	
	/**
	 * 添加数据。药品类别信息
	(String category,String location,String time,String pageNoStr,String pageSizeStr) throws JsonProcessingException {
		//获取参数
		long pageNo = 1;	//如果没有传数据,默认为第一页
		if( pageNoStr != null && pageNoStr.trim().length()>0 ){
			pageNo = Long.parseLong(pageNoStr);
		}
		int pageSize = 1;	//如果没有传数据,默认为10条数据
		if( pageSizeStr != null && pageSizeStr.trim().length()>0 ){
			pageSize = Integer.parseInt(pageSizeStr);
		}
		long beginNo = (pageNo-1)*pageSize;
		
		Map<String ,Object> map = new HashMap<String ,Object>();
		map.put("beginNo", beginNo);
		map.put("pageSize", pageSize);
		map.put("category", category);
		map.put("location", location);
		map.put("time", time );
		PaginationVO<LogOperation> vo = logOperationService.getSelectLogOperation(map);
		//解决前后端json遍历的时间问题(把vo换成jsonObj)
		JsonConfig jsonConfig = new JsonConfig();
		jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor());
		JSONObject jsonObj = JSONObject.fromObject(vo, jsonConfig);
		return new ResponseResult<JSONObject>(SUCCESS,jsonObj);
	}
}
package cn.tedu.drug.controller;

	
	@RequestMapping("/getOutEmp")
	public ResponseResult<Void> getOutEmp(Integer uid){
		empService.getOutEmp(uid);
		return new ResponseResult<Void>(SUCCESS);
	} 
	
	@RequestMapping("/getByUsername")
	public ResponseResult<List<Employees>> getByUsername(String username){
		List<Employees> data = empService.getByUsername(username);
		return new ResponseResult<List<Employees>>(SUCCESS,data);
	}
	
	
	
	
	
	
	
	
	
	
	
}
package cn.tedu.drug.controller;

@RestController
@RequestMapping("/drugSales")
public class DrugSalesController extends BaseController{
	@Autowired	//自动装配
	private IDrugSalesService drugSalesService;
	 * @return
	 */
	protected final Integer getUidFromSession(HttpSession session) {
		return Integer.valueOf( session.getAttribute("uid").toString() );
	}
	
	/**
	 * 处理异常
	 * @param e
	 * @return
	 */
	@ExceptionHandler(ServiceException.class)
	public ResponseResult<Void> handleException(Throwable e){
		ResponseResult<Void> rr = new ResponseResult<Void>();
		rr.setMessage( e.getMessage() );
		if( e instanceof PhoneDuplicateException ) {
			rr.setState(400);	//400-电话冲突
		}else if(e instanceof EmailDuplicateException){
			rr.setState(401);	//401-邮箱冲突
		}else if(e instanceof OnExistException){
			rr.setState(402);	//402-入库单号冲突
		}else if(e instanceof CategoryNameDuplicateException){
			rr.setState(403);	//403-药品类别名称重复异常
		}else if(e instanceof UserNotFoundException){
			rr.setState(404);	//404-用户不存在异常
		}else if(e instanceof BarCodeDuplicateException){
			rr.setState(405);	//405-药品条形码重复异常
		}else if(e instanceof PhoneNotFoundException){
			rr.setState(406);	//手机号不存在异常
		}else if(e instanceof PasswordNotMatchException){
			rr.setState(407);	//密码不存在异常
		}else if(e instanceof YearMonthException){
			rr.setState(406);	//客户时间异常
		}else if(e instanceof SupplierNotFoundException){
			rr.setState(407);	//供货商不存在异常
		}else if(e instanceof PermissionsInsufficientException){
			rr.setState(406);	//员工权限不足异常
		}else if(e instanceof InventoryFoundException){
			rr.setState(407);	//库存不足异常
		}else if(e instanceof InventoryException){
			rr.setState(406);	//修改库存异常
		}else if(e instanceof ForeignKeyReferenceException){

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值