package com.landtool.lanbase.modules.org.controller;
|
|
import com.landtool.lanbase.modules.org.entity.OrgUserunitJoinUser;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiParam;
|
|
import java.io.IOException;
|
import java.text.SimpleDateFormat;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import org.apache.shiro.SecurityUtils;
|
import org.apache.shiro.authz.annotation.Logical;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.util.StringUtils;
|
import org.springframework.web.bind.annotation.*;
|
|
import com.landtool.lanbase.modules.org.entity.OrgUser;
|
import com.landtool.lanbase.modules.org.entity.OrgUserunit;
|
import com.landtool.lanbase.modules.org.service.OrgUnitService;
|
import com.landtool.lanbase.modules.org.service.OrgUserunitService;
|
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.NameBindId;
|
import com.landtool.lanbase.common.utils.PageUtils;
|
import com.landtool.lanbase.common.utils.Query;
|
import com.landtool.lanbase.common.utils.Result;
|
import com.alibaba.fastjson.JSONObject;
|
|
/**
|
* @author lanbase
|
* @Description: TODO(用户单位关联表,用户与单位关联信息修改时,同步修改用户时间戳信息。)
|
* @date 2018-01-16 09:43:06
|
*/
|
@RestController
|
@RequestMapping("/org/userunit")
|
@Api(value = "", tags = {"用户与单位关联"})
|
public class OrgUserunitController extends AbstractController{
|
|
@Autowired
|
private OrgUserunitService userunitService;
|
|
@Autowired
|
private OrgUnitService unitService;
|
|
/**
|
* 用户单位关联列表
|
*/
|
@RequestMapping(value ="/list", method ={RequestMethod.POST, RequestMethod.GET})
|
// @RequiresPermissions("org:user:list")
|
@RequiresPermissions(value = {"org:user:list","org:user: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<OrgUserunitJoinUser> userunitList = userunitService.queryList(query);
|
int total = userunitService.queryTotal(query);
|
|
PageUtils pageUtil = new PageUtils(userunitList, total, query.getLimit(), query.getPage());
|
|
return Result.ok().put("page", pageUtil);
|
}
|
|
|
/**
|
* 信息
|
*/
|
@GetMapping("/info/{userid}")
|
// @RequiresPermissions("org:user:list")
|
@RequiresPermissions(value = {"org:user:list","org:user:edit"}, logical = Logical.OR)
|
@ApiOperation(
|
value = "用户单位关联信息",
|
notes = ""
|
)
|
public Result info(@ApiParam(name="userid",value="用户Id",required=true)@PathVariable("userid") Long userid){
|
OrgUserunit userunit = userunitService.queryObject(userid);
|
|
return Result.ok().put("userunit", userunit);
|
}
|
|
/**
|
* 保存
|
*/
|
@LogAction("用户管理,用户信息管理>所属单位,用户信息管理>所属单位新增,新增")
|
@SysLog("保存用户单位关联")
|
@PostMapping("/save")
|
@RequiresPermissions("org:user:edit")
|
@ApiOperation(
|
value = "保存用户单位关联",
|
notes = ""
|
)
|
public Result save(@ApiParam(name="用户单位关联对象",value="传入json格式",required=true)@RequestBody OrgUserunitJoinUser userunit){
|
//判断是否存在
|
int count = userunitService.isExitUserunit(userunit);
|
if(count > 0){
|
return Result.error("已存在对应的关系,请检查!");
|
}
|
/**
|
* alert ykm 2019-04-12
|
*/
|
if(userunit.getWorktype().equals("1")) {
|
int working = userunitService.isWorking(userunit).size();
|
if(working > 0) {
|
return Result.error("已存在在职单位,请先修改后再填写!");
|
}
|
}
|
OrgUser user = (OrgUser) SecurityUtils.getSubject().getPrincipal();
|
userunit.setRcreateuser(user.getUserid());
|
userunit.setRcreatedate(new Date());
|
userunit.setRlasteditdate(new Date());
|
if(userunit.getWorkseasdatestr() != null && userunit.getWorkseasdatestr().length() != 0)
|
{
|
userunit.setWorkseasdate(getDateByString(userunit.getWorkseasdatestr()));
|
}
|
if(userunit.getWorkstartdatestr() != null && userunit.getWorkstartdatestr().length() != 0)
|
{
|
userunit.setWorkstartdate(getDateByString(userunit.getWorkstartdatestr()));
|
}
|
if(userunit.getWorkenddatestr() != null && userunit.getWorkenddatestr().length() != 0)
|
{
|
userunit.setWorkenddate(getDateByString(userunit.getWorkenddatestr()));
|
}
|
userunitService.save(userunit);
|
return Result.ok();
|
}
|
|
/**
|
* 修改
|
*/
|
@LogAction("用户管理,用户信息管理>所属单位,用户信息管理>所属单位修改,修改")
|
@SysLog("修改用户单位关联")
|
@PostMapping("/update")
|
@RequiresPermissions("org:user:edit")
|
@ApiOperation(
|
value = "修改用户单位关联",
|
notes = ""
|
)
|
public Result update(@ApiParam(name="用户单位关联对象",value="传入json格式",required=true)@RequestBody OrgUserunitJoinUser userunit){
|
Long oldunitid = userunit.getoldUnitid();
|
Integer olddeptid = userunit.getOlddeptid();
|
if(oldunitid.longValue() != userunit.getUnitid().longValue() || (olddeptid != null && !olddeptid.equals(userunit.getDeptid()))){
|
int count = userunitService.isExitUserunit(userunit);
|
if(count > 0){
|
return Result.error("已存在对应的关系,请检查!");
|
}
|
}
|
/**
|
* alert ykm 2019-04-12
|
*/
|
if(userunit.getWorktype().equals("1")) {
|
List<OrgUserunit> working = userunitService.isWorking(userunit);
|
for (OrgUserunit unit : working) {
|
if (!unit.getUnitid().equals(userunit.getoldUnitid()) || (unit.getDeptid() != null ? !unit.getDeptid().equals(userunit.getOlddeptid()) : true)) {
|
return Result.error("已存在在职单位,请先修改后再填写!");
|
}
|
}
|
}
|
if(userunit.getWorkseasdatestr() != null && userunit.getWorkseasdatestr() != "")
|
{
|
userunit.setWorkseasdate(getDateByString(userunit.getWorkseasdatestr()));
|
}
|
else{
|
userunit.setWorkseasdate(null);
|
}
|
if(userunit.getWorkstartdatestr() != null && userunit.getWorkstartdatestr() != "")
|
{
|
userunit.setWorkstartdate(getDateByString(userunit.getWorkstartdatestr()));
|
}
|
else{
|
userunit.setWorkstartdate(null);
|
}
|
if(userunit.getWorkenddatestr() != null && userunit.getWorkenddatestr() != "")
|
{
|
userunit.setWorkenddate(getDateByString(userunit.getWorkenddatestr()));
|
}
|
else{
|
userunit.setWorkenddate(null);
|
}
|
userunitService.update(userunit);
|
return Result.ok();
|
}
|
|
/**
|
* 删除
|
*/
|
@LogAction("用户管理,用户信息管理>所属单位,用户信息管理>所属单位删除,删除")
|
@SysLog("删除用户单位关联")
|
@PostMapping("/delete")
|
@RequiresPermissions("org:user:edit")
|
@ApiOperation(
|
value = "删除用户单位关联",
|
notes = "规则:用户id|单位id,部门id|...(|分割)"
|
)
|
@ResponseBody
|
public Result delete(String userunitids){
|
try{
|
String[] idList = userunitids.split("\\|");
|
Long userid = Long.parseLong(idList[0].toString());
|
for (int i = 0; i < idList.length; i++) {
|
if(i>0){
|
OrgUserunit model = new OrgUserunit();
|
model.setUserid(userid);
|
model.setUnitid(Long.parseLong(idList[i].split("\\,")[0].toString()));
|
Integer deptid = Integer.parseInt(idList[i].split("\\,")[1].toString());
|
if(!deptid.equals(0)) model.setDeptid(deptid);
|
userunitService.delete(model);
|
}
|
}
|
}catch(Exception e){
|
return Result.error(e.getMessage());
|
}
|
return Result.ok();
|
}
|
|
/**
|
* 自动补全
|
* @param keyWord
|
* @return
|
*/
|
@GetMapping("/findUnitNamesByKeyWord/{keyWord}")
|
public List<NameBindId> findUnitNamesByKeyWord(@PathVariable(name = "keyWord") String keyWord){
|
List<NameBindId> UnitNames = unitService.findUnitNamesByKeyWord(keyWord);
|
|
if (StringUtils.isEmpty(UnitNames)) {
|
|
return null;
|
}
|
|
return UnitNames;
|
}
|
|
/**
|
* @Description: 根据用户ID和单位ID获取OrgUserunit
|
* @return: OrgUserunit
|
*/
|
@GetMapping("/queryObjectByUnitid/{id}")
|
public Result queryObjectByUnitid(@PathVariable(name = "id") String id){
|
String[] idList= id.split("\\|");
|
Long userid =Long.parseLong(idList[0]);
|
Long unitid =Long.parseLong(idList[1]);
|
Long deptid = (!idList[2].equals("null")&&idList[2]!=null)?Long.parseLong(idList[2]):null;
|
OrgUserunit model = new OrgUserunit();
|
model.setUserid(userid);
|
model.setDeptid(deptid!=null?Integer.parseInt(deptid.toString()):null);
|
model.setUnitid(unitid);
|
OrgUserunit userunit = userunitService.queryObjectByUnitid(model);
|
return Result.ok().put("userunit", userunit);
|
}
|
|
private Date getDateByString(String datestr){
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
Date returnDate = new Date();
|
if(datestr != null && datestr.length() != 0 ){
|
try{
|
returnDate = (sdf.parse(datestr));
|
}
|
catch(Exception ex){
|
returnDate = new Date();
|
}
|
}
|
return returnDate;
|
}
|
}
|