UserTalentSubsidyController.java 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451
  1. package cn.com.lzt.talentsubsidy.controller;
  2. import java.io.IOException;
  3. import java.net.URI;
  4. import java.util.ArrayList;
  5. import java.util.HashMap;
  6. import java.util.List;
  7. import java.util.Map;
  8. import java.util.Set;
  9. import javax.servlet.http.HttpServletRequest;
  10. import javax.servlet.http.HttpServletResponse;
  11. import javax.validation.ConstraintViolation;
  12. import javax.validation.Validator;
  13. import org.apache.log4j.Logger;
  14. import org.jeecgframework.core.beanvalidator.BeanValidators;
  15. import org.jeecgframework.core.common.controller.BaseController;
  16. import org.jeecgframework.core.common.exception.BusinessException;
  17. import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
  18. import org.jeecgframework.core.common.model.json.AjaxJson;
  19. import org.jeecgframework.core.common.model.json.DataGrid;
  20. import org.jeecgframework.core.constant.Globals;
  21. import org.jeecgframework.core.util.ExceptionUtil;
  22. import org.jeecgframework.core.util.MyBeanUtils;
  23. import org.jeecgframework.core.util.ResourceUtil;
  24. import org.jeecgframework.core.util.StringUtil;
  25. import org.jeecgframework.minidao.pojo.MiniDaoPage;
  26. import org.jeecgframework.poi.excel.ExcelImportUtil;
  27. import org.jeecgframework.poi.excel.entity.ExportParams;
  28. import org.jeecgframework.poi.excel.entity.ImportParams;
  29. import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants;
  30. import org.jeecgframework.tag.core.easyui.TagUtil;
  31. import org.jeecgframework.web.system.pojo.base.TSUser;
  32. import org.jeecgframework.web.system.service.SystemService;
  33. import org.springframework.beans.factory.annotation.Autowired;
  34. import org.springframework.http.HttpHeaders;
  35. import org.springframework.http.HttpStatus;
  36. import org.springframework.http.MediaType;
  37. import org.springframework.http.ResponseEntity;
  38. import org.springframework.stereotype.Controller;
  39. import org.springframework.ui.ModelMap;
  40. import org.springframework.web.bind.annotation.PathVariable;
  41. import org.springframework.web.bind.annotation.RequestBody;
  42. import org.springframework.web.bind.annotation.RequestMapping;
  43. import org.springframework.web.bind.annotation.RequestMethod;
  44. import org.springframework.web.bind.annotation.ResponseBody;
  45. import org.springframework.web.bind.annotation.ResponseStatus;
  46. import org.springframework.web.multipart.MultipartFile;
  47. import org.springframework.web.multipart.MultipartHttpServletRequest;
  48. import org.springframework.web.servlet.ModelAndView;
  49. import org.springframework.web.util.UriComponentsBuilder;
  50. import cn.com.lzt.talentsubsidy.dao.UserTalentSubsidyMiniDao;
  51. import cn.com.lzt.talentsubsidy.dto.UserTalentSubsidyDto;
  52. import cn.com.lzt.talentsubsidy.entity.TalentSubsidyStrategyEntity;
  53. import cn.com.lzt.talentsubsidy.entity.UserTalentSubsidyEntity;
  54. import cn.com.lzt.talentsubsidy.service.UserTalentSubsidyServiceI;
  55. import cn.com.lzt.userfinancial.entity.UserFinancialEntity;
  56. /**
  57. * @Title: Controller
  58. * @Description: 员工级人才补贴设置
  59. * @author onlineGenerator
  60. * @date 2019-10-23 10:13:39
  61. * @version V1.0
  62. *
  63. */
  64. @Controller
  65. @RequestMapping("/userTalentSubsidyController")
  66. public class UserTalentSubsidyController extends BaseController {
  67. /**
  68. * Logger for this class
  69. */
  70. private static final Logger logger = Logger.getLogger(UserTalentSubsidyController.class);
  71. @Autowired
  72. private UserTalentSubsidyServiceI userTalentSubsidyService;
  73. @Autowired
  74. private SystemService systemService;
  75. @Autowired
  76. private Validator validator;
  77. @Autowired
  78. private UserTalentSubsidyMiniDao userTalentSubsidyDao;
  79. /**
  80. * 员工级人才补贴设置列表 页面跳转
  81. *
  82. * @return
  83. */
  84. @RequestMapping(params = "list")
  85. public ModelAndView list(HttpServletRequest request) {
  86. return new ModelAndView("cn/com/lzt/talentsubsidy/userTalentSubsidyList");
  87. }
  88. /**
  89. * 异步获取人才津贴策略
  90. * @author zbw
  91. * 2017-10-13
  92. * @param request
  93. * @param response
  94. * @return
  95. */
  96. @RequestMapping(params = "getTalentSubsidy")
  97. @ResponseBody
  98. public AjaxJson getTalentSubsidy(HttpServletRequest request, HttpServletResponse response) {
  99. AjaxJson j = new AjaxJson();
  100. String talentStrategyId = request.getParameter("talentStrategyId");
  101. String hql = "from TalentSubsidyStrategyEntity where id=? ";
  102. List<TalentSubsidyStrategyEntity> list = systemService.findHql(hql, talentStrategyId);
  103. try {
  104. HashMap<String,Object> map = new HashMap<String,Object>() ;
  105. if(list != null && list.size()>0) {
  106. map.put("talentStrategy", list.get(0));
  107. }else {
  108. j.setSuccess(false);
  109. j.setMsg("未找到人才津贴策略");
  110. return j;
  111. }
  112. j.setAttributes(map);
  113. //systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  114. } catch (Exception e) {
  115. e.printStackTrace();
  116. j.setSuccess(false);
  117. j.setMsg(e.getMessage());
  118. }
  119. return j;
  120. }
  121. /**
  122. * easyui AJAX请求数据
  123. *
  124. * @param request
  125. * @param response
  126. * @param dataGrid
  127. * @param user
  128. */
  129. @RequestMapping(params = "datagrid")
  130. public void datagrid(UserTalentSubsidyDto userTalentSubsidy,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
  131. MiniDaoPage<UserTalentSubsidyDto> list = userTalentSubsidyDao.datagrid(userTalentSubsidy, dataGrid.getPage(), dataGrid.getRows(), "");
  132. dataGrid.setTotal(list.getTotal());
  133. dataGrid.setResults(list.getResults());
  134. TagUtil.datagrid(response, dataGrid);
  135. }
  136. /**
  137. * 删除员工级人才补贴设置
  138. *
  139. * @return
  140. */
  141. @RequestMapping(params = "doDel")
  142. @ResponseBody
  143. public AjaxJson doDel(UserTalentSubsidyEntity userTalentSubsidy, HttpServletRequest request) {
  144. String message = null;
  145. AjaxJson j = new AjaxJson();
  146. userTalentSubsidy = systemService.getEntity(UserTalentSubsidyEntity.class, userTalentSubsidy.getId());
  147. message = "员工级人才补贴设置删除成功";
  148. try{
  149. userTalentSubsidyService.delete(userTalentSubsidy);
  150. systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  151. }catch(Exception e){
  152. e.printStackTrace();
  153. message = "员工级人才补贴设置删除失败";
  154. throw new BusinessException(e.getMessage());
  155. }
  156. j.setMsg(message);
  157. return j;
  158. }
  159. /**
  160. * 批量删除员工级人才补贴设置
  161. *
  162. * @return
  163. */
  164. @RequestMapping(params = "doBatchDel")
  165. @ResponseBody
  166. public AjaxJson doBatchDel(String ids,HttpServletRequest request){
  167. String message = null;
  168. AjaxJson j = new AjaxJson();
  169. message = "员工级人才补贴设置删除成功";
  170. try{
  171. for(String id:ids.split(",")){
  172. UserTalentSubsidyEntity userTalentSubsidy = systemService.getEntity(UserTalentSubsidyEntity.class,
  173. id
  174. );
  175. userTalentSubsidy.setDeleteFlag(Globals.Delete_Forbidden.toString());
  176. userTalentSubsidyService.saveOrUpdate(userTalentSubsidy);
  177. systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  178. }
  179. }catch(Exception e){
  180. e.printStackTrace();
  181. message = "员工级人才补贴设置删除失败";
  182. throw new BusinessException(e.getMessage());
  183. }
  184. j.setMsg(message);
  185. return j;
  186. }
  187. /**
  188. * 添加员工级人才补贴设置
  189. *
  190. * @param ids
  191. * @return
  192. */
  193. @RequestMapping(params = "doAdd")
  194. @ResponseBody
  195. public AjaxJson doAdd(UserTalentSubsidyEntity userTalentSubsidy, HttpServletRequest request) {
  196. String message = null;
  197. AjaxJson j = new AjaxJson();
  198. message = "员工级人才补贴设置添加成功";
  199. try{
  200. if(existsSameInfo(userTalentSubsidy)) {
  201. j.setMsg("已经存在相同的人才津贴设定");
  202. return j;
  203. }
  204. userTalentSubsidy.setDeleteFlag("0");
  205. userTalentSubsidyService.save(userTalentSubsidy);
  206. systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
  207. }catch(Exception e){
  208. e.printStackTrace();
  209. message = "员工级人才补贴设置添加失败";
  210. throw new BusinessException(e.getMessage());
  211. }
  212. j.setMsg(message);
  213. return j;
  214. }
  215. /**
  216. * @param userTalentSubsidy
  217. * @return
  218. */
  219. private boolean existsSameInfo(UserTalentSubsidyEntity userTalentSubsidy) {
  220. Long count = systemService.getCountForJdbc("SELECT COUNT(1) FROM t_bus_user_talent_subsidy "
  221. + "WHERE user_id='"+userTalentSubsidy.getUserid()
  222. +"' and talent_strategy_id='" +userTalentSubsidy.getTalentStrategyId()+"'");
  223. if(count > 0) {
  224. return true;
  225. }
  226. return false;
  227. }
  228. /**
  229. * 更新员工级人才补贴设置
  230. *
  231. * @param ids
  232. * @return
  233. */
  234. @RequestMapping(params = "doUpdate")
  235. @ResponseBody
  236. public AjaxJson doUpdate(UserTalentSubsidyEntity userTalentSubsidy, HttpServletRequest request) {
  237. String message = null;
  238. AjaxJson j = new AjaxJson();
  239. message = "员工级人才补贴设置更新成功";
  240. UserTalentSubsidyEntity t = userTalentSubsidyService.get(UserTalentSubsidyEntity.class, userTalentSubsidy.getId());
  241. try {
  242. MyBeanUtils.copyBeanNotNull2Bean(userTalentSubsidy, t);
  243. userTalentSubsidyService.saveOrUpdate(t);
  244. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  245. } catch (Exception e) {
  246. e.printStackTrace();
  247. message = "员工级人才补贴设置更新失败";
  248. throw new BusinessException(e.getMessage());
  249. }
  250. j.setMsg(message);
  251. return j;
  252. }
  253. /**
  254. * 员工级人才补贴设置新增页面跳转
  255. *
  256. * @return
  257. */
  258. @RequestMapping(params = "goAdd")
  259. public ModelAndView goAdd(UserTalentSubsidyEntity userTalentSubsidy, HttpServletRequest req) {
  260. if (StringUtil.isNotEmpty(userTalentSubsidy.getId())) {
  261. userTalentSubsidy = userTalentSubsidyService.getEntity(UserTalentSubsidyEntity.class, userTalentSubsidy.getId());
  262. req.setAttribute("userTalentSubsidyPage", userTalentSubsidy);
  263. }
  264. return new ModelAndView("cn/com/lzt/talentsubsidy/userTalentSubsidy-add");
  265. }
  266. /**
  267. * 员工级人才补贴设置编辑页面跳转
  268. *
  269. * @return
  270. */
  271. @RequestMapping(params = "goUpdate")
  272. public ModelAndView goUpdate(UserTalentSubsidyEntity userTalentSubsidy, HttpServletRequest req) {
  273. if (StringUtil.isNotEmpty(userTalentSubsidy.getId())) {
  274. userTalentSubsidy = userTalentSubsidyService.getEntity(UserTalentSubsidyEntity.class, userTalentSubsidy.getId());
  275. req.setAttribute("userTalentSubsidyPage", userTalentSubsidy);
  276. TSUser user = userTalentSubsidyService.getEntity(TSUser.class, userTalentSubsidy.getUserid());
  277. req.setAttribute("realName", user.getRealName());
  278. }
  279. return new ModelAndView("cn/com/lzt/talentsubsidy/userTalentSubsidy-update");
  280. }
  281. /**
  282. * 导入功能跳转
  283. *
  284. * @return
  285. */
  286. @RequestMapping(params = "upload")
  287. public ModelAndView upload(HttpServletRequest req) {
  288. req.setAttribute("controller_name","userTalentSubsidyController");
  289. return new ModelAndView("common/upload/pub_excel_upload");
  290. }
  291. /**
  292. * 导出excel
  293. *
  294. * @param request
  295. * @param response
  296. */
  297. @RequestMapping(params = "exportXls")
  298. public String exportXls(UserTalentSubsidyEntity userTalentSubsidy,HttpServletRequest request,HttpServletResponse response
  299. , DataGrid dataGrid,ModelMap modelMap) {
  300. CriteriaQuery cq = new CriteriaQuery(UserTalentSubsidyEntity.class, dataGrid);
  301. org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, userTalentSubsidy, request.getParameterMap());
  302. List<UserTalentSubsidyEntity> userTalentSubsidys = this.userTalentSubsidyService.getListByCriteriaQuery(cq,false);
  303. modelMap.put(NormalExcelConstants.FILE_NAME,"员工级人才补贴设置");
  304. modelMap.put(NormalExcelConstants.CLASS,UserTalentSubsidyEntity.class);
  305. modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("员工级人才补贴设置列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(),
  306. "导出信息"));
  307. modelMap.put(NormalExcelConstants.DATA_LIST,userTalentSubsidys);
  308. return NormalExcelConstants.JEECG_EXCEL_VIEW;
  309. }
  310. /**
  311. * 导出excel 使模板
  312. *
  313. * @param request
  314. * @param response
  315. */
  316. @RequestMapping(params = "exportXlsByT")
  317. public String exportXlsByT(UserTalentSubsidyEntity userTalentSubsidy,HttpServletRequest request,HttpServletResponse response
  318. , DataGrid dataGrid,ModelMap modelMap) {
  319. modelMap.put(NormalExcelConstants.FILE_NAME,"员工级人才补贴设置");
  320. modelMap.put(NormalExcelConstants.CLASS,UserTalentSubsidyEntity.class);
  321. modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("员工级人才补贴设置列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(),
  322. "导出信息"));
  323. modelMap.put(NormalExcelConstants.DATA_LIST,new ArrayList());
  324. return NormalExcelConstants.JEECG_EXCEL_VIEW;
  325. }
  326. @SuppressWarnings("unchecked")
  327. @RequestMapping(params = "importExcel", method = RequestMethod.POST)
  328. @ResponseBody
  329. public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) {
  330. AjaxJson j = new AjaxJson();
  331. MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
  332. Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
  333. for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
  334. MultipartFile file = entity.getValue();// 获取上传文件对象
  335. ImportParams params = new ImportParams();
  336. params.setTitleRows(2);
  337. params.setHeadRows(1);
  338. params.setNeedSave(true);
  339. try {
  340. List<UserTalentSubsidyEntity> listUserTalentSubsidyEntitys = ExcelImportUtil.importExcel(file.getInputStream(),UserTalentSubsidyEntity.class,params);
  341. for (UserTalentSubsidyEntity userTalentSubsidy : listUserTalentSubsidyEntitys) {
  342. userTalentSubsidyService.save(userTalentSubsidy);
  343. }
  344. j.setMsg("文件导入成功!");
  345. } catch (Exception e) {
  346. j.setMsg("文件导入失败!");
  347. logger.error(ExceptionUtil.getExceptionMessage(e));
  348. }finally{
  349. try {
  350. file.getInputStream().close();
  351. } catch (IOException e) {
  352. e.printStackTrace();
  353. }
  354. }
  355. }
  356. return j;
  357. }
  358. @RequestMapping(method = RequestMethod.GET)
  359. @ResponseBody
  360. public List<UserTalentSubsidyEntity> list() {
  361. List<UserTalentSubsidyEntity> listUserTalentSubsidys=userTalentSubsidyService.getList(UserTalentSubsidyEntity.class);
  362. return listUserTalentSubsidys;
  363. }
  364. @RequestMapping(value = "/{id}", method = RequestMethod.GET)
  365. @ResponseBody
  366. public ResponseEntity<?> get(@PathVariable("id") String id) {
  367. UserTalentSubsidyEntity task = userTalentSubsidyService.get(UserTalentSubsidyEntity.class, id);
  368. if (task == null) {
  369. return new ResponseEntity(HttpStatus.NOT_FOUND);
  370. }
  371. return new ResponseEntity(task, HttpStatus.OK);
  372. }
  373. @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
  374. @ResponseBody
  375. public ResponseEntity<?> create(@RequestBody UserTalentSubsidyEntity userTalentSubsidy, UriComponentsBuilder uriBuilder) {
  376. //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息.
  377. Set<ConstraintViolation<UserTalentSubsidyEntity>> failures = validator.validate(userTalentSubsidy);
  378. if (!failures.isEmpty()) {
  379. return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST);
  380. }
  381. //保存
  382. try{
  383. userTalentSubsidyService.save(userTalentSubsidy);
  384. } catch (Exception e) {
  385. e.printStackTrace();
  386. return new ResponseEntity(HttpStatus.NO_CONTENT);
  387. }
  388. //按照Restful风格约定,创建指向新任务的url, 也可以直接返回id或对象.
  389. String id = userTalentSubsidy.getId();
  390. URI uri = uriBuilder.path("/rest/userTalentSubsidyController/" + id).build().toUri();
  391. HttpHeaders headers = new HttpHeaders();
  392. headers.setLocation(uri);
  393. return new ResponseEntity(headers, HttpStatus.CREATED);
  394. }
  395. @RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
  396. public ResponseEntity<?> update(@RequestBody UserTalentSubsidyEntity userTalentSubsidy) {
  397. //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息.
  398. Set<ConstraintViolation<UserTalentSubsidyEntity>> failures = validator.validate(userTalentSubsidy);
  399. if (!failures.isEmpty()) {
  400. return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST);
  401. }
  402. //保存
  403. try{
  404. userTalentSubsidyService.saveOrUpdate(userTalentSubsidy);
  405. } catch (Exception e) {
  406. e.printStackTrace();
  407. return new ResponseEntity(HttpStatus.NO_CONTENT);
  408. }
  409. //按Restful约定,返回204状态码, 无内容. 也可以返回200状态码.
  410. return new ResponseEntity(HttpStatus.NO_CONTENT);
  411. }
  412. @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
  413. @ResponseStatus(HttpStatus.NO_CONTENT)
  414. public void delete(@PathVariable("id") String id) {
  415. userTalentSubsidyService.deleteEntityById(UserTalentSubsidyEntity.class, id);
  416. }
  417. }