package com.landtool.lanbase.modules.org.controller;
|
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiParam;
|
|
import java.net.URLDecoder;
|
import java.net.URLEncoder;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
import org.apache.shiro.SecurityUtils;
|
import org.apache.shiro.authz.annotation.Logical;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.util.StringUtils;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.landtool.lanbase.modules.org.entity.OrgRegion;
|
import com.landtool.lanbase.modules.org.entity.OrgUnit;
|
import com.landtool.lanbase.modules.org.entity.OrgUnitRegion;
|
import com.landtool.lanbase.modules.org.entity.OrgUser;
|
import com.landtool.lanbase.modules.org.entity.OrgUnitmanager;
|
import com.landtool.lanbase.modules.org.service.OrgUnitService;
|
import com.landtool.lanbase.modules.org.service.OrgUnitmanagerService;
|
import com.landtool.lanbase.modules.org.service.OrgUnitRegionService;
|
import com.landtool.lanbase.modules.sys.controller.AbstractController;
|
import com.landtool.lanbase.common.annotation.LogAction;
|
import com.landtool.lanbase.common.annotation.SysLog;
|
import com.landtool.lanbase.common.utils.JpinyinUtils;
|
import com.landtool.lanbase.common.utils.PageUtils;
|
import com.landtool.lanbase.common.utils.Query;
|
import com.landtool.lanbase.common.utils.Result;
|
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
|
/**
|
* @author lanbase
|
* @Description: TODO(单位管理表)
|
* @date 2018-01-16 08:47:23
|
*/
|
@RestController
|
@RequestMapping("/org/unit")
|
@Api(value = "", tags = {"用户单位"})
|
public class OrgUnitController extends AbstractController{
|
|
@Autowired
|
private OrgUnitService unitService;
|
|
@Autowired
|
private OrgUnitRegionService unitxzqhService;
|
|
@Autowired
|
private OrgUnitmanagerService unitmanagerService;
|
|
/**
|
* 所有单位列表
|
*/
|
@RequestMapping(value ="/list", method ={RequestMethod.POST, RequestMethod.GET})
|
// @RequiresPermissions("org:unit:list")
|
@RequiresPermissions(value = {"org:unit:list","org:unit:edit"}, logical = Logical.OR)
|
@ApiOperation(
|
value = "单位列表",
|
notes = "所有单位列表"
|
)
|
@LogAction("用户管理,组织机构管理,组织机构查询,查询")
|
public Result list(@ApiParam(name="params",value="单位集合",required=true)@RequestParam Map<String, Object> params){
|
//查询列表数据
|
Query query = new Query(params);
|
List<OrgUnit> unitList = unitService.queryList(query);
|
int total = unitService.queryTotal(query);
|
|
PageUtils pageUtil = new PageUtils(unitList, total, query.getLimit(), query.getPage());
|
|
return Result.ok().put("page", pageUtil);
|
}
|
|
|
/**
|
* 单位信息
|
*/
|
@GetMapping("/info/{unitid}")
|
// @RequiresPermissions("org:unit:list")
|
@RequiresPermissions(value = {"org:unit:list","org:unit:edit"}, logical = Logical.OR)
|
@ApiOperation(
|
value = "单位信息",
|
notes = ""
|
)
|
public Result info(@ApiParam(name="unitid",value="单位Id",required=true)@PathVariable("unitid") Long unitid){
|
OrgUnit unit = unitService.queryObject(unitid);
|
return Result.ok().put("unit", unit);
|
}
|
|
/**
|
* 保存
|
*/
|
@LogAction("用户管理,组织机构管理,组织机构新增,新增")
|
@SysLog("保存单位")
|
@PostMapping("/save")
|
@RequiresPermissions("org:unit:edit")
|
@ApiOperation(
|
value = "保存单位",
|
notes = ""
|
)
|
public Result save(@ApiParam(name="复合对象",value="传入json格式",required=true)@RequestBody JSONObject json){
|
OrgUnit unit = json.getObject("orgUnit",OrgUnit.class);
|
String qhids = json.getString("qhids");
|
String managerids = json.getString("managerids");
|
OrgUser orgUser = (OrgUser) SecurityUtils.getSubject().getPrincipal();
|
if((unit.getIsdept() == null || unit.getIsdept() != 1) && (qhids == null || qhids == "")){
|
return Result.error("所属区划不能为空!");
|
}
|
//添加单位表数据
|
unit.setSpellfirst(unit.getSpellfirst().toUpperCase());//首字母小写转化大写
|
unit.setRcreateuser(orgUser.getUserid());
|
unit.setRcreatedate(new Date());
|
unit.setRlasteditdate(new Date());
|
if(unit != null && unit.getParentid() != null && unit.getParentid() != 0){
|
unit.setParentid(unit.getParentid());
|
}
|
else{
|
unit.setParentid(0L);
|
}
|
if(unit != null && unit.getStatus() != null){
|
unit.setStatus(unit.getStatus());
|
}
|
else{
|
unit.setStatus(1L);
|
}
|
int rorder = unitService.queryMaxRorder(unit.getParentid())+1;
|
unit.setRorder((long)rorder);
|
unitService.save(unit);
|
//查询保存后的数据
|
Long uniqueCheck = unitService.queryUnitWithSEQ();
|
if(unit.getIsdept() == null || unit.getIsdept() != 1) {
|
//添加单位行政关联表数据
|
OrgUnitRegion unitXzqh = new OrgUnitRegion();
|
String[] qhidStr = qhids.split(",");
|
for (int i = 0; i < qhidStr.length; i++) {
|
unitXzqh.setRegionid(qhidStr[i]);
|
unitXzqh.setUnitid(uniqueCheck);
|
unitXzqh.setRcreatedate(new Date());
|
unitXzqh.setRlasteditdate(new Date());
|
unitXzqh.setRcreateuser(orgUser.getUserid());
|
unitxzqhService.save(unitXzqh);
|
}
|
//添加单位管理员数据
|
OrgUnitmanager unitManager = new OrgUnitmanager();
|
if (managerids != null && managerids != "") {
|
String[] manageridStr = managerids.split(",");
|
for (int i = 0; i < manageridStr.length; i++) {
|
unitManager.setUserid(Long.parseLong(manageridStr[i]));
|
unitManager.setUnitid(uniqueCheck);
|
unitManager.setRcreatedate(new Date());
|
unitManager.setRlasteditdate(new Date());
|
unitManager.setRcreateuser(orgUser.getUserid());
|
unitmanagerService.save(unitManager);
|
}
|
}
|
}
|
return Result.ok().put("unitid",uniqueCheck);
|
}
|
|
|
/**
|
* 修改
|
*/
|
@LogAction("用户管理,组织机构管理,组织机构修改,修改")
|
@SysLog("修改菜单")
|
@PostMapping("/update")
|
@RequiresPermissions("org:unit:edit")
|
@ApiOperation(
|
value = "修改单位",
|
notes = ""
|
)
|
public Result update(@ApiParam(name="复合对象",value="传入json格式",required=true)@RequestBody JSONObject json){
|
OrgUnit unit = json.getObject("orgUnit",OrgUnit.class);
|
String qhids = json.getString("qhids");
|
String managerids = json.getString("managerids");
|
if(unit.getIsdept() == null || unit.getIsdept() != 1) {
|
unitxzqhService.deleteUnitRegionByUnitId(unit.getUnitid());
|
unitmanagerService.delete(unit.getUnitid());
|
OrgUser orgUser = (OrgUser) SecurityUtils.getSubject().getPrincipal();
|
//添加单位行政关联表数据
|
OrgUnitRegion unitXzqh = new OrgUnitRegion();
|
if (qhids != null && qhids != "") {
|
String[] qhidStr = qhids.split(",");
|
for (int i = 0; i < qhidStr.length; i++) {
|
unitXzqh.setRegionid(qhidStr[i]);
|
unitXzqh.setUnitid(unit.getUnitid());
|
unitXzqh.setRcreatedate(new Date());
|
unitXzqh.setRlasteditdate(new Date());
|
unitXzqh.setRcreateuser(orgUser.getUserid());
|
unitxzqhService.save(unitXzqh);
|
}
|
}
|
//添加单位管理员数据
|
OrgUnitmanager unitManager = new OrgUnitmanager();
|
if (managerids != null && managerids != "") {
|
String[] manageridStr = managerids.split(",");
|
for (int i = 0; i < manageridStr.length; i++) {
|
unitManager.setUserid(Long.parseLong(manageridStr[i]));
|
unitManager.setUnitid(unit.getUnitid());
|
unitManager.setRcreatedate(new Date());
|
unitManager.setRlasteditdate(new Date());
|
unitManager.setRcreateuser(orgUser.getUserid());
|
unitmanagerService.save(unitManager);
|
}
|
}
|
}
|
unit.setSpellfirst(unit.getSpellfirst().toUpperCase());//首字母小写转化大写
|
unit.setRlasteditdate(new Date());
|
unitService.update(unit);
|
return Result.ok();
|
}
|
|
/**
|
* 删除
|
*/
|
@LogAction("用户管理,组织机构管理,组织机构删除,删除")
|
@SysLog("删除单位")
|
@PostMapping("/delete")
|
@RequiresPermissions("org:unit:edit")
|
@ApiOperation(
|
value = "删除单位",
|
notes = ""
|
)
|
public Result delete(@ApiParam(name="unitids",value="单位Id",required=true)@RequestBody Long[] unitids){
|
// unitService.deleteBatch(unitids);
|
|
//修改机构状态为2(删除)
|
unitService.queryUnitById(unitids);
|
|
return Result.ok();
|
}
|
|
/**
|
* 自动补全输入首字母查询
|
* @param keyWord
|
* @return
|
*/
|
@GetMapping("/findPinyinByKeyWord")
|
public String[] findpinyinByKeyWord(@RequestParam(name = "keyWord") String keyWord){
|
List<String> UnitNames = unitService.findPinyinByKeyWord(URLDecoder.decode(keyWord.toUpperCase()));
|
|
if (StringUtils.isEmpty(UnitNames)) {
|
return null;
|
}
|
|
int size = UnitNames.size();
|
|
String[] arr = (String[]) UnitNames.toArray(new String[size]);
|
|
return arr;
|
}
|
|
@GetMapping("/findPinyinByKeyWordList")
|
public Result findPinyinByKeyWordList(@RequestParam(name="keyWord") String keyWord){
|
List<OrgUnit> unitList = unitService.findPinyinByKeyWordList(keyWord);
|
|
return Result.ok().put("unitList", unitList);
|
}
|
|
/**
|
* 单位信息
|
*/
|
@GetMapping("/queryObjectByFullName/{unitname}")
|
@ApiOperation(
|
value = "单位信息",
|
notes = ""
|
)
|
public Result queryObjectByFullName(@ApiParam(name="unitname",value="单位名称",required=true)@PathVariable("unitname") String unitname){
|
OrgUnit unit = unitService.queryObjectByFullName(URLDecoder.decode(unitname));
|
|
return Result.ok().put("unit", unit);
|
}
|
|
/**
|
* 根据单位名称获取首字母值
|
*/
|
@SysLog("根据名称获取首字母值")
|
@GetMapping("/changeToPinYin")
|
@ApiOperation(
|
value = "根据单位获取首字母值",
|
notes = ""
|
)
|
public Result changeToPinYin(@ApiParam(name="pinyin",value="字段pinyin",required=true)@RequestParam String name){
|
name = name.replaceAll("%(?![0-9a-fA-F]{2})", "%25");
|
String namepinyin = JpinyinUtils.changeToGetShortPinYin(URLDecoder.decode(name));
|
//首字母小写转化大写
|
String pinyin = namepinyin.toUpperCase();
|
String patt="[^a-z|A-Z]";
|
pinyin = pinyin.replaceAll(patt,"");
|
return Result.ok().put("pinyin", URLEncoder.encode(pinyin));
|
}
|
|
/**
|
* 所有单位列表
|
*/
|
@RequestMapping(value ="/queryUnitTreeList", method ={RequestMethod.GET})
|
// @RequiresPermissions("org:unit:list")
|
@RequiresPermissions(value = {"org:unit:list","org:unit:edit"}, logical = Logical.OR)
|
@ApiOperation(
|
value = "单位列表",
|
notes = "所有单位列表"
|
)
|
public Result queryUnitTreeList(){
|
List<OrgUnit> unitList = unitService.queryUnitTreeList();
|
//添加顶级菜单
|
OrgUnit root = new OrgUnit();
|
root.setUnitid(0L);
|
root.setUnitname("全国");
|
root.setParentid(-1L);
|
root.setOpen(true);
|
unitList.add(root);
|
return Result.ok().put("unitList", unitList);
|
}
|
|
/**
|
* 查询节点及节点下的单位
|
*/
|
@RequestMapping(value ="/queryTreeChildList", method ={RequestMethod.POST, RequestMethod.GET})
|
// @RequiresPermissions("org:unit:list")
|
@RequiresPermissions(value = {"org:unit:list","org:unit:edit"} , logical = Logical.OR)
|
@ApiOperation(
|
value = "单位列表",
|
notes = "单位列表"
|
)
|
public Result queryTreeChildList(@ApiParam(name="params",value="单位集合",required=true)@RequestParam Map<String, Object> params){
|
//查询列表数据
|
Query query = new Query(params);
|
List<OrgUnit> unitList = unitService.queryTreeChildList(query);
|
int total = unitService.queryTreeChildTotal(query);
|
|
PageUtils pageUtil = new PageUtils(unitList, total, query.getLimit(), query.getPage());
|
|
return Result.ok().put("page", pageUtil);
|
}
|
|
/**
|
* 查询节点下一级子节点
|
*/
|
@RequestMapping(value ="/queryListByParentid", method ={RequestMethod.GET})
|
// @RequiresPermissions("org:unit:list")
|
@RequiresPermissions(value = {"org:unit:list","org:unit:edit"} , logical = Logical.OR)
|
public Map<String, Object> queryListByParentid(@RequestParam Long unitid){
|
Map<String, Object> map = new HashMap<String,Object>();
|
List<OrgUnit> orgUnitList = unitService.queryListByParentid(unitid);
|
map.put("orgUnitList", orgUnitList);
|
return map;
|
}
|
|
/**
|
* 修改排序
|
*/
|
@LogAction("用户管理,组织机构管理,组织机构修改(排序),修改")
|
@PostMapping("/updateRorder")
|
@RequiresPermissions("org:region:edit")
|
@ApiOperation(
|
value = "修改字典字段值排序",
|
notes = ""
|
)
|
public Result updateRorder(@ApiParam(name="复合对象",value="传入json格式",required=true)@RequestBody JSONObject json){
|
String valueids = json.getString("valueids");
|
// String sorts = json.getString("sorts");
|
String[] valueidList = valueids.split(",");
|
// String[] sortList=sorts.split(",");
|
for(int i =0;i<valueidList.length;i++){
|
OrgUnit unit = new OrgUnit();
|
unit.setUnitid(Long.parseLong(valueidList[i]));
|
// unit.setRorder(Long.parseLong(sortList[i]));
|
unit.setRorder((long) i);
|
unitService.updateRorder(unit);
|
}
|
return Result.ok();
|
}
|
|
/**
|
* 获取部门列表
|
*/
|
@RequestMapping(value ="/queryDeptList", method ={RequestMethod.GET})
|
public Result queryDeptList(@RequestParam String unitname){
|
if(unitname != null && unitname.length() > 0) unitname = URLDecoder.decode(unitname);
|
List<OrgUnit> units = unitService.queryDeptList(unitname);
|
return Result.ok().put("units", units);
|
}
|
}
|