Commit 1ad18b21 by renrui

[add]提交新功能

1 parent 98059f92
Showing with 4141 additions and 3 deletions
/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* 注意:
* 本软件为www.yixiang.co开发研制
*/
package org.arch.common.modules.sysmange.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author hupeng
* @date 2018-11-30
*/
@Data
@ApiModel(value="用户登录信息", description="用户登录信息")
public class AuthUser {
@ApiModelProperty(value ="用户账户",required = true,notes = "当前为用户手机号")
private String username;
@ApiModelProperty(required = true)
private String password;
public static void main(String[] args) {
//AuthUser authUser = new AuthUser();
//authUser.setPassword("12345678");
//authUser.setUsername("13500000001");
//System.out.println(JSON.toJSONString(authUser));
}
}
package org.arch.common.modules.sysmange.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* 角色添加对象
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="角色添加信息", description="角色添加信息")
public class RoleAddDto {
/**
* 角色名称
*/
@ApiModelProperty(value ="角色名称",required = true)
private String roleName;
/**
* 角色标识
*/
@ApiModelProperty(value ="角色标识",required = true)
private String roleSign;
/**
* 备注
*/
@ApiModelProperty(value ="备注")
private String remark;
/**
* 菜单id
*/
@ApiModelProperty(value ="菜单ID集合")
private List<Long> menuIds;
@ApiModelProperty(value ="禁用或者启用",notes = "0:禁用 1:启用")
private Integer enabled;
}
/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* 注意:
* 本软件为www.yixiang.co开发研制
*/
package org.arch.common.modules.sysmange.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* @author hupeng
* @date 2020-05-14
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="角色信息", description="角色信息")
public class RoleDto extends RoleAddDto implements Serializable {
@ApiModelProperty(value ="角色id")
private Long id;
/**
* 创建用户id
*/
@ApiModelProperty(value ="创建用户id")
private Long userIdCreate;
/**
* 创建时间
*/
@ApiModelProperty(value ="创建时间")
private Date createTime;
/**
* 修改人
*/
@ApiModelProperty(value ="修改人")
private Long userIdUpdate;
/**
* 修改时间
*/
@ApiModelProperty(value ="修改时间")
private Date updateTime;
}
package org.arch.common.modules.sysmange.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="角色查询条件对象", description="角色查询条件对象")
public class RoleQueryDto {
/**
* 当前页
*/
@ApiModelProperty(value="当前页", notes="当前页为空,默认查询第一页")
private Long currPage = 1L;
/**
* 每页显示条数
*/
@ApiModelProperty(value="每页显示条数", notes="每页显示条数为空,默认显示第一页")
private Long pageSize = 20L;
/**
* 关键字查询条件
*/
@ApiModelProperty(value="查询关键字", notes="查询关键字")
private String selectVal;
/**
* 人员姓名
*/
@ApiModelProperty(value="角色名", notes="角色名")
private String name;
}
package org.arch.common.modules.sysmange.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 角色添加对象
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="角色修改信息", description="角色修改信息")
public class RoleUpdateDto extends RoleAddDto{
@ApiModelProperty(value ="角色id")
private Long id;
@ApiModelProperty(value ="角色编码")
private String roleSign;
@ApiModelProperty(value ="部门id串")
private String orgNum;
}
package org.arch.common.modules.sysmange.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.List;
/**
* 用户新建实体对象
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="创建用户实体对象", description="创建用户实体对象")
public class UserAddDto implements Serializable {
/**
* 手机号码
*/
@ApiModelProperty(value ="手机号",required = false)
private String phone;
/**
* 用户姓名、昵称
*/
@ApiModelProperty(value ="用户名称或者昵称",required = true)
private String name;
/**
* 密码
*/
private String password;
/**
* 用户编码
*/
@ApiModelProperty(value ="用户编码",required = true)
private String userCode;
// /**
// * 员工类型
// */
// @ApiModelProperty(value ="用户类型",required = true)
// private Integer userType;
@ApiModelProperty(value ="用户角色ids",required = true)
// private Long roleId;
private List<Long> roleIds;
/**
* 组织机构编码
*/
@ApiModelProperty(value ="组织机构编码",required = true)
private String orgNum;
/**
* 用户数据权限范围
*/
@ApiModelProperty(value ="用户数据权限范围(对应组织编码)",required = false)
private String dataPermission;
// /**
// * 生日
// */
// @ApiModelProperty(value ="生日",required = true)
// private String birthday;
/**
* 部门
*/
@ApiModelProperty(value ="归属部门",required = false)
private Long deptId;
/**
* 组织机构id
*/
@ApiModelProperty(value ="归属组织机构",required = false)
private Long orgId;
// /**
// * 工作年限
// */
// @ApiModelProperty(value ="工作年限")
// private Double workYear;
// /**
// * 入职时间
// */
// @ApiModelProperty(value ="入职时间")
// private String entryTime;
// /**
// * 性别
// */
// @ApiModelProperty(value ="用户性别",required = true)
// private Integer sex;
/**
* 状态:1启用、0禁用
*/
@ApiModelProperty(value ="启用/禁用状态",required = true)
private Integer enabled;
public static void main(String[] args) {
// UserAddDto userAddDto = new UserAddDto();
//// userAddDto.setUserType(UserTypeEnum.REGULAR_EMPLOYEE.getCode());
//// userAddDto.setSex(SexEnum.UN_KNOW.getCode());
// userAddDto.setUserCode("0001");
// userAddDto.setPhone("15810222300");
// userAddDto.setPassword("123456");
// userAddDto.setOrgId(1L);
// userAddDto.setDeptId(1L);
// userAddDto.setName("刘雷");
//// userAddDto.setBirthday("2020-06-01");
// userAddDto.setEnabled(EnableEnum.ENABLE.getCode());
// System.out.println(JSON.toJSONString(userAddDto));
}
}
......@@ -102,4 +102,10 @@ public class UserDto implements Serializable {
@ApiModelProperty(value = "部门路径",notes = "部门路径")
private String orgSimpleName;
@ApiModelProperty(value = "组织机构Id",notes = "组织机构Id")
private String orgId;
@ApiModelProperty(value = "数据范围",notes = "数据范围")
private String orgNum;
}
package org.arch.common.modules.sysmange.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="用户登录返回信息", description="说明:1、登录成功后,将tokon放入请求头里面。所有需要在登录后才能访问的接口都需要该参数。参数名:Authorization.")
public class UserLoginDto {
@ApiModelProperty(value = "登录token 说明:登录成功后,将tokon放入请求头里面。所有需要在登录后才能访问的接口都需要该参数。参数名:Authorization",notes = "登录成功后,将tokon放入请求头里面。所有需要在登录后才能访问的接口都需要该参数。参数名:Authorization.")
private String token;
@ApiModelProperty(value = "用户信息",notes = "用户信息")
private UserDto userDto;
public UserLoginDto(String token, UserDto userDto) {
this.token = token;
this.userDto = userDto;
}
}
package org.arch.common.modules.sysmange.dto;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="用户查询条件对象", description="用户查询条件对象")
public class UserQueryDto {
/**
* 当前页
*/
@ApiModelProperty(value="当前页", notes="当前页为空,默认查询第一页")
private Long currPage = 1L;
/**
* 每页显示条数
*/
@ApiModelProperty(value="每页显示条数", notes="每页显示条数为空,默认显示第一页")
private Long pageSize = 20L;
/**
* 关键字查询条件
*/
@ApiModelProperty(value="查询关键字", notes="查询关键字")
private String selectVal;
/**
* 人员姓名
*/
@ApiModelProperty(value="人员姓名", notes="人员姓名")
private String name;
/**
* 人员编码
*/
@ApiModelProperty(value="人员编码", notes="人员编码")
private String userCode;
/**
* 所属组织
*/
@ApiModelProperty(value="所属组织", notes="所属组织")
private Long orgId;
/**
* 所属组织
*/
@ApiModelProperty(value="所属组织编码", notes="所属组织编码")
private String orgNum;
public static void main(String[] args) {
UserQueryDto userQueryDto = new UserQueryDto();
userQueryDto.setName("张三");
userQueryDto.setUserCode("YG001");
System.out.println(JSON.toJSONString(userQueryDto));
}
}
package org.arch.common.modules.sysmange.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="员工性别", description="员工性别")
public class UserSexDto {
/**
* 员工性别编码
*/
@ApiModelProperty(value = "员工性别编码",hidden = true)
private Integer code;
/**
* 员工性别
*/
@ApiModelProperty(value = "员工性别",hidden = true)
private String name;
}
package org.arch.common.modules.sysmange.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="员工类型", description="员工类型")
public class UserTypeDto {
/**
* 类型编码
*/
@ApiModelProperty(value = "员工类型编码",hidden = true)
private Integer code;
/**
* 类型
*/
@ApiModelProperty(value = "员工类型名称",hidden = true)
private String name;
}
package org.arch.common.modules.sysmange.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="更新用户实体对象", description="更新用户实体对象")
public class UserUpdateDto extends UserAddDto {
/**
* 用户id
*/
@ApiModelProperty(value ="用户id",required = true)
private Long id;
}
package org.arch.common.modules.sysmange.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 代办
* </p>
*
* @author audit
* @since 2020-11-07
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("com_backlog")
@ApiModel(value="代办", description="代办")
public class BackLog implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "id")
private String bId;
@ApiModelProperty(value = "评审文档id")
private String rId;
@ApiModelProperty(value = "审批类型(0规划1可研,2概设,3需求,4测评,5上线,6下线,7检查督办8验收)")
private String type;
@ApiModelProperty(value = "业务名称")
private String name;
@ApiModelProperty(value = "环节类型(例如可研编制,可研初审,概设编制等)")
private String stepType;
@ApiModelProperty(value = "审批结果(0未处理,1处理)")
private String result;
@ApiModelProperty(value = "提交人")
private String submitterId;
@ApiModelProperty(value = "提交人名称")
@TableField(exist = false)
private String submitter;
@ApiModelProperty(value = "提交时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date submitTime;
@ApiModelProperty(value = "审批人")
private String approver;
@ApiModelProperty(value = "审批人id")
private String approverId;
@ApiModelProperty(value = "审批时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date approvalTime;
@ApiModelProperty(value = "预计完成时间")
private Date completionTime;
@ApiModelProperty(value = "接收人")
private String accepterId;
@ApiModelProperty(value = "接收人名称")
@TableField(exist = false)
private String accepter;
@ApiModelProperty(value = "根据type值所代表的项目状态")
private String state;
}
package org.arch.common.modules.sysmange.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 部门
* </p>
*
* @author audit
* @since 2020-08-27
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("sys_dept")
@ApiModel(value="Dept对象", description="部门")
public class Dept implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "ID")
@TableId(value = "dept_id", type = IdType.AUTO)
private Long deptId;
@ApiModelProperty(value = "组织ID")
private Long orgId;
@ApiModelProperty(value = "上级部门")
private Long parentDeptId;
@ApiModelProperty(value = "名称")
private String deptName;
@ApiModelProperty(value = "部门简称")
private String deptSimpleName;
@ApiModelProperty(value = "状态")
private Boolean enabled;
@ApiModelProperty(value = "部门类型")
private String deptType;
@ApiModelProperty(value = "创建日期")
private Date createTime;
@ApiModelProperty(value = "创建人")
private String createMan;
@ApiModelProperty(value = "最后一次修改时间")
private Date lastUpdateTime;
@ApiModelProperty(value = "最后一次修改人")
private Long lastUpdateMan;
}
package org.arch.common.modules.sysmange.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
/**
* <p>
* 可行性研究报告
* </p>
*
* @author zhenxu
* @since 2020-10-29
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("fsr_project")
@ApiModel(value = "Project对象", description = "可行性研究报告")
public class Project implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "可行性研究报告id")
@TableId(value = "fsr_id", type = IdType.INPUT)
private String fsrId;
@ApiModelProperty(value = "编码")
private String code;
@ApiModelProperty(value = "模板ID")
private String templateId;
@ApiModelProperty(value = "模板名称")
@TableField(exist = false)
private String templateN;
@ApiModelProperty(value = "可研名称")
private String prjName;
@ApiModelProperty(value = "系统名称")
private String sysName;
@ApiModelProperty(value = "当项目性质为续建时关联系统id用,分割")
private String sysId;
@ApiModelProperty(value = "所属年月")
private String yearM;
@ApiModelProperty(value = "类型(开发,开发实施,设计)")
private String prjType;
@ApiModelProperty(value = "类型名称")
@TableField(exist = false)
private String prjTypeN;
@ApiModelProperty(value = "项目性质(0新建,1续建,2优化)")
private String proProp;
@ApiModelProperty(value = "项目性质名称")
@TableField(exist = false)
private String proPropN;
@ApiModelProperty(value = "项目来源(0信息规划类,1管理新要求,2业务新需求)")
private String proSource;
@ApiModelProperty(value = "项目来源名称")
@TableField(exist = false)
private String proSourceN;
@ApiModelProperty(value = "单位编码")
private String deptId;
@ApiModelProperty(value = "单位ID串")
private String deptIds;
@ApiModelProperty(value = "所属单位")
private String dept;
@ApiModelProperty(value = "项目期号(1期,2期,3期,4期,5期)")
private String proNum;
@ApiModelProperty(value = "文档类型")
private String wordType;
@ApiModelProperty(value = "状态(0编制中,1待审核,2待受理,3待预审,4预审中,5预审整改中,6待评审7暂缓立项8评审整改中9待核查10待收口11归档20不予申报21不予受理22不予立项)")
private String state;
@ApiModelProperty(value = "状态(0编制中,1待审核,2待受理,3待预审,4预审中,5整改中,6待评审7暂缓立项9待核查10待收口11归档20不予申报21不予受理22不予立项)")
private String newState;
@ApiModelProperty(value = "状态名")
@TableField(exist = false)
private String stateN;
@ApiModelProperty(value = "建设类型")
private String buildType;
@ApiModelProperty(value = "建设类型")
@TableField(exist = false)
private String buildTypeN;
@ApiModelProperty(value = "创建人")
private String creater;
@ApiModelProperty(value = "创建人id")
private String createrId;
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date createTime;
@ApiModelProperty(value = "近期更新时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date uploadTime;
@ApiModelProperty(value = "版本号")
private Integer version;
@ApiModelProperty(value = "负责人")
private String leaderId;
private String leaderName;
@ApiModelProperty(value = "项目任务分类")
private String proTaskType;
@ApiModelProperty(value = "项目任务分类名称")
@TableField(exist = false)
private String proTaskTypeN;
@ApiModelProperty(value = "系统部署位置")
private String position;
@ApiModelProperty(value = "项目分类(0规划类,1需求类)")
private String proType;
@ApiModelProperty(value = "需求Id")
private String demandId;
@ApiModelProperty(value = "需求名称")
private String demandName;
@ApiModelProperty(value = "批次")
private String batch;
@ApiModelProperty("是否当期批次")
@TableField(exist = false)
private Boolean isBatch;
/* @ApiModelProperty(value = "关联规划的id数组")
@TableField(exist = false)
private List<PsrPlan> psrPlans;
@ApiModelProperty(value = "关联规划的id数组")
@TableField(exist = false)
private List<Demand> demands;*/
@ApiModelProperty("附件集合")
@TableField(exist = false)
private List<String> fileIds;
@ApiModelProperty(value = "数据工程费")
private BigDecimal engCost;
@ApiModelProperty(value = "软件购置费")
private BigDecimal softCost;
@ApiModelProperty(value = "硬件购置费")
private BigDecimal hardCost;
@ApiModelProperty(value = "咨询设计费")
private BigDecimal consultCost;
@ApiModelProperty(value = "系统功能开发费")
private BigDecimal sysDesignCost;
@ApiModelProperty(value = "系统集成开发费")
private BigDecimal sysIntegrateCost;
@ApiModelProperty(value = "系统实施费")
private BigDecimal sysImplCost;
@ApiModelProperty(value = "系统集成实施费")
private BigDecimal sysIntegrateImplCost;
@ApiModelProperty(value = "业务运营费")
private BigDecimal busOperationCost;
@ApiModelProperty(value = "其他费用")
private BigDecimal otherCost;
@ApiModelProperty(value = "数据工程数据产品(应用)研发费用")
private BigDecimal sysDataProduct;
@ApiModelProperty(value = "数据工程数据标准化、盘点、目录构建、质量治理等费用")
private BigDecimal sysDataStandard;
@ApiModelProperty(value = "数据工程数据接入、上传、下发、数据产品(应用)实施费用")
private BigDecimal sysDataCost;
@ApiModelProperty(value = "总计费用")
private BigDecimal totalCost;
@ApiModelProperty(value = "内容")
@TableField(exist = false)
private String content;
@ApiModelProperty(value = "删除标识")
private Integer isDel;
@ApiModelProperty(value = "可研文档存储ID")
private String fileId;
@ApiModelProperty(value = "估算书存储Id")
private String excelId;
@ApiModelProperty(value = "审批报告存储ID")
private String reportId;
@ApiModelProperty(value = "环节(申报1,业务部门审核2,受理3,预审4,评审5,核查6,收口7,归档8)")
private String step;
@ApiModelProperty(value = "建设可行性评分")
private BigDecimal gradeFeasibility;
@ApiModelProperty(value = "建设必要性评分")
private BigDecimal gradeNecessity;
@ApiModelProperty(value = "建设效益评价得分")
private BigDecimal gradeBenefit;
@ApiModelProperty(value = "审定金额(万元)")
private BigDecimal approvalCost;
@ApiModelProperty(value = "评审总得分")
private BigDecimal grade;
@ApiModelProperty(value = "评审意见文号")
private String gradeOpinionNumber;
@ApiModelProperty(value = "批复意见文号")
private String replyOpinionNumber;
@ApiModelProperty(value = "批复金额")
private BigDecimal replyCost;
@ApiModelProperty(value = "业务部门审核人名称")
private String examineUserName;
@ApiModelProperty(value = "业务部门审核人isc的id")
private String examineIscUserId;
@TableField(exist = false)
@ApiModelProperty(value = "部门路径")
private String orgSimpleName;
@TableField(exist = false)
@ApiModelProperty(value = "是否提交")
private String isSubmit;
@ApiModelProperty(value = "立项时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date confirmTime;
@ApiModelProperty(value = "验收时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date acceptanceTime;
@ApiModelProperty(value = "实施期限(月)")
private String implementDeadline;
@ApiModelProperty(value = "申报单位")
private String constructDeptName;
@ApiModelProperty(value = "编制单位")
private String demandReportDeptName;
@TableField(exist = false)
@ApiModelProperty(value = "项目联系人")
private String contactUser;
@TableField(exist = false)
@ApiModelProperty(value = "项目联系方式")
private String contactPhone;
@TableField(exist = false)
@ApiModelProperty(value = "可研id集合")
private List<String> fsrIds;
@TableField(exist = false)
@ApiModelProperty(value = "完成预审状态1通过2驳回")
private String preStart;
@ApiModelProperty(value = "是否补录: 1:是,2:否")
// @TableField(exist = false)
private String additionalRecordingFlag;
@ApiModelProperty(value = "可研编制单位")
private String fsrMakeUnitName;
@ApiModelProperty(value = "可研编制单位ID")
private String fsrMakeUnitId;
@ApiModelProperty(value = "可研编制单位ID串")
private String fsrMakeUnitIds;
@ApiModelProperty(value = "可研批次字段")
private String fsrBatch;
}
package org.arch.common.modules.sysmange.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* <p>
* 规划设计研究-规划表
* </p>
*
* @author wubaoliang
* @since 2020-10-29
*/
@Data
@TableName("psr_plan")
public class PsrPlan implements Serializable {
private static final long serialVersionUID = 1L;
public static final String REFUSE_PSRPLAN = "0";
public static final String EDIT_PSRPLAN = "1";
public static final String AUDIT_PSRPLAN = "2";
public static final String PASS_PSRPLAN = "3";
public static final String INUSE_ENABLED = "1";
public static final String NOTUSE_ENABLED = "0";
/**
* 规划Id
*/
@TableId(value="id",type=IdType.INPUT)
private String id;
/**
* 规划年份
*/
private String year;
/**
* 规划名称
*/
private String name;
/**
* 规划描述
*/
private String description;
/**
* 创建用户id
*/
private String createrId;
/**
* 创建人
*/
private String creater;
/**
* 创建时间
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
private Date createTime;
/**
* 状态(0驳回,1编辑,2审核,3通过)
*/
private String state;
/**
* 规划分类
*/
private String psrTypeId;
/**
* 是否禁用0 :禁用 1 启用
*/
private String enabled;
/**
* 需求来源描述
*/
private String remark;
private Integer version;
/**
* 估算值
*/
private Float estimatedValue;
/**
*项目计划父Id
*/
private String pId;
/**
*单位编码
*/
private String orgNum;
/**
*单位名称
*/
private String orgName;
/**
*规划编号
*/
private String planNum;
@ApiModelProperty(value = "规划所属单位id")
@TableField(exist = false)
private Long orgId;
/**
*规划分类id列表
*/
private String psrTypePids;
/**
*组织id列表
*/
private String orgPids;
@ApiModelProperty(value = "是否查询规划审批列表")
@TableField(exist = false)
private boolean whetherQueryApproval = false;
@ApiModelProperty(value = "关联目录ID")
@TableField(exist = false)
private String caId;
@ApiModelProperty(value = "关联目录名称")
@TableField(exist = false)
private String caName;
@ApiModelProperty("附件Id集合")
@TableField(exist = false)
private List<String> fileIds;
@ApiModelProperty(value = "部门路径")
@TableField(exist = false)
private String orgSimpleName;
public String getCaId() {
return caId;
}
public void setCaId(String caId) {
this.caId = caId;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getCreaterId() {
return createrId;
}
public void setCreaterId(String createrId) {
this.createrId = createrId;
}
public String getCreater() {
return creater;
}
public void setCreater(String creater) {
this.creater = creater;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getPsrTypeId() {
return psrTypeId;
}
public void setPsrTypeId(String psrTypeId) {
this.psrTypeId = psrTypeId;
}
public String getEnabled() {
return enabled;
}
public void setEnabled(String enabled) {
this.enabled = enabled;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public Integer getVersion() {
return version;
}
public void setVersion(Integer version) {
this.version = version;
}
public Float getEstimatedValue() {
return estimatedValue;
}
public void setEstimatedValue(Float estimatedValue) {
this.estimatedValue = estimatedValue;
}
public String getpId() {
return pId;
}
public void setpId(String pId) {
this.pId = pId;
}
public String getOrgNum() {
return orgNum;
}
public void setOrgNum(String orgNum) {
this.orgNum = orgNum;
}
public String getPlanNum() {
return planNum;
}
public void setPlanNum(String planNum) {
this.planNum = planNum;
}
public String getOrgName() {
return orgName;
}
public void setOrgName(String orgName) {
this.orgName = orgName;
}
public Long getOrgId() {
return orgId;
}
public void setOrgId(Long orgId) {
this.orgId = orgId;
}
public String getPsrTypePids() {
return psrTypePids;
}
public void setPsrTypePids(String psrTypePids) {
this.psrTypePids = psrTypePids;
}
public String getOrgPids() {
return orgPids;
}
public void setOrgPids(String orgPids) {
this.orgPids = orgPids;
}
public boolean isWhetherQueryApproval() {
return whetherQueryApproval;
}
public void setWhetherQueryApproval(boolean whetherQueryApproval) {
this.whetherQueryApproval = whetherQueryApproval;
}
public String getCaName() {
return caName;
}
public void setCaName(String caName) {
this.caName = caName;
}
@Override
public String toString() {
return "PsrPlan{" +
", id=" + id +
", year=" + year +
", name=" + name +
", description=" + description +
", createrId=" + createrId +
", creater=" + creater +
", createTime=" + createTime +
", state=" + state +
", psrTypeId=" + psrTypeId +
", enabled=" + enabled +
", remark=" + remark +
", version=" + version +
", estimatedValue=" + estimatedValue +
"}";
}
}
package org.arch.common.modules.sysmange.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 角色
* </p>
*
* @author liulei
* @since 2020-09-06
*/
@Data
@TableName("sys_role")
public class Role implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 角色名称
*/
private String roleName;
/**
* 角色标识
*/
private String roleSign;
/**
* 备注
*/
private String remark;
/**
* 创建用户id
*/
private Long userIdCreate;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改人
*/
private Long userIdUpdate;
/**
* 修改时间
*/
private Date updateTime;
/**
* 禁用或者启用
* 0:禁用 1:启用
*/
private Integer enabled;
}
/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* 注意:
* 本软件为www.yixiang.co开发研制
*/
package org.arch.common.modules.sysmange.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
/**
* 角色菜单
* @author hupeng
* @date 2020-05-16
*/
@Data
@TableName("sys_roles_menus")
public class RolesMenus implements Serializable {
/** 菜单ID */
private Long menuId;
/** 角色ID */
private Long roleId;
}
package org.arch.common.modules.sysmange.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 系统用户
* </p>
*
* @author liulei
* @since 2020-09-02
*/
@Data
@TableName("sys_user")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
/**
* ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 手机号码
*/
private String phone;
/**
* 用户姓名、昵称
*/
private String name;
/**
* 密码
*/
private String password;
/**
* 用户编码
*/
private String userCode;
/**
* 员工类型
*/
private Integer userType;
/**
* 生日
*/
private String birthday;
/**
* 部门名称
*/
private Long deptId;
/**
* 组织机构id
*/
private Long orgId;
/**
* 工作年限
*/
private Double workYear;
/**
* 入职时间
*/
private Date entryTime;
/**
* 创建日期
*/
private Date createTime;
/**
* 性别
*/
private Integer sex;
/**
* 状态:1启用、0禁用
*/
private Integer enabled;
/**
* 是否删除:1删除、0 未删除
*/
private Integer isDelete;
/**
* 组织编码
*/
private String orgNum;
/**
* 数据权限范围
*/
private String dataPermission;
/**
* iscUserId
*/
private String iscUserId;
/**
* isExpert
*/
private String isExpert;
/**
* 角色名称集合以逗号隔开
*/
@TableField(exist = false)
private String roleName;
}
/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* 注意:
* 本软件为www.yixiang.co开发研制
*/
package org.arch.common.modules.sysmange.vo;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
/**
* @author hupeng
* @date 2020-05-16
*/
@Data
@TableName("sys_users_roles")
public class UsersRoles implements Serializable {
/** 用户ID */
private Long userId;
/** 角色ID */
private Long roleId;
}
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
......@@ -18,10 +18,25 @@
</properties>
<dependencies>
<dependency>
<groupId>com.github.davidfantasy</groupId>
<artifactId>mybatis-plus-generator-ui</artifactId>
</dependency>
<dependency>
<groupId>org.arch</groupId>
<artifactId>log</artifactId>
<artifactId>nacos</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<dependency>
<groupId>org.arch</groupId>
<artifactId>storage</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.arch</groupId>
<artifactId>filters</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
......@@ -3,7 +3,11 @@ package org.arch.manage;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
import org.springframework.context.annotation.EnableMBeanExport;
import org.springframework.jmx.support.RegistrationPolicy;
@SpringBootApplication
@EnableMBeanExport(registration = RegistrationPolicy.IGNORE_EXISTING)
public class SystemManageApp {
public static void main(String[] args) {
SpringApplication.run(SystemManageApp.class, args);
......
package org.arch.manage.conterller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.arch.base.utils.RequestUtils;
import org.arch.base.utils.StringUtils;
import org.arch.common.modules.sysmange.dto.RoleSmallDto;
import org.arch.common.modules.sysmange.dto.UserDto;
import org.arch.common.modules.sysmange.entity.*;
import org.arch.manage.service.AdsProjectService;
import org.arch.manage.service.BackLogService;
import org.arch.manage.service.ProjectService;
import org.arch.manage.service.PsrPlanService;
import org.arch.manage.util.UserUtil;
import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;
import java.util.UUID;
/**
* BaseController
*/
public class BaseController {
@Autowired
private UserUtil userUtil;
@Autowired
private BackLogService backlogservice;
@Autowired
private ProjectService projectService;
@Autowired
private PsrPlanService psrPlanService;
@Autowired
private AdsProjectService adsProjectService;
/**
* 获取用户基础信息
* @return
*/
public User getUser(){
return userUtil.getUser();
// return new User();
}
/**
* 获取用户详细信息
* 包括用户组织机构、部门、权限等信息
* @return
*/
public UserDto getUserDto(){
return userUtil.getUserDto();
}
/**
* 获取用户id
* @return 用户id
*/
public Long getUserId(){
return userUtil.getUserId();
}
/**
* 获取用户名称
* @return 用户名称
*/
public String getUserName(){
return userUtil.getUserDto().getName();
}
/**
* 获取ISC用户名称
* @return 用户名称
*/
public String getUserIscId(){
return userUtil.getUserDto().getIscUserId();
}
/**
* 获取ISC用户名称
* @return 用户名称
*/
public String getUserDataPermission(){
return userUtil.getUserDto().getDataPermission();
}
/**
* 添加查询数据权限
* @param queryWrapper queryWrapper声明对象
* @param mainTableAlias 主表别名
* @param datatype 文档类别(fsr可研,ads概设)
* @param isAudit 是否审核页面
*/
public <T> void queryAddDataPermission(QueryWrapper<T> queryWrapper,String mainTableAlias,String datatype,boolean isAudit){
// Class c=t.getClass()
UserDto user=getUserDto();
List<RoleSmallDto> roles=user.getRoles();
//如果有管理员权限不做数据权限控制
boolean bs=roles.stream().anyMatch(RoleSmallDto -> RoleSmallDto.getRoleSign().equals("admin"));
if(bs)return;
boolean bc=roles.stream().anyMatch(RoleSmallDto -> RoleSmallDto.getRoleSign().contains("controuser"));// .equals("contro_user")
/**
* 数据权限控制
* 1获取用户的dataPermission
*/
if (!isAudit){
//非审核页面查询
if(mainTableAlias==null){
queryWrapper.eq("creater_id", user.getIscUserId());
if(StringUtils.isNotBlank(user.getDataPermission())){
queryWrapper.or()
.likeRight("org_num", user.getDataPermission());
}
}else{
//如果多表关联查询,主表有别名,加别名查询
queryWrapper.eq(mainTableAlias+".creater_id", user.getIscUserId());
if(StringUtils.isNotBlank(user.getDataPermission())){
queryWrapper.or()
.likeRight(mainTableAlias+".org_num", user.getDataPermission());
}
}
}else{
//审核页面查询
// queryWrapper.ge("state", 1);
//可研或者概设审核且为专家
if(!bc&&datatype!=null){
// queryWrapper.eq("state", 3);
queryWrapper.or();
queryWrapper.inSql(datatype+"_id", "select id from com_review_report where creater_id='"+user.getIscUserId()+"'");
}
}
}
//待办处理rid--文档ID、 type--类型(0审核待办,1专家待办) docType--类型(0规划,1可研 2概设)flag(0驳回,1通过)
public void addBackLog(String rid,String type,String docType,String flag,String state){
String docName="";
String doc="";
String accepterId="";
if("0".equals(docType)){
QueryWrapper<PsrPlan> wrapper = Wrappers.query();
wrapper.eq("id", rid);
PsrPlan p=psrPlanService.getOne(wrapper);
docName=p.getName();
doc="规划审核";
if("0".equals(flag)){
accepterId=p.getCreaterId();
doc="规划驳回";
}
}else if("1".equals(docType)){
QueryWrapper<Project> wrapper = Wrappers.query();
wrapper.eq("fsr_id", rid);
Project p=projectService.getOne(wrapper);
docName=p.getPrjName();
doc="可研审核";
if("0".equals(flag)){
accepterId=p.getCreaterId();
doc="可研驳回";
}
}else if("2".equals(docType)){
QueryWrapper<AdsProject> wrapper = Wrappers.query();
wrapper.eq("ads_id", rid);
AdsProject p=adsProjectService.getOne(wrapper);
docName=p.getAdsName();
doc="概设审核";
if("0".equals(flag)){
accepterId=p.getCreaterId();
doc="概设驳回";
}
}
BackLog bl=new BackLog();
bl.setBId(UUID.randomUUID().toString());
bl.setRId(rid);
bl.setResult("0");
bl.setName(doc+"_"+docName);
bl.setType(docType);
bl.setStepType(doc);
bl.setSubmitterId(getUserIscId()+"");
bl.setAccepterId(accepterId);
bl.setSubmitTime(new Date());
bl.setState(state);
backlogservice.save(bl);
}
//待办处理rid--文档ID、 type--类型(0审核代办,1专家代办)
public void updateBackLog(String rid,String type,String docType){
QueryWrapper<BackLog> bWrapper = Wrappers.query();
bWrapper.eq("r_id", rid);
bWrapper.eq("result", "0");
if("1".equals(type)){
bWrapper.eq("accepter_id", getUserIscId());
}
List<BackLog> list=backlogservice.list(bWrapper);
for(BackLog bl:list){
bl.setResult("1");
bl.setApprovalTime(new Date());
//bl.setType(docType);
bl.setApprover(getUserName());
bl.setApproverId(getUserIscId()+"");
QueryWrapper<BackLog> updateWrapper = Wrappers.query();
updateWrapper.eq("b_id", bl.getBId());
backlogservice.update(bl, updateWrapper);
}
}
//待办处理rid--文档ID、 type--类型(0规划,1可研,2概设)
public void addBackLogbyExpert(String rid,String eid,String type,String state){
String docName="";
String doc="";
if("0".equals(type)){
QueryWrapper<PsrPlan> wrapper = Wrappers.query();
wrapper.eq("id", rid);
PsrPlan p=psrPlanService.getOne(wrapper);
docName=p.getName();
doc="规划审核";
}else if("1".equals(type)){
QueryWrapper<Project> wrapper = Wrappers.query();
wrapper.eq("fsr_id", rid);
Project p=projectService.getOne(wrapper);
docName=p.getPrjName();
doc="可研专家报告";
}else if("2".equals(type)){
QueryWrapper<AdsProject> wrapper = Wrappers.query();
wrapper.eq("ads_id", rid);
AdsProject p=adsProjectService.getOne(wrapper);
docName=p.getAdsName();
doc="概设专家报告";
}
BackLog bl=new BackLog();
bl.setBId(UUID.randomUUID().toString());
bl.setRId(rid);
bl.setResult("0");
bl.setName(doc+"_"+docName);
bl.setType(type);
bl.setStepType(doc);
bl.setSubmitterId(getUserIscId()+"");
bl.setAccepterId(eid);
bl.setSubmitTime(new Date());
bl.setState(state);
backlogservice.save(bl);
}
public HttpServletRequest getRequest() {
return RequestUtils.getRequest();
}
public HttpServletResponse getResponse() {
return RequestUtils.getResponse();
}
}
package org.arch.manage.conterller;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.*;
import lombok.extern.java.Log;
import org.arch.base.Result;
import org.arch.base.exception.BaseException;
import org.arch.common.modules.sysmange.entity.Org;
import org.arch.manage.service.OrgService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author audit
* @since 2020-08-21
*/
@RestController
@RequestMapping("/org")
@Api(tags = "组织机构管理")
@Log
public class OrgController extends MenuController.BaseController {
@Autowired
private OrgService orgService;
@GetMapping(value = "/")
@ApiOperation(value = "列表查询接口", notes = "多条件产讯组织结构列表")
@ApiImplicitParams({
@ApiImplicitParam(name = "current", value = "当前页数",required = true, defaultValue = "1", dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "pageSize", value = "页面显示数量", required = true, defaultValue = "10", dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "orgName", value = "组织名称", required = false, dataType = "string", paramType = "query"),
})
public Result<Page<Org>> list(@RequestParam(required = true, defaultValue = "1", name = "current") Integer current,
@RequestParam(required = true, defaultValue = "10", name = "pageSize") Integer pageSize,
Org org) {
if (current == null) {
current = 1;
}
if (pageSize == null) {
pageSize = 10;
}
QueryWrapper<Org> queryWrapper = new QueryWrapper<>();
if(ObjectUtil.isNotNull(org))queryWrapper.like(StrUtil.isNotBlank(org.getOrgName()), "a.org_name", org.getOrgName());
if(ObjectUtil.isNotNull(org) && ObjectUtil.isNotNull(org.getParentOrgId())){
queryWrapper.and(wrapper -> wrapper.eq("a.parent_org_id", org.getParentOrgId()).or().eq("a.org_id", org.getParentOrgId()));
}
queryWrapper.orderByAsc("a.parent_org_id");
queryWrapper.orderByAsc("a.org_sort");
Page<Org> aPage = orgService.selectForPage(new Page<>(current, pageSize), queryWrapper);
return Result.success(aPage);
}
@GetMapping(value = "/details")
@ApiOperation(value = "获取单条组织详情", notes = "获取单条组织详情")
@ApiImplicitParam(name = "id", value = "组织的主键ID", required = true, dataType = "Long", paramType = "path")
public Result<Org> getById(Long id) {
Org byId = orgService.getById(id);
if(byId != null && byId.getParentOrgId() != null && byId.getParentOrgId() > 0){
Org byId1 = orgService.getById(byId.getParentOrgId());
byId.setParentOrgName(byId1.getOrgName());
}
return Result.success(byId);
}
@PostMapping(value = "/create")
@ApiOperation(value = "保存组织详情", notes = "新增组织详情")
public Result<Object> create(@RequestBody Org params) {
if(ObjectUtil.isNotNull(params.getParentOrgId()) && params.getParentOrgId() != 0){
Org byId = orgService.getById(params.getParentOrgId());
params.setIds(byId.getIds() + byId.getOrgId() + ",");
} else {
params.setParentOrgId(Long.parseLong("0"));
params.setIds("0,");
}
if(ObjectUtil.isNotNull(params.getOrgId()) && params.getOrgId() != 0){
params.setLastUpdateMan(getUserId());
params.setLastUpdateTime(new Date());
orgService.updateById(params);
} else {
params.setOrgId(null);
params.setCreateMan(getUserId());
params.setCreateTime(new Date());
orgService.save(params);
}
return Result.success();
}
@PostMapping(value = "/delete")
@ApiOperation(value = "删除单条组织", notes = "删除单条组织")
@ApiImplicitParam(name = "id", value = "组织的主键ID", required = true, dataType = "Long", paramType = "path")
public Result<Object> delete(@RequestBody String id) throws BaseException {
JSONObject jsonObject = JSONObject.parseObject(id);
id = jsonObject.getString("id");
QueryWrapper<Org> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("parent_org_id", id);
List<Org> list = orgService.list(queryWrapper);
if(list != null && !list.isEmpty()){
throw new BaseException(201, "删除组织存在下级组织!");
}
orgService.removeById(id);
return Result.success();
}
@PostMapping(value = "/batchDelete")
@ApiOperation(value = "批量删除组织", notes = "批量删除组织")
public Result<Object> batchDelete(@ApiParam(value = "组织ID集合", required = true) @RequestBody List<Long> ids) throws BaseException {
if(ids == null || ids.size() < 1){
throw new BaseException(201, "参数错误");
}
QueryWrapper<Org> queryWrapper = new QueryWrapper<>();
queryWrapper.in("parent_org_id", ids);
List<Org> list = orgService.list(queryWrapper);
if(list != null && !list.isEmpty()){
throw new BaseException(201, "删除组织存在下级组织!");
}
orgService.removeByIds(ids);
return Result.success();
}
/*@PostMapping(value = "/update")
@ApiOperation(value = "修改组织信息", notes = "修改组织信息")
public Result<Object> update(@RequestBody Org params) {
orgService.updateById(params);
return Result.success();
}*/
@GetMapping(value = "/tree")
@ApiOperation(value = "获取组织树形", notes = "获取组织树形")
@ApiImplicitParams({
@ApiImplicitParam(name = "parentOrgId", value = "组织的ID", required = false, dataType = "Long", paramType = "query"),
@ApiImplicitParam(name = "orgStatus", value = "组织状态:1启用 0禁用", required = false, dataType = "String", paramType = "query")
})
public Result<List<Org>> tree(Long parentOrgId, String orgStatus) {
List<Org> orgs = orgService.tree(parentOrgId, orgStatus);
return Result.success(orgs);
}
@GetMapping(value = "/treeNew")
@ApiOperation(value = "获取组织树形", notes = "获取组织树形")
@ApiImplicitParams({
@ApiImplicitParam(name = "parentOrgId", value = "组织的ID", required = false, dataType = "Long", paramType = "query"),
@ApiImplicitParam(name = "orgStatus", value = "组织状态:1启用 0禁用", required = false, dataType = "String", paramType = "query")
})
public Result<List<Org>> treeNew(Long parentOrgId, String deptFlag) {
List<Org> orgs = orgService.treeNew(parentOrgId, deptFlag);
return Result.success(orgs);
}
@GetMapping(value = "/treeNewForDepet")
@ApiOperation(value = "获取组织树形", notes = "获取组织树形")
@ApiImplicitParams({
@ApiImplicitParam(name = "parentOrgId", value = "组织的ID", required = false, dataType = "Long", paramType = "query"),
@ApiImplicitParam(name = "orgStatus", value = "组织状态:1启用 0禁用", required = false, dataType = "String", paramType = "query")
})
public Result<List<Org>> treeNewForDepet(Long parentOrgId, String deptFlag) {
List<Org> orgs = orgService.treeNewForDepet(parentOrgId, deptFlag);
return Result.success(orgs);
}
@GetMapping(value = "/getSelect")
@ApiOperation(value = "获取组织下拉", notes = "获取组织下拉")
public Result<List<Org>> getSelect() {
List<Org> orgs = orgService.getSelect();
return Result.success(orgs);
}
@GetMapping(value = "/getdeptList")
@ApiOperation(value = "获取本部下的所有部门", notes = "获取本部下的所有部门")
public Result<List<Org>> getdeptList() {
QueryWrapper wrapper = new QueryWrapper();
wrapper.eq("parent_org_id",51);
List<Org> orgs = orgService.getBaseMapper().selectList(wrapper);
return Result.success(orgs);
}
@GetMapping(value = "/getdepttmentList")
@ApiImplicitParam(name = "id", value = "部门id", required = true, dataType = "Long", paramType = "path")
@ApiOperation(value = "获取本部下部门的处室", notes = "获取本部下部门的处室")
public Result<List<Org>> getdepttmentList(Long id) {
QueryWrapper wrapper = new QueryWrapper();
wrapper.eq("parent_org_id",id);
List<Org> orgs = orgService.getBaseMapper().selectList(wrapper);
return Result.success(orgs);
}
}
package org.arch.manage.conterller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.*;
import org.arch.base.Result;
import org.arch.base.exception.BDException;
import org.arch.base.utils.StringUtils;
import org.arch.common.modules.sysmange.dto.*;
import org.arch.common.modules.sysmange.entity.Role;
import org.arch.manage.service.RoleService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
/**
* 角色controller
*/
@RestController
@RequestMapping("/role")
@Api(tags = "角色管理相关接口")
public class RoleController{
@Autowired
private RoleService roleService;
/**
* 根据条件分页查询
* @param user
* @return
*/
@ApiOperation(value = "根据条件分页查询", notes = "根据条件分页查询")
@PostMapping("/page")
public Result<Page<RoleDto>> page(@RequestBody RoleQueryDto roleQueryDto){
IPage<Role> queryPage = new Page<>();
queryPage.setCurrent((roleQueryDto.getCurrPage()==null || roleQueryDto.getCurrPage()<=0)?1:roleQueryDto.getCurrPage());
queryPage.setSize((roleQueryDto.getPageSize()==null || roleQueryDto.getPageSize()<=0)?20:roleQueryDto.getPageSize());
QueryWrapper<Role> queryWrapper = new QueryWrapper<>();
if(StringUtils.isNotBlank(roleQueryDto.getName())){
queryWrapper.like("role_name",roleQueryDto.getName());
}
if(StringUtils.isNotBlank(roleQueryDto.getSelectVal())){
final String selectVal = roleQueryDto.getSelectVal();
queryWrapper.and(qw-> {
QueryWrapper<Role> like = qw.like("role_name", selectVal);
});
}
IPage<Role> iPage = roleService.page(queryPage,queryWrapper);
Page<RoleDto> page = new Page<>();
BeanUtils.copyProperties(iPage,page);
if(iPage.getRecords() != null && iPage.getRecords().size() > 0){
List<RoleDto> roleDtos = new ArrayList<>();
for (Role role : iPage.getRecords()){
RoleDto roleDto = new RoleDto();
BeanUtils.copyProperties(role,roleDto);
roleDtos.add(roleDto);
}
page.setRecords(roleDtos);
}
return Result.success(page);
}
/**
* 角色添加
* @param role 角色添加相关
* @return 添加結果
*/
@ApiOperation(value = "添加角色信息", notes = "添加角色信息")
@PostMapping("/add")
public Result create(@RequestBody RoleAddDto roleAdd){
boolean flag = roleService.create(roleAdd);
if(flag){
return Result.success();
}
return Result.error("创建角色失败!");
}
/**
* 用户更新
* @param user
* @return
*/
@ApiOperation(value = "编辑用户信息", notes = "编辑用户信息")
@PostMapping("/update")
public Result update(@RequestBody RoleUpdateDto roleUpdate){
boolean flag = roleService.update(roleUpdate);
if(flag){
return Result.success();
}
return Result.error("修改角色失败!");
}
/**
* 根据id删除角色
* @param id id
* @return 删除结果
*/
@ApiOperation(value = "根据id删除角色", notes = "根据id删除角色")
@GetMapping("/delete")
@ApiImplicitParam(name = "id", value = "角色id", required = true, dataType = "Long", paramType = "path")
public Result delete(Long id){
if(id == null){
return Result.error("角色id不能为空");
}
List<Long> ids = new ArrayList<>();
ids.add(id);
boolean flag = roleService.delete(ids);
if(flag){
return Result.success();
}
return Result.error("删除角色失败!");
}
/**
* 批量删除
* @param ids
* @return
*/
@PostMapping(value = "/batchDelete")
@ApiOperation(value = "批量删除角色", notes = "批量删除角色")
public Result batchDelete(@ApiParam(value = "用户ID集合", required = true) @RequestBody List<Long> ids){
if(ids == null || ids.size() < 1){
throw new BDException("角色id不能为空");
}
boolean flag = roleService.delete(ids);
if(flag){
return Result.success();
}
return Result.error("删除用户失败!");
}
/**
* 获取所有的角色信息
* @return
*/
@GetMapping(value = "/getAll")
@ApiOperation(value = "获取所有角色", notes = "获取所有角色")
public Result<List<RoleSmallDto>> getAll(){
List<Role> roles = roleService.list();
List<RoleSmallDto> roleSmallDtos = new ArrayList<>();
if(roles!= null){
for (Role role : roles){
RoleSmallDto rs = new RoleSmallDto();
BeanUtils.copyProperties(role,rs);
roleSmallDtos.add(rs);
}
}
return Result.success(roleSmallDtos);
}
@GetMapping(value = "/getById")
@ApiOperation(value = "根据id获取角色信息", notes = "根据id获取角色信息")
@ApiImplicitParam(name = "roleId", value = "角色id", required = true, dataType = "Long", paramType = "path")
public Result<RoleDto> getById(Long roleId){
RoleDto roleDto = roleService.getRoleDtoById(roleId);
return Result.success(roleDto);
}
/**
* 启用或者禁用
* @return
*/
@GetMapping(value = "/enableOrUnEnable")
@ApiOperation(value = "启用或者禁用角色", notes = "启用或者禁用角色")
@ApiImplicitParams({
@ApiImplicitParam(name = "roleId", value = "角色id",required = true, dataType = "long", paramType = "path"),
@ApiImplicitParam(name = "enable", value = "禁用或者启用 0:禁用 1:启用", required = true, dataType = "long", paramType = "path"),
})
public Result enableOrUnEnable( Long roleId
,Integer enable){
boolean flag = roleService.enableOrUnEnable(roleId,enable);
if(!flag){
return Result.error();
}
return Result.success();
}
/**
* 用户更新
* @param user
* @return
*/
@ApiOperation(value = "编辑用户信息", notes = "编辑用户信息")
@PostMapping("/updateUserRoles")
public Result updateUserRoles(@RequestBody RoleUpdateDto roleUpdate){
boolean flag = roleService.update(roleUpdate);
if(flag){
return Result.success();
}
return Result.error("修改角色失败!");
}
}
package org.arch.manage.converter;
import org.arch.common.modules.sysmange.dto.MenuDto;
import org.arch.common.modules.sysmange.entity.Menu;
import org.mapstruct.Mapper;
import org.mapstruct.Mappings;
import java.util.List;
@Mapper(componentModel = "spring")
public interface MenuConverter {
@Mappings({})
Menu dto2Menu(MenuDto menuDto);
@Mappings({})
MenuDto men2Dto(Menu menuDto);
List<MenuDto> men2Dto_list(List<Menu> menuDto);
}
package org.arch.manage.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.arch.common.modules.sysmange.entity.AdsProject;
import java.util.List;
/**
* <p>
* 可行性研究报告 Mapper 接口
* </p>
*
* @author wangchen
* @since 2020-10-29
*/
@Mapper
public interface AdsProjectMapper extends BaseMapper<AdsProject> {
}
package org.arch.manage.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.arch.common.modules.sysmange.entity.BackLog;
/**
* <p>
* 部门 Mapper 接口
* </p>
*
* @author audit
* @since 2020-11-07
*/
@Mapper
public interface BackLogMapper extends BaseMapper<BackLog> {
@Select("<script>" +
"SELECT a.*, b.name AS submitter, c.name AS accepter " +
"FROM com_backlog a " +
"LEFT JOIN sys_user b ON a.submitter_id = b.`isc_user_id` " +
"LEFT JOIN sys_user c ON a.accepter_id = c.`isc_user_id` " +
"${ew.customSqlSegment}" +
"</script>")
@Override
<E extends IPage<BackLog>> E selectPage(E page, @Param(Constants.WRAPPER) Wrapper<BackLog> queryWrapper);
}
package org.arch.manage.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.arch.common.modules.sysmange.entity.Dept;
/**
* <p>
* 部门 Mapper 接口
* </p>
*
* @author audit
* @since 2020-08-27
*/
@Mapper
public interface DeptMapper extends BaseMapper<Dept> {
}
/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* 注意:
* 本软件为www.yixiang.co开发研制
*/
package org.arch.manage.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.arch.mybatis.common.mapper.CoreMapper;
import org.springframework.boot.autoconfigure.batch.BatchProperties;
import org.springframework.stereotype.Repository;
/**
* @author hupeng
* @date 2020-05-14
*/
@Repository
@Mapper
public interface JobMapper extends CoreMapper<BatchProperties.Job> {
}
/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* 注意:
* 本软件为www.yixiang.co开发研制
*/
package org.arch.manage.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.arch.common.modules.sysmange.entity.Menu;
import org.arch.mybatis.common.mapper.CoreMapper;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Set;
/**
* @author hupeng
* @date 2020-05-14
*/
@Repository
@Mapper
public interface MenuMapper extends CoreMapper<Menu> {
/**
* 根据用户id查询菜单
* @param userId 用户id
* @return 菜单集合
*/
@Select("SELECT * FROM sys_menu m WHERE EXISTS (SELECT 1 FROM sys_roles_menus rm LEFT JOIN sys_users_roles ur ON rm.role_id = ur.role_id WHERE ur.user_id = #{userId} and rm.menu_id = m.id);")
List<Menu> findByUserId(@Param("userId") Long userId);
}
package org.arch.manage.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.arch.common.modules.sysmange.entity.Org;
/**
* <p>
* Mapper 接口
* </p>
*
* @author audit
* @since 2020-08-21
*/
@Mapper
public interface OrgMapper extends BaseMapper<Org> {
@Select("select a.*, b.name as createManName from sys_org a left join sys_user b on a.create_man = b.id " +
"${ew.customSqlSegment}")
Page<Org> selectForPage(Page<Object> objectPage, @Param(Constants.WRAPPER) QueryWrapper<Org> queryWrapper);
}
package org.arch.manage.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.arch.common.modules.sysmange.entity.Project;
import java.util.List;
/**
* <p>
* 可行性研究报告 Mapper 接口
* </p>
*
* @author zhenxu
* @since 2020-10-29
*/
@Mapper
public interface ProjectMapper extends BaseMapper<Project> {
}
package org.arch.manage.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.arch.common.modules.sysmange.entity.PsrPlan;
import java.util.List;
/**
* <p>
* 规划设计研究-规划表 Mapper 接口
* </p>
*
* @author wubaoliang
* @since 2020-10-29
*/
@Mapper
public interface PsrPlanMapper extends BaseMapper<PsrPlan> {
}
/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* 注意:
* 本软件为www.yixiang.co开发研制
*/
package org.arch.manage.mapper;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.arch.common.modules.sysmange.entity.Role;
import org.arch.mybatis.common.mapper.CoreMapper;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Set;
/**
* @author hupeng
* @date 2020-05-14
*/
@Repository
@Mapper
public interface RoleMapper extends CoreMapper<Role> {
/**
* 根据用户ID查询
*
* @param id 用户ID
* @return
*/
@Select("select m.* from sys_role m LEFT JOIN sys_users_roles t on m.id= t.role_id LEFT JOIN sys_user r on r.id = t.user_id where r.id = #{id}")
List<Role> selectListByUserId(@Param("id") Long id);
}
/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* 注意:
* 本软件为www.yixiang.co开发研制
*/
package org.arch.manage.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.arch.common.modules.sysmange.entity.RolesMenus;
import org.arch.mybatis.common.mapper.CoreMapper;
import org.springframework.stereotype.Repository;
/**
* @author hupeng
* @date 2020-05-16
*/
@Repository
@Mapper
public interface RolesMenusMapper extends CoreMapper<RolesMenus> {
}
package org.arch.manage.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.arch.common.modules.sysmange.dto.RoleUpdateDto;
import org.arch.common.modules.sysmange.dto.UserDto;
import org.arch.common.modules.sysmange.entity.User;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* 系统用户 Mapper 接口
* </p>
*
* @author liulei
* @since 2020-09-02
*/
@Repository
@Mapper
public interface UserMapper extends BaseMapper<User> {
List<UserDto> getUserList(RoleUpdateDto roleUpdate);
@Select("SELECT\n" +
"\tsu.*,s.org_simple_name\n" +
"FROM\n" +
"\tsys_users_roles sur\n" +
"LEFT JOIN sys_role sr ON sr.id = sur.role_id\n" +
"LEFT JOIN sys_user su ON sur.user_id = su.id\n" +
"LEFT JOIN sys_org s on s.org_id = su.org_id\n" +
"WHERE\n" +
"\tsr.role_sign = #{roleSign} and su.id is not null and su.is_delete = '0'")
List<UserDto> getUserList2(RoleUpdateDto roleUpdate);
}
package org.arch.manage.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.arch.common.modules.sysmange.entity.AdsProject;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.OutputStream;
import java.util.List;
import java.util.Map;
/**
* <p>
* 可行性研究报告 服务类
* </p>
*
* @author wangchen
* @since 2020-10-29
*/
public interface AdsProjectService extends IService<AdsProject> {
}
package org.arch.manage.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.arch.common.modules.sysmange.entity.BackLog;
/**
* <p>
* 待办 服务类
* </p>
*
* @author audit
* @since 2020-08-27
*/
public interface BackLogService extends IService<BackLog> {
}
package org.arch.manage.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.arch.common.modules.sysmange.entity.Dept;
/**
* <p>
* 部门 服务类
* </p>
*
* @author audit
* @since 2020-08-27
*/
public interface DeptService extends IService<Dept> {
}
/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* 注意:
* 本软件为www.yixiang.co开发研制
*/
package org.arch.manage.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.arch.common.modules.sysmange.entity.Menu;
import java.util.Set;
/**
* @author hupeng
* @date 2020-05-14
*/
public interface MenuService extends IService<Menu> {
/**
* 根据用户id查询菜单
* @param userId 用户id
* @return 菜单
*/
Set<Menu> findByUserId(Long userId);
/**
* 查询所有的权限,返回set集合
* @return
*/
Set<Menu> findAllForSet();
}
package org.arch.manage.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.arch.common.modules.sysmange.entity.Org;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author audit
* @since 2020-08-21
*/
public interface OrgService extends IService<Org> {
List<Org> tree(Long parentOrgId, String orgStatus);
List<Org> treeNew(Long parentOrgId, String deptFlag);
List<Org> treeNewForDepet(Long parentOrgId, String deptFlag);
Page<Org> selectForPage(Page<Object> objectPage, QueryWrapper<Org> queryWrapper);
List<Org> getSelect();
}
package org.arch.manage.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.arch.common.modules.sysmange.entity.Project;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* <p>
* 可行性研究报告 服务类
* </p>
*
* @author zhenxu
* @since 2020-10-29
*/
public interface ProjectService extends IService<Project> {
}
package org.arch.manage.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.arch.common.modules.sysmange.entity.PsrPlan;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* <p>
* 规划设计研究-规划表 服务类
* </p>
*
* @author wubaoliang
* @since 2020-10-29
*/
public interface PsrPlanService extends IService<PsrPlan> {
}
/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* 注意:
* 本软件为www.yixiang.co开发研制
*/
package org.arch.manage.service;
import org.arch.common.modules.sysmange.dto.RoleAddDto;
import org.arch.common.modules.sysmange.dto.RoleDto;
import org.arch.common.modules.sysmange.dto.RoleSmallDto;
import org.arch.common.modules.sysmange.dto.RoleUpdateDto;
import org.arch.common.modules.sysmange.entity.Role;
import org.arch.mybatis.common.service.BaseService;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Set;
/**
* @author hupeng
* @date 2020-05-14
*/
public interface RoleService extends BaseService<Role> {
/**
* 导出数据
* @param all 待导出的数据
* @param response /
* @throws IOException /
*/
void download(List<RoleDto> all, HttpServletResponse response) throws IOException;
/**
* 根据角色ID查询
* @param id 角色ID
* @return /
*/
List<RoleSmallDto> findRoleSmallListByUserId(Long id);
/**
* 根据ID查询
* @param id /
* @return /
*/
RoleDto findById(long id);
/**
* 创建
* @param roleAdd 角色添加信息
* @return 是否添加成功
*/
boolean create(RoleAddDto roleAdd);
/**
* 编辑
* @param resources /
*/
boolean update(RoleUpdateDto roleUpdate);
boolean delete(List<Long> ids);
/**
* 根据角色id查询角色角色
* @param id 角色id
* @return 角色信息集合
*/
Set<RoleSmallDto> findRoleSmallSetByUserId(Long id);
/**
* 根据用戶id查询角色信息
* @param id 角色id
* @return 角色简略细腻西
*/
List<Role> findByUserId(Long id);
/**
* 禁用或者启用角色
* @param roleId 角色id
* @param enable 禁用或者启用状态
* @return 是否操作成功
*/
boolean enableOrUnEnable(Long roleId, Integer enable);
/**
* 根据id获取角色信息
* @param roleId 角色id
* @return 角色信息
*/
RoleDto getRoleDtoById(Long roleId);
}
/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* 注意:
* 本软件为www.yixiang.co开发研制
*/
package org.arch.manage.service;
import org.arch.common.modules.sysmange.entity.RolesMenus;
import org.arch.mybatis.common.service.BaseService;
import java.util.List;
/**
* @author hupeng
* @date 2020-05-16
*/
public interface RolesMenusService extends BaseService<RolesMenus> {
/**
* 根据角色id获取菜单集合id
* @param roleId 角色id
* @return 菜单集合id
*/
List<Long> queryByRoleId(long roleId);
/**
* 保存角色菜单信息
* @param menuIds 菜单id
* @param roleId 角色id
*/
void save(List<Long> menuIds, Long roleId);
/**
* 修改角色菜单信息
* @param menuIds 菜单集合
* @param roleId 角色id
*/
void update(List<Long> menuIds, Long roleId);
/**
* 根据角色id删除
* @param roleIds 角色id集合
*/
void deleteByRoleId(List<Long> roleIds);
}
/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* 注意:
* 本软件为www.yixiang.co开发研制
*/
package org.arch.manage.service;
import org.arch.base.exception.BaseException;
import org.arch.common.modules.sysmange.dto.*;
import org.arch.common.modules.sysmange.entity.User;
import org.arch.mybatis.common.service.BaseService;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.List;
/**
* @author hupeng
* @date 2020-05-14
*/
public interface UserService extends BaseService<User> {
/**
* 导出数据
* @param all 待导出的数据
* @param response /
* @throws IOException /
*/
void download(List<UserDto> all, HttpServletResponse response) throws IOException;
/**
* 根据用户账户查询
* @param phone 用户手机号
* @return 用户详细
*/
UserDto findByPhone(String phone);
/**
* 根据用户id 查询用户详情
* @param id id
* @return 用户信息
*/
UserDto findById(Long id);
/**
* 新增用户
* @param resources /
* @return /
*/
boolean create(UserAddDto resources);
/**
* 编辑用户
* @param resources /
*/
boolean update(UserUpdateDto user);
/**
* 删除用户
* @param ids
*/
boolean delete(List<Long> ids);
/**
* 用户登录
* @param authUser 登录用户
* @param request
* @return 用户登录信息
*/
UserLoginDto login(AuthUser authUser, HttpServletRequest request) throws BaseException, UnsupportedEncodingException;
/**
* 根据用户信息获取用户Dto
* @param user 用户信息
* @return 用户dto
*/
UserDto getUserDtoByUser(User user);
/**
* 根据手机号查下用户信息
* @param phone 手机号
* @return 用户信息
*/
public User selectByPhone(String phone);
/**
* 根据用户编码查下用户信息
* @param userCode 用户编码
* @return 用户信息
*/
public User selectByUserCode(String userCode);
/**
* 根据isc用户编码查下用户信息
* @param isc_user_id 用户编码
* @return 用户信息
*/
public User selectByIscUserId(String isc_user_id);
/**
* 根据isc用户编码查下用户信息
* @param isc_user_id 用户编码
* @return 用户信息
*/
UserDto getUserIsc(String isc_user_id);
public User selectAllByIscUserId(String isc_user_id);
/*
* 根据角色查询用户集合
* */
List<UserDto> getUserList(RoleUpdateDto roleUpdate);
/*
* 根据角色查询用户集合
* */
List<UserDto> getUserList2(RoleUpdateDto roleUpdate);
List<UserDto> getUserListAll(RoleUpdateDto roleUpdate);
}
/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* 注意:
* 本软件为www.yixiang.co开发研制
*/
package org.arch.manage.service;
import org.arch.common.modules.sysmange.vo.UsersRoles;
import org.arch.mybatis.common.service.BaseService;
/**
* @author hupeng
* @date 2020-05-16
*/
public interface UsersRolesService extends BaseService<UsersRoles> {
/**
* 编辑用户角色
* @param long id /
*/
boolean removeRoles(Long userId);
}
package org.arch.manage.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.arch.common.modules.sysmange.entity.AdsProject;
import org.arch.manage.mapper.AdsProjectMapper;
import org.arch.manage.service.AdsProjectService;
import org.springframework.stereotype.Service;
/**
* <p>
* 可行性研究报告 服务实现类
* </p>
*
* @author wangchen
* @since 2020-10-29
*/
@Service
public class AdsProjectServiceImpl extends ServiceImpl<AdsProjectMapper, AdsProject> implements AdsProjectService {
}
package org.arch.manage.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.arch.common.modules.sysmange.entity.BackLog;
import org.arch.manage.mapper.BackLogMapper;
import org.arch.manage.service.BackLogService;
import org.springframework.stereotype.Service;
/**
* <p>
* 部门 服务实现类
* </p>
*
* @author audit
* @since 2020-08-27
*/
@Service
public class BackLogServiceImpl extends ServiceImpl<BackLogMapper, BackLog> implements BackLogService {
@Override
public <E extends IPage<BackLog>> E page(E page, Wrapper<BackLog> queryWrapper) {
return getBaseMapper().selectPage(page, queryWrapper);
}
}
package org.arch.manage.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.arch.common.modules.sysmange.entity.Dept;
import org.arch.manage.mapper.DeptMapper;
import org.arch.manage.service.DeptService;
import org.springframework.stereotype.Service;
/**
* <p>
* 部门 服务实现类
* </p>
*
* @author audit
* @since 2020-08-27
*/
@Service
public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements DeptService {
}
package org.arch.manage.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.arch.common.modules.sysmange.entity.Menu;
import org.arch.manage.mapper.MenuMapper;
import org.arch.manage.service.MenuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@Service
public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements MenuService {
@Autowired
private MenuMapper menuMapper;
@Override
public Set<Menu> findByUserId(Long userId) {
if(userId == null){
return null;
}
List<Menu> menus = menuMapper.findByUserId(userId);
if(menus == null || menus.size() == 0){
return null;
}
return menuList2Set(menus);
}
private Set<Menu> menuList2Set(List<Menu> menus) {
Set<Menu> menuSet = new HashSet<>();
for (Menu menu : menus){
menuSet.add(menu);
}
return menuSet;
}
@Override
public Set<Menu> findAllForSet() {
QueryWrapper<Menu> queryWrapper = new QueryWrapper<>();
List<Menu> menus = menuMapper.selectList(queryWrapper);
if(menus == null || menus.size() == 0){
return null;
}
return menuList2Set(menus);
}
}
package org.arch.manage.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.collections.CollectionUtils;
import org.arch.common.modules.sysmange.entity.Org;
import org.arch.manage.mapper.OrgMapper;
import org.arch.manage.service.OrgService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* </p>
*
* @author audit
* @since 2020-08-21
*/
@Service
public class OrgServiceImpl extends ServiceImpl<OrgMapper, Org> implements OrgService {
@Autowired
OrgMapper orgMapper;
@Override
public List<Org> tree(Long parentOrgId, String orgStatus) {
List<Org> orgs = null;
Org parent = null;
if(parentOrgId != null && parentOrgId != 0){
parent = orgMapper.selectById(parentOrgId);
}
QueryWrapper<Org> queryWrapper = new QueryWrapper<>();
if(parentOrgId != null && parentOrgId != 0){
queryWrapper.like("ids", "," + String.valueOf(parentOrgId) + ",");
}
if(StrUtil.isNotBlank(orgStatus)){
queryWrapper.eq("org_status", orgStatus);
}
queryWrapper.orderByAsc("parent_org_id");
queryWrapper.orderByAsc("org_sort");
orgs = orgMapper.selectList(queryWrapper);
if(CollectionUtil.isEmpty(orgs)){
orgs = new ArrayList<>();
if(parent != null)orgs.add(parent);
return orgs;
}
if(parent != null)orgs.add(parent);
if (CollectionUtils.isEmpty(orgs) || orgs.size() == 1) {
return orgs;
}
Org org = new Org();
if(parentOrgId != null && parentOrgId != 0 && parent != null){
org.setOrgId(parent.getParentOrgId());
} else {
org.setOrgId(Long.parseLong("0"));
}
org.setChildren(new ArrayList<>());
this.createTreeData(org, orgs);
return org.getChildren();
}
@Override
public List<Org> treeNew(Long parentOrgId, String deptFlag) {
List<Org> orgs = null;
Org parent = null;
if(parentOrgId != null && parentOrgId != 0){
parent = orgMapper.selectById(parentOrgId);
}
QueryWrapper<Org> queryWrapper = new QueryWrapper<>();
if(parentOrgId != null && parentOrgId != 0){
queryWrapper.like("ids", "," + String.valueOf(parentOrgId) + ",");
}
if(StrUtil.isNotBlank(deptFlag)){
queryWrapper.eq("dept_flag", deptFlag);
}
queryWrapper.orderByAsc("parent_org_id");
queryWrapper.orderByAsc("org_sort");
orgs = orgMapper.selectList(queryWrapper);
if(CollectionUtil.isEmpty(orgs)){
orgs = new ArrayList<>();
if(parent != null)orgs.add(parent);
return orgs;
}
if(parent != null)orgs.add(parent);
if (CollectionUtils.isEmpty(orgs) || orgs.size() == 1) {
return orgs;
}
Org org = new Org();
if(parentOrgId != null && parentOrgId != 0 && parent != null){
org.setOrgId(parent.getParentOrgId());
} else {
// org.setOrgId(Long.parseLong("0"));
org.setOrgId(Long.parseLong("50"));
}
org.setChildren(new ArrayList<>());
this.createTreeData1(org, orgs);
List<Org> children = org.getChildren();
Org org1 = new Org();
for (Org child : children) {
if(Long.valueOf(child.getOrgId()) == 51){
org1.setChildren(child.getChildren());
}else {
org1.getChildren().add(child);
}
}
// return org.getChildren();
return org1.getChildren();
}
@Override
public List<Org> treeNewForDepet(Long parentOrgId, String deptFlag) {
List<Org> orgs = this.treeNew(null, "1");
List<Org> collect = orgs.stream().map(item -> {
Org org = new Org();
org.setOrgId(item.getOrgId());
org.setOrgName(item.getOrgName());
return org;
}).collect(Collectors.toList());
return collect;
}
@Override
public Page<Org> selectForPage(Page<Object> objectPage, QueryWrapper<Org> queryWrapper) {
return orgMapper.selectForPage(objectPage, queryWrapper);
}
@Override
public List<Org> getSelect() {
QueryWrapper<Org> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("org_status", 1);
queryWrapper.orderByAsc("parent_org_id");
queryWrapper.orderByAsc("org_sort");
List<Org> orgs = orgMapper.selectList(queryWrapper);
return orgs;
}
private void createTreeData(Org parent, List<Org> officeList) {
if (officeList == null) return;
Iterator<Org> iterator = officeList.iterator();
while (iterator.hasNext()) {
Org next = iterator.next();
if (next == null) continue;
if (next.getParentOrgId().equals(parent.getOrgId())) {
List<Org> children = parent.getChildren();
if (children == null) {
children = new ArrayList<>();
parent.setChildren(children);
}
children.add(next);
iterator.remove();
this.createTreeData(next, officeList);
iterator = officeList.iterator();
}
}
}
private void createTreeData1(Org parent, List<Org> officeList) {
if (officeList == null) return;
Iterator<Org> iterator = officeList.iterator();
while (iterator.hasNext()) {
Org next = iterator.next();
if (next == null) continue;
if (next.getParentOrgId().equals(parent.getOrgId())) {
List<Org> children = parent.getChildren();
if (children == null) {
children = new ArrayList<>();
parent.setChildren(children);
}
children.add(next);
iterator.remove();
this.createTreeData(next, officeList);
iterator = officeList.iterator();
}
}
}
}
package org.arch.manage.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.arch.common.modules.sysmange.entity.Project;
import org.arch.manage.mapper.ProjectMapper;
import org.arch.manage.service.ProjectService;
import org.springframework.stereotype.Service;
/**
* <p>
* 可行性研究报告 服务实现类
* </p>
*
* @author zhenxu
* @since 2020-10-29
*/
@Service
public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> implements ProjectService {
}
package org.arch.manage.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.arch.common.modules.sysmange.entity.PsrPlan;
import org.arch.manage.mapper.PsrPlanMapper;
import org.arch.manage.service.PsrPlanService;
import org.springframework.stereotype.Service;
/**
* <p>
* 规划设计研究-规划表 服务实现类
* </p>
*
* @author wubaoliang
* @since 2020-10-29
*/
@Service
public class PsrPlanServiceImpl extends ServiceImpl<PsrPlanMapper, PsrPlan> implements PsrPlanService {
}
package org.arch.manage.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.arch.base.enums.EnableEnum;
import org.arch.base.exception.BDException;
import org.arch.base.utils.StringUtils;
import org.arch.common.modules.sysmange.dto.RoleAddDto;
import org.arch.common.modules.sysmange.dto.RoleDto;
import org.arch.common.modules.sysmange.dto.RoleSmallDto;
import org.arch.common.modules.sysmange.dto.RoleUpdateDto;
import org.arch.common.modules.sysmange.entity.Role;
import org.arch.manage.mapper.RoleMapper;
import org.arch.manage.service.RoleService;
import org.arch.manage.service.RolesMenusService;
import org.arch.manage.util.UserUtil;
import org.arch.mybatis.common.service.impl.BaseServiceImpl;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.*;
@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, Role> implements RoleService {
@Autowired
private RoleMapper roleMapper;
@Autowired
private RolesMenusService rolesMenusService;
@Autowired
private UserUtil userUtil;
@Override
public void download(List<RoleDto> all, HttpServletResponse response) throws IOException {
}
@Override
public List<RoleSmallDto> findRoleSmallListByUserId(Long id) {
if(id == null){
return null;
}
List<Role> roles = findByUserId(id);
if(roles == null || roles.size() == 0){
return null;
}
List<RoleSmallDto> roleSmallDtoList = new ArrayList<>();
for(Role role : roles){
RoleSmallDto roleSmallDto = new RoleSmallDto();
BeanUtils.copyProperties(role,roleSmallDto);
roleSmallDtoList.add(roleSmallDto);
}
return roleSmallDtoList;
}
@Override
public RoleDto findById(long id) {
Role role = roleMapper.selectById(id);
if(role == null){
return null;
}
RoleDto roleDto = new RoleDto();
BeanUtils.copyProperties(role,roleDto);
//查询所有的订单id
List<Long> menuIds = rolesMenusService.queryByRoleId(id);
roleDto.setMenuIds(menuIds);
return roleDto;
}
@Override
public boolean create(RoleAddDto roleAdd) {
//验证角色信息
valid(roleAdd);
//验证角色标识是否唯一
validRoleSign(roleAdd.getRoleSign(),null);
//插入角色信息
Role role = new Role();
BeanUtils.copyProperties(roleAdd,role);
role.setCreateTime(new Date());
role.setUserIdCreate(userUtil.getUserId());
//设置默认的启用状态
if(role.getEnabled() == null){
role.setEnabled(EnableEnum.ENABLE.getCode());
}
save(role);
rolesMenusService.save(roleAdd.getMenuIds(),role.getId());
return true;
}
@Override
public boolean update(RoleUpdateDto roleUpdate) {
if(roleUpdate.getId() == null){
throw new BDException("角色id不能为空!");
}
//验证角色信息
valid(roleUpdate);
//验证角色标识是否唯一
validRoleSign(roleUpdate.getRoleSign(),roleUpdate.getId());
//插入角色信息
Role role = new Role();
BeanUtils.copyProperties(roleUpdate,role);
role.setUpdateTime(new Date());
role.setUserIdUpdate(userUtil.getUserId());
roleMapper.updateById(role);
rolesMenusService.update(roleUpdate.getMenuIds(),roleUpdate.getId());
return true;
}
@Override
public boolean delete(List<Long> ids) {
if(ids == null || ids.size() == 0){
throw new BDException("角色id不能为空!");
}
if(ids.size() == 1){
roleMapper.deleteById(ids.get(0));
}else{
roleMapper.deleteBatchIds(ids);
}
rolesMenusService.deleteByRoleId(ids);
return true;
}
@Override
public Set<RoleSmallDto> findRoleSmallSetByUserId(Long id) {
if(id == null){
return null;
}
List<Role> roles = findByUserId(id);
if(roles == null || roles.size() == 0){
return null;
}
Set<RoleSmallDto> roleSmallDtoSet = new HashSet<>();
for(Role role : roles){
RoleSmallDto roleSmallDto = new RoleSmallDto();
BeanUtils.copyProperties(role,roleSmallDto);
roleSmallDtoSet.add(roleSmallDto);
}
return roleSmallDtoSet;
}
@Override
public List<Role> findByUserId(Long id) {
return roleMapper.selectListByUserId(id);
}
@Override
public boolean enableOrUnEnable(Long roleId, Integer enable) {
if(roleId == null){
throw new BDException("角色id不能为空!");
}
if(enable == null){
throw new BDException("禁用或者启用状态不能为空!");
}
if(enable != 0 && enable != 1){
throw new BDException("禁用或者启用状态错误!");
}
Role role = new Role();
role.setId(roleId);
role.setEnabled(enable);
return roleMapper.updateById(role) > 0;
}
@Override
public RoleDto getRoleDtoById(Long roleId) {
RoleDto roleDto = null;
//获取角色信息
Role role = roleMapper.selectById(roleId);
if(role == null){
return null;
}
roleDto = new RoleDto();
BeanUtils.copyProperties(role,roleDto);
//获取菜单id集合
List<Long> menuIds = rolesMenusService.queryByRoleId(roleId);
roleDto.setMenuIds(menuIds);
return roleDto;
}
/**
* 验证角色信息
* @param role 角色信息
*/
private void valid(RoleAddDto role){
if(role == null){
throw new BDException("角色信息不能为空!");
}
if(StringUtils.isBlank(role.getRoleName())){
throw new BDException("角色名称不能为空!");
}
}
/**
* 验证角色标识是否唯一
* @param roleSign 角色标识
* @param 是否唯一
*/
private void validRoleSign(String roleSign, Long roleId) {
QueryWrapper<Role> queryWrapper = new QueryWrapper();
queryWrapper.eq("role_sign",roleSign);
if(roleId != null){
queryWrapper.ne("id",roleId);
}
if(roleMapper.selectCount(queryWrapper) > 0){
throw new BDException("角色标识已经存在!");
}
}
}
package org.arch.manage.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import org.arch.base.exception.BDException;
import org.arch.common.modules.sysmange.entity.RolesMenus;
import org.arch.manage.mapper.RolesMenusMapper;
import org.arch.manage.service.RolesMenusService;
import org.arch.mybatis.common.service.impl.BaseServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class RolesMenusServiceImpl extends BaseServiceImpl<RolesMenusMapper, RolesMenus> implements RolesMenusService {
@Autowired
private RolesMenusMapper rolesMenusMapper;
@Override
public List<Long> queryByRoleId(long roleId) {
QueryWrapper<RolesMenus> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("role_id",roleId);
List<RolesMenus> rolesMenusList = this.list(queryWrapper);
if(rolesMenusList == null || rolesMenusList.size() == 0){
return null;
}
List<Long> ids = new ArrayList<>();
for (RolesMenus rolesMenus : rolesMenusList){
ids.add(rolesMenus.getMenuId());
}
return ids;
}
@Override
public void save(List<Long> menuIds, Long roleId) {
if(roleId == null){
throw new BDException("角色id不能为空!");
}
if(menuIds != null && menuIds.size() >0){
List<RolesMenus> rolesMenusList = new ArrayList<>();
for (Long menuId : menuIds){
RolesMenus rolesMenus = new RolesMenus();
rolesMenus.setRoleId(roleId);
rolesMenus.setMenuId(menuId);
rolesMenusList.add(rolesMenus);
}
saveBatch(rolesMenusList);
}
}
@Override
public void update(List<Long> menuIds, Long roleId) {
List<Long> oldMenuId = queryByRoleId(roleId);
//找出需要新增的菜单
addRoleMenu(menuIds,oldMenuId,roleId);
deleteRoleMenu(menuIds,oldMenuId,roleId);
}
@Override
public void deleteByRoleId(List<Long> roleIds) {
if(roleIds == null || roleIds.size() == 0){
return;
}
UpdateWrapper<RolesMenus> updateWrapper = new UpdateWrapper<>();
updateWrapper.in("role_id",roleIds);
rolesMenusMapper.delete(updateWrapper);
}
private void deleteRoleMenu(List<Long> menuIds, List<Long> oldMenuId, Long roleId) {
if(oldMenuId == null || oldMenuId.size() == 0){
return;
}
//全部删除
if(menuIds == null || menuIds.size() == 0){
delete(menuIds,roleId);
return;
}
List<Long> deleteMenuId = new ArrayList<>();
for (Long menuId : oldMenuId){
if(menuIds.contains(menuId)){
continue;
}
deleteMenuId.add(menuId);
}
delete(deleteMenuId,roleId);
}
/**
* 根据角色id和菜单id删除
* @param menuIds 菜单id集合
* @param roleId 角色id
*/
private void delete(List<Long> menuIds, Long roleId) {
if(menuIds == null || menuIds.size() == 0 || roleId == null){
return;
}
UpdateWrapper<RolesMenus> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("role_id",roleId);
updateWrapper.in("menu_id",menuIds);
rolesMenusMapper.delete(updateWrapper);
}
/**
* 对比原来的菜单id和现在的菜单id,将不存在的新增
* @param menuIds 现在的菜单id
* @param oldMenuId 原来的菜单id
* @param roleId 角色id
*/
private void addRoleMenu(List<Long> menuIds, List<Long> oldMenuId, Long roleId) {
if(menuIds == null || menuIds.size() == 0){
return;
}
if(oldMenuId == null){
save(menuIds,roleId);
return;
}
List<Long> addMenuId = new ArrayList<>();
for (Long menuId : menuIds){
if(oldMenuId.contains(menuId)){
continue;
}
addMenuId.add(menuId);
}
save(addMenuId,roleId);
}
}
package org.arch.manage.util;
import org.apache.shiro.SecurityUtils;
import org.arch.base.utils.Constant;
import org.arch.base.utils.JwtUtil;
import org.arch.common.modules.sysmange.dto.UserDto;
import org.arch.common.modules.sysmange.entity.User;
import org.arch.common.redis.RedisService;
import org.arch.manage.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
/**
* 获取当前登录用户工具类
*
* @author wliduo[i@dolyw.com]
* @date 2019/3/15 11:45
*/
@Component
public class UserUtil {
@Autowired
private UserService userService;
@Value("${isc.start}")
private Boolean isc_start;
@Autowired
private RedisService redisService;
/**
* 获取当前登录用户
* 包括用户的菜单、角色、组织机构、部门
*
* @param
* @return com.wang.model.UserDto
* @throws Exception
* @author wliduo[i@dolyw.com]
* @date 2019/3/15 11:48
*/
public UserDto getUserDto() {
User user = getUser();
UserDto userDto = null;
if (!redisService.exists(Constant.USER_ACCOUNT + user.getId())) {
userDto = userService.getUserDtoByUser(user);
redisService.set(Constant.USER_ACCOUNT + user.getId(), userDto, Long.valueOf(Constant.EXRP_HOUR));
} else {
userDto = (UserDto) redisService.getObject(Constant.USER_ACCOUNT + user.getId());
}
return userDto;
}
/**
* 获取用户信息
* @return 用户信息
*/
// public User getUser() {
// String token = SecurityUtils.getSubject().getPrincipal().toString();
// // 解密获得Account
// String account = JwtUtil.getClaim(token, Constant.ACCOUNT);
// User user = userService.selectByUserCode(account);
// // 用户是否存在
// if (user == null) {
// throw new RuntimeException("该帐号不存在(The account does not exist.)");
// }
// return user;
// }
/**
* 获取ISC用户信息
*
* @return 用户信息
* @throws Exception
*/
public User getUser() {
//使用isc获取信息
/* if (isc_start) {
IscSSOUserBean userbean = null;
String IscUserId = null;
User user = null;
String token = RequestHolderUtil.getRequest().getHeader("Authorization");
user = userService.selectByIscUserId(token);
// 用户是否存在
if (user == null) {
throw new RuntimeException("该帐号不存在(The account does not exist.)");
}
return user;
} else {
//使用shiro解密认证
Object principal = SecurityUtils.getSubject().getPrincipal();
if (ObjectUtils.isEmpty(principal)) {
throw new RuntimeException("该帐号不存在(The account does not exist.)");
}
// 解密获得Account
String account = JwtUtil.getClaim(principal.toString(), Constant.ACCOUNT);
User user = userService.selectByUserCode(account);
// 用户是否存在
if (user == null) {
throw new RuntimeException("该帐号不存在(The account does not exist.)");
}
return user;
}*/
return null;
}
/**
* 获取当前登录用户Id
*
* @param
* @return com.wang.model.UserDto
* @author wliduo[i@dolyw.com]
* @date 2019/3/15 11:48
*/
public Long getUserId() {
//return getUser().getId();
return 1L;
//return 1L;
}
/**
* 获取当前登录用户Token
*
* @param
* @return com.wang.model.UserDto
* @author wliduo[i@dolyw.com]
* @date 2019/3/15 11:48
*/
public String getToken() {
return SecurityUtils.getSubject().getPrincipal().toString();
}
/**
* 获取当前登录用户Account
*
* @param
* @return com.wang.model.UserDto
* @author wliduo[i@dolyw.com]
* @date 2019/3/15 11:48
*/
public String getAccount() {
String token = SecurityUtils.getSubject().getPrincipal().toString();
// 解密获得Account
return JwtUtil.getClaim(token, Constant.ACCOUNT);
}
}
server:
port: 17008
nacos:
server-addr: 192.168.0.200:18848
username: nacos
password: nacos
namespace: ${NAMESPACE:arch}
file-extension: yaml
spring:
cloud:
nacos:
config:
group: DEFAULT_GROUP
server-addr: ${nacos.server-addr}
username: ${nacos.username}
password: ${nacos.password}
namespace: ${nacos.namespace}
# 公共配置
shared-configs:
- data-id: common-storage.${nacos.file-extension}
refresh: true
- data-id: common-config.${nacos.file-extension}
refresh: true
- data-id: common-filters.${nacos.file-extension}
refresh: true
- data-id: common-datasource.${nacos.file-extension}
- data-id: common-mybatis.${nacos.file-extension}
- data-id: common-redis.${nacos.file-extension}
refresh: true
discovery:
ip: localhost
server-addr: ${nacos.server-addr}
username: ${nacos.username}
password: ${nacos.password}
namespace: ${nacos.namespace}
config:
activate:
on-profile: dev
server:
port: 17007
nacos:
server-addr: localhost:8848
username: nacos
password: nacos
namespace: ${NAMESPACE:public}
file-extension: yaml
spring:
cloud:
nacos:
config:
group: DEFAULT_GROUP
server-addr: ${nacos.server-addr}
username: ${nacos.username}
password: ${nacos.password}
namespace: ${nacos.namespace}
# 公共配置
shared-configs:
- data-id: common-storage.${nacos.file-extension}
refresh: true
- data-id: common-config.${nacos.file-extension}
refresh: true
- data-id: common-log.${nacos.file-extension}
refresh: true
- data-id: common-datasource.${nacos.file-extension}
refresh: true
- data-id: common-mybatis.${nacos.file-extension}
refresh: true
- data-id: common-isc.${nacos.file-extension}
refresh: true
- data-id: common-redis.${nacos.file-extension}
refresh: true
discovery:
ip: localhost
server-addr: ${nacos.server-addr}
username: ${nacos.username}
password: ${nacos.password}
namespace: ${nacos.namespace}
server:
port: 17007
nacos:
server-addr: 192.168.0.120:18848
username: nacos
password: nacos
namespace: ${NAMESPACE:sit}
file-extension: yaml
spring:
cloud:
nacos:
config:
group: DEFAULT_GROUP
server-addr: ${nacos.server-addr}
username: ${nacos.username}
password: ${nacos.password}
namespace: ${nacos.namespace}
# 公共配置
shared-configs:
- data-id: common-storage.${nacos.file-extension}
refresh: true
- data-id: common-config.${nacos.file-extension}
refresh: true
- data-id: common-log.${nacos.file-extension}
refresh: true
- data-id: common-datasource.${nacos.file-extension}
refresh: true
- data-id: common-mybatis.${nacos.file-extension}
refresh: true
- data-id: common-isc.${nacos.file-extension}
refresh: true
- data-id: common-redis.${nacos.file-extension}
refresh: true
discovery:
server-addr: ${nacos.server-addr}
username: ${nacos.username}
password: ${nacos.password}
namespace: ${nacos.namespace}
config:
activate:
on-profile: sit
spring:
application:
name: arch-manage
main:
# 解决升级 Spring Boot 2.6后,因循环引用导致启动时报错是否允许循环引用
allow-circular-references: true
servlet:
multipart:
max-file-size: 50MB
max-request-size: 100MB
profiles:
active: dev
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<!--定义日志文件的存储地址 -->
<property name="LOG_HOME" value="./logs"/>
<property name="LOG_NAME" value="arch-overall"/>
<!--从配置中心加载数据-->
<springProperty scope="context" name="applicationName" source="spring.application.name"/>
<springProperty scope="context" name="logstashDestination" source="logstash.destination"/>
<!--<property name="COLOR_PATTERN" value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta( %replace(%caller{1}){'\t|Caller.{1}0|\r\n', ''})- %gray(%msg%xEx%n)" />-->
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<withJansi>true</withJansi>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{50}:%L) - %msg%n</pattern>
</encoder>
</appender>
<!-- 按照每天生成日志文件INFO -->
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${LOG_HOME}/${LOG_NAME}_info.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名 -->
<FileNamePattern>${LOG_HOME}/${LOG_NAME}_info.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 按照每天生成日志文件ERROR -->
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${LOG_HOME}/${LOG_NAME}_error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_HOME}/${LOG_NAME}_error.%d{yyyy-MM-dd}.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 只打印错误日志 -->
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!--nacos 心跳 INFO 屏蔽-->
<logger name="com.alibaba.nacos" level="OFF">
<appender-ref ref="ERROR_FILE"/>
</logger>
<!--myibatis log configure-->
<logger name="com.apache.ibatis" level="TRACE"/>
<logger name="java.sql.Connection" level="DEBUG"/>
<logger name="java.sql.Statement" level="DEBUG"/>
<logger name="java.sql.PreparedStatement" level="DEBUG"/>
<logger name="com.xxl.job.core" level="DEBUG"/>
<logger name="org.apache.http.impl.conn" level="INFO"/>
<logger name="springfox.documentation" level="INFO" />
<logger name="org.springframework" level="INFO" />
<logger name="com.baomidou.mybatisplus" level="INFO" />
<!-- 本地环境 -->
<springProfile name="local">
<root level="DEBUG">
<appender-ref ref="STDOUT"/>
<appender-ref ref="INFO_FILE"/>
<appender-ref ref="ERROR_FILE"/>
</root>
</springProfile>
<!-- 其它环境 -->
<springProfile name="dev,test,stage,prod,sit,uat,default">
<root level="DEBUG">
<appender-ref ref="STDOUT"/>
<appender-ref ref="INFO_FILE"/>
<appender-ref ref="ERROR_FILE"/>
</root>
</springProfile>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xcasz.modules.system.service.mapper.UserMapper">
<select id="getUserList3" resultType="com.xcasz.modules.system.domain.User">
SELECT DISTINCT
( sur.user_id ) AS xx,
su.*,
s.org_simple_name ,a.role_name
FROM
sys_users_roles sur
LEFT JOIN sys_user su ON sur.user_id = su.id
LEFT JOIN sys_org s ON s.org_id = su.org_id
LEFT JOIN (SELECT u.user_id, GROUP_CONCAT( r.role_name ) role_name FROM sys_users_roles u LEFT JOIN sys_role r on u.role_id = r.id where u.role_id IN
<foreach item="item" index="index" collection="roleList" open="(" separator="," close=")">
#{item}
</foreach>
GROUP BY user_id)a on a.user_id = sur.user_id
WHERE
( sur.role_id IN
<foreach item="item" index="index" collection="roleList" open="(" separator="," close=")">
#{item}
</foreach>
AND su.id IS NOT NULL AND is_delete = '0' )
</select>
<select id="getUserList" resultType="com.xcasz.modules.system.service.dto.UserDto">
SELECT
su.*,
s.org_simple_name
FROM
sys_users_roles sur
left join sys_role sr on sr.id = sur.role_id
LEFT JOIN sys_user su ON sur.user_id = su.id
LEFT JOIN sys_org s ON s.org_id = su.org_id
WHERE
su.id IS NOT NULL
AND su.is_delete = '0'
<if test="id != null and id != ''">
and sur.role_id = #{id}
</if>
<if test="roleSign != null and roleSign != ''">
and sr.role_sign = #{roleSign}
</if>
<if test="orgNum != null and orgNum != ''">
and su.org_num like CONCAT('%',#{orgNum},'%')
</if>
</select>
</mapper>
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!