StaffController.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
  1. package com.zhcs.dt.controller.fhoa.staff;
  2. import java.io.PrintWriter;
  3. import java.text.DateFormat;
  4. import java.text.SimpleDateFormat;
  5. import java.util.ArrayList;
  6. import java.util.Date;
  7. import java.util.HashMap;
  8. import java.util.List;
  9. import java.util.Map;
  10. import javax.annotation.Resource;
  11. import net.sf.json.JSONArray;
  12. import org.springframework.beans.propertyeditors.CustomDateEditor;
  13. import org.springframework.stereotype.Controller;
  14. import org.springframework.web.bind.WebDataBinder;
  15. import org.springframework.web.bind.annotation.InitBinder;
  16. import org.springframework.web.bind.annotation.RequestMapping;
  17. import org.springframework.web.bind.annotation.ResponseBody;
  18. import org.springframework.web.servlet.ModelAndView;
  19. import com.zhcs.dt.controller.base.BaseController;
  20. import com.zhcs.dt.entity.Page;
  21. import com.zhcs.dt.service.fhoa.datajur.DatajurManager;
  22. import com.zhcs.dt.service.fhoa.department.DepartmentManager;
  23. import com.zhcs.dt.service.fhoa.staff.StaffManager;
  24. import com.zhcs.dt.util.AppUtil;
  25. import com.zhcs.dt.util.Jurisdiction;
  26. import com.zhcs.dt.util.ObjectExcelView;
  27. import com.zhcs.dt.util.PageData;
  28. import com.zhcs.dt.util.Tools;
  29. /**
  30. * 说明:员工管理
  31. * 创建人:FH Q313596790
  32. * 创建时间:2016-04-23
  33. */
  34. @Controller
  35. @RequestMapping(value="/staff")
  36. public class StaffController extends BaseController {
  37. String menuUrl = "staff/list.do"; //菜单地址(权限用)
  38. @Resource(name="staffService")
  39. private StaffManager staffService;
  40. @Resource(name="departmentService")
  41. private DepartmentManager departmentService;
  42. @Resource(name="datajurService")
  43. private DatajurManager datajurService;
  44. /**保存
  45. * @param
  46. * @throws Exception
  47. */
  48. @RequestMapping(value="/save")
  49. public ModelAndView save() throws Exception{
  50. logBefore(logger, Jurisdiction.getUsername()+"新增Staff");
  51. if(!Jurisdiction.buttonJurisdiction(menuUrl, "add")){return null;} //校验权限
  52. ModelAndView mv = this.getModelAndView();
  53. PageData pd = new PageData();
  54. pd = this.getPageData();
  55. pd.put("STAFF_ID", this.get32UUID()); //主键
  56. pd.put("USER_ID", ""); //绑定账号ID
  57. staffService.save(pd); //保存员工信息到员工表
  58. String DEPARTMENT_IDS = departmentService.getDEPARTMENT_IDS(pd.getString("DEPARTMENT_ID"));//获取某个部门所有下级部门ID
  59. pd.put("DATAJUR_ID", pd.getString("STAFF_ID")); //主键
  60. pd.put("DEPARTMENT_IDS", DEPARTMENT_IDS); //部门ID集
  61. datajurService.save(pd); //把此员工默认部门及以下部门ID保存到组织数据权限表
  62. mv.addObject("msg","success");
  63. mv.setViewName("save_result");
  64. return mv;
  65. }
  66. /**删除
  67. * @param out
  68. * @throws Exception
  69. */
  70. @RequestMapping(value="/delete")
  71. public void delete(PrintWriter out) throws Exception{
  72. logBefore(logger, Jurisdiction.getUsername()+"删除Staff");
  73. if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return;} //校验权限
  74. PageData pd = new PageData();
  75. pd = this.getPageData();
  76. staffService.delete(pd);
  77. out.write("success");
  78. out.close();
  79. }
  80. /**修改
  81. * @param
  82. * @throws Exception
  83. */
  84. @RequestMapping(value="/edit")
  85. public ModelAndView edit() throws Exception{
  86. logBefore(logger, Jurisdiction.getUsername()+"修改Staff");
  87. if(!Jurisdiction.buttonJurisdiction(menuUrl, "edit")){return null;} //校验权限
  88. ModelAndView mv = this.getModelAndView();
  89. PageData pd = new PageData();
  90. pd = this.getPageData();
  91. staffService.edit(pd);
  92. String DEPARTMENT_IDS = departmentService.getDEPARTMENT_IDS(pd.getString("DEPARTMENT_ID"));//获取某个部门所有下级部门ID
  93. pd.put("DATAJUR_ID", pd.getString("STAFF_ID")); //主键
  94. pd.put("DEPARTMENT_IDS", DEPARTMENT_IDS); //部门ID集
  95. datajurService.edit(pd); //把此员工默认部门及以下部门ID保存到组织数据权限表
  96. mv.addObject("msg","success");
  97. mv.setViewName("save_result");
  98. return mv;
  99. }
  100. /**列表(检索条件中的部门,只列出此操作用户最高部门权限以下所有部门的员工)
  101. * @param page
  102. * @throws Exception
  103. */
  104. @RequestMapping(value="/list")
  105. public ModelAndView list(Page page) throws Exception{
  106. logBefore(logger, Jurisdiction.getUsername()+"列表Staff");
  107. //if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码)
  108. ModelAndView mv = this.getModelAndView();
  109. PageData pd = new PageData();
  110. pd = this.getPageData();
  111. String keywords = pd.getString("keywords"); //关键词检索条件
  112. if(null != keywords && !"".equals(keywords)){
  113. pd.put("keywords", keywords.trim());
  114. }
  115. String DEPARTMENT_ID = pd.getString("DEPARTMENT_ID");
  116. pd.put("DEPARTMENT_ID", null == DEPARTMENT_ID?Jurisdiction.getDEPARTMENT_ID():DEPARTMENT_ID); //只有检索条件穿过值时,才不为null,否则读取缓存
  117. pd.put("item", (null == pd.getString("DEPARTMENT_ID")?Jurisdiction.getDEPARTMENT_IDS():departmentService.getDEPARTMENT_IDS(pd.getString("DEPARTMENT_ID")))); //部门检索条件,列出此部门下级所属部门的员工
  118. /* 比如员工 张三 所有部门权限的部门为 A , A 的下级有 C , D ,F ,那么当部门检索条件值为A时,只列出A以下部门的员工(自己不能修改自己的信息,只能上级部门修改),不列出部门为A的员工,当部门检索条件值为C时,可以列出C及C以下员工 */
  119. if(!(null == DEPARTMENT_ID || DEPARTMENT_ID.equals(Jurisdiction.getDEPARTMENT_ID()))){
  120. pd.put("item", pd.getString("item").replaceFirst("\\(", "\\('"+DEPARTMENT_ID+"',"));
  121. }
  122. page.setPd(pd);
  123. List<PageData> varList = staffService.list(page); //列出Staff列表
  124. //列表页面树形下拉框用(保持下拉树里面的数据不变)
  125. String ZDEPARTMENT_ID = pd.getString("ZDEPARTMENT_ID");
  126. ZDEPARTMENT_ID = Tools.notEmpty(ZDEPARTMENT_ID)?ZDEPARTMENT_ID:Jurisdiction.getDEPARTMENT_ID();
  127. pd.put("ZDEPARTMENT_ID", ZDEPARTMENT_ID);
  128. List<PageData> zdepartmentPdList = new ArrayList<PageData>();
  129. JSONArray arr = JSONArray.fromObject(departmentService.listAllDepartmentToSelect(ZDEPARTMENT_ID,zdepartmentPdList));
  130. mv.addObject("zTreeNodes", arr.toString());
  131. PageData dpd = departmentService.findById(pd);
  132. if(null != dpd){
  133. ZDEPARTMENT_ID = dpd.getString("NAME");
  134. }
  135. mv.addObject("depname", ZDEPARTMENT_ID);
  136. mv.setViewName("fhoa/staff/staff_list");
  137. mv.addObject("varList", varList);
  138. mv.addObject("pd", pd);
  139. mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
  140. return mv;
  141. }
  142. /**去新增页面
  143. * @param
  144. * @throws Exception
  145. */
  146. @RequestMapping(value="/goAdd")
  147. public ModelAndView goAdd()throws Exception{
  148. ModelAndView mv = this.getModelAndView();
  149. PageData pd = new PageData();
  150. pd = this.getPageData();
  151. List<PageData> zdepartmentPdList = new ArrayList<PageData>();
  152. JSONArray arr = JSONArray.fromObject(departmentService.listAllDepartmentToSelect(Jurisdiction.getDEPARTMENT_ID(),zdepartmentPdList));
  153. mv.addObject("zTreeNodes", (null == arr ?"":arr.toString()));
  154. mv.addObject("msg", "save");
  155. mv.addObject("pd", pd);
  156. mv.setViewName("fhoa/staff/staff_edit");
  157. return mv;
  158. }
  159. /**去修改页面
  160. * @param
  161. * @throws Exception
  162. */
  163. @RequestMapping(value="/goEdit")
  164. public ModelAndView goEdit()throws Exception{
  165. ModelAndView mv = this.getModelAndView();
  166. PageData pd = new PageData();
  167. pd = this.getPageData();
  168. List<PageData> zdepartmentPdList = new ArrayList<PageData>();
  169. JSONArray arr = JSONArray.fromObject(departmentService.listAllDepartmentToSelect(Jurisdiction.getDEPARTMENT_ID(),zdepartmentPdList));
  170. mv.addObject("zTreeNodes", (null == arr ?"":arr.toString()));
  171. pd = staffService.findById(pd); //根据ID读取
  172. mv.setViewName("fhoa/staff/staff_edit");
  173. mv.addObject("depname", departmentService.findById(pd).getString("NAME"));
  174. mv.addObject("msg", "edit");
  175. mv.addObject("pd", pd);
  176. return mv;
  177. }
  178. /**批量删除
  179. * @param
  180. * @throws Exception
  181. */
  182. @RequestMapping(value="/deleteAll")
  183. @ResponseBody
  184. public Object deleteAll() throws Exception{
  185. logBefore(logger, Jurisdiction.getUsername()+"批量删除Staff");
  186. if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return null;} //校验权限
  187. PageData pd = new PageData();
  188. Map<String,Object> map = new HashMap<String,Object>();
  189. pd = this.getPageData();
  190. List<PageData> pdList = new ArrayList<PageData>();
  191. String DATA_IDS = pd.getString("DATA_IDS");
  192. if(null != DATA_IDS && !"".equals(DATA_IDS)){
  193. String ArrayDATA_IDS[] = DATA_IDS.split(",");
  194. staffService.deleteAll(ArrayDATA_IDS);
  195. pd.put("msg", "ok");
  196. }else{
  197. pd.put("msg", "no");
  198. }
  199. pdList.add(pd);
  200. map.put("list", pdList);
  201. return AppUtil.returnObject(pd, map);
  202. }
  203. /**绑定用户
  204. * @param
  205. * @throws Exception
  206. */
  207. @RequestMapping(value="/userBinding")
  208. @ResponseBody
  209. public Object userBinding() throws Exception{
  210. logBefore(logger, Jurisdiction.getUsername()+"绑定用户");
  211. if(!Jurisdiction.buttonJurisdiction(menuUrl, "edit")){return null;} //校验权限
  212. PageData pd = new PageData();
  213. Map<String,Object> map = new HashMap<String,Object>();
  214. pd = this.getPageData();
  215. staffService.userBinding(pd);
  216. return AppUtil.returnObject(pd, map);
  217. }
  218. /**导出到excel
  219. * @param
  220. * @throws Exception
  221. */
  222. @RequestMapping(value="/excel")
  223. public ModelAndView exportExcel() throws Exception{
  224. logBefore(logger, Jurisdiction.getUsername()+"导出Staff到excel");
  225. if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;}
  226. ModelAndView mv = new ModelAndView();
  227. PageData pd = new PageData();
  228. pd = this.getPageData();
  229. Map<String,Object> dataMap = new HashMap<String,Object>();
  230. List<String> titles = new ArrayList<String>();
  231. titles.add("姓名"); //1
  232. titles.add("英文"); //2
  233. titles.add("编码"); //3
  234. titles.add("部门"); //4
  235. titles.add("职责"); //5
  236. titles.add("电话"); //6
  237. titles.add("邮箱"); //7
  238. titles.add("性别"); //8
  239. titles.add("出生日期"); //9
  240. titles.add("民族"); //10
  241. titles.add("岗位类别"); //11
  242. titles.add("参加工作时间"); //12
  243. titles.add("籍贯"); //13
  244. titles.add("政治面貌"); //14
  245. titles.add("入团时间"); //15
  246. titles.add("身份证号"); //16
  247. titles.add("婚姻状况"); //17
  248. titles.add("进本单位时间"); //18
  249. titles.add("现岗位"); //19
  250. titles.add("上岗时间"); //20
  251. titles.add("学历"); //21
  252. titles.add("毕业学校"); //22
  253. titles.add("专业"); //23
  254. titles.add("职称"); //24
  255. titles.add("职业资格证"); //25
  256. titles.add("劳动合同时长"); //26
  257. titles.add("签订日期"); //27
  258. titles.add("终止日期"); //28
  259. titles.add("现住址"); //29
  260. titles.add("绑定账号ID"); //30
  261. titles.add("备注"); //31
  262. dataMap.put("titles", titles);
  263. List<PageData> varOList = staffService.listAll(pd);
  264. List<PageData> varList = new ArrayList<PageData>();
  265. for(int i=0;i<varOList.size();i++){
  266. PageData vpd = new PageData();
  267. vpd.put("var1", varOList.get(i).getString("NAME")); //1
  268. vpd.put("var2", varOList.get(i).getString("NAME_EN")); //2
  269. vpd.put("var3", varOList.get(i).getString("BIANMA")); //3
  270. vpd.put("var4", varOList.get(i).getString("DEPARTMENT_ID")); //4
  271. vpd.put("var5", varOList.get(i).getString("FUNCTIONS")); //5
  272. vpd.put("var6", varOList.get(i).getString("TEL")); //6
  273. vpd.put("var7", varOList.get(i).getString("EMAIL")); //7
  274. vpd.put("var8", varOList.get(i).getString("SEX")); //8
  275. vpd.put("var9", varOList.get(i).getString("BIRTHDAY")); //9
  276. vpd.put("var10", varOList.get(i).getString("NATION")); //10
  277. vpd.put("var11", varOList.get(i).getString("JOBTYPE")); //11
  278. vpd.put("var12", varOList.get(i).getString("JOBJOINTIME")); //12
  279. vpd.put("var13", varOList.get(i).getString("FADDRESS")); //13
  280. vpd.put("var14", varOList.get(i).getString("POLITICAL")); //14
  281. vpd.put("var15", varOList.get(i).getString("PJOINTIME")); //15
  282. vpd.put("var16", varOList.get(i).getString("SFID")); //16
  283. vpd.put("var17", varOList.get(i).getString("MARITAL")); //17
  284. vpd.put("var18", varOList.get(i).getString("DJOINTIME")); //18
  285. vpd.put("var19", varOList.get(i).getString("POST")); //19
  286. vpd.put("var20", varOList.get(i).getString("POJOINTIME")); //20
  287. vpd.put("var21", varOList.get(i).getString("EDUCATION")); //21
  288. vpd.put("var22", varOList.get(i).getString("SCHOOL")); //22
  289. vpd.put("var23", varOList.get(i).getString("MAJOR")); //23
  290. vpd.put("var24", varOList.get(i).getString("FTITLE")); //24
  291. vpd.put("var25", varOList.get(i).getString("CERTIFICATE")); //25
  292. vpd.put("var26", varOList.get(i).get("CONTRACTLENGTH").toString()); //26
  293. vpd.put("var27", varOList.get(i).getString("CSTARTTIME")); //27
  294. vpd.put("var28", varOList.get(i).getString("CENDTIME")); //28
  295. vpd.put("var29", varOList.get(i).getString("ADDRESS")); //29
  296. vpd.put("var30", varOList.get(i).getString("USER_ID")); //30
  297. vpd.put("var31", varOList.get(i).getString("BZ")); //31
  298. varList.add(vpd);
  299. }
  300. dataMap.put("varList", varList);
  301. ObjectExcelView erv = new ObjectExcelView();
  302. mv = new ModelAndView(erv,dataMap);
  303. return mv;
  304. }
  305. @InitBinder
  306. public void initBinder(WebDataBinder binder){
  307. DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  308. binder.registerCustomEditor(Date.class, new CustomDateEditor(format,true));
  309. }
  310. }