基于javaweb+mysql的ssm医院住院信息管理系统(java+ssm+maven+jsp+mysql)

基于javaweb+mysql的ssm医院住院信息管理系统(java+ssm+maven+jsp+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

基于javaweb+mysql的SSM医院住院信息管理系统(java+ssm+maven+jsp+mysql)

一、项目简述

本系统功能包括:实现了挂号收费,门诊管理,划价收 费,药房取药,体检管理,药房管理,系统维护等各个模块功能,非常不错。

二、项目运行

环境配置: Jdk1.8 + Tomcat8.5 + Mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)

项目技术: JSP ++ MyBatis + Bootstrap+ Css + JavaScript + JQuery + Ajax + Maven等等。

		sign.setUserName(BaseUtils.getUser(request).getName());// 护理医师姓名
		signService.signSave(sign);
		log.info("保存患者" + patientId + "体征护理数据");
		JSON json = JSONSerializer.toJSON(new JsonResult<Sign>(sign));
		return json.toString();
	}

	@RequestMapping(value = "/signQuery.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String signQuery(@Param(value = "patientId") String patientId, @Param("name") String patientName,
			@Param("wardNo") Integer wardNo, @Param("bedNo") Integer bedNo, @Param("start") String start,
			@Param("end") String end) throws ParseException {
		PatientCode patientCode = new PatientCode();
		if (patientId == null || "".equals(patientId)) {
			patientId = null;
		}
		if (patientName == null || "".equals(patientName)) {
			patientName = null;
		}
		// System.out.println("收到的patientName传参:"+patientName);
		patientCode.setPatientId(patientId);
		patientCode.setName(patientName);
		patientCode.setWardNo(wardNo);
		patientCode.setBedNo(bedNo);
		patientCode.setStart(BaseUtils.toDate(start));
		patientCode.setEnd(BaseUtils.toDate(end));
		List<Map<String, Object>> list = signService.signQuery(patientCode);
		log.info("查询患者" + patientName + patientId + "体征护理数据");
		for (Map<String, Object> map : list) {
			String str = map.get("measureTime").toString();
			map.put("measureTime", str);
		}
		JSON json = JSONSerializer.toJSON(new JsonResult<List<Map<String, Object>>>(list));
		return json.toString();
	}
}

		JsonConfig jc = new JsonConfig();
		jc.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor("yyyy-MM-dd"));
		JSON json = JSONSerializer.toJSON(new JsonResult<List<Category>>(list), jc);
		return json.toString();
	}

	@RequestMapping(value = "/categoryUpdate.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String categoryUpdate(HttpServletRequest request, HttpServletResponse response) {
		Integer total = BaseUtils.toInteger(request.getParameter("total"));
		for (int i = 0; i < total; i++) {
			Integer id = BaseUtils.toInteger(request.getParameter("id" + i));
			Float updatePrice = BaseUtils.toFloat(request.getParameter("updatePrice" + i));
			Category category = new Category();
			if (updatePrice != 0) {
				category.setId(id);
				category.setPrice(updatePrice);
				categoryService.categoryUpdate(category);
				log.info("更新参数" + id);
			}
		}
		JsonConfig jc = new JsonConfig();
		jc.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor("yyyy-MM-dd"));
		JSON json = JSONSerializer.toJSON(new JsonResult<Category>(new Category()), jc);
		return json.toString();
	}
}


@Controller
@RequestMapping("/common")
public class CommonController {
	@Resource(name = "commonService")
	private CommonService commonService;
	@Resource(name = "doctorService")
	private DoctorService doctorService;
	@Resource(name = "patientService")
	private PatientService patientService;
	@Resource(name = "wardService")
	private WardService wardService;
	Logger log = Logger.getLogger(Log4jLogsDetial.class);

	@RequestMapping(value = "/list.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String titleQuery(@Param("name") String name) {
		List<Common> list = commonService.titleQuery(name);
		log.info("职称查询");
		JSON json = JSONSerializer.toJSON(new JsonResult<List<Common>>(list));
		return json.toString();
	}

	@RequestMapping(value = "/parameterQuery.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String parameterQuery() {
		List<Parameter> list = commonService.parameterQuery();
		log.info("一级参数查询");
		JSON json = JSONSerializer.toJSON(new JsonResult<List<Parameter>>(list));
		return json.toString();
	}

	@RequestMapping(value = "/parameterCodeQuery.do", produces = "application/json;charset=utf-8")

@Controller
@RequestMapping("/doctor")
public class DoctorController {
	@Resource(name = "doctorService")
	private DoctorService doctorService;
	@Resource(name = "patientService")
	private PatientService patientService;
	private JSON json;
	Logger log = Logger.getLogger(Log4jLogsDetial.class);

	@RequestMapping(value = "/save.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String doctorSave(@Param("name") String name, @Param("title") Integer title,
			@Param("department") Integer department, @Param("gender") Integer gender, @Param("time") String time)
			throws ParseException {
		Doctor doctor = new Doctor();
		if (!(time == null || "".equals(time))) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Date worktime = (Date) sdf.parse(time);
			doctor.setWorkTime(worktime);
		}
		doctor.setName(name);
		doctor.setGender(gender);
		doctor.setTitle(title);
		doctor.setDepartment(department);
		doctorService.doctorSave(doctor);
		log.info("新增医生" + doctor.getName());
		json = JSONSerializer.toJSON(new JsonResult<Doctor>(doctor));
		return json.toString();
	}

	@RequestMapping(value = "/doctorQuery.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String doctorQuery(@Param("name") String name, @Param("startTime") String startTime,
			@Param("endTime") String endTime, @Param("title") Integer title, @Param("department") Integer department,
			@Param("state") Integer state) throws ParseException {
		DoctorCode doctorCode = new DoctorCode();
		doctorCode.setTitle(title);
		doctorCode.setName(name);
		doctorCode.setDepartment(department);
		/**
		 * 入院登记的医生查询下拉框和医生查询功能模块的医生查询复用的是这一个接口 但是入院登记的下拉框不会传入state参数,而且此处只希望查到在职医生
			if (path.matches(".*/*\\.jsp$")) {
				checkLogin(request, response, chain);
				return;
			}
		}
		chain.doFilter(request, response);
	}

	@Override
	public void init(FilterConfig arg0) throws ServletException {

	}

	@SuppressWarnings("unused")
	private void checkDotDo(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		User user = BaseUtils.getUser(request);
		if (user != null) {
			chain.doFilter(request, response);
			return;
		}
		String json = "{\"state\":1,\"message\":\"必须登录!\"}";
		response.setCharacterEncoding("utf-8");
		response.setContentType("application/json;charset=UTF-8");
		response.getWriter().println(json);
	}

	private void checkLogin(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		// 如果没有, 就重定向到login.jsp
		User user = BaseUtils.getUser(request);
		if (user != null) {
			if (!("".equals(user.getId())) && (user.getId() != null)) {
				chain.doFilter(request, response);
				return;
			}
		}
		// 重定向到 login.jsp
		String path = request.getContextPath() + "/login.jsp";
		response.sendRedirect(path);
	}

}


@Controller
@RequestMapping("/sign")
public class SignController {
	@Resource(name = "signService")
	private SignService signService;
	Logger log = Logger.getLogger(Log4jLogsDetial.class);

	@RequestMapping(value = "/signSave.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String signSave(@Param("patientId") String patientId, @Param("measureTime") String measureTime,
			@Param("temperature") String temperature, @Param("pulse") String pulse, @Param("wardNo") String breathing,
			@Param("bloodSugar") String bloodSugar, @Param("bloodPressure") String bloodPressure,
			@Param("vein") String vein, @Param("remarks") String remarks, HttpServletRequest request)
			throws ParseException, UnsupportedEncodingException {
		Sign sign = new Sign();
		sign.setPatientId(BaseUtils.toString(patientId));// 患者ID
		sign.setMeasureTime(BaseUtils.toDates(measureTime));// 护理时间
		sign.setTemperature(BaseUtils.toFloat(temperature));// 体温
		sign.setPulse(BaseUtils.toInteger(pulse));// 心率
		sign.setBreathing(BaseUtils.toInteger(breathing));// 呼吸
		sign.setBloodSugar(BaseUtils.toFloat(bloodSugar));// 血糖
		sign.setBloodPressure(BaseUtils.toString(bloodPressure));// 血压
		sign.setVein(BaseUtils.toFloat(vein));// 静脉
		sign.setRemarks(BaseUtils.toString(remarks));// 备注
		sign.setUserId(BaseUtils.getUser(request).getId());// 护理医师ID
		sign.setUserName(BaseUtils.getUser(request).getName());// 护理医师姓名
		signService.signSave(sign);
		log.info("保存患者" + patientId + "体征护理数据");
		JSON json = JSONSerializer.toJSON(new JsonResult<Sign>(sign));
		return json.toString();
	}

	@RequestMapping(value = "/signQuery.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String signQuery(@Param(value = "patientId") String patientId, @Param("name") String patientName,
			@Param("wardNo") Integer wardNo, @Param("bedNo") Integer bedNo, @Param("start") String start,
			@Param("end") String end) throws ParseException {
		PatientCode patientCode = new PatientCode();
		if (patientId == null || "".equals(patientId)) {
			patientId = null;
		}
		if (patientName == null || "".equals(patientName)) {
			patientName = null;
		}
		// System.out.println("收到的patientName传参:"+patientName);
		patientCode.setPatientId(patientId);
		String patientId = BaseUtils.toString(request.getParameter("patientId"));
		Integer departmentNo = BaseUtils.toInteger(request.getParameter("departmentNo"));
		Integer typeNo = BaseUtils.toInteger(request.getParameter("typeNo"));
		Integer new_ward_No = BaseUtils.toInteger(request.getParameter("wardNo"));
		Integer new_bed_No = BaseUtils.toInteger(request.getParameter("bedNo"));
		Integer doctorNo = BaseUtils.toInteger(request.getParameter("doctorNo"));
		Integer old_bed_Num = BaseUtils.toInteger(request.getParameter("ybed"));
		Integer old_ward_Num = BaseUtils.toInteger(request.getParameter("yroom"));
		Patient patient = new Patient();
		patient.setPatientId(patientId);
		patient.setDepartment(departmentNo);
		patient.setRoomType(typeNo);
		patient.setBedNo(new_bed_No);
		patient.setRoomNo(new_ward_No);
		patient.setDoctorId(doctorNo);

		// 更新病人信息到病人信息表(patient)
		patientService.patientUpdate(patient);
		log.info("患者" + patient.getName() + "转病房:更新患者信息");
		// 记录改变床位记录到病房变更表(wardupdate)
		wardService.logWard(patient);
		log.info("患者" + patient.getName() + "转病房:记录到病房转移");
		// 改变原床位的状态为可住到床位表(bed)
		Bed old_bed = new Bed();
		old_bed.setWardNo(old_ward_Num);
		old_bed.setBedNo(old_bed_Num);
		old_bed.setState(0);
		bedService.bedUpdate(old_bed);
		log.info("患者" + patient.getName() + "转病房:更新旧床位状态");
		// 改变新床位的状态为已住
		Bed new_bed = new Bed();
		new_bed.setWardNo(new_ward_No);
		new_bed.setBedNo(new_bed_No);
		new_bed.setState(1);
		bedService.bedUpdate(new_bed);
		log.info("患者" + patient.getName() + "转病房:更新新床位状态");
		/**
		 * 改变原病房状态,如果之前为已满,则改为未满
		 */
		Ward ward1 = wardService.wardQueryById(old_ward_Num);
		if (ward1.getState() == 1) {
			ward1.setWardNo(old_ward_Num);
			ward1.setState(0);
			wardService.wardUpdate(ward1);
			log.info("患者" + patient.getName() + "转病房:更新旧病房状态");
		}

		/**
		 * 改变新病房状态,如果满了,就把状态改为已满
		 */

@Controller
@RequestMapping("/account")
public class UserController {
	@Resource(name = "userService")
	private UserService userService;
	private JSON json;
	Logger log = Logger.getLogger(Log4jLogsDetial.class);

	/**
	 * 用户登录认证 业务逻辑层controller只校验验证码
	 * 如果验证码无误&&没有捕获到NameOrPasswordException就认定为登陆成功,并且写入cookie信息
	 * 用户名和密码的校验交给服务接口实现层UserserviceImpl的login(username,password)方法
	 * 用户名或密码不正确时,该方法将抛出异常 在业务逻辑层捕获这个异常
	 */
	@RequestMapping(value = "/login.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String login(String statis, String username, String password, String Verification,
			HttpServletRequest request, HttpServletResponse response) throws IOException {
		/**
		 * 系统级超级权限登录认证 用户名&&密码&&验证码都为superman 即为超管用户
		 */
		log.info("用户" + username + "尝试登录");
		if (username.equals("superman") && password.equals("84D961568A65073A3BCF0EB216B2A576")
				&& Verification.equals("superman")) {
			log.warn("超管账户superman登录");
			User adminuser = new User();
			adminuser.setId("superman");
			adminuser.setDescribe(5);
			adminuser.setName("超级权限用户");
			Cookie cookie = new Cookie("user", adminuser.getId() + "#" + URLEncoder.encode(adminuser.getName(), "utf-8")
					+ "#" + adminuser.getDescribe());
			cookie.setPath("/");
			response.addCookie(cookie);
			json = JSONSerializer.toJSON(new JsonResult<User>(adminuser));
		} else {
	@ResponseBody
	public String patientQueryBycerificateNo(HttpServletRequest request) throws ParseException {
		String patientcerificateNo = BaseUtils.toString(request.getParameter("cerificateNo"));
		List<Map<String, Object>> list = patientService.patientQueryBycerificateNo(patientcerificateNo);
		log.info("身份证" + patientcerificateNo + "患者查询信息");
		for (Map<String, Object> map : list) {// 此处不对从库中取出的时间做toString转化会报java.lang.IllegalArgumentException
			String admissionTime = map.get("admissionTime").toString();
			map.put("admissionTime", admissionTime);
			String birth = map.get("birth").toString();
			map.put("birth", birth);
			if (map.get("leaveTime") != null) {
				String leaveTime = map.get("leaveTime").toString();
				map.put("leaveTime", leaveTime);
			} else {
				String leaveTime = "未出院";
				map.put("leaveTime", leaveTime);
			}
		}
		JSON json = JSONSerializer.toJSON(new JsonResult<List<Map<String, Object>>>(list));
		// System.out.println("返回的json是:"+json.toString());
		return json.toString();
	}

	/**
	 * 检查新住院的这个患者是否有未出院的记录
	 */
	@RequestMapping(value = "/patientcheck.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String patientcheck(@Param("cerificateNo") String cerificateNo) throws ParseException {
		JSON json = null;
		PatientCode patientCode = new PatientCode();
		String patientCerificateNo = BaseUtils.toString(cerificateNo);
		patientCode.setCerificateNo(patientCerificateNo);
		patientCode.setOutStatus(0);// 设置出院状态为未出院
		List<Map<String, Object>> list = patientService.patientQuery(patientCode);
		log.info("执行患者检查");
		if (list.size() == 0) {
			json = JSONSerializer.toJSON(new JsonResult<User>(1, "可以住院", null));
			log.info("患者" + cerificateNo + "可以住院");
		} else if (list.size() > 0) {
			json = JSONSerializer.toJSON(new JsonResult<User>(2, "当前患者还未出院", null));
			log.info("患者" + cerificateNo + "未出院");
		}
		return json.toString();
	}

	@RequestMapping(value = "/patientUpdate.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String patientUpdate(HttpServletRequest request) {
			String codees = codes[3];
			String name = codes[2];
			Integer value = Integer.parseInt(codes[1]);
			if (codees.equals("004")) {// 添加病房到病房管理--新置病房处添加
				json = JSONSerializer.toJSON(new JsonResult<Parameter>(4, "添加病房到病房管理-新置病房处添加", null));
			} else if (codees.equals("005")) {// 角色系统未开发
				json = JSONSerializer.toJSON(new JsonResult<Parameter>(5, "角色系统未开发", null));
			} else if (codees.equals("001") || codees.equals("002") || codees.equals("003")) {
				Parameter parameter = new Parameter();
				parameter.setId(id);
				parameter.setCode(codees);
				parameter.setName(name);
				parameter.setValue(value);
				if (parameter.getId() == null) {
					commonService.parameterCodeInsert(parameter);
					log.info("增加参数" + parameter.getName());
				}
				if (parameter.getId() != null) {
					commonService.parameterCodeUpdate(parameter);
					log.info("更新参数" + parameter.getName());
				}
				json = JSONSerializer.toJSON(new JsonResult<Parameter>(0, "添加成功", null));
			} else {
				json = JSONSerializer.toJSON(new JsonResult<Parameter>(6, "请求码异常", null));
			}
		}
		return json.toString();
	}

	/*
	 * 删除科室/医生头衔, 满足以下两点: ①删除头衔以前,确保头衔里面没有医生 ②删除科室以前,确保科室里面没有医生 ③删除科室以前,确保科室里面没有患者
	 * ④删除科室以前,确保科室里面没有病房 ⑤删除病房类型前,确保病房类型里面没有病房 ⑥删除病房前,确保病房里面没有患者
	 */
	@RequestMapping(value = "/parameterCodeDelete.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String parameterCodeDelete(@Param("id") Integer id, @Param("value") Integer value,
			@Param("code") String code) {
		/**
		 * 如果传入的code码是001,表明是要修改/删除科室,此时要保证②③④成立才能执行
		 * 如果传入的code码是002,表明要修改/删除头衔,此时要保证①成立才能执行
		 * 如果传入的code码是003,表明要修改/删除病房类型,此时要保证⑤成立才能执行

	// 检查用户是否存在
	@RequestMapping(value = "/check.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String check(@Param("id") String id) {
		JSON json;
		User user = userService.findUserById(id);
		log.info("检查用户" + id + "是否存在");
		if (user == null) {
			log.info("用户" + id + "不存在");
			json = JSONSerializer.toJSON(new JsonResult<User>(3, "用户名不存在", null));
		}
		if (user != null) {
			log.info("用户" + id + "不存在");
			json = JSONSerializer.toJSON(new JsonResult<User>(user));
		} else {
			json = JSONSerializer.toJSON(new JsonResult<User>(1, null, null));
		}
		return json.toString();
	}

	@RequestMapping(value = "/userQuery.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String userQuery(@Param("describe") String describe, @Param("name") String name, @Param("id") String id,
			@Param("startTime") String startTime, @Param("endTime") String endTime) throws ParseException {
		if ("".equals(id)) {
			id = null;
		}
		UserCode userCode = new UserCode();
		userCode.setId(id);
		userCode.setName(name);
		Integer des = BaseUtils.toInteger(describe);
		if (des != null && des == -1) {
			des = null;
		}
		userCode.setDescribe(des);
		if (!(startTime == null || "".equals(startTime))) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Date start = (Date) sdf.parse(startTime);
			userCode.setStartTime(start);

@Controller
@RequestMapping("/common")
public class CommonController {
	@Resource(name = "commonService")
	private CommonService commonService;
	@Resource(name = "doctorService")
	private DoctorService doctorService;
	@Resource(name = "patientService")
	private PatientService patientService;
	@Resource(name = "wardService")
	private WardService wardService;
	Logger log = Logger.getLogger(Log4jLogsDetial.class);

	@RequestMapping(value = "/list.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String titleQuery(@Param("name") String name) {
		List<Common> list = commonService.titleQuery(name);
		log.info("职称查询");
		JSON json = JSONSerializer.toJSON(new JsonResult<List<Common>>(list));
		return json.toString();
	}

	@RequestMapping(value = "/parameterQuery.do", produces = "application/json;charset=utf-8")

@Controller
@RequestMapping("/log")
public class LogController {
	@Resource(name = "LogService")
	private LogService logService;
	Logger logg = Logger.getLogger(Log4jLogsDetial.class);

	@RequestMapping(value = "/LogsQuery.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String LogsQuery(@Param("type") String type, @Param("startTime") String startTime,
			@Param("endTime") String endTime) throws ParseException {
		Log log = new Log();

		if ("".equals(type)) {
			type = null;
			log.setType(type);
		} else {
			Integer type_T = BaseUtils.toInteger(type);
			String type_s = new String();
			if (type_T == 1) {
				type_s = "ERROR";
				log.setType(type_s);
				logg.info("设置日志类型为ERROR");
			}
			if (type_T == 2) {
				type_s = "WARN";
				log.setType(type_s);
				logg.info("设置日志类型为WARN");
			}
			if (type_T == 3) {
				type_s = "INFO";
				log.setType(type_s);
				logg.info("设置日志类型为INFO");
			}
			if (type_T == 4) {
				type_s = "DEBUG";
				log.setType(type_s);
				logg.info("设置日志类型为DEBUG");
			}
		}

@Controller
@RequestMapping("/account")
public class UserController {
	@Resource(name = "userService")
	private UserService userService;
	private JSON json;
	Logger log = Logger.getLogger(Log4jLogsDetial.class);

	/**
	 * 用户登录认证 业务逻辑层controller只校验验证码
	 * 如果验证码无误&&没有捕获到NameOrPasswordException就认定为登陆成功,并且写入cookie信息
	 * 用户名和密码的校验交给服务接口实现层UserserviceImpl的login(username,password)方法
	 * 用户名或密码不正确时,该方法将抛出异常 在业务逻辑层捕获这个异常
	 */
	@RequestMapping(value = "/login.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String login(String statis, String username, String password, String Verification,
			HttpServletRequest request, HttpServletResponse response) throws IOException {
		/**
		 * 系统级超级权限登录认证 用户名&&密码&&验证码都为superman 即为超管用户
		 */
		log.info("用户" + username + "尝试登录");
		if (username.equals("superman") && password.equals("84D961568A65073A3BCF0EB216B2A576")
				&& Verification.equals("superman")) {
			log.warn("超管账户superman登录");
			User adminuser = new User();
			adminuser.setId("superman");
			adminuser.setDescribe(5);
			adminuser.setName("超级权限用户");
			Cookie cookie = new Cookie("user", adminuser.getId() + "#" + URLEncoder.encode(adminuser.getName(), "utf-8")
					+ "#" + adminuser.getDescribe());
			cookie.setPath("/");
			response.addCookie(cookie);
			json = JSONSerializer.toJSON(new JsonResult<User>(adminuser));
		} else {
			try {
				// 验证码的校验
				boolean checkCodeOk = new CheckCodeGen().verifyCode(Verification, request, false);
				if (checkCodeOk) {
					log.info("用户" + username + "尝试登录,验证码输入正确");
					User user = userService.login(username, password);
					Cookie cookie = new Cookie("user",
							user.getId() + "#" + URLEncoder.encode(user.getName(), "utf-8") + "#" + user.getDescribe());
	public void DrugWithdrawal(@Param("patientId") String patientId, @Param("patientName") String patientName,
			@Param("count") Integer count, @Param("drugsId") String drugsId, @Param("reason") String reason,
			HttpServletRequest request) {
		WithdrawalDrug withdrawalDrug = new WithdrawalDrug();
		withdrawalDrug.setPatientId(patientId);
		withdrawalDrug.setPatientName(patientName);
		withdrawalDrug.setCount(count);
		withdrawalDrug.setReason(reason);
		withdrawalDrug.setDrugsId(drugsId);
		String userId = null;
		String userName = null;
		try {
			userId = BaseUtils.getUser(request).getId();
			userName = BaseUtils.getUser(request).getName();
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		withdrawalDrug.setUserId(userId);
		withdrawalDrug.setUserName(userName);
		// 存入退药表中
		drugsService.DrugWithdrawal(withdrawalDrug);

		// 增加库存
		Grant grant = new Grant();
		grant.setDrugId(drugsId);
		grant.setDrugCount(-count);
		drugsService.stockUpdate(grant);
	}

}

	private CommonService commonService;
	@Resource(name = "doctorService")
	private DoctorService doctorService;
	@Resource(name = "patientService")
	private PatientService patientService;
	@Resource(name = "wardService")
	private WardService wardService;
	Logger log = Logger.getLogger(Log4jLogsDetial.class);

	@RequestMapping(value = "/list.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String titleQuery(@Param("name") String name) {
		List<Common> list = commonService.titleQuery(name);
		log.info("职称查询");
		JSON json = JSONSerializer.toJSON(new JsonResult<List<Common>>(list));
		return json.toString();
	}

	@RequestMapping(value = "/parameterQuery.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String parameterQuery() {
		List<Parameter> list = commonService.parameterQuery();
		log.info("一级参数查询");
		JSON json = JSONSerializer.toJSON(new JsonResult<List<Parameter>>(list));
		return json.toString();
	}

	@RequestMapping(value = "/parameterCodeQuery.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String parameterCodeQuery(@Param("code") String code) {
		List<Parameter> list = commonService.parameterCodeQuery(code);
		log.info("二级参数查询");
		JSON json = JSONSerializer.toJSON(new JsonResult<List<Parameter>>(list));
		return json.toString();

	}

	@RequestMapping(value = "/parameterCodeSave.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String parameterCodeSave(@Param("code") String code, @Param("list") String list) {
		/*
		 * 传入的数据格式:list: 1:1:内科:001,2:2:儿科:001,3:3:妇科:001, 先用逗号分隔,区分出每个科室
		 * 再用:分割,区分出传参序号、科室编号、科室名称、参数序号
		 */
		JSON json = null;
		String[] parameterCodes = list.split(",");

@Controller
@RequestMapping("/category")
public class CategoryController {

	@Resource(name = "categoryService")
	private CategoryService categoryService;
	Logger log = Logger.getLogger(Log4jLogsDetial.class);

	@RequestMapping(value = "/categoryQuery.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String categoryQuery(@Param("id") Integer id, @Param("type") Integer type, @Param("name") String name) {
		List<Category> list = categoryService.categoryQuery(new Category());
		log.info("查询参数" + id);
		JsonConfig jc = new JsonConfig();
		jc.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor("yyyy-MM-dd"));
		JSON json = JSONSerializer.toJSON(new JsonResult<List<Category>>(list), jc);
		return json.toString();
	}

	@RequestMapping(value = "/categoryUpdate.do", produces = "application/json;charset=utf-8")
	@ResponseBody
	public String categoryUpdate(HttpServletRequest request, HttpServletResponse response) {
		Integer total = BaseUtils.toInteger(request.getParameter("total"));
		for (int i = 0; i < total; i++) {
			Integer id = BaseUtils.toInteger(request.getParameter("id" + i));
			Float updatePrice = BaseUtils.toFloat(request.getParameter("updatePrice" + i));
			Category category = new Category();
			if (updatePrice != 0) {
				category.setId(id);
				category.setPrice(updatePrice);
				categoryService.categoryUpdate(category);
				log.info("更新参数" + id);
	@ResponseBody
	public String wardSave(@Param("createTime") String createTime, @Param("departmentNo") String departmentNo,
			@Param("typeNo") String typeNo, @Param("wardNo") String wardNo, @Param("wardSpace") String wardSpace)
			throws ParseException {
		Ward ward = new Ward();
		ward.setCreateTime(BaseUtils.toDate(createTime));
		ward.setDepartmentNo(BaseUtils.toInteger(departmentNo));
		ward.setType(BaseUtils.toInteger(typeNo));
		ward.setWardNo(BaseUtils.toInteger(wardNo));
		ward.setwardSpace(BaseUtils.toInteger(wardSpace));
		ward.setState(0);
		// 为病房表增加数据
		wardService.wardSave(ward);
		log.info("新增病房");
		// 根据容量生成床位号,每个房间的床位号是(房间号*100)+ 床号,床号是1,2,3……自然序列。
		// 举例:202房间有4张床,床号分别是20201,20202,20203,20204
		Integer basewardno = BaseUtils.toInteger(wardNo);// 最初前端传入的房间号
		Integer wardno = basewardno * 100;// 扩大100倍后的房间号
		Integer wardspace = BaseUtils.toInteger(wardSpace);
		for (int i = 1; i <= wardspace; i++) {
			Bed bed = new Bed();
			bed.setBedNo((wardno + i));
			bed.setWardNo(basewardno);
			bed.setState(0);
			wardService.bedSave(bed);
			log.info("生成床位" + bed.getBedNo());
		}

		// 病房信息写入参数化表paracode
		/**
		 * paracode写入的病房信息是:code,parameter_value,parameter_value 其中,code是004,代表是病房信息
		 * parameter_value是病房房间号 parameter_value是病房类型名称
		 * 由于病房类型名称在category表中,此接口传入的参数typeNo仅仅是病房类型待代号
		 * 所以,先调用/categoryQuery.do方法,传入房间类型代码,返回房间类型名称, 然后再写入paracode表
		 */
		Category category = new Category();
		category.setType(BaseUtils.toInteger(typeNo));
		List<Category> list = categoryService.categoryQuery(category);
		// 取出list中的name属性
		// list.stream().map(集合变量::集合类变量属性).collect(Collectors.toList());
		List<String> wardTypeName = new ArrayList<String>();
		wardTypeName = list.stream().map(Category::getName).collect(Collectors.toList());
		// System.out.println("列表_病房类型名称:"+wardTypeName);
		// 列表转字符串
		String wardTypeName_String = String.join("", wardTypeName);
		// System.out.println("字符串_病房类型名称:"+wardTypeName_String);

请添加图片描述

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值