package cn.com.lzt.userattendancetotal.controller; import java.io.IOException; import java.math.BigDecimal; import java.net.URI; import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import javax.validation.ConstraintViolation; import javax.validation.Validator; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.jeecgframework.core.beanvalidator.BeanValidators; import org.jeecgframework.core.common.controller.BaseController; import org.jeecgframework.core.common.exception.BusinessException; import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery; import org.jeecgframework.core.common.model.json.AjaxJson; import org.jeecgframework.core.common.model.json.DataGrid; import org.jeecgframework.core.common.service.CommonService; import org.jeecgframework.core.constant.Globals; import org.jeecgframework.core.util.ContextHolderUtils; import org.jeecgframework.core.util.DataUtils; import org.jeecgframework.core.util.ExceptionUtil; import org.jeecgframework.core.util.JeecgDataAutorUtils; import org.jeecgframework.core.util.MyBeanUtils; import org.jeecgframework.core.util.ResourceUtil; import org.jeecgframework.core.util.StringUtil; import org.jeecgframework.core.util.oConvertUtils; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.ImportParams; import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants; import org.jeecgframework.tag.core.easyui.TagUtil; import org.jeecgframework.web.system.pojo.base.TSBaseUser; import org.jeecgframework.web.system.pojo.base.TSDepart; import org.jeecgframework.web.system.pojo.base.TSUser; import org.jeecgframework.web.system.service.DepartServiceI; import org.jeecgframework.web.system.service.SystemService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.util.UriComponentsBuilder; import com.alibaba.fastjson.JSONObject; import cn.com.lzt.arrangedutyoperate.dto.UserAndUserPersonnelDto; import cn.com.lzt.arrangedutyoperate.service.ArrangeDutyOperateServiceI; import cn.com.lzt.attendancewarnmsg.service.AttendanceWarnMsgServiceI; import cn.com.lzt.dialogDeal.service.UserDepartOrgDealServiceI; import cn.com.lzt.userattendancedetail.service.UserAttendanceDetailServiceI; import cn.com.lzt.userattendancetotal.dto.UserAttendanceTotalExcelEntity; import cn.com.lzt.userattendancetotal.entity.UserAttendanceTotalEntity; import cn.com.lzt.userattendancetotal.service.UserAttendanceTotalServiceI; import cn.com.lzt.useroptions.entity.TBusUserOptionsEntity; import cn.com.lzt.useroptions.service.TBusUserOptionsServiceI; import cn.com.lzt.userwage.dao.UserWageMinidaoDao; import cn.com.lzt.userwagestrategy.entity.UserWagestrategyEntity; /** * @Title: Controller * @Description: 员工考勤合计表 * @author onlineGenerator * @date 2017-11-11 14:37:39 * @version V1.0 * */ @Controller @RequestMapping("/userAttendanceTotalController") public class UserAttendanceTotalController extends BaseController { /** * Logger for this class */ private static final Logger logger = Logger.getLogger(UserAttendanceTotalController.class); @Autowired private UserAttendanceTotalServiceI userAttendanceTotalService; @Autowired private AttendanceWarnMsgServiceI attendanceWarnMsgService; @Autowired private UserAttendanceDetailServiceI userAttendanceDetailService; @Autowired private SystemService systemService; @Autowired private Validator validator; @Autowired private TBusUserOptionsServiceI userOptionsService; //排班操作表 @Autowired UserDepartOrgDealServiceI userDepartOrgDealServiceI; @Autowired UserWageMinidaoDao userWageMinidaoDao; /** * 班次员工选择 * 轮流值班 * 员工表列表 页面跳转 * * @return */ @RequestMapping(params = "personnelBaseArchivesManageSelectList") public ModelAndView personnelBaseArchivesManageSelectList(HttpServletRequest request) { request.setAttribute("pid", request.getParameter("pid")); request.setAttribute("yearmonth", request.getParameter("yearmonth")); return new ModelAndView("cn/com/lzt/userattendancetotal/personnelBaseArchivesManageSelectList"); } /** * 查询班次人员弹窗 * 轮流值班 * @author zbw * 2017-11-5 * @param userAndUserPersonnelDto * @param request * @param response * @param dataGrid */ @RequestMapping(params = "getPersonnelBaseArchivesManageInfo") public void getPersonnelBaseArchivesManageInfo(UserAndUserPersonnelDto userAndUserPersonnelDto,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) { //extractIdListByComma String pid=request.getParameter("pid"); List useridListAll=new ArrayList(); //根据项目pid查询所有可选用户,包括当前已选择的方便编辑;== if(pid!=null&&pid.length()!=0){ pid=pid.split(",")[0]; userAndUserPersonnelDto.setPid(pid); } //包括该项目id //根据项目id查询所有子节点id List ChildIdList=userDepartOrgDealServiceI.getChildIdByProjectDepartId(pid); /******************************************************************/ userAndUserPersonnelDto.setChildDepartIdList(ChildIdList); userAndUserPersonnelDto.setUserIdList(useridListAll); String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString(); List listUserAndUserPersonnelDto = userWageMinidaoDao.getUserAndUserPersonnelNoPage(userAndUserPersonnelDto,authSql); // Collections.sort(listUserAndUserPersonnelDto); //根据项目pid查询所有可选用户,包括当前已选择的方便编辑;== //dataGrid.setTotal(listUserAndUserPersonnelDto.getTotal()); dataGrid.setResults(listUserAndUserPersonnelDto); TagUtil.datagrid(response, dataGrid); } /** * 员工考勤合计表列表 页面跳转 * * @return */ @RequestMapping(params = "auditlist") public ModelAndView auditlist(HttpServletRequest request) { Calendar calendar = DataUtils.getCalendar(); calendar.add(Calendar.MONTH, -1); String yearmonth = DataUtils.formatDate(calendar, "yyyy-MM-dd"); request.setAttribute("maxdate", yearmonth); String queryParams = oConvertUtils.getString(request.getParameter("queryParams")); if (oConvertUtils.isNotEmpty(queryParams)) { JSONObject jsonObject =JSONObject.parseObject(queryParams); request.setAttribute("queryParams",jsonObject); }else { JSONObject jsonObject = new JSONObject(); jsonObject.put("adjustRecord", ""); jsonObject.put("confirmStatus", ""); jsonObject.put("departid", ""); jsonObject.put("departname", ""); jsonObject.put("inPostid", ""); jsonObject.put("userId", ""); jsonObject.put("yearmonth", ""); request.setAttribute("queryParams",jsonObject); } return new ModelAndView("cn/com/lzt/userattendancetotal/userAttendanceTotalauditlist"); } /** * 员工考勤合计表列表 页面跳转 * * @return */ @RequestMapping(params = "list") public ModelAndView list(HttpServletRequest request) { HttpSession session = ContextHolderUtils.getSession(); TSUser tuser = (TSUser)session.getAttribute("LOCAL_CLINET_USER"); String queryParams = oConvertUtils.getString(request.getParameter("queryParams")); JSONObject jsonObject =JSONObject.parseObject(queryParams); String departid = ""; String departname = ""; if(jsonObject != null && jsonObject.getString("departid")!=null) { departid = jsonObject.getString("departid"); } if(jsonObject != null && jsonObject.getString("departname")!=null) { departname = jsonObject.getString("departname"); } try { TBusUserOptionsEntity options = userOptionsService.getOptionsByUserID(tuser.getId(), Globals.USER_OPTIONS_TYPE_PROJECT, false); if(StringUtils.isEmpty(departid)) { if(options != null) { departid = options.getOptionId(); departname = options.getOptionName(); } } } catch (Exception e) { e.printStackTrace(); org.jeecgframework.core.util.LogUtil.error(e.getMessage()); } Calendar calendar = DataUtils.getCalendar(); // calendar.add(Calendar.MONTH, -1); String yearmonth = DataUtils.formatDate(calendar, "yyyy-MM-dd"); request.setAttribute("maxdate", yearmonth); if (oConvertUtils.isNotEmpty(queryParams)) { request.setAttribute("queryParams",jsonObject); }else { jsonObject = new JSONObject(); jsonObject.put("adjustRecord", ""); jsonObject.put("confirmStatus", ""); jsonObject.put("departid", departid); jsonObject.put("departname", departname); jsonObject.put("inPostid", ""); jsonObject.put("userId", ""); jsonObject.put("yearmonth", ""); request.setAttribute("queryParams",jsonObject); } return new ModelAndView("cn/com/lzt/userattendancetotal/userAttendanceTotalList"); } /** * easyui AJAX请求数据 * * @param request * @param response * @param dataGrid * @param user */ @RequestMapping(params = "auditdatagrid") public void auditdatagrid(UserAttendanceTotalEntity userAttendanceTotal,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) { try { // 临时借用该字段, 用于在审核页面筛选不显示未上报的数据 userAttendanceTotal.setConfirmor("auditdatagrid"); userAttendanceTotalService.getAttendanceTotalDtos(userAttendanceTotal, dataGrid); } catch (Exception e) { dataGrid.setResults(new ArrayList<>()); } TagUtil.datagrid(response, dataGrid); } /** * easyui AJAX请求数据 * * @param request * @param response * @param dataGrid * @param user */ @RequestMapping(params = "datagrid") public void datagrid(UserAttendanceTotalEntity userAttendanceTotal,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) { if(userAttendanceTotal != null && userAttendanceTotal.getYearmonth() != null && userAttendanceTotal.getYearmonth().length() == 0) { dataGrid.setResults(new ArrayList<>()); TagUtil.datagrid(response, dataGrid); return; } HttpSession session = ContextHolderUtils.getSession(); TSUser tuser = (TSUser)session.getAttribute("LOCAL_CLINET_USER"); String departid = ""; String departname = ""; if(userAttendanceTotal != null && userAttendanceTotal.getDepartid()!=null) { departid = userAttendanceTotal.getDepartid(); TSDepart depart = systemService.get(TSDepart.class, departid); if(depart != null) { departname = depart.getDepartname(); } } try { TBusUserOptionsEntity options = userOptionsService.getOptionsByUserID(tuser.getId(), Globals.USER_OPTIONS_TYPE_PROJECT, true); if(StringUtils.isEmpty(departid)) { if(options != null) { departid = options.getOptionId(); departname = options.getOptionName(); } }else { userOptionsService.saveUserOptions(tuser.getId(), departid, departname, Globals.USER_OPTIONS_TYPE_PROJECT); } } catch (Exception e) { org.jeecgframework.core.util.LogUtil.error(e.getMessage()); } try { userAttendanceTotalService.getAttendanceTotalDtos(userAttendanceTotal, dataGrid); } catch (Exception e) { dataGrid.setResults(new ArrayList<>()); } TagUtil.datagrid(response, dataGrid); } /** * 员工考勤合计表列表 页面跳转 * * @return */ @RequestMapping(params = "listAll") public ModelAndView listAll(HttpServletRequest request) { String queryParams = oConvertUtils.getString(request.getParameter("queryParams")); JSONObject jsonObject =JSONObject.parseObject(queryParams); String departid = ""; String departname = ""; if(jsonObject != null && jsonObject.getString("departid")!=null) { departid = jsonObject.getString("departid"); } if(jsonObject != null && jsonObject.getString("departname")!=null) { departname = jsonObject.getString("departname"); } Calendar calendar = DataUtils.getCalendar(); // calendar.add(Calendar.MONTH, -1); String yearmonth = DataUtils.formatDate(calendar, "yyyy-MM-dd"); request.setAttribute("maxdate", yearmonth); if (oConvertUtils.isNotEmpty(queryParams)) { request.setAttribute("queryParams",jsonObject); }else { jsonObject = new JSONObject(); jsonObject.put("adjustRecord", ""); jsonObject.put("confirmStatus", ""); jsonObject.put("departid", departid); jsonObject.put("departname", departname); jsonObject.put("inPostid", ""); jsonObject.put("userId", ""); jsonObject.put("yearmonth", ""); request.setAttribute("queryParams",jsonObject); } return new ModelAndView("cn/com/lzt/userattendancetotal/userAttendanceTotalAllList"); } /** * easyui AJAX请求数据 * * @param request * @param response * @param dataGrid * @param user */ @RequestMapping(params = "datagridAll") public void datagridAll(UserAttendanceTotalEntity userAttendanceTotal,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) { if(userAttendanceTotal != null && userAttendanceTotal.getYearmonth() != null && userAttendanceTotal.getYearmonth().length() == 0) { dataGrid.setResults(new ArrayList<>()); TagUtil.datagrid(response, dataGrid); return; } try { userAttendanceTotalService.getAttendanceTotalDtos(userAttendanceTotal, dataGrid); } catch (Exception e) { dataGrid.setResults(new ArrayList<>()); } TagUtil.datagrid(response, dataGrid); } /** * 删除员工考勤合计表 * * @return */ @RequestMapping(params = "doDel") @ResponseBody public AjaxJson doDel(UserAttendanceTotalEntity userAttendanceTotal, HttpServletRequest request) { String message = null; AjaxJson j = new AjaxJson(); userAttendanceTotal = systemService.getEntity(UserAttendanceTotalEntity.class, userAttendanceTotal.getId()); message = "员工考勤合计表删除成功"; try{ userAttendanceTotalService.delete(userAttendanceTotal); systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO); }catch(Exception e){ e.printStackTrace(); message = "员工考勤合计表删除失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } /** * 批量删除员工考勤合计表 * * @return */ @RequestMapping(params = "doBatchDel") @ResponseBody public AjaxJson doBatchDel(String ids,HttpServletRequest request){ String message = null; AjaxJson j = new AjaxJson(); message = "员工考勤合计表删除成功"; try{ for(String id:ids.split(",")){ UserAttendanceTotalEntity userAttendanceTotal = systemService.getEntity(UserAttendanceTotalEntity.class, id ); userAttendanceTotalService.delete(userAttendanceTotal); systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO); } }catch(Exception e){ e.printStackTrace(); message = "员工考勤合计表删除失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } /** * 批量审核员工考勤合计表 * * @return */ @RequestMapping(params = "doBatchAudit") @ResponseBody public AjaxJson doBatchAudit(String ids,HttpServletRequest request){ String message = null; AjaxJson j = new AjaxJson(); message = "操作成功"; String confirmStatus = oConvertUtils.getString(request.getParameter("confirmStatus")); if (Globals.ARRANGESTATUS_2.equals(confirmStatus)) { confirmStatus = Globals.ARRANGESTATUS_2; }else { confirmStatus = Globals.ARRANGESTATUS_0; } try{ userAttendanceTotalService.doBatchAudit(oConvertUtils.getString(ids),confirmStatus); j.setSuccess(true); }catch(Exception e){ e.printStackTrace(); j.setSuccess(false); message = "操作失败"; } j.setMsg(message); return j; } /** * 批量上报员工考勤 * * @return */ @RequestMapping(params = "doBatchReport") @ResponseBody public AjaxJson doBatchReport(String ids,HttpServletRequest request){ String message = null; AjaxJson j = new AjaxJson(); message = "上报成功"; try{ userAttendanceTotalService.doBatchReport(oConvertUtils.getString(ids)); j.setSuccess(true); }catch(Exception e){ e.printStackTrace(); j.setSuccess(false); message = "上报失败"; } j.setMsg(message); return j; } /** * 添加员工考勤合计表 * * @param ids * @return */ @RequestMapping(params = "doAdd") @ResponseBody public AjaxJson doAdd(UserAttendanceTotalEntity userAttendanceTotal, HttpServletRequest request) { String message = null; AjaxJson j = new AjaxJson(); message = "员工考勤合计表添加成功"; try{ userAttendanceTotalService.save(userAttendanceTotal); systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO); }catch(Exception e){ e.printStackTrace(); message = "员工考勤合计表添加失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } /** * 更新员工考勤合计表 * * @param ids * @return */ @RequestMapping(params = "doUpdate") @ResponseBody public AjaxJson doUpdate(UserAttendanceTotalEntity userAttendanceTotal, HttpServletRequest request) { String message = null; AjaxJson j = new AjaxJson(); message = "员工考勤合计表更新成功"; UserAttendanceTotalEntity t = userAttendanceTotalService.get(UserAttendanceTotalEntity.class, userAttendanceTotal.getId()); try { MyBeanUtils.copyBeanNotNull2Bean(userAttendanceTotal, t); userAttendanceTotalService.saveOrUpdate(t); systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO); } catch (Exception e) { e.printStackTrace(); message = "员工考勤合计表更新失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } /** * 员工考勤合计表新增页面跳转 * * @return */ @RequestMapping(params = "goAdd") public ModelAndView goAdd(UserAttendanceTotalEntity userAttendanceTotal, HttpServletRequest req,String yearmonth) { try { userAttendanceTotalService.insertUserAttendanceTotalByyearmonth(yearmonth); // userAttendanceTotalService.insertUserAttendanceTotalByyearmonth("2017-09"); // userAttendanceTotalService.insertUserAttendanceTotalByyearmonth("2017-10"); // attendanceWarnMsgService.updateAttendanceWarnMsgBytasker("2017-10-19"); // userAttendanceTotalService.insertUserAttendanceTotalByyearmonth("2017-08"); // userAttendanceTotalService.insertUserAttendanceTotalByyearmonth("2017-09"); // userAttendanceTotalService.insertUserAttendanceTotalByyearmonth("2017-10"); } catch (Exception e) { e.printStackTrace(); } if (StringUtil.isNotEmpty(userAttendanceTotal.getId())) { userAttendanceTotal = userAttendanceTotalService.getEntity(UserAttendanceTotalEntity.class, userAttendanceTotal.getId()); req.setAttribute("userAttendanceTotalPage", userAttendanceTotal); } return new ModelAndView("cn/com/lzt/userattendancetotal/userAttendanceTotal-add"); } /** * 员工考勤合计表编辑页面跳转 * * @return */ @RequestMapping(params = "goUpdate") public ModelAndView goUpdate(UserAttendanceTotalEntity userAttendanceTotal, HttpServletRequest req) { if (StringUtil.isNotEmpty(userAttendanceTotal.getId())) { userAttendanceTotal = userAttendanceTotalService.getEntity(UserAttendanceTotalEntity.class, userAttendanceTotal.getId()); JSONObject object =(JSONObject) JSONObject.toJSON(userAttendanceTotal); if (oConvertUtils.isNotEmpty(userAttendanceTotal)&&oConvertUtils.isNotEmpty(userAttendanceTotal.getUserId())) { TSBaseUser user = userAttendanceTotalService.findUniqueByProperty(TSBaseUser.class, "id",userAttendanceTotal.getUserId()); if (oConvertUtils.isNotEmpty(user)) { object.put("userrealName", user.getRealName()); } } if(userAttendanceTotal.getAbsenteeismAmount_orig() == null) { userAttendanceTotal.setAbsenteeismAmount_orig(BigDecimal.ZERO); } if(userAttendanceTotal.getTimeoutOvertimeDuration_orig() == null) { userAttendanceTotal.setTimeoutOvertimeDuration_orig(BigDecimal.ZERO); } req.setAttribute("userAttendanceTotalPage",object); } String queryParams = oConvertUtils.getString(req.getParameter("queryParams")); if (oConvertUtils.isNotEmpty(queryParams)) { req.setAttribute("queryParams",queryParams); } String conform = oConvertUtils.getString(req.getParameter("conform")); if ("auditlist".equals(conform)||"list".equals(conform)) { req.setAttribute("backurl",conform); return new ModelAndView("cn/com/lzt/userattendancetotal/userAttendanceTotal-conform"); }else { return new ModelAndView("cn/com/lzt/userattendancetotal/userAttendanceTotal-update"); } } /** * 员工考勤合计表编辑页面跳转 * * @return */ @RequestMapping(params = "goUpdateAll") public ModelAndView goUpdateAll(UserAttendanceTotalEntity userAttendanceTotal, HttpServletRequest req) { if (StringUtil.isNotEmpty(userAttendanceTotal.getId())) { userAttendanceTotal = userAttendanceTotalService.getEntity(UserAttendanceTotalEntity.class, userAttendanceTotal.getId()); JSONObject object =(JSONObject) JSONObject.toJSON(userAttendanceTotal); if (oConvertUtils.isNotEmpty(userAttendanceTotal)&&oConvertUtils.isNotEmpty(userAttendanceTotal.getUserId())) { TSBaseUser user = userAttendanceTotalService.findUniqueByProperty(TSBaseUser.class, "id",userAttendanceTotal.getUserId()); if (oConvertUtils.isNotEmpty(user)) { object.put("userrealName", user.getRealName()); } } if(userAttendanceTotal.getAbsenteeismAmount_orig() == null) { userAttendanceTotal.setAbsenteeismAmount_orig(BigDecimal.ZERO); } if(userAttendanceTotal.getTimeoutOvertimeDuration_orig() == null) { userAttendanceTotal.setTimeoutOvertimeDuration_orig(BigDecimal.ZERO); } req.setAttribute("userAttendanceTotalPage",object); } String queryParams = oConvertUtils.getString(req.getParameter("queryParams")); if (oConvertUtils.isNotEmpty(queryParams)) { req.setAttribute("queryParams",queryParams); } String conform = oConvertUtils.getString(req.getParameter("conform")); if ("auditlist".equals(conform)||"listAll".equals(conform)) { req.setAttribute("backurl",conform); return new ModelAndView("cn/com/lzt/userattendancetotal/userAttendanceTotal-conformAll"); }else { return new ModelAndView("cn/com/lzt/userattendancetotal/userAttendanceTotal-updateAll"); } } /** * 重新核算考勤 * * @return */ @RequestMapping(params = "calcuUserAttendance") @ResponseBody public AjaxJson calcuUserAttendance(UserAttendanceTotalEntity userAttendanceTotal, HttpServletRequest request) { AjaxJson j = new AjaxJson(); j.setMsg("员工考勤核算完成"); String id = oConvertUtils.getString(request.getParameter("id")); if (StringUtil.isNotEmpty(id)) { userAttendanceTotal = userAttendanceTotalService.getEntity(UserAttendanceTotalEntity.class, id); try { userAttendanceTotalService.insertUserAttendanceTotalByyearmonth(userAttendanceTotal.getUserId(), userAttendanceTotal.getYearmonth()); } catch (Exception e) { j.setSuccess(false); j.setMsg("考勤核算失败,请联系信息部"); return j; } } return j; } /** * 重新核算考勤 * * @return */ @RequestMapping(params = "createUserAttendance") @ResponseBody public AjaxJson createUserAttendance(UserAttendanceTotalEntity userAttendanceTotal, HttpServletRequest request) { AjaxJson j = new AjaxJson(); j.setMsg("成功生成员工考勤"); String userid = oConvertUtils.getString(request.getParameter("userid")); String yearmonth = oConvertUtils.getString(request.getParameter("yearmonth")); if (StringUtil.isNotEmpty(userid) && StringUtil.isNotEmpty(yearmonth)) { try { userAttendanceTotalService.insertUserAttendanceTotalByyearmonth(userid, yearmonth); } catch (Exception e) { j.setSuccess(false); j.setMsg("考勤核算失败["+e.getMessage()+"]"); return j; } } return j; } /** * 导入功能跳转 * * @return */ @RequestMapping(params = "upload") public ModelAndView upload(HttpServletRequest req) { req.setAttribute("controller_name","userAttendanceTotalController"); return new ModelAndView("common/upload/pub_excel_upload"); } /** * 导出excel * * @param request * @param response */ @RequestMapping(params = "auditexportXls") public String auditexportXls(UserAttendanceTotalEntity userAttendanceTotal,HttpServletRequest request,HttpServletResponse response , DataGrid dataGrid,ModelMap modelMap) { try { dataGrid.setObj("exportXls"); // 临时借用该字段, 用于在审核页面筛选不显示未上报的数据 userAttendanceTotal.setConfirmor("auditdatagrid"); userAttendanceTotalService.getAttendanceTotalDtos(userAttendanceTotal, dataGrid); } catch (Exception e) { dataGrid.setResults(new ArrayList<>()); } List userAttendanceTotalEntities =dataGrid.getResults(); List userAttendanceTotalexcelEntities =new ArrayList<>(); try { for (UserAttendanceTotalEntity entry : userAttendanceTotalEntities) { UserAttendanceTotalExcelEntity excelEntity = new UserAttendanceTotalExcelEntity(); MyBeanUtils.copyBeanNotNull2Bean(entry, excelEntity); excelEntity.setDatumAttendanceDateStr(getStrFromBigdecimal(excelEntity.getDatumAttendanceDate())); excelEntity.setActualAttendanceDateStr(getStrFromBigdecimal(excelEntity.getActualAttendanceDate())); excelEntity.setTimeDifferenceTotalstr(getStrFromBigdecimal(excelEntity.getTimeDifferenceTotal())); excelEntity.setOvertimeTotalTimestr(getStrFromBigdecimal(excelEntity.getOvertimeTotalTime())); excelEntity.setLeaveTotalTimestr(getStrFromBigdecimal(excelEntity.getLeaveTotalTime())); userAttendanceTotalexcelEntities.add(excelEntity); } } catch (Exception e) { e.printStackTrace(); } modelMap.put(NormalExcelConstants.FILE_NAME,"考勤审核信息"); modelMap.put(NormalExcelConstants.CLASS,UserAttendanceTotalExcelEntity.class); modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("考勤审核信息", "导出人:"+ResourceUtil.getSessionUser().getRealName(), "考勤审核信息")); modelMap.put(NormalExcelConstants.DATA_LIST,userAttendanceTotalexcelEntities); return NormalExcelConstants.JEECG_EXCEL_VIEW; } /** * 导出excel * * @param request * @param response */ @RequestMapping(params = "exportXls") public String exportXls(UserAttendanceTotalEntity userAttendanceTotal,HttpServletRequest request,HttpServletResponse response , DataGrid dataGrid,ModelMap modelMap) { try { dataGrid.setObj("exportXls"); userAttendanceTotalService.getAttendanceTotalDtos(userAttendanceTotal, dataGrid); } catch (Exception e) { dataGrid.setResults(new ArrayList<>()); } List userAttendanceTotalEntities =dataGrid.getResults(); List userAttendanceTotalexcelEntities =new ArrayList<>(); try { for (UserAttendanceTotalEntity entry : userAttendanceTotalEntities) { UserAttendanceTotalExcelEntity excelEntity = new UserAttendanceTotalExcelEntity(); MyBeanUtils.copyBeanNotNull2Bean(entry, excelEntity); excelEntity.setDatumAttendanceDateStr(getStrFromBigdecimal(excelEntity.getDatumAttendanceDate())); excelEntity.setActualAttendanceDateStr(getStrFromBigdecimal(excelEntity.getActualAttendanceDate())); excelEntity.setTimeDifferenceTotalstr(getStrFromBigdecimal(excelEntity.getTimeDifferenceTotal())); excelEntity.setOvertimeTotalTimestr(getStrFromBigdecimal(excelEntity.getOvertimeTotalTime())); excelEntity.setLeaveTotalTimestr(getStrFromBigdecimal(excelEntity.getLeaveTotalTime())); userAttendanceTotalexcelEntities.add(excelEntity); } } catch (Exception e) { e.printStackTrace(); } modelMap.put(NormalExcelConstants.FILE_NAME,"考勤上报信息"); modelMap.put(NormalExcelConstants.CLASS,UserAttendanceTotalExcelEntity.class); modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("考勤上报信息", "导出人:"+ResourceUtil.getSessionUser().getRealName(), "考勤上报信息")); modelMap.put(NormalExcelConstants.DATA_LIST,userAttendanceTotalexcelEntities); return NormalExcelConstants.JEECG_EXCEL_VIEW; } public String getStrFromBigdecimal( BigDecimal incomBigDecimal ) { String result = ""; if (null!=incomBigDecimal) { int temp = incomBigDecimal.intValue(); int mins = temp % 60; int hour = (temp - mins) / 60; if (0 == hour) { result = mins + "分"; } else { if( mins<0){ mins = 0-mins; } result = hour + "小时" + mins + "分"; } } return result; } /** * 导出excel 使模板 * * @param request * @param response */ @RequestMapping(params = "exportXlsByT") public String exportXlsByT(UserAttendanceTotalEntity userAttendanceTotal,HttpServletRequest request,HttpServletResponse response , DataGrid dataGrid,ModelMap modelMap) { modelMap.put(NormalExcelConstants.FILE_NAME,"员工考勤合计表"); modelMap.put(NormalExcelConstants.CLASS,UserAttendanceTotalEntity.class); modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("员工考勤合计表列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(), "导出信息")); modelMap.put(NormalExcelConstants.DATA_LIST,new ArrayList()); return NormalExcelConstants.JEECG_EXCEL_VIEW; } @SuppressWarnings("unchecked") @RequestMapping(params = "importExcel", method = RequestMethod.POST) @ResponseBody public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) { AjaxJson j = new AjaxJson(); MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Map fileMap = multipartRequest.getFileMap(); for (Map.Entry entity : fileMap.entrySet()) { MultipartFile file = entity.getValue();// 获取上传文件对象 ImportParams params = new ImportParams(); params.setTitleRows(2); params.setHeadRows(1); params.setNeedSave(true); try { List listUserAttendanceTotalEntitys = ExcelImportUtil.importExcel(file.getInputStream(),UserAttendanceTotalEntity.class,params); for (UserAttendanceTotalEntity userAttendanceTotal : listUserAttendanceTotalEntitys) { userAttendanceTotalService.save(userAttendanceTotal); } j.setMsg("文件导入成功!"); } catch (Exception e) { j.setMsg("文件导入失败!"); logger.error(ExceptionUtil.getExceptionMessage(e)); }finally{ try { file.getInputStream().close(); } catch (IOException e) { e.printStackTrace(); } } } return j; } @RequestMapping(method = RequestMethod.GET) @ResponseBody public List list() { List listUserAttendanceTotals=userAttendanceTotalService.getList(UserAttendanceTotalEntity.class); return listUserAttendanceTotals; } @RequestMapping(value = "/{id}", method = RequestMethod.GET) @ResponseBody public ResponseEntity get(@PathVariable("id") String id) { UserAttendanceTotalEntity task = userAttendanceTotalService.get(UserAttendanceTotalEntity.class, id); if (task == null) { return new ResponseEntity(HttpStatus.NOT_FOUND); } return new ResponseEntity(task, HttpStatus.OK); } @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public ResponseEntity create(@RequestBody UserAttendanceTotalEntity userAttendanceTotal, UriComponentsBuilder uriBuilder) { //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息. Set> failures = validator.validate(userAttendanceTotal); if (!failures.isEmpty()) { return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST); } //保存 try{ userAttendanceTotalService.save(userAttendanceTotal); } catch (Exception e) { e.printStackTrace(); return new ResponseEntity(HttpStatus.NO_CONTENT); } //按照Restful风格约定,创建指向新任务的url, 也可以直接返回id或对象. String id = userAttendanceTotal.getId(); URI uri = uriBuilder.path("/rest/userAttendanceTotalController/" + id).build().toUri(); HttpHeaders headers = new HttpHeaders(); headers.setLocation(uri); return new ResponseEntity(headers, HttpStatus.CREATED); } @RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity update(@RequestBody UserAttendanceTotalEntity userAttendanceTotal) { //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息. Set> failures = validator.validate(userAttendanceTotal); if (!failures.isEmpty()) { return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST); } //保存 try{ userAttendanceTotalService.saveOrUpdate(userAttendanceTotal); } catch (Exception e) { e.printStackTrace(); return new ResponseEntity(HttpStatus.NO_CONTENT); } //按Restful约定,返回204状态码, 无内容. 也可以返回200状态码. return new ResponseEntity(HttpStatus.NO_CONTENT); } @RequestMapping(value = "/{id}", method = RequestMethod.DELETE) @ResponseStatus(HttpStatus.NO_CONTENT) public void delete(@PathVariable("id") String id) { userAttendanceTotalService.deleteEntityById(UserAttendanceTotalEntity.class, id); } }