企业清单导入和企业清单列表接口

This commit is contained in:
79493 2023-01-04 17:35:26 +08:00
parent 3d0d4d3256
commit 0a0f2a3137
21 changed files with 1358 additions and 8 deletions

View File

@ -0,0 +1,37 @@
package com.rzyc.mapper;
import com.rzyc.model.InPostItem;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author
* @since 2023-01-03
*/
@Repository
public interface InPostItemMapper extends BaseMapper<InPostItem> {
/**
* 插入list
*
* @param list
* @return int
*/
int insertList(@Param("list") List<InPostItem> list);
/**
* 查询清单
*
* @param postId
* @return InPostItem
*/
InPostItem selectByPostId(String postId);
}

View File

@ -0,0 +1,37 @@
package com.rzyc.mapper;
import com.rzyc.model.InPostList;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* 工作要务清单 Mapper 接口
* </p>
*
* @author
* @since 2023-01-03
*/
@Repository
public interface InPostListMapper extends BaseMapper<InPostList> {
/**
* 插入list
* @return list
* @param list
* */
int insertList(@Param("list") List<InPostList>list);
/**
* 查询行业公共岗位履职清单
* @return list
* @param industry
* @param listId
* */
List<InPostList>selectByListId(@Param("industry") String industry,@Param("listId") String listId);
}

View File

@ -0,0 +1,34 @@
package com.rzyc.mapper;
import com.rzyc.model.InPost;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* 行业公共岗位表 Mapper 接口
* </p>
*
* @author
* @since 2023-01-03
*/
@Repository
public interface InPostMapper extends BaseMapper<InPost> {
/**
* 导入list
* @param list
* @return int
* */
int insertList(@Param("list") List<InPost>list);
/**
* 查询公共岗位
* @param industryId
* @return list
* */
List<InPost>selectByIndustryId(String industryId);
}

View File

@ -30,4 +30,11 @@ public interface InListItemMapper extends BaseMapper<InListItem> {
* @return int * @return int
* */ * */
int insertItem(@Param("list") List<EasyExcelInList>list); int insertItem(@Param("list") List<EasyExcelInList>list);
/**
*导入清单项
* @param list
* @return int
* */
int insertInListItem(@Param("list") List<InListItem>list);
} }

View File

@ -5,14 +5,15 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter
@Setter
@EqualsAndHashCode
/** /**
* EasyExcel导入行业清单 * EasyExcel导入行业清单
* @author Xuwanxin * @author Xuwanxin
* @date 2022/12/15 * @date 2022/12/15
* */ * */
@Getter
@Setter
@EqualsAndHashCode
public class EasyExcelInList { public class EasyExcelInList {
private String industry; private String industry;
private String listName; private String listName;

View File

@ -0,0 +1,27 @@
package com.rzyc.model.EasyExcel;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
/**
* EasyExcel导入行业清单
* @author Xuwanxin
* @date 2022/1/3
* */
@Getter
@Setter
@EqualsAndHashCode
public class EasyExcelPostList {
private String post;
private String postList;
private String postItem;
}

View File

@ -0,0 +1,190 @@
package com.rzyc.model;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* <p>
* 行业公共岗位表
* </p>
*
* @author
* @since 2023-01-03
*/
@TableName("in_post")
@ApiModel(value="InPost对象", description="行业公共岗位表")
public class InPost implements Serializable {
private static final long serialVersionUID = 1L;
public InPost(String publicPostId, String publicPostName,String industryId,String publicPostPath,Integer publicPostLevel) {
this.publicPostId = publicPostId;
this.publicPostName = publicPostName;
this.industryId = industryId;
this.publicPostPath = publicPostPath;
this.publicPostLevel = publicPostLevel;
}
@ApiModelProperty(value = "主键")
@TableId("public_post_id")
private String publicPostId;
@ApiModelProperty(value = "岗位名")
@TableField("public_post_name")
private String publicPostName;
@ApiModelProperty(value = "岗位路径")
@TableField("public_post_path")
private String publicPostPath;
@ApiModelProperty(value = "父级岗位")
@TableField("public_post_parent_id")
private String publicPostParentId;
@ApiModelProperty(value = "父级岗位名")
@TableField("public_post_parent_name")
private String publicPostParentName;
@ApiModelProperty(value = "岗位层级")
@TableField("public_post_level")
private Integer publicPostLevel;
@TableField("create_by")
private String createBy;
@TableField("create_time")
private Date createTime;
@TableField("modify_by")
private String modifyBy;
@TableField("modify_time")
private Date modifyTime;
@TableField("sort_id")
private Integer sortId;
@ApiModelProperty(value = "1.正常 2.删除")
@TableField("del_state")
private Integer delState;
@ApiModelProperty("行业id")
@TableField("industry_id")
private String industryId;
public String getIndustryId() {
return industryId;
}
public void setIndustryId(String industryId) {
this.industryId = industryId;
}
public String getPublicPostId() {
return publicPostId;
}
public void setPublicPostId(String publicPostId) {
this.publicPostId = publicPostId;
}
public String getPublicPostName() {
return publicPostName;
}
public void setPublicPostName(String publicPostName) {
this.publicPostName = publicPostName;
}
public String getPublicPostPath() {
return publicPostPath;
}
public void setPublicPostPath(String publicPostPath) {
this.publicPostPath = publicPostPath;
}
public String getPublicPostParentId() {
return publicPostParentId;
}
public void setPublicPostParentId(String publicPostParentId) {
this.publicPostParentId = publicPostParentId;
}
public String getPublicPostParentName() {
return publicPostParentName;
}
public void setPublicPostParentName(String publicPostParentName) {
this.publicPostParentName = publicPostParentName;
}
public Integer getPublicPostLevel() {
return publicPostLevel;
}
public void setPublicPostLevel(Integer publicPostLevel) {
this.publicPostLevel = publicPostLevel;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getModifyBy() {
return modifyBy;
}
public void setModifyBy(String modifyBy) {
this.modifyBy = modifyBy;
}
public Date getModifyTime() {
return modifyTime;
}
public void setModifyTime(Date modifyTime) {
this.modifyTime = modifyTime;
}
public Integer getSortId() {
return sortId;
}
public void setSortId(Integer sortId) {
this.sortId = sortId;
}
public Integer getDelState() {
return delState;
}
public void setDelState(Integer delState) {
this.delState = delState;
}
@Override
public String toString() {
return "InPost{" +
"publicPostId=" + publicPostId +
", publicPostName=" + publicPostName +
", publicPostPath=" + publicPostPath +
", publicPostParentId=" + publicPostParentId +
", publicPostParentName=" + publicPostParentName +
", publicPostLevel=" + publicPostLevel +
", createBy=" + createBy +
", createTime=" + createTime +
", modifyBy=" + modifyBy +
", modifyTime=" + modifyTime +
", sortId=" + sortId +
", delState=" + delState +
"}";
}
}

View File

@ -0,0 +1,105 @@
package com.rzyc.model;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* <p>
*
* </p>
*
* @author
* @since 2023-01-03
*/
@TableName("in_post_item")
@ApiModel(value="InPostItem对象", description="")
public class InPostItem implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "企业岗位关联in_list_item的责任清单")
@TableId("in_post_item_id")
private String inPostItemId;
@ApiModelProperty(value = "清单名")
@TableField("in_list")
private String inList;
@ApiModelProperty(value = "清单项")
@TableField("in_list_item")
private String inListItemId;
@ApiModelProperty(value = "公共岗位id")
@TableField("public_post_id")
private String publicPostId;
@ApiModelProperty(value = "创建时间")
@TableField("create_time")
private Date createTime;
@ApiModelProperty(value = "创建人")
@TableField("create_by")
private String createBy;
public String getInPostItemId() {
return inPostItemId;
}
public void setInPostItemId(String inPostItemId) {
this.inPostItemId = inPostItemId;
}
public String getInList() {
return inList;
}
public void setInList(String inList) {
this.inList = inList;
}
public String getInListItemId() {
return inListItemId;
}
public void setInListItemId(String inListItemId) {
this.inListItemId = inListItemId;
}
public String getPublicPostId() {
return publicPostId;
}
public void setPublicPostId(String publicPostId) {
this.publicPostId = publicPostId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
@Override
public String toString() {
return "InPostItem{" +
"inPostItemId=" + inPostItemId +
", inList=" + inList +
", inListItemId=" + inListItemId +
", publicPostId=" + publicPostId +
", createTime=" + createTime +
", createBy=" + createBy +
"}";
}
}

View File

@ -0,0 +1,223 @@
package com.rzyc.model;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* <p>
* 工作要务清单
* </p>
*
* @author
* @since 2023-01-03
*/
@TableName("in_post_list")
@ApiModel(value="InPostList对象", description="工作要务清单")
public class InPostList implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "岗位履职清单id")
@TableId("public_post_list_id")
private String publicPostListId;
@ApiModelProperty(value = "岗位id")
@TableField("public_post_id")
private String publicPostId;
@ApiModelProperty(value = "清单id")
@TableField("list_id")
private String listId;
@ApiModelProperty(value = "清单标题")
@TableField("public_item_title")
private String publicItemTitle;
@ApiModelProperty(value = "清单内容")
@TableField("public_item_content")
private String publicItemContent;
@ApiModelProperty(value = "排序")
@TableField("sort_id")
private Integer sortId;
@ApiModelProperty(value = "年份")
@TableField("year_num")
private Integer yearNum;
@ApiModelProperty(value = "考核指标 1:每年 2每半年 4每季度 12:每月")
@TableField("standard")
private Integer standard;
@ApiModelProperty(value = "频率")
@TableField("frequency")
private Integer frequency;
@ApiModelProperty(value = "红色提醒天数")
@TableField("red_alert")
private Integer redAlert;
@ApiModelProperty(value = "黄色提醒天数")
@TableField("yellow_alert")
private Integer yellowAlert;
@ApiModelProperty(value = "删除状态 1正常 2:已删除")
@TableField("del_state")
private Integer delState;
@ApiModelProperty(value = "创建时间")
@TableField("create_time")
private Date createTime;
@ApiModelProperty(value = "创建人")
@TableField("create_by")
private String createBy;
@ApiModelProperty(value = "修改时间")
@TableField("modify_time")
private Date modifyTime;
@ApiModelProperty(value = "修改人")
@TableField("modify_by")
private String modifyBy;
public String getPublicPostListId() {
return publicPostListId;
}
public void setPublicPostListId(String publicPostListId) {
this.publicPostListId = publicPostListId;
}
public String getPublicPostId() {
return publicPostId;
}
public void setPublicPostId(String publicPostId) {
this.publicPostId = publicPostId;
}
public String getListId() {
return listId;
}
public void setListId(String listId) {
this.listId = listId;
}
public String getPublicItemTitle() {
return publicItemTitle;
}
public void setPublicItemTitle(String publicItemTitle) {
this.publicItemTitle = publicItemTitle;
}
public String getPublicItemContent() {
return publicItemContent;
}
public void setPublicItemContent(String publicItemContent) {
this.publicItemContent = publicItemContent;
}
public Integer getSortId() {
return sortId;
}
public void setSortId(Integer sortId) {
this.sortId = sortId;
}
public Integer getYearNum() {
return yearNum;
}
public void setYearNum(Integer yearNum) {
this.yearNum = yearNum;
}
public Integer getStandard() {
return standard;
}
public void setStandard(Integer standard) {
this.standard = standard;
}
public Integer getFrequency() {
return frequency;
}
public void setFrequency(Integer frequency) {
this.frequency = frequency;
}
public Integer getRedAlert() {
return redAlert;
}
public void setRedAlert(Integer redAlert) {
this.redAlert = redAlert;
}
public Integer getYellowAlert() {
return yellowAlert;
}
public void setYellowAlert(Integer yellowAlert) {
this.yellowAlert = yellowAlert;
}
public Integer getDelState() {
return delState;
}
public void setDelState(Integer delState) {
this.delState = delState;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public Date getModifyTime() {
return modifyTime;
}
public void setModifyTime(Date modifyTime) {
this.modifyTime = modifyTime;
}
public String getModifyBy() {
return modifyBy;
}
public void setModifyBy(String modifyBy) {
this.modifyBy = modifyBy;
}
@Override
public String toString() {
return "InPostList{" +
"publicPostListId=" + publicPostListId +
", publicPostId=" + publicPostId +
", listId=" + listId +
", publicItemTitle=" + publicItemTitle +
", publicItemContent=" + publicItemContent +
", sortId=" + sortId +
", yearNum=" + yearNum +
", standard=" + standard +
", frequency=" + frequency +
", redAlert=" + redAlert +
", yellowAlert=" + yellowAlert +
", delState=" + delState +
", createTime=" + createTime +
", createBy=" + createBy +
", modifyTime=" + modifyTime +
", modifyBy=" + modifyBy +
"}";
}
}

View File

@ -0,0 +1,34 @@
<?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.rzyc.mapper.InPostItemMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.rzyc.model.InPostItem">
<id column="in_post_item_id" property="inPostItemId" />
<result column="in_list" property="inList" />
<result column="in_list_item_id" property="inListItemId" />
<result column="public_post_id" property="publicPostId" />
<result column="create_time" property="createTime" />
<result column="create_by" property="createBy" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
in_post_item_id, in_list, in_list_item_id, public_post_id, create_time, create_by
</sql>
<insert id="insertList">
insert into in_post_item (in_post_item_id,in_list,in_list_item_id,public_post_id,create_time,create_by)values
<foreach collection="list" item="list" separator=",">
(#{list.inPostItemId},
#{list.inList},
#{list.inListItemId},
#{list.publicPostId},
#{list.createTime},
#{list.createBy})
</foreach>
</insert>
<select id="selectByPostId" resultMap="BaseResultMap">
select * from in_post_item where public_post_id = #{postId}
</select>
</mapper>

View File

@ -0,0 +1,47 @@
<?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.rzyc.mapper.InPostListMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.rzyc.model.InPostList">
<id column="public_post_list_id" property="publicPostListId" />
<result column="public_post_id" property="publicPostId" />
<result column="list_id" property="listId" />
<result column="public_item_title" property="publicItemTitle" />
<result column="public_item_content" property="publicItemContent" />
<result column="sort_id" property="sortId" />
<result column="year_num" property="yearNum" />
<result column="standard" property="standard" />
<result column="frequency" property="frequency" />
<result column="red_alert" property="redAlert" />
<result column="yellow_alert" property="yellowAlert" />
<result column="del_state" property="delState" />
<result column="create_time" property="createTime" />
<result column="create_by" property="createBy" />
<result column="modify_time" property="modifyTime" />
<result column="modify_by" property="modifyBy" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
public_post_list_id, public_post_id, list_id, public_item_title, public_item_content, sort_id, year_num, standard, frequency, red_alert, yellow_alert, del_state, create_time, create_by, modify_time, modify_by
</sql>
<insert id="insertList">
insert into in_post_list (public_post_list_id,public_post_id,list_id,public_item_title,public_item_content, sort_id,standard, frequency,create_time, create_by)values
<foreach collection="list" item="list" separator=",">
(#{list.publicPostListId},
#{list.publicPostId},
#{list.listId},
#{list.publicItemTitle},
#{list.publicItemContent},
#{list.sortId},#{list.standard},
#{list.frequency},
#{list.createTime},
#{list.createBy})
</foreach>
</insert>
<select id="selectByListId" resultMap="BaseResultMap">
select * from in_post_list where list_id = #{listId} order by sort_id asc
</select>
</mapper>

View File

@ -0,0 +1,41 @@
<?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.rzyc.mapper.InPostMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.rzyc.model.InPost">
<id column="public_post_id" property="publicPostId" />
<result column="public_post_name" property="publicPostName" />
<result column="public_post_path" property="publicPostPath" />
<result column="public_post_parent_id" property="publicPostParentId" />
<result column="public_post_parent_name" property="publicPostParentName" />
<result column="public_post_level" property="publicPostLevel" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
<result column="modify_by" property="modifyBy" />
<result column="modify_time" property="modifyTime" />
<result column="sort_id" property="sortId" />
<result column="del_state" property="delState" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
public_post_id, public_post_name, public_post_path, public_post_parent_id, public_post_parent_name, public_post_level, create_by, create_time, modify_by, modify_time, sort_id, del_state
</sql>
<insert id="insertList">
insert into in_post (public_post_id,public_post_name,public_post_path,public_post_level,create_by,create_time,industry_id)values
<foreach collection="list" item="list" separator=",">
(#{list.publicPostId},
#{list.publicPostName},
#{list.publicPostPath},
#{list.publicPostLevel},
#{list.createBy},
#{list.createTime},
#{list.industryId})
</foreach>
</insert>
<select id="selectByIndustryId" resultType="com.rzyc.model.InPost">
select * from in_post where industry_id = #{industryId}
</select>
</mapper>

View File

@ -44,6 +44,7 @@ item_basis, item_proof, item_law, sort_id, del_state,create_time, create_by, mod
</foreach> </foreach>
</insert> </insert>
<select id="SelectContents" resultMap="BaseResultMap"> <select id="SelectContents" resultMap="BaseResultMap">
select * from in_list_item where del_state = 1 select * from in_list_item where del_state = 1
<if test="null != industryId and '' != industryId"> <if test="null != industryId and '' != industryId">
@ -62,4 +63,19 @@ item_basis, item_proof, item_law, sort_id, del_state,create_time, create_by, mod
ORDER BY ii.`list_id` ASC,ii.`sort_id` ASC ORDER BY ii.`list_id` ASC,ii.`sort_id` ASC
</select> </select>
<insert id="insertInListItem">
insert into in_list_item (item_id,list_id,industry_id, item_title,item_content,del_state,create_by,create_time,sort_id)values
<foreach collection="list" item="list" separator=",">
(#{list.itemId},
#{list.listId},
#{list.industryId},
#{list.itemTitle},
#{list.itemContent},
1,
#{list.createBy},
#{list.createTime},
#{list.sortId})
</foreach>
</insert>
</mapper> </mapper>

View File

@ -228,6 +228,14 @@
</dependency> </dependency>
<!-- redis --> <!-- redis -->
<!-- easyExcel -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.1.3</version>
</dependency>
<!-- easyExcel -->
</dependencies> </dependencies>
<build> <build>

View File

@ -0,0 +1,102 @@
package com.rzyc.config;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageHelper;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @Author jilin
* @Date 2021/11/09 11:57
* 分页aop
* 注解写在mapper上aop代理方式需为jdk代理cglib代理无法aop mapper
**/
@Aspect
@Component
public class PageAspect {
@Pointcut("@annotation(com.common.utils.pager.PageOperation)execution(* com.rzyc..*.*(..))")
public void page() {}
@Before("page()")
public void pageOperation(JoinPoint joinPoint) throws Throwable {
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
Object[] args = joinPoint.getArgs();
String[] paramNames = signature.getParameterNames();
//搜寻参数,设置分页参数
boolean isPage = setPageParams(args, paramNames);
}
/**
* 设置参数,返回是否分页
* @param args
* @param paramNames
* @throws Exception
*/
public boolean setPageParams(Object[] args,String[] paramNames) throws Exception {
Integer pageValue = null;
Integer pageSizeValue = null;
for (int i = 0; i < args.length; i++) {
Object arg = args[i];
//自定义对象
if (null != arg && null != arg.getClass().getClassLoader()){
if (List.class.isAssignableFrom(arg.getClass())||arg instanceof List){
continue;
}
JSONObject jsonObject = (JSONObject) JSON.toJSON(arg);
//获取page
pageValue= this.getPage(jsonObject);
//获取PageSize
pageSizeValue = this.getPageSize(jsonObject);
}else{
String paramName = paramNames[i];
if ("page".equals(paramName)){
if (arg instanceof Integer){
pageValue = (Integer) arg;
}else{
throw new Exception("page参数类型为:"+arg.getClass().getName());
}
}
if ("pageSize".equals(paramName)){
if (arg instanceof Integer){
pageSizeValue = (Integer) arg;
}else{
throw new Exception("page参数类型为:"+arg.getClass().getName());
}
}
}
}
if (pageValue!=null&&pageValue!=0&&pageSizeValue!=null&&pageSizeValue!=0){
PageHelper.startPage(pageValue,pageSizeValue);
return true;
}
return false;
}
public Integer getPage(JSONObject arg) throws Exception {
Integer page = null;
try{
page = arg.getInteger("page");
}catch (Exception e){
throw new Exception("page参数类型需为 Integer");
}
return page;
}
public Integer getPageSize(JSONObject arg) throws Exception {
Integer pageSize = null;
try{
pageSize = arg.getInteger("pageSize");
}catch (Exception e){
throw new Exception("pageSize参数类型需为 Integer");
}
return pageSize;
}
}

View File

@ -487,6 +487,19 @@ public class BaseController {
@Autowired @Autowired
protected EntUserMapper entUserMapper; protected EntUserMapper entUserMapper;
//企业公共岗位
@Autowired
protected InPostMapper inPostMapper;
//企业岗位关联责任清单
@Autowired
protected InPostItemMapper inPostItemMapper;
//企业岗位履职表
@Autowired
protected InPostListMapper inPostListMapper;
/** /**
* 岗位不需要的字符串 * 岗位不需要的字符串
*/ */
@ -517,6 +530,7 @@ public class BaseController {
*/ */
protected static List<String> changeDynamicRole = new ArrayList<>(); protected static List<String> changeDynamicRole = new ArrayList<>();
//管理员角色id //管理员角色id
protected static String ADMIN_ROLE_ID = "295EF8C3-902F-41F0-95C8-D3AB9C6DA143"; protected static String ADMIN_ROLE_ID = "295EF8C3-902F-41F0-95C8-D3AB9C6DA143";

View File

@ -16,12 +16,15 @@ import com.rzyc.model.oth.OthRefuge;
import com.rzyc.model.user.ListPerform; import com.rzyc.model.user.ListPerform;
import com.rzyc.model.user.SysUnit; import com.rzyc.model.user.SysUnit;
import com.rzyc.model.user.SysUser; import com.rzyc.model.user.SysUser;
import com.rzyc.service.PcBusinessService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.usermodel.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -41,6 +44,13 @@ public class ImportController extends com.rzyc.controller.BaseController {
//街道id //街道id
protected String STREET = "510114102000"; protected String STREET = "510114102000";
private PcBusinessService pcBusinessService;
@Autowired
public ImportController(PcBusinessService pcBusinessService) {
this.pcBusinessService = pcBusinessService;
}
/** /**
* 导入应急避难场所 * 导入应急避难场所
* @param file * @param file
@ -2975,5 +2985,21 @@ public class ImportController extends com.rzyc.controller.BaseController {
return result; return result;
} }
/**
* 导入岗位履职和履职清单
* @version v1.0
* @author Xuwanxin
* @date 2023/1/2
*/
@ApiOperation(value = "导入岗位履职和履职清单", notes = "导入岗位履职和履职清单")
@RequestMapping(value = "/importEnterprisePostList", method = RequestMethod.POST)
@ResponseBody
@Transactional
public String importEnterprisePostList(@RequestBody MultipartFile file)throws Exception{
pcBusinessService.importEnterprisePostList(file);
return "success";
}
} }

View File

@ -7,13 +7,18 @@ import com.common.utils.StringUtils;
import com.common.utils.model.*; import com.common.utils.model.*;
import com.github.pagehelper.Page; import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.rzyc.model.InPost;
import com.rzyc.model.InPostItem;
import com.rzyc.model.InPostList;
import com.rzyc.model.dto.*; import com.rzyc.model.dto.*;
import com.rzyc.model.ent.BaseInClass; import com.rzyc.model.ent.BaseInClass;
import com.rzyc.model.ent.InList; import com.rzyc.model.ent.InList;
import com.rzyc.model.ent.InListItem; import com.rzyc.model.ent.InListItem;
import com.rzyc.service.PcBusinessService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import javax.validation.Valid;
@ -37,6 +42,8 @@ import java.util.List;
@Validated @Validated
@RestController @RestController
public class IndustryListController extends BaseController{ public class IndustryListController extends BaseController{
@Autowired
private PcBusinessService pcBusinessService;
/** /**
* 父级行业列表 * 父级行业列表
@ -202,5 +209,54 @@ public class IndustryListController extends BaseController{
return url; return url;
} }
/**
* 读取行业公共岗位
* @param industryId
* @return
*/
@ApiOperation(value = "读取行业公共岗位", notes = "读取行业公共岗位")
@GetMapping("/getIndustryPost")
@ResponseBody
public SingleResult<InPost> getIndustryPost(@RequestParam(required = true)String industryId)throws Exception{
return pcBusinessService.selectByIndustryId(industryId);
}
/**
* 读取行业公共岗位责任清单
* @param industryId
* @return
*/
@ApiOperation(value = "读取行业公共岗位责任清单", notes = "读取行业公共岗位责任清单")
@GetMapping("/getIndustryPostDuty")
@ResponseBody
public SingleResult<InPostItem> getIndustryPostDuty(Integer page , Integer pageSize ,String industryId,@RequestParam(required = true)String postId)throws Exception{
InPostItem inPostItem = inPostItemMapper.selectByPostId(postId);
return pcBusinessService.getIndustryPostDuty(page,pageSize,industryId,inPostItem.getInPostItemId());
}
/**
* 读取行业公共岗位履职清单
* @param industryId
* @return
*/
@ApiOperation(value = "读取行业公共岗位履职清单", notes = "读取行业公共岗位履职清单")
@GetMapping("/getIndustryPostListTask")
@ResponseBody
public SingleResult<InPostList> getIndustryPostListTask(Integer page , Integer pageSize , String industryId, @RequestParam(required = true)String postId)throws Exception{
InPostItem inPostItem = inPostItemMapper.selectByPostId(postId);
return pcBusinessService.getIndustryPostListTask(page,pageSize,industryId,inPostItem.getInPostItemId());
}
} }

View File

@ -1,5 +1,6 @@
package com.rzyc.service; package com.rzyc.service;
import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.common.utils.Arith; import com.common.utils.Arith;
@ -18,15 +19,18 @@ import com.rzyc.controller.BaseController;
import com.rzyc.enums.DelState; import com.rzyc.enums.DelState;
import com.rzyc.enums.RedisKeys; import com.rzyc.enums.RedisKeys;
import com.rzyc.model.*; import com.rzyc.model.*;
import com.rzyc.model.EasyExcel.EasyExcelEnterprise;
import com.rzyc.model.EasyExcel.EasyExcelPostList;
import com.rzyc.model.dto.*; import com.rzyc.model.dto.*;
import com.rzyc.model.ent.EntPost; import com.rzyc.model.ent.*;
import com.rzyc.model.ent.EntUser; import com.rzyc.utils.easyexcel.EntEnterprisePostListener;
import com.rzyc.model.ent.InEntList;
import com.rzyc.model.ent.SysEnterprise;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.*; import java.util.*;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -60,4 +64,32 @@ public class PcBusinessService extends BaseController {
return singleResult; return singleResult;
} }
public void importEnterprisePostList(MultipartFile file) throws IOException {
EasyExcel.read(file.getInputStream(), EasyExcelPostList.class, new EntEnterprisePostListener(inPostMapper,inPostItemMapper,inPostListMapper,baseInClassMapper,inListItemMapper)).doReadAll();
}
@PageOperation
public SingleResult getIndustryPostDuty(Integer page , Integer pageSize ,String industryId,String listId){
SingleResult singleResult = new SingleResult();
Page<InListItem>posts = (Page<InListItem>) inListItemMapper.SelectContents(industryId,listId);
singleResult.setDataPager(posts);
return singleResult;
}
@PageOperation
public SingleResult getIndustryPostListTask(Integer page , Integer pageSize ,String industryId,String listId){
SingleResult singleResult = new SingleResult();
Page<InPostList>posts = (Page<InPostList>) inPostListMapper.selectByListId(industryId,listId);
singleResult.setDataPager(posts);
return singleResult;
}
public SingleResult selectByIndustryId(String industryId){
SingleResult singleResult = new SingleResult();
List<InPost>posts = inPostMapper.selectByIndustryId(industryId);
singleResult.setData(posts);
return singleResult;
}
} }

View File

@ -0,0 +1,312 @@
package com.rzyc.utils.easyexcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
import com.alibaba.excel.read.metadata.ReadSheet;
import com.alibaba.excel.util.ListUtils;
import com.common.utils.RandomNumber;
import com.common.utils.StringUtils;
import com.rzyc.mapper.InPostItemMapper;
import com.rzyc.mapper.InPostListMapper;
import com.rzyc.mapper.InPostMapper;
import com.rzyc.mapper.ent.BaseInClassMapper;
import com.rzyc.mapper.ent.InListItemMapper;
import com.rzyc.model.EasyExcel.EasyExcelEnterprise;
import com.rzyc.model.EasyExcel.EasyExcelPostList;
import com.rzyc.model.InPost;
import com.rzyc.model.InPostItem;
import com.rzyc.model.InPostList;
import com.rzyc.model.ent.BaseInClass;
import com.rzyc.model.ent.InListItem;
import java.util.Date;
import java.util.List;
/**
* @author Xuwanxin
* @date 2022/1/3
* */
public class EntEnterprisePostListener implements ReadListener<EasyExcelPostList> {
private InPostListMapper inPostListMapper;
private InPostItemMapper inPostItemMapper;
private InPostMapper inPostMapper;
private BaseInClassMapper baseInClassMapper;
private InListItemMapper inListItemMapper;
public EntEnterprisePostListener(InPostMapper inPostMapper, InPostItemMapper inPostItemMapper,
InPostListMapper inPostListMapper, BaseInClassMapper baseInClassMapper, InListItemMapper inListItemMapper) {
this.inPostListMapper = inPostListMapper;
this.inPostItemMapper = inPostItemMapper;
this.inPostMapper = inPostMapper;
this.baseInClassMapper = baseInClassMapper;
this.inListItemMapper = inListItemMapper;
}
/**
* 每隔5条存储数据库实际使用中可以100条然后清理list 方便内存回收
*/
private static final int BATCH_COUNT = 100;
/**
* 缓存的数据
*/
private List<EasyExcelEnterprise> cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
/**
* 缓存的岗位
*/
private List<InPost> cachePost = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
/**
* 缓存的履职清单
*/
private List<InPostList> cachePostList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
/**
* 缓存的责任清单中间表
*/
private List<InPostItem> cachePostItem = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
/**
* 缓存的责任清单
*/
private List<InListItem> cacheItem = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
/**
*岗位名称
* */
private String postName = "null";
/**
* 岗位主键
* */
private String uuidPost = null;
/**
* 排序id
* */
private Integer sortId = 0;
private Integer listSortId = 0;
/**
* 企业岗位关联责任清单对象主键
* */
private String inPostItemId = RandomNumber.getUUid();
private BaseInClass industry = null;
private String industryName = "null";
/**
* 这个每一条数据解析都会来调用
*/
@Override
public void invoke(EasyExcelPostList easyExcelPostList, AnalysisContext analysisContext) {
if (StringUtils.isBlank(easyExcelPostList.getPostItem()) && StringUtils.isBlank(easyExcelPostList.getPostList())){
return;
}
if (null == industry || !industryName.equals(industry.getIndustryclassname())){
industry = getIndustry(analysisContext);
industryName = industry.getIndustryclassname();
}
//inlistItem对象主键
String inListItemId = RandomNumber.getUUid();
if (!postName.equals(easyExcelPostList.getPost())){
postName = easyExcelPostList.getPost();
uuidPost = RandomNumber.getUUid();
cachePost.add(new InPost(uuidPost,postName,industry.getBaseinclassid(),postName,1));
sortId = 0;
listSortId = 0;
//企业岗位关联责任清单对象
InPostItem inPostItem = new InPostItem();
inPostItemId = RandomNumber.getUUid();
inPostItem.setInPostItemId(inPostItemId);
inPostItem.setInList(analysisContext.readSheetHolder().getSheetName() + "岗位清单");
inPostItem.setPublicPostId(uuidPost);
inPostItem.setCreateBy("系统导入");
inPostItem.setCreateTime(new Date());
cachePostItem.add(inPostItem);
}
InListItem inListItem = new InListItem();
String postList = easyExcelPostList.getPostList();
if (null != postList && !postList.contains("")){
inListItem.setItemId(inListItemId);
inListItem.setListId(inPostItemId);
inListItem.setIndustryId(industry.getBaseinclassid());
inListItem.setItemTitle(postList);
inListItem.setItemContent(postList);
inListItem.setCreateBy("系统导入");
inListItem.setCreateTime(new Date());
inListItem.setSortId(listSortId);
cacheItem.add(inListItem);
}
//岗位履职清单
InPostList inPostList = new InPostList();
inPostList.setPublicPostListId(RandomNumber.getUUid());
inPostList.setPublicPostId(uuidPost);
inPostList.setListId(inPostItemId);
//截取其中的频率参数
String str = easyExcelPostList.getPostItem();
if (null != str && !str.contains("")){
Integer pre = str.indexOf("{");
Integer end = str.indexOf("}");
if (-1 != pre && -1 != end){
String result = str.substring(pre,end + 1);
Integer middle = result.indexOf("/");
try {
//获取考核指标
inPostList.setStandard(Integer.parseInt(result.substring(1,middle)));
//获取频率
inPostList.setFrequency(Integer.parseInt(result.substring(middle + 1,result.length() - 1)));
}catch (Exception e){
System.err.println("错误数据"+result);
e.printStackTrace();
}
}else {
//获取考核指标
inPostList.setStandard(1);
//获取频率
inPostList.setStandard(1);
}
inPostList.setPublicItemTitle(easyExcelPostList.getPostItem().replace(" ",""));
inPostList.setPublicItemContent(easyExcelPostList.getPostItem().replace(" ",""));
}
inPostList.setSortId(sortId);
inPostList.setCreateBy("系统导入");
inPostList.setCreateTime(new Date());
cachePostList.add(inPostList);
//排序
sortId++;
listSortId++;
/**
* 公共行业岗位
* */
if (cachePost.size() >= BATCH_COUNT) {
//存入数据库
savePublicPost();
}
/**
* 公共行业清单项
* */
if (cacheItem.size() >= BATCH_COUNT) {
//存入数据库
savePublicItem();
}
/**
* 公共履职清单
* */
if (cachePostItem.size() >= BATCH_COUNT) {
//存入数据库
savePostItem();
}
/**
* 缓存的责任清单中间表
* */
if (cachePostList.size() >= BATCH_COUNT) {
//存入数据库
savePublicPostList();
}
}
/**
* 每个sheet读取完后都会调用
*/
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
//未满100条的存数据库
savePublicPost();
savePublicItem();
savePostItem();
savePublicPostList();
inPostItemId = RandomNumber.getUUid();
industry = null;
}
/**
* 公共岗位
* */
private void savePublicPost(){
if (null != cachePost && cachePost.size() > 0){
inPostMapper.insertList(cachePost);
}
// 存储完成清理 list
cachePost = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
}
/**
* 责任清单旧表
* */
private void savePublicItem(){
if (null != cacheItem && cacheItem.size() > 0) {
inListItemMapper.insertInListItem(cacheItem);
}
// 存储完成清理 list
cacheItem = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
}
/**
* 履职清单
* */
private void savePostItem(){
if (null != cachePostItem && cachePostItem.size() > 0) {
inPostItemMapper.insertList(cachePostItem);
}
// 存储完成清理 list
cachePostItem = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
}
/**
* 中间表
* */
private void savePublicPostList(){
if (null != cachePostList && cachePostList.size() > 0) {
inPostListMapper.insertList(cachePostList);
}
// 存储完成清理 list
cachePostList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
}
private BaseInClass getIndustry(AnalysisContext analysisContext){
String sheetName = analysisContext.readSheetHolder().getSheetName();
if (sheetName.contains("")){
Integer start = sheetName.indexOf("");
Integer end = sheetName.indexOf("");
sheetName = sheetName.substring(start + 1,end);
}
industry = baseInClassMapper.selectBaseInClassByName(sheetName);
return industry;
}
}

View File

@ -4,7 +4,8 @@ import java.lang.annotation.*;
/** /**
* @Author jilin * @Author jilin
* @Date 2021/11/09 11:59 * @author Xuwanxin
* @Date 2022/11/1
* 分页aop * 分页aop
**/ **/
@Target({ElementType.PARAMETER, ElementType.METHOD}) @Target({ElementType.PARAMETER, ElementType.METHOD})