package com.product.admin.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.product.admin.config.CmnConst; import com.product.admin.config.SystemCode; import com.product.admin.service.SelectPersonnelService; import com.product.admin.service.idel.ISelectPersonnelService; import com.product.admin.util.ResultInfo; import com.product.core.config.CoreConst; import com.product.core.controller.support.AbstractBaseController; import com.product.core.entity.DataTableEntity; import com.product.core.entity.FieldSetEntity; import com.product.core.entity.RequestParameterEntity; import com.product.core.exception.BaseException; import com.product.core.permission.PermissionService; import com.product.core.spring.context.SpringMVCContextHolder; import com.product.module.sys.config.SystemErrorCode; import com.product.module.sys.entity.SystemUser; import com.product.module.sys.version.ApiVersion; import com.product.util.BaseUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; /** * * @Title: SelectPersonnelController * @Date: 2020年8月26日 17:27:23 * @Author: luoxin * @Description: 部门组织架构选择 */ @RestController @RequestMapping("/api/select") public class SelectPersonnelController extends AbstractBaseController { /** * 数据权限验证 */ @Autowired PermissionService permissionService; @Autowired private SelectPersonnelService selectPersonnelService; /** * 获取组织架构树 */ @RequestMapping(value = "/list-organization/{version}", method = RequestMethod.POST) @ApiVersion(1) public String getOrganization(HttpServletRequest request) { //获取参数 FieldSetEntity fse = null; Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA); if (bean != null) { RequestParameterEntity reqp = (RequestParameterEntity) bean; fse = reqp.getFormData(); } //判断参数是否为空 if (bean == null || fse == null) { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } //单位uuid try { JSONObject jsonObject = selectPersonnelService.getOrganizationStructureTree(SpringMVCContextHolder.getCurrentUser().getOrg_level_uuid()); return ResultInfo.success(jsonObject); } catch (BaseException e) { SpringMVCContextHolder.getSystemLogger().error(e); return this.error(e); } catch (Exception e) { SpringMVCContextHolder.getSystemLogger().error(e); return error(SystemCode.SYSTEM_GET_DEPARTMENT_ERROR.getValue(), SystemCode.SYSTEM_GET_DEPARTMENT_ERROR.getText()); } } /** * 通过uuid获取公司或部门下人员或岗位的信息 */ @RequestMapping(value = "/list-department/{version}", method = RequestMethod.POST) @ApiVersion(1) public String getOrganizationThoseWho(HttpServletRequest request) { //获取参数 FieldSetEntity fse = null; Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA); if (bean != null) { RequestParameterEntity reqp = (RequestParameterEntity) bean; fse = reqp.getFormData(); } //判断参数是否为空 if (fse == null) { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); return this .error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } try { //单位或公司uuid String uuid = fse.getString("uuid"); //表名 String tableName = fse.getTableName(); JSONArray array = selectPersonnelService .getOrganizationThoseWho(tableName, uuid); return ResultInfo.success(array); } catch (BaseException e) { SpringMVCContextHolder.getSystemLogger().error(e); return this.error(e); } catch (Exception e) { SpringMVCContextHolder.getSystemLogger().error(e); return error(SystemCode.SYSTEM_THE_EMPLOYEE_ERROR.getValue(), SystemCode.SYSTEM_THE_EMPLOYEE_ERROR.getText()); } } /** * 获取个人组信息及组内容 解析并保存getTheGroup */ @RequestMapping(value = "/save-personage-the-group/{version}", method = RequestMethod.POST) @ApiVersion(1) public String savePersonageTheGroup(HttpServletRequest request) { //获取参数 FieldSetEntity fse = null; Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA); if (bean != null) { RequestParameterEntity reqp = (RequestParameterEntity) bean; fse = reqp.getFormData(); } //判断参数是否为空 if (fse == null) { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); return this .error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } try { ISelectPersonnelService service = (ISelectPersonnelService) getProxyInstance(selectPersonnelService); String uuid = service.savePersonageTheGroup(fse); //表名 if (!BaseUtil.strIsNull(uuid)) { JSONObject object = new JSONObject(); object.put("uuid", uuid); return ResultInfo.success(object); } else { return error(SystemCode.SYSTEM_SAVE_GROUP_ERROR.getText(), SystemCode.SYSTEM_SAVE_GROUP_ERROR.getValue()); } } catch (BaseException e) { SpringMVCContextHolder.getSystemLogger().error(e); return this.error(e); } catch (Exception e) { SpringMVCContextHolder.getSystemLogger().error(e); return error(SystemCode.SYSTEM_SAVE_GROUP_ERROR.getValue(), SystemCode.SYSTEM_SAVE_GROUP_ERROR.getText()); } } /** * 保存公司组信息及组内容 */ @RequestMapping(value = "/save-company-the-group/{version}", method = RequestMethod.POST) @ApiVersion(1) public String saveCompanyTheGroup(HttpServletRequest request) { //获取参数 FieldSetEntity fse = null; Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA); if (bean != null) { RequestParameterEntity reqp = (RequestParameterEntity) bean; fse = reqp.getFormData(); } //判断参数是否为空 if (fse == null) { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); return this .error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } //数据操作的权限验证 if (!BaseUtil.strIsNull(fse.getString(CmnConst.UUID))) { if (!permissionService.validDataPermission(fse, CoreConst.DATA_PERMISSION_VALID_TYPE_ORG)) { SpringMVCContextHolder.getSystemLogger().error(SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getValue(), SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getText()); return this.error(SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getValue(), SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getText()); } } try { ISelectPersonnelService service = (ISelectPersonnelService) getProxyInstance(selectPersonnelService); String uuid = service.saveCompanyTheGroup(fse); //表名 if (uuid != null && !uuid.isEmpty()) { JSONObject object = new JSONObject(); object.put("uuid", uuid); return ResultInfo.success(object); } else { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_SAVE_GROUP_ERROR.getValue(), SystemCode.SYSTEM_SAVE_GROUP_ERROR.getText()); return error(SystemCode.SYSTEM_SAVE_GROUP_ERROR.getValue(), SystemCode.SYSTEM_SAVE_GROUP_ERROR.getText()); } } catch (BaseException e) { SpringMVCContextHolder.getSystemLogger().error(e); return this.error(e); } catch (Exception e) { SpringMVCContextHolder.getSystemLogger().error(e); return error(SystemCode.SYSTEM_SAVE_GROUP_ERROR.getValue(), SystemCode.SYSTEM_SAVE_GROUP_ERROR.getText()); } } /** * 删除组信息及组内容 */ @RequestMapping(value = "/delete-the-group/{version}", method = RequestMethod.POST) @ApiVersion(1) public String deleteTheGroup(HttpServletRequest request) { //获取参数 FieldSetEntity fse = null; Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA); if (bean != null) { RequestParameterEntity reqp = (RequestParameterEntity) bean; fse = reqp.getFormData(); } //判断参数是否为空 if (fse == null) { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); return this .error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } String uuids = fse.getString("uuids"); //普通管理员为2 SystemUser currentUser = SpringMVCContextHolder.getCurrentUser(); //如果为普通管理员 if (currentUser.getUserType() == 2) { //数据操作的权限验证 if (!permissionService.validDataPermission(CmnConst.PRODUCT_SYS_GROUP, uuids, CoreConst.DATA_PERMISSION_VALID_TYPE_ORG)) { SpringMVCContextHolder.getSystemLogger().error(SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getValue(), SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getText()); return this.error(SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getValue(), SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getText()); } } else { //数据操作的权限验证 if (!permissionService.validDataPermission(CmnConst.PRODUCT_SYS_GROUP, uuids, CoreConst.DATA_PERMISSION_VALID_TYPE_USER)) { SpringMVCContextHolder.getSystemLogger().error(SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getValue(), SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getText()); return this.error(SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getValue(), SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getText()); } } try { ISelectPersonnelService service = (ISelectPersonnelService) getProxyInstance(selectPersonnelService); //表名 if (service.deleteTheGroup(fse)) { return OK(); } else { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_ERROR_GROUP_CITED.getValue(), SystemCode.SYSTEM_ERROR_GROUP_CITED.getText()); return error(SystemCode.SYSTEM_ERROR_GROUP_CITED.getValue(), SystemCode.SYSTEM_ERROR_GROUP_CITED.getText()); } } catch (BaseException e) { SpringMVCContextHolder.getSystemLogger().error(e); return this.error(e); } catch (Exception e) { SpringMVCContextHolder.getSystemLogger().error(e); return error(SystemCode.SYSTEM_DELETE_GROUP_ERROR.getValue(), SystemCode.SYSTEM_DELETE_GROUP_ERROR.getText()); } } /** * 点击组获取用户信息 */ @RequestMapping(value = "/get-the-group/{version}", method = RequestMethod.POST) @ApiVersion(1) public String getTheGroup(HttpServletRequest request) { //获取参数 FieldSetEntity fse = null; Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA); if (bean != null) { RequestParameterEntity reqp = (RequestParameterEntity) bean; fse = reqp.getFormData(); } //判断参数是否为空 if (fse == null) { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); return this .error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } //数据操作的权限验证 if (!permissionService.validDataPermission(fse, CoreConst.DATA_PERMISSION_VALID_TYPE_USER) && !permissionService.validDataPermission(fse, CoreConst.DATA_PERMISSION_VALID_TYPE_ORG)) { SpringMVCContextHolder.getSystemLogger().error(SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getValue(), SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getText()); return this.error(SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getValue(), SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getText()); } try { //表名 DataTableEntity dataTableEntity = selectPersonnelService.getTheGroup(fse); return OK_List(dataTableEntity); } catch (BaseException e) { SpringMVCContextHolder.getSystemLogger().error(e); return this.error(e); } catch (Exception e) { SpringMVCContextHolder.getSystemLogger().error(e); return error(SystemCode.SYSTEM_GET_GROUP_ERROR.getValue(), SystemCode.SYSTEM_GET_GROUP_ERROR.getText()); } } /** * 弹框获取当前公司组和个人组 */ @RequestMapping(value = "/list-all-group/{version}", method = RequestMethod.POST) @ApiVersion(1) public String listAllGroup(HttpServletRequest request) { //获取参数 FieldSetEntity fse = null; Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA); if (bean != null) { RequestParameterEntity reqp = (RequestParameterEntity) bean; fse = reqp.getFormData(); } //判断参数是否为空 if (fse == null) { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); return this .error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } try { return OK_List(selectPersonnelService.listAllGroup(fse)); } catch (BaseException e) { SpringMVCContextHolder.getSystemLogger().error(e); return this.error(e); } catch (Exception e) { SpringMVCContextHolder.getSystemLogger().error(e); return error(SystemCode.SYSTEM_GET_GROUP_ERROR.getValue(), SystemCode.SYSTEM_GET_GROUP_ERROR.getText()); } } /** * 获取公司组列表 */ @RequestMapping(value = "/list-company-group/{version}", method = RequestMethod.POST) @ApiVersion(1) public String listCompanyGroup(HttpServletRequest request) { //获取参数 FieldSetEntity fse = null; Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA); if (bean != null) { RequestParameterEntity reqp = (RequestParameterEntity) bean; fse = reqp.getFormData(); } //判断参数是否为空 if (fse == null) { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); return this .error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } try { JSONObject object = selectPersonnelService.listCompanyGroup(fse); if (object.size() == 1) { DataTableEntity data = (DataTableEntity) object.get("data"); return OK_List(data); } else { DataTableEntity data = (DataTableEntity) object.get("datatable"); if (!BaseUtil.dataTableIsEmpty(data)) { JSONObject jsonObject = JSON.parseObject(OK_List(data)); if (jsonObject != null) { JSONArray systemFieldMeta = jsonObject.getJSONArray("systemFieldMeta"); if (systemFieldMeta != null) { object.put("systemFieldMeta", systemFieldMeta); } } } return ResultInfo.success(object); } } catch (BaseException e) { SpringMVCContextHolder.getSystemLogger().error(e); return this.error(e); } catch (Exception e) { SpringMVCContextHolder.getSystemLogger().error(e); return error(SystemCode.SYSTEM_GET_GROUP_ERROR.getValue(), SystemCode.SYSTEM_GET_GROUP_ERROR.getText()); } } /** * 获取公司组详情 */ @RequestMapping(value = "/get-company-group-info/{version}", method = RequestMethod.POST) @ApiVersion(1) public String getCompanyGroupInfo(HttpServletRequest request) { //获取参数 FieldSetEntity fse = null; Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA); if (bean != null) { RequestParameterEntity reqp = (RequestParameterEntity) bean; fse = reqp.getFormData(); } //判断参数是否为空 if (fse == null) { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); return this .error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } //普通管理员为2 SystemUser currentUser = SpringMVCContextHolder.getCurrentUser(); //数据操作的权限验证 if (currentUser.getUserType() != 2 || !permissionService.validDataPermission(fse, CoreConst.DATA_PERMISSION_VALID_TYPE_ORG)) { SpringMVCContextHolder.getSystemLogger().error(SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getValue(), SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getText()); return this.error(SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getValue(), SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getText()); } try { FieldSetEntity fieldSetEntity = selectPersonnelService.getCompanyGroupInfo(fse); return OK_List(fieldSetEntity); } catch (BaseException e) { SpringMVCContextHolder.getSystemLogger().error(e); return this.error(e); } catch (Exception e) { SpringMVCContextHolder.getSystemLogger().error(e); return error(SystemCode.SYSTEM_GET_MANNING_ERROR.getValue(), SystemCode.SYSTEM_GET_MANNING_ERROR.getText()); } } /** * 保存已经选择的人员,部门,组织架构,岗位。 */ @RequestMapping(value = "/save-organization/{version}", method = RequestMethod.POST) @ApiVersion(1) public String saveOrganization(HttpServletRequest request) { //获取参数 FieldSetEntity fse = null; Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA); if (bean != null) { RequestParameterEntity reqp = (RequestParameterEntity) bean; fse = reqp.getFormData(); } //判断参数是否为空 if (fse == null) { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); return this .error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } try { ISelectPersonnelService service = (ISelectPersonnelService) getProxyInstance(selectPersonnelService); String uuid = service.saveOrganization(fse); if (uuid != null && !uuid.isEmpty()) { JSONObject object = new JSONObject(); object.put("uuid", uuid); return ResultInfo.success(object); } else { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_SAVE_ORGAMIZTION_ERROR.getValue(), SystemCode.SYSTEM_SAVE_ORGAMIZTION_ERROR.getText()); return error(SystemCode.SYSTEM_SAVE_ORGAMIZTION_ERROR.getValue(), SystemCode.SYSTEM_SAVE_ORGAMIZTION_ERROR.getText()); } } catch (BaseException e) { SpringMVCContextHolder.getSystemLogger().error(e); return this.error(e); } catch (Exception e) { SpringMVCContextHolder.getSystemLogger().error(e); return error(SystemCode.SYSTEM_SAVE_ORGAMIZTION_ERROR.getValue(), SystemCode.SYSTEM_SAVE_ORGAMIZTION_ERROR.getText()); } } /** * 获取已经选择的人员,部门,组织架构,岗位。 */ @RequestMapping(value = "/get-at-present-organization/{version}", method = RequestMethod.POST) @ApiVersion(1) public String getAtPresentOrganization(HttpServletRequest request) { //获取参数 FieldSetEntity fse = null; Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA); if (bean != null) { RequestParameterEntity reqp = (RequestParameterEntity) bean; fse = reqp.getFormData(); } //判断参数是否为空 if (fse == null) { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } try { JSONArray array = selectPersonnelService.getAtPresentOrganization(fse); if (array == null) { return OK(); } return ResultInfo.success(array); } catch (BaseException e) { SpringMVCContextHolder.getSystemLogger().error(e); return this.error(e); } catch (Exception e) { SpringMVCContextHolder.getSystemLogger().error(e); return error(SystemCode.SYSTEM_GET_ORGAMIZTION_ERROR.getValue(), SystemCode.SYSTEM_GET_ORGAMIZTION_ERROR.getText()); } } }