123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771 |
- package com.zhcs.dt.controller.fhoa.department;
- import java.text.DateFormat;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import javax.annotation.Resource;
- import net.sf.json.JSONArray;
- import org.springframework.beans.propertyeditors.CustomDateEditor;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import org.springframework.web.bind.WebDataBinder;
- import org.springframework.web.bind.annotation.InitBinder;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.ResponseBody;
- import org.springframework.web.servlet.ModelAndView;
- import com.zhcs.dt.controller.base.BaseController;
- import com.zhcs.dt.entity.Page;
- import com.zhcs.dt.service.fhoa.department.DepartmentManager;
- import com.zhcs.dt.service.information.annualPlan.impl.AnnualPlanService;
- import com.zhcs.dt.util.AppUtil;
- import com.zhcs.dt.util.Jurisdiction;
- import com.zhcs.dt.util.PageData;
- /**
- * 说明:组织机构
- * 创建人:FH Q313596790
- * 创建时间:2015-12-16
- */
- @Controller
- @RequestMapping(value="/department")
- public class DepartmentController extends BaseController {
-
- String menuUrl = "department/list.do"; //菜单地址(权限用)
- @Resource(name="departmentService")
- private DepartmentManager departmentService;
-
-
- @Resource(name="annualPlanService")
- private AnnualPlanService annualPlanService;
-
- /**保存
- * @param
- * @throws Exception
- */
- @RequestMapping(value="/save")
- public ModelAndView save() throws Exception{
- logBefore(logger, Jurisdiction.getUsername()+"新增department");
- if(!Jurisdiction.buttonJurisdiction(menuUrl, "add")){return null;} //校验权限
- ModelAndView mv = this.getModelAndView();
- PageData pd = new PageData();
- pd = this.getPageData();
- pd.put("DEPARTMENT_ID", this.get32UUID()); //主键
- pd.put("STATUS", "1");
- pd.put("CREATETIME", new Date());
- pd.put("UPDATETIME", new Date());
- departmentService.save(pd);
- //对应年份表新增数据
- //pd.put("table", "oa_department_"+pd.get("YEAR").toString());
- //departmentService.saveYear(pd);
- mv.addObject("msg","success");
- mv.setViewName("save_result");
- return mv;
- }
-
- /**
- * 删除
- * @param DEPARTMENT_ID
- * @param
- * @throws Exception
- */
- @RequestMapping(value="/delete")
- @ResponseBody
- public Object delete(@RequestParam String DEPARTMENT_ID,@RequestParam String YEAR) throws Exception{
- if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return null;} //校验权限
- logBefore(logger, Jurisdiction.getUsername()+"删除department");
- Map<String,String> map = new HashMap<String,String>();
- PageData pd = new PageData();
- pd.put("DEPARTMENT_ID", DEPARTMENT_ID);
- pd.put("YEAR", YEAR);
- String errInfo = "success";
- if(departmentService.listSubDepartmentByParentId(DEPARTMENT_ID).size() > 0){//判断是否有子级,是:不允许删除
- errInfo = "false";
- }else{
- //departmentService.delete(pd); //执行删除
- departmentService.updateStatus(pd);//逻辑删除
- //物理删除动态表
- pd.put("table", "oa_department_"+YEAR);
- departmentService.delete(pd);
- }
- map.put("result", errInfo);
- return AppUtil.returnObject(new PageData(), map);
- }
-
- /**修改
- * @param
- * @throws Exception
- */
- @RequestMapping(value="/countPlan")
- @ResponseBody
- public Object countPlan() throws Exception{
- logBefore(logger, Jurisdiction.getUsername()+"修改department");
- Map<String,String> map = new HashMap<String,String>();
- String message="success";
- if(!Jurisdiction.buttonJurisdiction(menuUrl, "edit")){return null;}
- PageData pd = new PageData();
- pd = this.getPageData();
- //判断年度计划是否存在
- int count_num = annualPlanService.getPlanCountByCompanyAndYear(pd);
- if(count_num==0){
- message = "success";
- }
- else{
- message = "exist";
- //departmentService.edit(pd);
- }
- map.put("msg", message);
- return AppUtil.returnObject(new PageData(), map);
- }
-
- /**修改
- * @param
- * @throws Exception
- */
- @RequestMapping(value="/edit")
- @ResponseBody
- public Object edit() throws Exception{
- logBefore(logger, Jurisdiction.getUsername()+"修改department");
- if(!Jurisdiction.buttonJurisdiction(menuUrl, "edit")){return null;}
- Map<String,String> map = new HashMap<String,String>();
- PageData pd = new PageData();
- pd = this.getPageData();
- departmentService.edit(pd);
- //修改对应年份
- if(null != pd.get("YEAR") && !pd.get("YEAR").toString().isEmpty()){
- pd.put("table", "oa_department_"+pd.get("YEAR").toString());
- }
- else{
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
- Date date = new Date();
- String currentYear = sdf.format(date);
- pd.put("table", "oa_department_"+currentYear);
- }
- departmentService.editYear(pd);
- map.put("msg", "success");
- //mv.setViewName("save_result");
- return AppUtil.returnObject(new PageData(), map);
- }
-
- /**列表
- * @param page
- * @throws Exception
- */
- @RequestMapping(value="/list")
- public ModelAndView list(Page page) throws Exception{
- logBefore(logger, Jurisdiction.getUsername()+"列表department");
- ModelAndView mv = this.getModelAndView();
- PageData pd = new PageData();
- pd = this.getPageData();
- String keywords = pd.getString("keywords"); //检索条件
- if(null != keywords && !"".equals(keywords)){
- pd.put("keywords", keywords.trim());
- }
- String DEPARTMENT_ID = null == pd.get("DEPARTMENT_ID")?"":pd.get("DEPARTMENT_ID").toString();
- if(null != pd.get("id") && !"".equals(pd.get("id").toString())){
- DEPARTMENT_ID = pd.get("id").toString();
- }
- pd.put("DEPARTMENT_ID", DEPARTMENT_ID); //上级ID
- page.setPd(pd);
- List<PageData> varList = departmentService.list(page); //列出Dictionaries列表
- mv.addObject("pd", departmentService.findById(pd)); //传入上级所有信息
- mv.addObject("DEPARTMENT_ID", DEPARTMENT_ID); //上级ID
- mv.setViewName("fhoa/department/department_list");
- mv.addObject("varList", varList);
- mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
- return mv;
- }
-
- /**列表
- * @param page
- * @throws Exception
- */
- @RequestMapping(value="/getdep2")
- @ResponseBody
- public Object getdep2(Page page,Model model) throws Exception{
- logBefore(logger, Jurisdiction.getUsername()+"列表department");
- ModelAndView mv = this.getModelAndView();
- PageData pd = new PageData();
- pd = this.getPageData();
- String DEPARTMENT_ID = null == pd.get("DEPARTMENT_ID")?"":pd.get("DEPARTMENT_ID").toString();
- if(null != pd.get("id") && !"".equals(pd.get("id").toString())){
- DEPARTMENT_ID = pd.get("id").toString();
- }
- //pd.put("DEPARTMENT_ID", DEPARTMENT_ID); //上级ID
- //page.setPd(pd);
- //List<PageData> varList = departmentService.getdep2(DEPARTMENT_ID); //列出Dictionaries列表
- // mv.addObject("pd", departmentService.findById(pd)); //传入上级所有信息
- mv.addObject("DEPARTMENT_ID", DEPARTMENT_ID); //上级ID
- // mv.setViewName("fhoa/department/department_list");
- // mv.addObject("varList", varList);
- // mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
- // return mv;
- try{
- JSONArray arr = JSONArray.fromObject(departmentService.listAllDepartment3("0",DEPARTMENT_ID));
- String json = arr.toString();
- System.out.println("json1:" + json);
- json = json.replaceAll("DEPARTMENT_ID", "id").replaceAll("PARENT_ID", "pId").replaceAll("NAME", "name").replaceAll("subDepartment", "children").replaceAll("hasDepartment", "checked").replaceAll("treeurl", "url");
- System.out.println("json11:" + json);
-
- List<String> varList = departmentService.getdep2(DEPARTMENT_ID);
- Map<String,Object> map = new HashMap<String,Object>();
- map.put("varList", varList);
- return AppUtil.returnObject(new PageData(), map);
- } catch(Exception e){
- logger.error(e.toString(), e);
- }
- return mv;
- }
-
- /**列表
- * @param page
- * @throws Exception
- */
- @RequestMapping(value="/saveNodes")
- @ResponseBody
- public Object saveNodes(Model model) throws Exception{
- logBefore(logger, Jurisdiction.getUsername()+"列表department");
- ModelAndView mv = this.getModelAndView();
- PageData pd = new PageData();
- pd = this.getPageData();
- String[] nodes = null;
- if(pd.get("rnodes") != null){
- nodes = pd.get("rnodes").toString().split(",");
- }
- departmentService.dealDepartments(pd.get("lnodes"), nodes);
- try{
- // JSONArray arr = JSONArray.fromObject(departmentService.listAllDepartment3("0",DEPARTMENT_ID));
- // String json = arr.toString();
- // System.out.println("json1:" + json);
- // json = json.replaceAll("DEPARTMENT_ID", "id").replaceAll("PARENT_ID", "pId").replaceAll("NAME", "name").replaceAll("subDepartment", "children").replaceAll("hasDepartment", "checked").replaceAll("treeurl", "url");
- // System.out.println("json11:" + json);
- //
- // List<String> varList = departmentService.getdep2(DEPARTMENT_ID);
- Map<String,Object> map = new HashMap<String,Object>();
- // map.put("varList", varList);
- return AppUtil.returnObject(new PageData(), map);
- } catch(Exception e){
- logger.error(e.toString(), e);
- }
- return mv;
- }
-
- /**列表
- * @param page
- * @throws Exception
- */
- @RequestMapping(value="/departmentConfig")
- public ModelAndView departmentConfig(Model model) throws Exception{
- ModelAndView mv = this.getModelAndView();
- PageData pd = new PageData();
- pd = this.getPageData();
- try{
- JSONArray arr = JSONArray.fromObject(departmentService.listAllDepartment3("0",""));
- String json = arr.toString();
- System.out.println("json1:" + json);
- json = json.replaceAll("DEPARTMENT_ID", "id").replaceAll("PARENT_ID", "pId").replaceAll("NAME", "name").replaceAll("subDepartment", "children").replaceAll("hasDepartment", "checked").replaceAll("treeurl", "url");
- System.out.println("json11:" + json);
-
- JSONArray arr2 = JSONArray.fromObject(departmentService.listAllDepartment2("0",""));
- if(arr2.size()>0){
- for(int i=0;i<arr2.size();i++){
- arr2.getJSONObject(i).put("nocheck","false");
- }
- }
- String json2 = arr2.toString();
- System.out.println("json2:" + json2);
- json2 = json2.replaceAll("DEPARTMENT_ID", "id").replaceAll("PARENT_ID", "pId").replaceAll("NAME", "name").replaceAll("subDepartment", "children").replaceAll("hasDepartment", "checked").replaceAll("treeurl", "url");
- System.out.println("json22:" + json2);
- model.addAttribute("zTreeNodes", json);
- model.addAttribute("zTreeNodes2", json2);
- mv.addObject("DEPARTMENT_ID", "0");
- mv.addObject("pd", pd);
- mv.setViewName("fhoa/department/department_config");
- } catch(Exception e){
- logger.error(e.toString(), e);
- }
- return mv;
- }
-
- /**
- * 显示列表ztree
- * @param model
- * @return
- */
- @RequestMapping(value="/listAllDepartment")
- public ModelAndView listAllDepartment(Model model,String DEPARTMENT_ID)throws Exception{
- ModelAndView mv = this.getModelAndView();
- PageData pd = new PageData();
- pd = this.getPageData();
- try{
- JSONArray arr = JSONArray.fromObject(departmentService.listAllDepartment("0"));
- String json = arr.toString();
- json = json.replaceAll("DEPARTMENT_ID", "id").replaceAll("PARENT_ID", "pId").replaceAll("NAME", "name").replaceAll("subDepartment", "nodes").replaceAll("hasDepartment", "checked").replaceAll("treeurl", "url");
- model.addAttribute("zTreeNodes", json);
- mv.addObject("DEPARTMENT_ID",DEPARTMENT_ID);
- mv.addObject("pd", pd);
- mv.setViewName("fhoa/department/department_ztree");
- } catch(Exception e){
- logger.error(e.toString(), e);
- }
- return mv;
- }
-
- /**去新增页面
- * @param
- * @throws Exception
- */
- @RequestMapping(value="/goAdd")
- public ModelAndView goAdd()throws Exception{
- ModelAndView mv = this.getModelAndView();
- PageData pd = new PageData();
- pd = this.getPageData();
- String DEPARTMENT_ID = null == pd.get("DEPARTMENT_ID")?"":pd.get("DEPARTMENT_ID").toString();
- pd.put("DEPARTMENT_ID", DEPARTMENT_ID); //上级ID
- mv.addObject("pds",departmentService.findById(pd)); //传入上级所有信息
- mv.addObject("DEPARTMENT_ID", DEPARTMENT_ID); //传入ID,作为子级ID用
- mv.setViewName("fhoa/department/department_add");
- mv.addObject("msg", "save");
- return mv;
- }
-
- /**去修改页面
- * @param
- * @throws Exception
- */
- @RequestMapping(value="/goEdit")
- public ModelAndView goEdit()throws Exception{
- ModelAndView mv = this.getModelAndView();
- PageData pd = new PageData();
- pd = this.getPageData();
- String dnowPage = "";
- if(null != pd.get("dnowPage")){
- dnowPage = pd.get("dnowPage").toString();
- }
- String DEPARTMENT_ID = pd.getString("DEPARTMENT_ID");
- pd = departmentService.findById(pd); //根据ID读取
- mv.addObject("pd", pd); //放入视图容器
- pd.put("DEPARTMENT_ID",pd.get("PARENT_ID").toString()); //用作上级信息
- mv.addObject("pds",departmentService.findById(pd)); //传入上级所有信息
- mv.addObject("DEPARTMENT_ID", pd.get("PARENT_ID").toString()); //传入上级ID,作为子ID用
- pd.put("DEPARTMENT_ID",DEPARTMENT_ID); //复原本ID
- pd.put("dnowPage",dnowPage);
- mv.setViewName("fhoa/department/department_edit");
- //mv.addObject("msg", "countPlan");
- return mv;
- }
- /**判断编码是否存在
- * @return
- */
- @RequestMapping(value="/hasBianma")
- @ResponseBody
- public Object hasBianma(){
- Map<String,String> map = new HashMap<String,String>();
- String errInfo = "success";
- PageData pd = new PageData();
- try{
- pd = this.getPageData();
- if(departmentService.findByBianma(pd) != null){
- errInfo = "error";
- }
- } catch(Exception e){
- logger.error(e.toString(), e);
- }
- map.put("result", errInfo); //返回结果
- return AppUtil.returnObject(new PageData(), map);
- }
-
- /**判断统一编码是否存在
- * @return
- */
- @RequestMapping(value="/hasUniCode")
- @ResponseBody
- public Object hasUniCode(){
- Map<String,String> map = new HashMap<String,String>();
- String errInfo = "success";
- PageData pd = new PageData();
- try{
- pd = this.getPageData();
- if(departmentService.findByUniCode(pd) != null){
- errInfo = "error";
- }
- } catch(Exception e){
- logger.error(e.toString(), e);
- }
- map.put("result", errInfo); //返回结果
- return AppUtil.returnObject(new PageData(), map);
- }
- @InitBinder
- public void initBinder(WebDataBinder binder){
- DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
- binder.registerCustomEditor(Date.class, new CustomDateEditor(format,true));
- }
-
-
- /**
- * 年度树显示列表ztree
- * @param model
- * @return
- */
- @RequestMapping(value="/yearListAllDepartment")
- public ModelAndView yearListAllDepartment(Model model,String DEPARTMENT_ID,Page page)throws Exception{
- ModelAndView mv = this.getModelAndView();
- PageData pd = new PageData();
- pd = this.getPageData();
- try{
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
- Date date = new Date();
- String currentYear = sdf.format(date);
- if(null != pd.get("YEAR")){
- currentYear = pd.get("YEAR").toString();
- }
- pd.put("table", "oa_department_"+currentYear);
- pd.put("parentId", "0");
- pd.put("DEPARTMENT_ID", "0");
- List<String> yearItems = new ArrayList<String>();
- for(int i= -4; i < 6; i++){
- Integer intyear = Integer.parseInt(currentYear);
- yearItems.add(String.valueOf(intyear + i));
- }
- //TODO 查询对应表是否存在
- int table_num = departmentService.countYearTable(pd);
- if(table_num>0){
- JSONArray arr = JSONArray.fromObject(departmentService.yearListAllDepartment(pd));
- String json = arr.toString();
- json = json.replaceAll("DEPARTMENT_ID", "id").replaceAll("PARENT_ID", "pId").replaceAll("NAME", "name").replaceAll("subDepartment", "nodes").replaceAll("hasDepartment", "checked").replaceAll("treeurl", "url");
- page.setPd(pd);
- List<PageData> varList = departmentService.yearList(page); //列出Dictionaries列表
- model.addAttribute("zTreeNodes", json);
-
- mv.addObject("varList", varList);
- }
- mv.addObject("currentYear", currentYear);
- mv.addObject("yearList", yearItems);
- mv.addObject("DEPARTMENT_ID",DEPARTMENT_ID);
- mv.addObject("pd", pd);
- mv.setViewName("fhoa/department/department_set_ztree");
- mv.addObject("QX",Jurisdiction.getHC());
- } catch(Exception e){
- logger.error(e.toString(), e);
- }
- return mv;
- }
-
- /**各年度列表数据
- * @param page
- * @throws Exception
- */
- @RequestMapping(value="/yearList")
- public ModelAndView yearList(Model model,Page page) throws Exception{
- logBefore(logger, Jurisdiction.getUsername()+"列表department");
- ModelAndView mv = this.getModelAndView();
- PageData pd = new PageData();
- pd = this.getPageData();
- String keywords = pd.getString("keywords"); //检索条件
- if(null != keywords && !"".equals(keywords)){
- pd.put("keywords", keywords.trim());
- }
- String DEPARTMENT_ID = null == pd.get("DEPARTMENT_ID")?"":pd.get("DEPARTMENT_ID").toString();
- if(null != pd.get("id") && !"".equals(pd.get("id").toString())){
- DEPARTMENT_ID = pd.get("id").toString();
- }
- pd.put("DEPARTMENT_ID", DEPARTMENT_ID); //上级ID
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
- Date date = new Date();
- String currentYear = sdf.format(date);
- if(null != pd.get("YEAR")){
- currentYear = pd.get("YEAR").toString();
- }
- pd.put("table", "oa_department_"+currentYear);
- page.setPd(pd);
- mv.addObject("currentYear", currentYear);
- List<String> yearItems = new ArrayList<String>();
- for(int i= -4; i < 6; i++){
- Integer intyear = Integer.parseInt(currentYear);
- yearItems.add(String.valueOf(intyear + i));
- }
- mv.addObject("yearList", yearItems);
- mv.addObject("currentYear", currentYear);
- List<PageData> varList = departmentService.yearList(page); //列出Dictionaries列表
- mv.addObject("pd", departmentService.yearFindById(pd)); //传入上级所有信息
- mv.addObject("DEPARTMENT_ID", DEPARTMENT_ID); //上级ID
- mv.addObject("varList", varList);
- if(null != pd.get("DEPARTMENT_ID") && !pd.get("DEPARTMENT_ID").toString().equals("0")){
- pd.remove("DEPARTMENT_ID");
- }
- pd.put("parentId", "0");
- JSONArray arr = JSONArray.fromObject(departmentService.yearListAllDepartment(pd));
- String json = arr.toString();
- json = json.replaceAll("DEPARTMENT_ID", "id").replaceAll("PARENT_ID", "pId").replaceAll("NAME", "name").replaceAll("subDepartment", "nodes").replaceAll("hasDepartment", "checked").replaceAll("treeurl", "url");
- model.addAttribute("zTreeNodes", json);
- mv.setViewName("fhoa/department/department_set_ztree");
- mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
- return mv;
- }
-
-
- /**去组织结构年度设置页面
- * @param
- * @throws Exception
- */
- @RequestMapping(value="/gset")
- public ModelAndView gset(Model model)throws Exception{
- ModelAndView mv = this.getModelAndView();
- PageData pd = new PageData();
- pd = this.getPageData();
- pd.put("parentId", "0");
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
- Date date = new Date();
- String currentYear = sdf.format(date);
- String selectYear ="";
- if(null != pd.get("YEAR")){
- currentYear = pd.get("YEAR").toString();
- }
- Integer selYear = Integer.parseInt(currentYear);
- selectYear = String.valueOf(selYear);
- pd.put("table", "oa_department");
- pd.put("currentYear", currentYear);
- //基础数据
- JSONArray arr = JSONArray.fromObject(departmentService.yearListAllDepartment(pd));
-
- List<String> yearItems = new ArrayList<String>();
- for(int i= -4; i < 6; i++){
- Integer intyear = Integer.parseInt(currentYear);
- yearItems.add(String.valueOf(intyear + i));
- }
- //判断选中
- if(arr.size()>0 ){
- //年份数据
- pd.put("table", "oa_department_"+currentYear);
- //查询对应表是否存在
- int table_num = departmentService.countYearTable(pd);
- if(table_num==0){
- departmentService.createYearTable(pd);
- }
- JSONArray yearArr = JSONArray.fromObject(departmentService.yearListAllDepartment(pd));
- for(int i=0;i<arr.size();i++){
- for(int k=0;k<yearArr.size();k++){
- if(arr.getJSONObject(i).get("NAME").toString().equals(yearArr.getJSONObject(k).get("NAME").toString())){
- arr.getJSONObject(i).put("checked","true");
- //对应的子节点选中
- if(null != yearArr.getJSONObject(k).get("subDepartment")
- && "" != yearArr.getJSONObject(k).get("subDepartment").toString()){
- JSONArray subArray = JSONArray.fromObject(arr.getJSONObject(i).get("subDepartment"));
- JSONArray subCheckArray = JSONArray.fromObject(yearArr.getJSONObject(k).get("subDepartment"));
- if(subArray.size()>0 && subCheckArray.size()>0){
- for(int m=0;m<subArray.size();m++){
- for(int n=0;n<subCheckArray.size();n++){
- if(subArray.getJSONObject(m).get("NAME").toString().equals(subCheckArray.getJSONObject(n).get("NAME").toString())){
- subArray.getJSONObject(m).put("checked","true");
- }
- }
- }
- }
- arr.getJSONObject(i).put("subDepartment",subArray);
- }
- }
- }
- }
- }
- String json = arr.toString();
- json = json.replaceAll("DEPARTMENT_ID", "id").replaceAll("PARENT_ID", "pId").replaceAll("NAME", "name").replaceAll("subDepartment", "children").replaceAll("hasDepartment", "checked").replaceAll("treeurl", "url");
- model.addAttribute("zTreeNodes", json);//传入ID,作为子级ID用
- mv.addObject("DEPARTMENT_ID", "0");
- mv.addObject("currentYear", selectYear);
- mv.addObject("yearList", yearItems);
- mv.addObject("pd", pd);
- mv.setViewName("fhoa/department/department_set_year");
- mv.addObject("msg", "save");
- return mv;
- }
-
- /**保存选中树结构
- * @param page
- * @throws Exception
- */
- @RequestMapping(value="/saveYearNodes")
- @ResponseBody
- public Object saveYearNodes(Model model) throws Exception{
- logBefore(logger, Jurisdiction.getUsername()+"列表department");
- PageData pd = new PageData();
- pd = this.getPageData();
- Map<String,Object> map = new HashMap<String,Object>();
- try{
- if(pd.get("rnodes") != null){
- String selectYear =pd.get("YEAR").toString();
- //页面选中节点
- JSONArray selectedNodes = JSONArray.fromObject(pd.get("rnodes").toString());
- //数据库已存在节点
- pd.put("table", "oa_department_"+pd.get("YEAR").toString());
- List<PageData> yearList = departmentService.yearQuery(pd);
- //选中数值与原有对比
- if(null !=yearList && yearList.size()>0 && null != selectedNodes
- && (yearList.size()>selectedNodes.size())){
- List<String> selectIdList = new ArrayList<>();
- List<String> yearIdList = new ArrayList<>();
- for(int a=0;a<selectedNodes.size();a++){
- selectIdList.add(selectedNodes.getJSONObject(a).get("id").toString());
- }
- for(PageData ypd:yearList){
- yearIdList.add(ypd.get("DEPARTMENT_ID").toString());
- }
- List<String> list = getDiffrent(yearIdList,selectIdList);
- pd.put("table", "oa_department_"+selectYear);
- for(String id:list){
- pd.put("DEPARTMENT_ID",id);
- departmentService.yearDelete(pd);
- }
- }
- if(null != selectedNodes && selectedNodes.size()>0){
- for(int m=0;m<selectedNodes.size();m++){
- if(null != selectedNodes.getJSONObject(m)){
- PageData selectedpd = new PageData();
- selectedpd.put("NAME",selectedNodes.getJSONObject(m).get("name"));
- selectedpd.put("NAME_EN",selectedNodes.getJSONObject(m).get("name_EN"));
- selectedpd.put("BIANMA",selectedNodes.getJSONObject(m).get("BIANMA"));
- selectedpd.put("PARENT_ID",selectedNodes.getJSONObject(m).get("pId"));
- selectedpd.put("HEADMAN",selectedNodes.getJSONObject(m).get("HEADMAN"));
- selectedpd.put("TEL",selectedNodes.getJSONObject(m).get("TEL"));
- selectedpd.put("FUNCTIONS",selectedNodes.getJSONObject(m).get("FUNCTIONS"));
- selectedpd.put("ADDRESS",selectedNodes.getJSONObject(m).get("ADDRESS"));
- selectedpd.put("BZ",selectedNodes.getJSONObject(m).get("BZ"));
- selectedpd.put("DEPARTMENT_ID",selectedNodes.getJSONObject(m).get("id")); //主键
- selectedpd.put("YEAR",selectYear);
- selectedpd.put("STATUS",selectedNodes.getJSONObject(m).get("STATUS"));
- selectedpd.put("UNI_CODE",selectedNodes.getJSONObject(m).get("UNI_CODE"));
- selectedpd.put("SHOW_NUM",selectedNodes.getJSONObject(m).get("SHOW_NUM"));
- selectedpd.put("CREATETIME", new Date());
- selectedpd.put("UPDATETIME", new Date());
- selectedpd.put("table", "oa_department_"+pd.get("YEAR").toString());
- departmentService.saveYear(selectedpd);
- }
- }
- }
- }
- map.put("msg", "success");
- } catch(Exception e){
- map.put("msg", "error");
- logger.error(e.toString(), e);
- }
- return AppUtil.returnObject(new PageData(), map);
- }
-
-
- @RequestMapping(value="/refreshZtree", produces = "application/json; charset=utf-8")
- @ResponseBody
- public String refreshZtree(Model model)throws Exception{
- PageData pd = new PageData();
- pd = this.getPageData();
- pd.put("parentId", "0");
- String currentYear = "";
- if(null != pd.get("YEAR")){
- currentYear = pd.get("YEAR").toString();
- }
- pd.put("table", "oa_department");
- pd.put("currentYear", currentYear);
- //基础数据
- JSONArray arr = JSONArray.fromObject(departmentService.yearListAllDepartment(pd));
-
- List<String> yearItems = new ArrayList<String>();
- for(int i= 0; i < 5; i++){
- Integer intyear = Integer.parseInt(currentYear);
- yearItems.add(String.valueOf(intyear + i));
- }
- //判断选中
- if(arr.size()>0 ){
- //年份数据
- pd.put("table", "oa_department_"+currentYear);
- //查询对应表是否存在
- int table_num = departmentService.countYearTable(pd);
- if(table_num==0){
- departmentService.createYearTable(pd);
- }
- JSONArray yearArr = JSONArray.fromObject(departmentService.yearListAllDepartment(pd));
- for(int i=0;i<arr.size();i++){
- for(int k=0;k<yearArr.size();k++){
- if(arr.getJSONObject(i).get("NAME").toString().equals(yearArr.getJSONObject(k).get("NAME").toString())){
- arr.getJSONObject(i).put("checked","true");
- //对应的子节点选中
- if(null != yearArr.getJSONObject(k).get("subDepartment")
- && "" != yearArr.getJSONObject(k).get("subDepartment").toString()){
- JSONArray subArray = JSONArray.fromObject(arr.getJSONObject(i).get("subDepartment"));
- JSONArray subCheckArray = JSONArray.fromObject(yearArr.getJSONObject(k).get("subDepartment"));
- if(subArray.size()>0 && subCheckArray.size()>0){
- for(int m=0;m<subArray.size();m++){
- for(int n=0;n<subCheckArray.size();n++){
- if(subArray.getJSONObject(m).get("NAME").toString().equals(subCheckArray.getJSONObject(n).get("NAME").toString())){
- subArray.getJSONObject(m).put("checked","true");
- }
- }
- }
- }
- arr.getJSONObject(i).put("subDepartment",subArray);
- }
- }
- }
- }
- }
- String json = arr.toString();
- json = json.replaceAll("DEPARTMENT_ID", "id").replaceAll("PARENT_ID", "pId").replaceAll("NAME", "name").replaceAll("subDepartment", "children").replaceAll("hasDepartment", "checked").replaceAll("treeurl", "url");
- return json;
- }
-
-
- /**
- * 当前年份是否配置
- * @param model
- * @return
- * @throws Exception
- */
- @RequestMapping(value="/countYearTable")
- @ResponseBody
- public String countYearTable(Model model)throws Exception{
- PageData pd = new PageData();
- pd = this.getPageData();
- pd.put("table", "oa_department_"+pd.get("YEAR"));
- int table_num = departmentService.countYearTable(pd);
- String message="";
- //是否存在对年份表
- if(table_num ==0 ){
- message = "haveno";
- }
- else{
- //是否存在公司对应年份数据
- PageData companypd = (PageData)annualPlanService.getCompanyID(pd);
- if(null != companypd){
- message = "success";
- }
- else{
- message = "haveno";
- }
- }
- return message;
- }
-
- /**
- * 两个数组中的不同元素。 其中 list1比list2长
- * @param list1
- * @param list2
- * @return
- */
- private static List<String> getDiffrent(List<String> list1, List<String> list2) {
- List<String> diff = new ArrayList<String>();
- for(String str:list1)
- {
- if(!list2.contains(str))
- {
- diff.add(str);
- }
- }
- return diff;
- }
- }
|