HolidayController.java 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848
  1. package cn.com.lzt.holiday.controller;
  2. import java.io.IOException;
  3. import java.math.BigDecimal;
  4. import java.net.URI;
  5. import java.text.ParsePosition;
  6. import java.text.SimpleDateFormat;
  7. import java.util.ArrayList;
  8. import java.util.Date;
  9. import java.util.List;
  10. import java.util.Map;
  11. import java.util.Set;
  12. import javax.servlet.http.HttpServletRequest;
  13. import javax.servlet.http.HttpServletResponse;
  14. import javax.servlet.http.HttpSession;
  15. import javax.validation.ConstraintViolation;
  16. import javax.validation.Validator;
  17. import cn.com.lzt.common.service.TSysFileServiceI;
  18. import cn.com.lzt.common.util.DictUtil;
  19. import cn.com.lzt.common.util.LztUtil;
  20. import cn.com.lzt.common.view.JsonDataModelAndView;
  21. import com.xcgl.weixin.entity.WXAjaxJson;
  22. import org.apache.commons.lang.StringUtils;
  23. import org.apache.log4j.Logger;
  24. import org.jeecgframework.core.beanvalidator.BeanValidators;
  25. import org.jeecgframework.core.common.controller.BaseController;
  26. import org.jeecgframework.core.common.exception.BusinessException;
  27. import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
  28. import org.jeecgframework.core.common.model.json.AjaxJson;
  29. import org.jeecgframework.core.common.model.json.DataGrid;
  30. import org.jeecgframework.core.constant.Globals;
  31. import org.jeecgframework.core.util.ContextHolderUtils;
  32. import org.jeecgframework.core.util.ExceptionUtil;
  33. import org.jeecgframework.core.util.JeecgDataAutorUtils;
  34. import org.jeecgframework.core.util.MyBeanUtils;
  35. import org.jeecgframework.core.util.ResourceUtil;
  36. import org.jeecgframework.core.util.StringUtil;
  37. import org.jeecgframework.minidao.pojo.MiniDaoPage;
  38. import org.jeecgframework.p3.core.util.oConvertUtils;
  39. import org.jeecgframework.poi.excel.ExcelImportUtil;
  40. import org.jeecgframework.poi.excel.entity.ExportParams;
  41. import org.jeecgframework.poi.excel.entity.ImportParams;
  42. import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants;
  43. import org.jeecgframework.tag.core.easyui.TagUtil;
  44. import org.jeecgframework.web.system.pojo.base.DictEntity;
  45. import org.jeecgframework.web.system.pojo.base.TSDepart;
  46. import org.jeecgframework.web.system.pojo.base.TSRole;
  47. import org.jeecgframework.web.system.pojo.base.TSRoleUser;
  48. import org.jeecgframework.web.system.pojo.base.TSUser;
  49. import org.jeecgframework.web.system.pojo.base.TSUserOrg;
  50. import org.jeecgframework.web.system.pojo.base.TaskDto;
  51. import org.jeecgframework.web.system.service.SystemService;
  52. import org.jeecgframework.web.system.service.UserService;
  53. import org.springframework.beans.factory.annotation.Autowired;
  54. import org.springframework.http.HttpHeaders;
  55. import org.springframework.http.HttpStatus;
  56. import org.springframework.http.MediaType;
  57. import org.springframework.http.ResponseEntity;
  58. import org.springframework.stereotype.Controller;
  59. import org.springframework.ui.ModelMap;
  60. import org.springframework.util.CollectionUtils;
  61. import org.springframework.web.bind.annotation.PathVariable;
  62. import org.springframework.web.bind.annotation.RequestBody;
  63. import org.springframework.web.bind.annotation.RequestMapping;
  64. import org.springframework.web.bind.annotation.RequestMethod;
  65. import org.springframework.web.bind.annotation.ResponseBody;
  66. import org.springframework.web.bind.annotation.ResponseStatus;
  67. import org.springframework.web.multipart.MultipartFile;
  68. import org.springframework.web.multipart.MultipartHttpServletRequest;
  69. import org.springframework.web.servlet.ModelAndView;
  70. import org.springframework.web.util.UriComponentsBuilder;
  71. import cn.com.lzt.correction.entity.CorrectionDaoEntity;
  72. import cn.com.lzt.dialogDeal.service.UserDepartOrgDealServiceI;
  73. import cn.com.lzt.holiday.dao.HolidayMinidaoDao;
  74. import cn.com.lzt.holiday.entity.HolidayDaoEntity;
  75. import cn.com.lzt.holiday.entity.HolidayEntity;
  76. import cn.com.lzt.holiday.service.HolidayServiceI;
  77. import cn.com.lzt.leave.service.ModifyServiceI;
  78. import com.jeecg.qianbao.util.FormProcUtil;
  79. /**
  80. * @Title: Controller
  81. * @Description: 休假申请表
  82. * @author onlineGenerator
  83. * @date 2017-10-13 13:27:30
  84. * @version V1.0
  85. *
  86. */
  87. @Controller
  88. @RequestMapping("/holidayController")
  89. public class HolidayController extends BaseController {
  90. /**
  91. * Logger for this class
  92. */
  93. private static final Logger logger = Logger.getLogger(HolidayController.class);
  94. @Autowired
  95. private HolidayServiceI holidayService;
  96. @Autowired
  97. private SystemService systemService;
  98. @Autowired
  99. private Validator validator;
  100. @Autowired
  101. private HolidayMinidaoDao holidayMinidaoDao;
  102. @Autowired
  103. private UserService userService;
  104. @Autowired
  105. private UserDepartOrgDealServiceI userDepartOrgDealService;
  106. @Autowired
  107. private ModifyServiceI modifyService;
  108. @Autowired
  109. private TSysFileServiceI tSysFileService;
  110. /**
  111. * 休假申请表列表 页面跳转
  112. *
  113. * @return
  114. */
  115. @RequestMapping(params = "list")
  116. public ModelAndView list(HttpServletRequest request) {
  117. HttpSession session = ContextHolderUtils.getSession();
  118. TSUser tuser = (TSUser)session.getAttribute("LOCAL_CLINET_USER");
  119. request.setAttribute("user", tuser);
  120. return new ModelAndView("cn/com/lzt/holiday/holidayList");
  121. }
  122. /**
  123. * easyui AJAX请求数据
  124. *
  125. * @param request
  126. * @param response
  127. * @param dataGrid
  128. */
  129. @RequestMapping(params = "datagrid")
  130. public void datagrid(HolidayDaoEntity holiday,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
  131. /*CriteriaQuery cq = new CriteriaQuery(HolidayEntity.class, dataGrid);
  132. //查询条件组装器
  133. org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, holiday, request.getParameterMap());
  134. try{
  135. //适用时间查询
  136. String startTime = request.getParameter("holidayStime");
  137. String endTime = request.getParameter("holidayEtime");
  138. if(oConvertUtils.isNotEmpty(startTime)){
  139. cq.ge("holidayStime", DateUtils.parseDate(startTime, "yyyy-MM-dd HH:mm:ss"));
  140. cq.add();
  141. }
  142. if(oConvertUtils.isNotEmpty(endTime)){
  143. cq.le("holidayEtime", DateUtils.parseDate(endTime, "yyyy-MM-dd HH:mm:ss"));
  144. cq.add();
  145. }
  146. //自定义追加查询条件
  147. String orgIds = request.getParameter("orgIds");
  148. List<String> orgIdList = extractIdListByComma(orgIds);
  149. // 获取 当前组织机构的用户信息
  150. if (!CollectionUtils.isEmpty(orgIdList)) {
  151. cq.in("belongUnitid", orgIdList.toArray());
  152. }
  153. }catch (Exception e) {
  154. throw new BusinessException(e.getMessage());
  155. }
  156. //显示没有被逻辑删除的数据
  157. cq.eq("deleteFlag", Globals.Delete_Normal.toString());
  158. //排序
  159. Map map = new HashMap();
  160. map.put("createDate", "desc");
  161. cq.setOrder(map);
  162. cq.add();
  163. this.holidayService.getDataGridReturn(cq, true);*/
  164. String orgIds = request.getParameter("orgIds");
  165. List<String> orgIdList = extractIdListByComma(orgIds);
  166. // 获取 当前组织机构的用户信息
  167. if (!CollectionUtils.isEmpty(orgIdList)) {
  168. String or = orgIdList.get(0);
  169. List<String> ChildIdList = userDepartOrgDealService.getChildIdByProjectDepartId(or);
  170. holiday.setOrgIdList(ChildIdList);
  171. //holiday.setOrgIdList(orgIdList);
  172. }
  173. HttpSession session = ContextHolderUtils.getSession();
  174. TSUser user = (TSUser)session.getAttribute("LOCAL_CLINET_USER");
  175. List<String> useridList = new ArrayList<String>();
  176. List<String> useridList1 = new ArrayList<String>();
  177. List<String> orgidList = new ArrayList<String>();
  178. //查询该用户的所有角色
  179. StringBuffer hql1 = new StringBuffer("from TSRoleUser where TSUser.id = :userid");
  180. List<TSRoleUser> listru = systemService.getSession().createQuery(hql1.toString()).setParameter("userid", user.getId()).list();
  181. /*boolean temp = false;
  182. for (TSRoleUser tsRoleUser : listru) {
  183. TSRole tsRole = tsRoleUser.getTSRole();
  184. if("M_ZJL".equals(tsRole.getRoleCode())){
  185. temp = true;
  186. break;
  187. }
  188. }*/
  189. useridList1.add(user.getId());
  190. if("admin".equals(user.getUserName())){
  191. useridList = null;
  192. }/*else if(temp){
  193. useridList1.add(user.getId());
  194. }*/else{
  195. //useridList = userService.getUserList("holiday", user);
  196. StringBuffer hql = new StringBuffer("from TSUserOrg where tsUser.id = :userid and status=0");
  197. List<TSUserOrg> tsList = systemService.getSession().createQuery(hql.toString()).setParameter("userid", user.getId()).list();
  198. for (TSUserOrg tsUserOrg : tsList) {
  199. TSDepart tsDepart = tsUserOrg.getTsDepart();
  200. if(Globals.org_type_3.equals(tsDepart.getOrgType()) || Globals.org_type_5.equals(tsDepart.getOrgType())){
  201. /*List<TSDepart> tsDList = systemService.findListbySql("select id from t_s_depart where parentdepartid = '"+tsDepart.getId()+"'");
  202. StringBuffer sql = new StringBuffer();
  203. sql.append("select uo.user_id as id FROM t_s_user_org uo " +
  204. "LEFT JOIN t_bus_user_personnel up on uo.user_id = up.userid " +
  205. "where up.manager_type = 2 and uo.org_id in(");
  206. for (int i = 0; i < tsDList.size(); i++) {
  207. if(i==0){
  208. sql.append("'"+tsDList.get(i)+"'");
  209. }else{
  210. sql.append(",'"+tsDList.get(i)+"'");
  211. }
  212. }
  213. sql.append(")");
  214. List<Map<String, Object>> tsDLists = systemService.findForJdbc(sql.toString(),null);
  215. if(!tsDLists.isEmpty()){
  216. for (Map t2 : tsDLists) {
  217. useridList.add(t2.get("id").toString());
  218. }
  219. }
  220. }*/
  221. StringBuffer sql = new StringBuffer();
  222. sql.append("select uo.user_id as id FROM t_s_user_org uo " +
  223. "LEFT JOIN t_bus_user_personnel up on uo.user_id = up.userid " +
  224. "where uo.org_id = '"+tsDepart.getId()+"' and status=0");
  225. List<Map<String, Object>> tsDLists = systemService.findForJdbc(sql.toString(),null);
  226. if(!tsDLists.isEmpty()){
  227. for (Map t2 : tsDLists) {
  228. useridList.add(t2.get("id").toString());
  229. }
  230. }
  231. List<String> tsDList = systemService.findListbySql("select id from t_s_depart where parentdepartid = '"+tsDepart.getId()+"'");
  232. if(!tsDList.isEmpty()){
  233. for (int i = 0; i < tsDList.size(); i++) {
  234. orgidList.add(tsDList.get(i).toString());
  235. }
  236. }
  237. }
  238. }
  239. useridList.add(user.getId());
  240. }
  241. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  242. MiniDaoPage<HolidayDaoEntity> list = holidayMinidaoDao.getAllEntities(holiday,useridList,useridList1,orgidList,dataGrid.getPage(), dataGrid.getRows(),authSql);
  243. //update-begin--Author:zhangliang Date:20170706 for:TASK #1945 【demo错误】minidao例子,通过条件查询,后台报错
  244. List<HolidayDaoEntity> corrList = list.getResults();
  245. if(!corrList.isEmpty()){
  246. for (HolidayDaoEntity cor : corrList) {
  247. if(StringUtils.isNotEmpty(cor.getProcInstId())){
  248. TaskDto dto = systemService.getTaskDto(cor.getId(), cor.getProcInstId());
  249. if(dto != null){
  250. if(dto.isReject()){
  251. cor.setReject("2");
  252. }else{
  253. cor.setReject("1");
  254. }
  255. if(dto.isIamApplyUser()){
  256. cor.setIamApplyUser("2");
  257. }else{
  258. cor.setIamApplyUser("1");
  259. }
  260. }else{
  261. cor.setReject("1");
  262. cor.setIamApplyUser("1");
  263. }
  264. }else{
  265. cor.setReject("1");
  266. cor.setIamApplyUser("1");
  267. }
  268. if(StringUtils.isNotEmpty(cor.getBelongUnitid())){
  269. cor.setBelongUnitid(modifyService.getByorgId(cor.getBelongUnitid()));
  270. }
  271. }
  272. }
  273. dataGrid.setTotal(list.getTotal());
  274. dataGrid.setResults(list.getResults());
  275. TagUtil.datagrid(response, dataGrid);
  276. }
  277. /**
  278. * 删除休假申请表
  279. *
  280. * @return
  281. */
  282. @RequestMapping(params = "doDel")
  283. @ResponseBody
  284. public AjaxJson doDel(HolidayEntity holiday, HttpServletRequest request) {
  285. String message = null;
  286. AjaxJson j = new AjaxJson();
  287. holiday = systemService.getEntity(HolidayEntity.class, holiday.getId());
  288. message = "休假申请表删除成功";
  289. try{
  290. holidayService.delete(holiday);
  291. systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  292. }catch(Exception e){
  293. e.printStackTrace();
  294. message = "休假申请表删除失败";
  295. throw new BusinessException(e.getMessage());
  296. }
  297. j.setMsg(message);
  298. return j;
  299. }
  300. /**
  301. * 批量删除休假申请表
  302. *
  303. * @return
  304. */
  305. @RequestMapping(params = "doBatchDel")
  306. @ResponseBody
  307. public AjaxJson doBatchDel(String ids,HttpServletRequest request){
  308. String message = null;
  309. AjaxJson j = new AjaxJson();
  310. message = "休假申请表删除成功";
  311. try{
  312. for(String id:ids.split(",")){
  313. HolidayEntity holiday = systemService.getEntity(HolidayEntity.class,
  314. id
  315. );
  316. holidayService.delete(holiday);
  317. systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  318. }
  319. }catch(Exception e){
  320. e.printStackTrace();
  321. message = "休假申请表删除失败";
  322. throw new BusinessException(e.getMessage());
  323. }
  324. j.setMsg(message);
  325. return j;
  326. }
  327. /**
  328. * 添加休假申请表
  329. *
  330. * @return
  331. */
  332. @RequestMapping(params = "doAdd")
  333. @ResponseBody
  334. public AjaxJson doAdd(HolidayEntity holiday, HttpServletRequest request) {
  335. String message = null;
  336. AjaxJson j = new AjaxJson();
  337. message = "休假申请表添加成功";
  338. try{
  339. HttpSession session = ContextHolderUtils.getSession();
  340. TSUser tuser = (TSUser)session.getAttribute("LOCAL_CLINET_USER");
  341. if(tuser != null){
  342. holiday.setApplicantId(tuser.getId());
  343. }
  344. //冗余休假类型名称
  345. List<DictEntity> dictEntities = systemService.queryDict(null,"rest_type", null);
  346. if(StringUtils.isNotEmpty(holiday.getHolidayType())){
  347. for (DictEntity dictEntity : dictEntities) {
  348. if(holiday.getHolidayType().equals(dictEntity.getTypecode())){
  349. holiday.setHolidayTypename(dictEntity.getTypename());
  350. }
  351. }
  352. if(!"0".equals(holiday.getHolidayType()) && !"1".equals(holiday.getHolidayType())){
  353. String holidayStime1 = request.getParameter("holidayStime1");
  354. String holidayEtime1 = request.getParameter("holidayEtime1");
  355. if(StringUtils.isNotEmpty(holidayStime1) && StringUtils.isNotEmpty(holidayEtime1)){
  356. SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  357. holidayStime1 = holidayStime1+" 00:00:00";
  358. holidayEtime1 = holidayEtime1+" 23:59:59";
  359. holiday.setHolidayStime(sim.parse(holidayStime1));
  360. holiday.setHolidayEtime(sim.parse(holidayEtime1));
  361. holiday.setHolidayDuration(null);
  362. }
  363. }else{
  364. String holidayStime1 = request.getParameter("holidayStime2");
  365. String holidayEtime1 = request.getParameter("holidayEtime2");
  366. if(StringUtils.isNotEmpty(holidayStime1) && StringUtils.isNotEmpty(holidayEtime1)){
  367. SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  368. holidayStime1 = holidayStime1+":00";
  369. holidayEtime1 = holidayEtime1+":00";
  370. holiday.setHolidayStime(sim.parse(holidayStime1));
  371. holiday.setHolidayEtime(sim.parse(holidayEtime1));
  372. holiday.setHolidayDuration(holiday.getHolidayDuration());
  373. }
  374. }
  375. }
  376. SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd");
  377. ParsePosition pos = new ParsePosition(0);
  378. holiday.setApplyDate(sim.parse(sim.format(new Date()), pos));
  379. holiday.setDeleteFlag(Globals.Delete_Normal.toString());
  380. String userids = request.getParameter("userid");
  381. List<TSUserOrg> roleUser = systemService.getSession().createSQLQuery("select * from t_s_user_org where user_id = '"+userids+"' and ifpluralism = 0 and status = 0 ").addEntity(TSUserOrg.class).list();
  382. holiday.setBelongUnitid(roleUser.get(0).getTsDepart().getId());
  383. holidayService.save(holiday);
  384. tSysFileService.updateBusiId(holiday.getAttachment(), holiday.getId());
  385. systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
  386. }catch(Exception e){
  387. e.printStackTrace();
  388. message = "休假申请表添加失败";
  389. throw new BusinessException(e.getMessage());
  390. }
  391. j.setMsg(message);
  392. return j;
  393. }
  394. /**
  395. * 更新休假申请表
  396. *
  397. * @return
  398. */
  399. @RequestMapping(params = "doUpdate")
  400. @ResponseBody
  401. public AjaxJson doUpdate(HolidayEntity holiday, HttpServletRequest request) {
  402. String message = null;
  403. AjaxJson j = new AjaxJson();
  404. message = "休假申请表更新成功";
  405. HolidayEntity t = holidayService.get(HolidayEntity.class, holiday.getId());
  406. try {
  407. MyBeanUtils.copyBeanNotNull2Bean(holiday, t);
  408. List<DictEntity> dictEntities = systemService.queryDict(null,"rest_type", null);
  409. if(StringUtils.isNotEmpty(holiday.getHolidayType())){
  410. for (DictEntity dictEntity : dictEntities) {
  411. if(holiday.getHolidayType().equals(dictEntity.getTypecode())){
  412. t.setHolidayTypename(dictEntity.getTypename());
  413. }
  414. }
  415. if(!"0".equals(holiday.getHolidayType()) && !"1".equals(holiday.getHolidayType())){
  416. String holidayStime1 = request.getParameter("holidayStime1");
  417. String holidayEtime1 = request.getParameter("holidayEtime1");
  418. if(StringUtils.isNotEmpty(holidayStime1) && StringUtils.isNotEmpty(holidayEtime1)){
  419. SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  420. holidayStime1 = holidayStime1+" 00:00:00";
  421. holidayEtime1 = holidayEtime1+" 23:59:59";
  422. t.setHolidayStime(sim.parse(holidayStime1));
  423. t.setHolidayEtime(sim.parse(holidayEtime1));
  424. t.setHolidayDuration(null);
  425. }
  426. }else{
  427. String holidayStime1 = request.getParameter("holidayStime2");
  428. String holidayEtime1 = request.getParameter("holidayEtime2");
  429. if(StringUtils.isNotEmpty(holidayStime1) && StringUtils.isNotEmpty(holidayEtime1)){
  430. SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  431. holidayStime1 = holidayStime1+":00";
  432. holidayEtime1 = holidayEtime1+":00";
  433. t.setHolidayStime(sim.parse(holidayStime1));
  434. t.setHolidayEtime(sim.parse(holidayEtime1));
  435. t.setHolidayDuration(holiday.getHolidayDuration());
  436. }
  437. }
  438. }
  439. String userids = request.getParameter("userid");
  440. List<TSUserOrg> roleUser = systemService.getSession().createSQLQuery("select * from t_s_user_org where user_id = '"+userids+"' and ifpluralism = 0 and status = 0 ").addEntity(TSUserOrg.class).list();
  441. t.setBelongUnitid(roleUser.get(0).getTsDepart().getId());
  442. holidayService.saveOrUpdate(t);
  443. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  444. } catch (Exception e) {
  445. e.printStackTrace();
  446. message = "休假申请表更新失败";
  447. throw new BusinessException(e.getMessage());
  448. }
  449. j.setMsg(message);
  450. return j;
  451. }
  452. /**
  453. * 休假申请表新增页面跳转
  454. *
  455. * @return
  456. */
  457. @RequestMapping(params = "goAdd")
  458. public ModelAndView goAdd(HolidayEntity holiday, HttpServletRequest req) {
  459. if (StringUtil.isNotEmpty(holiday.getId())) {
  460. holiday = holidayService.getEntity(HolidayEntity.class, holiday.getId());
  461. req.setAttribute("holidayPage", holiday);
  462. }
  463. return new ModelAndView("cn/com/lzt/holiday/holiday-add");
  464. }
  465. /**
  466. * 休假申请表编辑页面跳转
  467. *
  468. * @return
  469. */
  470. @RequestMapping(params = "goUpdate")
  471. public ModelAndView goUpdate(HolidayEntity holiday, HttpServletRequest req) {
  472. if (StringUtil.isNotEmpty(holiday.getId())) {
  473. holiday = holidayService.getEntity(HolidayEntity.class, holiday.getId());
  474. req.setAttribute("holidayPage", holiday);
  475. TSUser user = systemService.getEntity(TSUser.class, holiday.getUserid());
  476. req.setAttribute("user",user);
  477. }
  478. return new ModelAndView("cn/com/lzt/holiday/holiday-update");
  479. }
  480. /**
  481. * 离职申请表编辑页面跳转
  482. *
  483. * @return
  484. */
  485. @RequestMapping(params = "goView")
  486. public ModelAndView goView(HolidayEntity holiday, HttpServletRequest request) {
  487. if (StringUtil.isNotEmpty(holiday.getId())) {
  488. holiday = holidayService.getEntity(HolidayEntity.class, holiday.getId());
  489. request.setAttribute("holidayPage", holiday);
  490. TSUser user = systemService.getEntity(TSUser.class, holiday.getUserid());
  491. request.setAttribute("user",user);
  492. }
  493. String flage = oConvertUtils.getString(request.getParameter("flage"));
  494. if(oConvertUtils.isNotEmpty(flage)){
  495. request.setAttribute("flage",flage);
  496. }
  497. String taskId = oConvertUtils.getString(request.getParameter("taskId"));
  498. if(oConvertUtils.isNotEmpty(taskId)){
  499. FormProcUtil.initWorkflowParam(request);
  500. request.setAttribute("taskId",taskId);
  501. }
  502. String depId = holiday.getBelongUnitid();
  503. TSDepart depart = systemService.getEntity(TSDepart.class,depId);
  504. request.setAttribute("depart",depart);
  505. if(LztUtil.isApiRequest()){
  506. Map<String, Object> data = LztUtil.copyReqAttributes(new String[]{
  507. "user","depart"});
  508. data.put("entity",holiday);
  509. data.put("holidayType",DictUtil.formatToTypeName(holiday.getHolidayType(),"rest_type"));
  510. return new JsonDataModelAndView(WXAjaxJson.success(data));
  511. }
  512. return new ModelAndView("cn/com/lzt/holiday/holiday-view");
  513. }
  514. /**
  515. * 离职申请表编辑页面跳转
  516. *
  517. * @return
  518. */
  519. @RequestMapping(params = "goview")
  520. public ModelAndView goview(HolidayEntity holiday, HttpServletRequest request) {
  521. if (StringUtil.isNotEmpty(holiday.getId())) {
  522. holiday = holidayService.getEntity(HolidayEntity.class, holiday.getId());
  523. request.setAttribute("holidayPage", holiday);
  524. TSUser user = systemService.getEntity(TSUser.class, holiday.getUserid());
  525. request.setAttribute("user",user);
  526. }
  527. return new ModelAndView("cn/com/lzt/holiday/holidayView");
  528. }
  529. /**
  530. * 导入功能跳转
  531. *
  532. * @return
  533. */
  534. @RequestMapping(params = "upload")
  535. public ModelAndView upload(HttpServletRequest req) {
  536. req.setAttribute("controller_name","holidayController");
  537. return new ModelAndView("common/upload/pub_excel_upload");
  538. }
  539. /**
  540. * 导出excel
  541. *
  542. * @param request
  543. * @param response
  544. */
  545. @RequestMapping(params = "exportXls")
  546. public String exportXls(HolidayEntity holiday,HttpServletRequest request,HttpServletResponse response
  547. , DataGrid dataGrid,ModelMap modelMap) {
  548. CriteriaQuery cq = new CriteriaQuery(HolidayEntity.class, dataGrid);
  549. org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, holiday, request.getParameterMap());
  550. List<HolidayEntity> holidays = this.holidayService.getListByCriteriaQuery(cq,false);
  551. modelMap.put(NormalExcelConstants.FILE_NAME,"休假申请表");
  552. modelMap.put(NormalExcelConstants.CLASS,HolidayEntity.class);
  553. modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("休假申请表列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(),
  554. "导出信息"));
  555. modelMap.put(NormalExcelConstants.DATA_LIST,holidays);
  556. return NormalExcelConstants.JEECG_EXCEL_VIEW;
  557. }
  558. /**
  559. * 导出excel 使模板
  560. *
  561. * @param request
  562. * @param response
  563. */
  564. @RequestMapping(params = "exportXlsByT")
  565. public String exportXlsByT(HolidayEntity holiday,HttpServletRequest request,HttpServletResponse response
  566. , DataGrid dataGrid,ModelMap modelMap) {
  567. modelMap.put(NormalExcelConstants.FILE_NAME,"休假申请表");
  568. modelMap.put(NormalExcelConstants.CLASS,HolidayEntity.class);
  569. modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("休假申请表列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(),
  570. "导出信息"));
  571. modelMap.put(NormalExcelConstants.DATA_LIST,new ArrayList());
  572. return NormalExcelConstants.JEECG_EXCEL_VIEW;
  573. }
  574. @SuppressWarnings("unchecked")
  575. @RequestMapping(params = "importExcel", method = RequestMethod.POST)
  576. @ResponseBody
  577. public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) {
  578. AjaxJson j = new AjaxJson();
  579. MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
  580. Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
  581. for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
  582. MultipartFile file = entity.getValue();// 获取上传文件对象
  583. ImportParams params = new ImportParams();
  584. params.setTitleRows(2);
  585. params.setHeadRows(1);
  586. params.setNeedSave(true);
  587. try {
  588. List<HolidayEntity> listHolidayEntitys = ExcelImportUtil.importExcel(file.getInputStream(),HolidayEntity.class,params);
  589. for (HolidayEntity holiday : listHolidayEntitys) {
  590. holidayService.save(holiday);
  591. }
  592. j.setMsg("文件导入成功!");
  593. } catch (Exception e) {
  594. j.setMsg("文件导入失败!");
  595. logger.error(ExceptionUtil.getExceptionMessage(e));
  596. }finally{
  597. try {
  598. file.getInputStream().close();
  599. } catch (IOException e) {
  600. e.printStackTrace();
  601. }
  602. }
  603. }
  604. return j;
  605. }
  606. @RequestMapping(method = RequestMethod.GET)
  607. @ResponseBody
  608. public List<HolidayEntity> list() {
  609. List<HolidayEntity> listHolidays=holidayService.getList(HolidayEntity.class);
  610. return listHolidays;
  611. }
  612. @RequestMapping(value = "/{id}", method = RequestMethod.GET)
  613. @ResponseBody
  614. public ResponseEntity<?> get(@PathVariable("id") String id) {
  615. HolidayEntity task = holidayService.get(HolidayEntity.class, id);
  616. if (task == null) {
  617. return new ResponseEntity(HttpStatus.NOT_FOUND);
  618. }
  619. return new ResponseEntity(task, HttpStatus.OK);
  620. }
  621. @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
  622. @ResponseBody
  623. public ResponseEntity<?> create(@RequestBody HolidayEntity holiday, UriComponentsBuilder uriBuilder) {
  624. //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息.
  625. Set<ConstraintViolation<HolidayEntity>> failures = validator.validate(holiday);
  626. if (!failures.isEmpty()) {
  627. return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST);
  628. }
  629. //保存
  630. try{
  631. holidayService.save(holiday);
  632. } catch (Exception e) {
  633. e.printStackTrace();
  634. return new ResponseEntity(HttpStatus.NO_CONTENT);
  635. }
  636. //按照Restful风格约定,创建指向新任务的url, 也可以直接返回id或对象.
  637. String id = holiday.getId();
  638. URI uri = uriBuilder.path("/rest/holidayController/" + id).build().toUri();
  639. HttpHeaders headers = new HttpHeaders();
  640. headers.setLocation(uri);
  641. return new ResponseEntity(headers, HttpStatus.CREATED);
  642. }
  643. @RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
  644. public ResponseEntity<?> update(@RequestBody HolidayEntity holiday) {
  645. //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息.
  646. Set<ConstraintViolation<HolidayEntity>> failures = validator.validate(holiday);
  647. if (!failures.isEmpty()) {
  648. return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST);
  649. }
  650. //保存
  651. try{
  652. holidayService.saveOrUpdate(holiday);
  653. } catch (Exception e) {
  654. e.printStackTrace();
  655. return new ResponseEntity(HttpStatus.NO_CONTENT);
  656. }
  657. //按Restful约定,返回204状态码, 无内容. 也可以返回200状态码.
  658. return new ResponseEntity(HttpStatus.NO_CONTENT);
  659. }
  660. @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
  661. @ResponseStatus(HttpStatus.NO_CONTENT)
  662. public void delete(@PathVariable("id") String id) {
  663. holidayService.deleteEntityById(HolidayEntity.class, id);
  664. }
  665. /**
  666. * 启用
  667. *
  668. * @author liujie
  669. */
  670. @RequestMapping(params = "enable")
  671. @ResponseBody
  672. public AjaxJson enable(String id, HttpServletRequest req) {
  673. AjaxJson j = new AjaxJson();
  674. String message = null;
  675. HolidayEntity entity = holidayService.getEntity(HolidayEntity.class, id);
  676. try{
  677. entity.setBpmStatus(Globals.BPM_STATUS_PROCESSING.toString());
  678. holidayService.updateEntitie(entity);
  679. message = "休假申请:" + "" + "启用成功!";
  680. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  681. }catch(Exception e){
  682. message = "操作失败!";
  683. }
  684. j.setMsg(message);
  685. return j;
  686. }
  687. /**
  688. * 撤销
  689. *
  690. * @author liujie
  691. */
  692. @RequestMapping(params = "disable")
  693. @ResponseBody
  694. public AjaxJson disable(String id, HttpServletRequest req) {
  695. AjaxJson j = new AjaxJson();
  696. String message = null;
  697. HolidayEntity entity = holidayService.getEntity(HolidayEntity.class, id);
  698. try{
  699. entity.setBpmStatus(Globals.BPM_STATUS_Normal.toString());
  700. holidayService.updateEntitie(entity);
  701. message = "休假申请:" + "" + "撤销成功!";
  702. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  703. }catch(Exception e){
  704. message = "操作失败!";
  705. }
  706. j.setMsg(message);
  707. return j;
  708. }
  709. /**
  710. * 逻辑删除转正申请
  711. *
  712. * @return
  713. */
  714. @RequestMapping(params = "logicDel")
  715. @ResponseBody
  716. public AjaxJson logicDel(HolidayEntity holidayEntity, HttpServletRequest request) {
  717. String message = null;
  718. AjaxJson j = new AjaxJson();
  719. holidayEntity = systemService.getEntity(HolidayEntity.class, holidayEntity.getId());
  720. message = "休假申请 删除成功";
  721. try{
  722. holidayEntity.setDeleteFlag(Globals.Delete_Forbidden.toString());
  723. holidayService.logicDel(holidayEntity);
  724. systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  725. }catch(Exception e){
  726. e.printStackTrace();
  727. message = "休假申请 删除失败";
  728. throw new BusinessException(e.getMessage());
  729. }
  730. j.setMsg(message);
  731. return j;
  732. }
  733. /**
  734. * 判断请假时间是否重复
  735. *
  736. * @return
  737. */
  738. @RequestMapping(params = "isRepeat")
  739. @ResponseBody
  740. public AjaxJson isRepeat(HttpServletRequest request) {
  741. AjaxJson j = new AjaxJson();
  742. String id = request.getParameter("id");
  743. String userid = request.getParameter("userid");
  744. String stime = request.getParameter("stime");
  745. String etime = request.getParameter("etime");
  746. String holidayType = request.getParameter("holidayType");
  747. if("1".equals(holidayType)){
  748. stime = stime+" 00:00:00";
  749. etime = etime+" 23:59:59";
  750. }else{
  751. stime = stime+":00";
  752. etime = etime+":59";
  753. }
  754. List<HolidayEntity> holidayList = holidayService.findListbySql("select * from t_bus_holiday where userid ='"+userid+"' and ((" +
  755. "holiday_stime >= '"+stime+"' and holiday_stime <= '"+etime+"') or " +
  756. "(holiday_etime >= '"+stime+"' and holiday_etime <= '"+etime+"') or (holiday_stime <= '"+stime+"' and holiday_etime >= '"+etime+"')) and delete_flag = 0");
  757. if(StringUtils.isNotEmpty(id)){
  758. if(holidayList.size() > 1){
  759. j.setSuccess(false);
  760. j.setMsg("所选时间已有休假申请,不可重复选择");
  761. }else{
  762. j.setSuccess(true);
  763. j.setMsg("所选时间可以使用");
  764. }
  765. }else{
  766. if(holidayList.size() > 0){
  767. j.setSuccess(false);
  768. j.setMsg("所选时间已有休假申请,不可重复选择");
  769. }else{
  770. j.setSuccess(true);
  771. j.setMsg("所选时间可以使用");
  772. }
  773. }
  774. return j;
  775. }
  776. }