基于javaweb+mysql的ssm+maven企业oa管理系统(java+ssm+html+layui+bootstrap+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SSM+Maven企业oa管理系统(java+ssm+html+layui+bootstrap+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.数据库:MySql 5.7版本; 6.是否Maven项目:是;
技术栈
- 后端:Spring+SpringMVC+Mybatis 2. 前端:HTML+CSS+JavaScript+LayUI+jquery+bootstrap
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中dbconfig.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ssm_esms_oa 登录 注:tomcat中需配置路径为/ssm_esms_oa,否则会有异常 管理员账号/密码:admin/admin 用户账号/密码:18080833/123456
/**
* 更新
* @param id
* @param p_name
* @param p_duty
* @param p_post_pay
* @throws Exception
*/
@RequestMapping("/updateByPrimaryKey.do")
@ResponseBody
public int updateByPrimaryKey(int id, String p_name, String p_duty, Double p_post_pay) throws Exception {
Position position = positionService.findByDname(p_name);
System.out.println(p_name);
System.out.println(position);
System.out.println(position != null && !position.getpName().equals(p_name));
//有同名的且不是同一个
if(position != null && !position.getpId().equals(id) ) {
return position.getpId();
} else {
Position p = new Position();
p.setpId(id);
p.setpName(p_name);
p.setpDuty(p_duty);
p.setpPostPay(p_post_pay);
p.setpIsdel(null);
positionService.updateByPrimaryKeySelective(p);
return 0;
}
}
/**
* 根据名称查找
* @param p_name
* @return
*/
@RequestMapping("/findByDname.do")
@ResponseBody
public int findByDname(String p_name) {
Position position = positionService.findByDname(p_name);
if(position != null) {
return position.getpId();
} else {
return 0;
}
}
RankBonus rb= new RankBonus();
rb.setRankName(name);
rb.setRbBonus(bonus);
service.addRankBonus(rb);
return "ok";
}
else{
return "no";
}
}
//查询出所有记录
@RequestMapping("/findAll.do")
public String doFindAll(@RequestParam(value="pn",defaultValue = "1") Integer pn, Model model){
// 引入PageHelper分页插件
// 在查询之前只需要调用,传入页码,以及每页的大小
int pageSize = 10;
PageHelper.startPage(pn, pageSize);
// startPage后面紧跟的这个查询就是一个分页查询
List<RankBonus> rbs = service.findAll();
System.out.println(rbs+"=================================");
/*for (RankBonus rb:rbs) {
System.out.println(rb.getRankName());
}*/
// 使用pageInfo包装查询后的结果,只需要将pageInfo交给页面就行了。
// 封装了详细的分页信息,包括有我们查询出来的数据,传入连续显示的页数
PageInfo page = new PageInfo(rbs, 5);
//ModelAndView modelAndView = new ModelAndView();
// modelAndView.setViewName("admin/rank-list.jsp");
// modelAndView.addObject("pageInfo",page);
model.addAttribute("pageInfo", page);
return "admin/rank-list.jsp";
}
@RequestMapping("/findRankBonusList.do")
@ResponseBody
public RankBonusPages findSelective(
@RequestParam(value="page", defaultValue="1")int pageNum,
@RequestParam(value="limit", defaultValue="10") int limit,
@RequestParam(value="rb_name", defaultValue="") String rb_name) throws Exception {
/*return rb_name;*/
List<RankBonus> list;
//模糊查询,有多少个条件就接收多少个字段
RankBonus rb = new RankBonus();
rb.setRankName(rb_name);
//pageNum:起始页面 pageSize:每页的大小
PageHelper.startPage(pageNum,limit);
//查找条件,一定要紧跟在startPage后
list = service.findSelective(rb);
PageInfo pageResult = new PageInfo(list);
public class LoginController {
@Autowired
private LoginServiceImpl loginService = null;
/**
* @Description:
* @Param: [request, response]
* @Return: void
**/
@RequestMapping(value = "/changeCode.do")
@ResponseBody
public void getIdentifyingCode(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
// 验证码存储在session的identifyingCode,属性中
CaptchaUtil.outputCaptcha(request, response);
}
// 获取员工登陆界面
@RequestMapping("/")
public String getLoginPage(){
return "employee/login.html";
}
// 获取管理员登陆界面
@RequestMapping("/admin.do")
public String getAdminLoginPage(){
return "admin/adminLogin.html";
}
@RequestMapping(value = "/employeeLogin.do")
@ResponseBody
public Map<String,String> employeeLogin(Model model, HttpSession httpSession, String username,
String password, String identifyingcode)
{
String code = (String) httpSession.getAttribute("identifyingCode");
HashMap<String, String> map = new HashMap<String, String>();
if(identifyingcode.equalsIgnoreCase(code)){
Employee employee = null;
try {
employee = loginService.findEmployeeByIdAndPassword(username, password);
} catch (CustomException e) {
map.put("msg",e.getMessage());
map.put("status","500");
return map;
}
// 保存到session
httpSession.setAttribute("employeeId",employee.geteId());
map.put("url","/ssm_esms_oa/loginSuccess.do");
map.put("msg","成功");
/**
* @Description: 管理员和员工登陆控制
**/
@Controller
public class LoginController {
@Autowired
private LoginServiceImpl loginService = null;
/**
* @Description:
* @Param: [request, response]
* @Return: void
**/
@RequestMapping(value = "/changeCode.do")
@ResponseBody
public void getIdentifyingCode(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
// 验证码存储在session的identifyingCode,属性中
CaptchaUtil.outputCaptcha(request, response);
}
// 获取员工登陆界面
@RequestMapping("/")
public String getLoginPage(){
return "employee/login.html";
}
// 获取管理员登陆界面
@RequestMapping("/admin.do")
public String getAdminLoginPage(){
@RequestMapping("/findByDname.do")
@ResponseBody
public int findByDname(String p_name) {
Position position = positionService.findByDname(p_name);
if(position != null) {
return position.getpId();
} else {
return 0;
}
}
/**
* 删除一个
* @param id
* @throws Exception
*/
@RequestMapping("/deleteByPrimaryKey.do")
@ResponseBody
public int deleteByPrimaryKey(int id) throws Exception {
//删除部门,调用更新操作,将状态改为0
Position position = new Position();
position.setpId(id);
positionService.deleteByPrimaryKey(id);
return 1;
}
/**
* 批量删除
* @param ids
*/
@RequestMapping("/deleteByQuery.do")
public void deleteByQuery (@RequestParam(value = "arr")int[] ids) {
//批量删除,实则修改状态为0
//如果有id才执行
if(ids.length > 0) {
positionService.deleteByQuery(ids);
}
}
}
String newPassword = MD5Utils.encodeByMD5(newPassword1);
admin.setSmPassword(newPassword);
userInforService.updateSystemManagePassword(admin.getSmId(),admin);
map.put("status","1");
map.put("msg","密码修改成功");
return map;
}else{
map.put("status","2");
map.put("msg","原密码错误");
return map;
}
}else{
map.put("status","0");
map.put("msg","两次密码不一致");
return map;
}
}
@RequestMapping("changeEmployeePassword.do")
@ResponseBody
public Map<String, String> changeEmployeePassword(String oldPassword, String newPassword1,
String newPassword2, HttpSession httpSession){
System.out.println(oldPassword+" "+newPassword1+" "+newPassword2);
HashMap<String, String> map = new HashMap<String, String>();
if (newPassword1.equals(newPassword2)){
Integer eid = (Integer) httpSession.getAttribute("employeeId");
try {
userInforService.updateEmployeePassword(eid, oldPassword, newPassword1);
map.put("status","1");
map.put("msg","密码修改成功");
return map;
} catch (CustomException e) {
map.put("status","2");
map.put("msg","原密码错误");
return map;
}
}else{
map.put("status","0");
map.put("msg","两次密码不一致");
return map;
}
}
@RequestMapping("inforEmployee.do")
public @ResponseBody EmployeeCustomVo getInforEmployee(HttpSession httpSession){
Integer id = (Integer) httpSession.getAttribute("employeeId");
EmployeeCustomVo employeeCustomVo = userInforService.getInforEmployee(id);
return employeeCustomVo;
}
@RequestMapping("updateInforEmployee.do")
public @ResponseBody String updateInforEmployee(HttpSession httpSession, Employee employee){
if(ids.length > 0) {
monthlyAttendanceService.deleteByQuery(ids);
}
return 1;
}
@RequestMapping("/findEmployeeAttendance.do")
@ResponseBody
public EmployeeMonthlyAttendancePages findEmployeeAttendance(
@RequestParam(value="page", defaultValue="1")int pageNum,
@RequestParam(value="limit", defaultValue="5") int limit,
@RequestParam(value="attendance_time", defaultValue="") String attendance_time,
HttpSession httpSession) throws Exception {
Integer id = (Integer) httpSession.getAttribute("employeeId");
//pageNum:起始页面 pageSize:每页的大小
PageHelper.startPage(pageNum,limit);
//查找条件,一定要紧跟在startPage后
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("e_id",id);
map.put("attendance_time",attendance_time);
List<MonthlyAttendance> list = monthlyAttendanceMapper.selectMonthlyAttendanceMapperByeEidAndTime(map);
PageInfo pageResult = new PageInfo(list);
//设置前台需要的数据
EmployeeMonthlyAttendancePages employeeMonthlyAttendancePages = new EmployeeMonthlyAttendancePages();
employeeMonthlyAttendancePages.setCode(0);
employeeMonthlyAttendancePages.setMsg("");
employeeMonthlyAttendancePages.setCount((int) pageResult.getTotal());
employeeMonthlyAttendancePages.setData(pageResult.getList());
return employeeMonthlyAttendancePages;
}
}
/**
* @Description: 图表制作类
/**
* 查找一个
* @param id
* @return
*/
@RequestMapping("/selectVoByPrimaryKey.do")
@ResponseBody
public EmployeeCustomVo selectVoByPrimaryKey(int id) {
EmployeeCustomVo monthlyAttendanceCustomVo = new EmployeeCustomVo();
monthlyAttendanceCustomVo = employeeCustomVoMapper.selectVoByPrimaryKey(id);
// System.out.println(monthlyAttendanceCustomVo+"=======================");
return monthlyAttendanceCustomVo;
}
@RequestMapping("/add.do")
@ResponseBody
public int add(String eAccount,
String eName,
String ePassword,
String eIdcard,
int rbId,
String eSex,
String eBirthday,
String eDagree,
int dId,
int pId,
String eEntryTime,
double eBasePay,
String ePhone,
String eEmail,
String eUrgentPerson,
String eUrgentPhone,
String eHometown,
String headPath) throws Exception {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
//
// System.out.println(eAccount);
// System.out.println(eName);
// System.out.println(ePassword);
// System.out.println(eIdcard);
// System.out.println(rbId);
// System.out.println(eSex);
// System.out.println(format.parse(eBirthday));
// System.out.println(eDagree);
// System.out.println(dId);
// System.out.println(pId);
// System.out.println(format.parse(eEntryTime));
// System.out.println(eBasePay);
// System.out.println(ePhone);
// public EmployeeSalaryVO employeeSalaryList(@RequestParam(name="year",defaultValue = "1") String year,
// HttpSession httpSession){
// Integer eId = (Integer) httpSession.getAttribute("employeeId");
// List<Salary> salaryList = userInforService.getEmployeeSalaryList(eId, year);
//
// EmployeeSalaryVO employeeSalaryVO = new EmployeeSalaryVO();
// employeeSalaryVO.setCode(0);
// employeeSalaryVO.setMsg("");
// employeeSalaryVO.setCount((int) salaryList.size());
// employeeSalaryVO.setData(salaryList);
// return employeeSalaryVO;
// }
@RequestMapping("employeeSalaryList.do")
@ResponseBody
public EmployeeSalaryVO findSelective(
@RequestParam(value="page", defaultValue="1")int pageNum,
@RequestParam(value="limit", defaultValue="10") int limit,
@RequestParam(value="year", defaultValue="1") String year,
HttpSession httpSession) throws Exception {
Integer eId = (Integer) httpSession.getAttribute("employeeId");
//pageNum:起始页面 pageSize:每页的大小
PageHelper.startPage(pageNum,limit);
//查找条件,一定要紧跟在startPage后
List<Salary> salaryList = userInforService.getEmployeeSalaryList(eId, year);
PageInfo pageResult = new PageInfo(salaryList);
//设置前台需要的数据
EmployeeSalaryVO employeeSalaryVO = new EmployeeSalaryVO();
employeeSalaryVO.setCode(0);
employeeSalaryVO.setMsg("");
employeeSalaryVO.setCount((int) pageResult.getTotal());
employeeSalaryVO.setData(pageResult.getList());
return employeeSalaryVO;
}
}
employeeSalaryVO.setCode(0);
employeeSalaryVO.setMsg("");
employeeSalaryVO.setCount((int) pageResult.getTotal());
employeeSalaryVO.setData(pageResult.getList());
return employeeSalaryVO;
}
}
/**
* @Description: 管理员和员工登陆控制
**/
@Controller
public class LoginController {
@Autowired
private LoginServiceImpl loginService = null;
/**
* @Description:
* @Param: [request, response]
* @Return: void
**/
@RequestMapping(value = "/changeCode.do")
@ResponseBody
public void getIdentifyingCode(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
keyValue=keyValueService.selectBykvKey("traffic_pay");
} catch (Exception e) {
e.printStackTrace();
}
return keyValue;
}
@RequestMapping("/get_early_buckle_pay.do")
public @ResponseBody KeyValue get_early_buckle_pay(){
KeyValue keyValue=new KeyValue();
try {
keyValue=keyValueService.selectBykvKey("early_buckle_pay");
} catch (Exception e) {
e.printStackTrace();
}
return keyValue;
}
@RequestMapping("/get_missionallowance.do")
public @ResponseBody KeyValue get_missionallowance(){
KeyValue keyValue=new KeyValue();
try {
keyValue=keyValueService.selectBykvKey("missionallowance");
} catch (Exception e) {
e.printStackTrace();
}
return keyValue;
}
@RequestMapping("/get_full_attendance_pay.do")
public @ResponseBody KeyValue get_full_attendance_pay(){
KeyValue keyValue=new KeyValue();
try {
keyValue=keyValueService.selectBykvKey("full_attendance_pay");
} catch (Exception e) {
e.printStackTrace();
}
return keyValue;
}
}
* Time: 21:59
* Projectname: ssm
*/
@Controller
public class WorkYearController {
@Autowired
private IWorkYearService service;
/*查询所有数据*/
@RequestMapping("/findWorkingYearBonusList.do")
@ResponseBody
public WokingYearsBonusPages findAll(
@RequestParam(value="page", defaultValue="1")int pageNum,
@RequestParam(value="limit", defaultValue="5") int limit,
@RequestParam(value="year", defaultValue="0") int year) throws Exception {
List<WorkingYearsBonus> list;
//模糊查询,有多少个条件就接收多少个字段
WorkingYearsBonus wyb = new WorkingYearsBonus();
wyb.setWybYear(year);
//pageNum:起始页面 pageSize:每页的大小
PageHelper.startPage(pageNum,limit);
//查找条件,一定要紧跟在startPage后
list = service.findSelective(wyb);
PageInfo pageResult = new PageInfo(list);
//设置前台需要的数据
WokingYearsBonusPages wybp = new WokingYearsBonusPages();
wybp.setCode(0);
wybp.setMsg("");
wybp.setCount((int) pageResult.getTotal());
wybp.setData(pageResult.getList());
return wybp;
}
//插入数据
@RequestMapping("/addWorkingYearsBonus.do")
@ResponseBody
public String doWorkYearBonus(int year,double bonus){
*/
@Controller
@RequestMapping("/employee")
public class EmployeeController {
@Autowired
private EmployeeService employeeService;
@Autowired
private EmployeeCustomVoMapper employeeCustomVoMapper = null;
@RequestMapping("/findSelective.do")
@ResponseBody
public EmployeePages findSelective(
@RequestParam(value="page", defaultValue="1")int pageNum,
@RequestParam(value="limit", defaultValue="5") int limit,
@RequestParam(value="e_account", defaultValue="") String e_account,
@RequestParam(value="e_name", defaultValue="") String e_name,
@RequestParam(value="d_id", defaultValue="0") int d_id) throws Exception {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("e_account",e_account);
map.put("e_name",e_name);
map.put("d_id",d_id);
//pageNum:起始页面 pageSize:每页的大小
PageHelper.startPage(pageNum,limit);
//查找条件,一定要紧跟在startPage后
List<EmployeeCustomVo> list =
employeeCustomVoMapper.selectEmployeeSelective(map);
// System.out.println(list.get(0).getMonthlyAttendance().getAttendanceTime()+"========================");
PageInfo pageResult = new PageInfo(list);
//设置前台需要的数据
EmployeePages employeePages = new EmployeePages();
employeePages.setCode(0);
employeePages.setMsg("");
employeePages.setCount((int) pageResult.getTotal());
employeePages.setData(pageResult.getList());
return employeePages;
}
/**
* 查找一个
* @param id
* @return
*/
@RequestMapping("/selectVoByPrimaryKey.do")
@ResponseBody
public EmployeeCustomVo selectVoByPrimaryKey(int id) {
EmployeeCustomVo monthlyAttendanceCustomVo = new EmployeeCustomVo();
monthlyAttendanceCustomVo = employeeCustomVoMapper.selectVoByPrimaryKey(id);
/*
* 返回某颜色的反色
*/
private static Color getReverseColor(Color c)
{
return new Color(255 - c.getRed(), 255 - c.getGreen(),255 - c.getBlue());
}
public static void outputCaptcha(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("image/jpeg");
// 获取验证码字符串
String identifyingCode = getRandomString();
request.getSession(true).setAttribute("identifyingCode", identifyingCode);
int width = 100;
int height = 30;
Color color = getRandomColor();
Color reverse = getReverseColor(color);
BufferedImage bi = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
Graphics2D g = bi.createGraphics();
g.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 16));
g.setColor(color);
g.fillRect(0, 0, width, height);
g.setColor(reverse);
g.drawString(identifyingCode, 18, 20);
for (int i = 0, n = random.nextInt(100); i < n; i++)
{
g.drawRect(random.nextInt(width), random.nextInt(height), 1, 1);
}
// 转成JPEG格式
ServletOutputStream out = response.getOutputStream();
// JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
// encoder.encode(bi);
ImageIO.write(bi, "jpeg", out);
out.flush();
}
}
/**
* @program: ssm
* @Description:
* @Version: 1.0
*/
@Controller
public class UserInforController {
@Autowired
private UserInforServiceImpl userInforService = null;
@RequestMapping("changePassword.do")
@ResponseBody
public Map<String, String> changePassword(String oldPassword, String newPassword1,
String newPassword2, HttpSession httpSession){
System.out.println(oldPassword+" "+newPassword1+" "+newPassword2);
HashMap<String, String> map = new HashMap<String, String>();
if (newPassword1.equals(newPassword2)){
SystemManager admin = (SystemManager) httpSession.getAttribute("admin");
String encodeByMD5 = MD5Utils.encodeByMD5(oldPassword);
if (encodeByMD5.equals(admin.getSmPassword())){
String newPassword = MD5Utils.encodeByMD5(newPassword1);
admin.setSmPassword(newPassword);
userInforService.updateSystemManagePassword(admin.getSmId(),admin);
map.put("status","1");
map.put("msg","密码修改成功");
return map;
}else{
map.put("status","2");
map.put("msg","原密码错误");
return map;
}
}else{
map.put("status","0");
map.put("msg","两次密码不一致");
return map;
String headPath) throws Exception {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Employee employee = new Employee();
employee.seteId(eId);
employee.seteName(eName);
employee.seteIdcard(eIdcard);
employee.seteRank(rbId);
employee.seteSex(eSex);
employee.seteBirthday(format.parse(eBirthday));
employee.seteDagree(eDagree);
employee.setdId(dId);
employee.setpId(pId);
employee.seteEntryTime(format.parse(eEntryTime));
employee.seteBasePay(eBasePay);
employee.setePhone(ePhone);
employee.seteEmail(eEmail);
employee.seteUrgentPerson(eUrgentPerson);
employee.seteUrgentPhone(eUrgentPhone);
employee.seteHometown(eHometown);
employee.seteHeadPath(headPath);
employee.seteIsdel(1);
employeeService.updateByPrimaryKeySelective(employee);
return 1;
}
/**
* 删除
* @param id
* @throws Exception
*/
@RequestMapping("/deleteByPrimaryKey.do")
@ResponseBody
public int deleteByPrimaryKey(int id) throws Exception {
// SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
// Date date = new Date();
// System.out.println(df.format(new Date()));// new Date()为获取当前系统时间
//假删除,设置离职时间
Employee employee = new Employee();
employee.seteId(id);
employee.seteLeaveTime(new Date());
employee.seteIsdel(0);
employeeService.updateByPrimaryKeySelective(employee);
return 1;
}
// 删除工资项目
@RequestMapping("deleteSalaryByEid.do")
@ResponseBody
public int deleteSalaryByEid(@RequestParam(value = "arr")int[] ids) {
salaryService.deleteSalaryByEid(ids);
return 1;
}
// 发放工资项目
@RequestMapping("issueSalaryByEid.do")
@ResponseBody
public void issueSalaryByEid(@RequestParam(value = "arr")int[] ids) {
salaryService.updateSalaryBySid(ids);
}
@RequestMapping(value = "selectSalaryByEaccountDIdDate.do",
produces = "application/json;charset=utf-8")
@ResponseBody
public String selectSalaryByEaccountDIdDate(@RequestParam(value = "page", defaultValue = "1") int pageNum,
@RequestParam(value = "limit", defaultValue = "5") int limit,
String eAccount, Integer dId, String sTime) {
/**
* @Description: 工资查询
* @Param: [pageNum , limit, eAccount, dId, sTime]
* @Return: java.lang.String
**/
SalaryPages salaryPages = salaryService.selectSalaryByEaccountDIdDate(pageNum, limit, eAccount, dId, sTime);
//使用fastjson以字符串形式返回数据
JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM";
return JSON.toJSONString(salaryPages, SerializerFeature.WriteDateUseDateFormat);
}
@RequestMapping(value = "selectSalaryByEaccountDIdDateState.do",
produces = "application/json;charset=utf-8")
@ResponseBody
public String selectSalaryByEaccountDIdDateState(@RequestParam(value = "page", defaultValue = "1") int pageNum,
@RequestParam(value = "limit", defaultValue = "5") int limit,
String eAccount, Integer dId, String sTime) {
SalaryPages salaryPages = salaryService.selectSalaryByEaccountDIdDateState(pageNum, limit, eAccount, dId, sTime);
//使用fastjson以字符串形式返回数据
JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM";
return JSON.toJSONString(salaryPages, SerializerFeature.WriteDateUseDateFormat);
}