diff --git a/inventory-dao/src/main/java/com/rzyc/mapper/InPostItemMapper.java b/inventory-dao/src/main/java/com/rzyc/mapper/InPostItemMapper.java new file mode 100644 index 0000000..6182d9d --- /dev/null +++ b/inventory-dao/src/main/java/com/rzyc/mapper/InPostItemMapper.java @@ -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; + +/** + *

+ * Mapper 接口 + *

+ * + * @author + * @since 2023-01-03 + */ +@Repository +public interface InPostItemMapper extends BaseMapper { + + /** + * 插入list + * + * @param list + * @return int + */ + int insertList(@Param("list") List list); + + /** + * 查询清单 + * + * @param postId + * @return InPostItem + */ + InPostItem selectByPostId(String postId); + +} \ No newline at end of file diff --git a/inventory-dao/src/main/java/com/rzyc/mapper/InPostListMapper.java b/inventory-dao/src/main/java/com/rzyc/mapper/InPostListMapper.java new file mode 100644 index 0000000..abf40d5 --- /dev/null +++ b/inventory-dao/src/main/java/com/rzyc/mapper/InPostListMapper.java @@ -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; + +/** + *

+ * 工作要务清单 Mapper 接口 + *

+ * + * @author + * @since 2023-01-03 + */ +@Repository +public interface InPostListMapper extends BaseMapper { + + /** + * 插入list + * @return list + * @param list + * */ + int insertList(@Param("list") Listlist); + + + /** + * 查询行业公共岗位履职清单 + * @return list + * @param industry + * @param listId + * */ + ListselectByListId(@Param("industry") String industry,@Param("listId") String listId); + +} diff --git a/inventory-dao/src/main/java/com/rzyc/mapper/InPostMapper.java b/inventory-dao/src/main/java/com/rzyc/mapper/InPostMapper.java new file mode 100644 index 0000000..e9464e8 --- /dev/null +++ b/inventory-dao/src/main/java/com/rzyc/mapper/InPostMapper.java @@ -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; + +/** + *

+ * 行业公共岗位表 Mapper 接口 + *

+ * + * @author + * @since 2023-01-03 + */ +@Repository +public interface InPostMapper extends BaseMapper { + + /** + * 导入list + * @param list + * @return int + * */ + int insertList(@Param("list") Listlist); + + /** + * 查询公共岗位 + * @param industryId + * @return list + * */ + ListselectByIndustryId(String industryId); +} diff --git a/inventory-dao/src/main/java/com/rzyc/mapper/ent/InListItemMapper.java b/inventory-dao/src/main/java/com/rzyc/mapper/ent/InListItemMapper.java index 6fb9320..816acae 100644 --- a/inventory-dao/src/main/java/com/rzyc/mapper/ent/InListItemMapper.java +++ b/inventory-dao/src/main/java/com/rzyc/mapper/ent/InListItemMapper.java @@ -30,4 +30,11 @@ public interface InListItemMapper extends BaseMapper { * @return int * */ int insertItem(@Param("list") Listlist); + + /** + *导入清单项 + * @param list + * @return int + * */ + int insertInListItem(@Param("list") Listlist); } diff --git a/inventory-dao/src/main/java/com/rzyc/model/EasyExcel/EasyExcelInList.java b/inventory-dao/src/main/java/com/rzyc/model/EasyExcel/EasyExcelInList.java index 4d070dc..6fa5fd3 100644 --- a/inventory-dao/src/main/java/com/rzyc/model/EasyExcel/EasyExcelInList.java +++ b/inventory-dao/src/main/java/com/rzyc/model/EasyExcel/EasyExcelInList.java @@ -5,14 +5,15 @@ import lombok.Getter; import lombok.Setter; -@Getter -@Setter -@EqualsAndHashCode + /** * EasyExcel导入行业清单 * @author Xuwanxin * @date 2022/12/15 * */ +@Getter +@Setter +@EqualsAndHashCode public class EasyExcelInList { private String industry; private String listName; diff --git a/inventory-dao/src/main/java/com/rzyc/model/EasyExcel/EasyExcelPostList.java b/inventory-dao/src/main/java/com/rzyc/model/EasyExcel/EasyExcelPostList.java new file mode 100644 index 0000000..90363a2 --- /dev/null +++ b/inventory-dao/src/main/java/com/rzyc/model/EasyExcel/EasyExcelPostList.java @@ -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; + +} diff --git a/inventory-dao/src/main/java/com/rzyc/model/InPost.java b/inventory-dao/src/main/java/com/rzyc/model/InPost.java new file mode 100644 index 0000000..c0f52db --- /dev/null +++ b/inventory-dao/src/main/java/com/rzyc/model/InPost.java @@ -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; + +/** + *

+ * 行业公共岗位表 + *

+ * + * @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 + + "}"; + } +} diff --git a/inventory-dao/src/main/java/com/rzyc/model/InPostItem.java b/inventory-dao/src/main/java/com/rzyc/model/InPostItem.java new file mode 100644 index 0000000..c29eec1 --- /dev/null +++ b/inventory-dao/src/main/java/com/rzyc/model/InPostItem.java @@ -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; + +/** + *

+ * + *

+ * + * @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 + + "}"; + } +} diff --git a/inventory-dao/src/main/java/com/rzyc/model/InPostList.java b/inventory-dao/src/main/java/com/rzyc/model/InPostList.java new file mode 100644 index 0000000..eb127f8 --- /dev/null +++ b/inventory-dao/src/main/java/com/rzyc/model/InPostList.java @@ -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; + +/** + *

+ * 工作要务清单 + *

+ * + * @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 + + "}"; + } +} diff --git a/inventory-dao/src/main/resources/mapper/InPostItemMapper.xml b/inventory-dao/src/main/resources/mapper/InPostItemMapper.xml new file mode 100644 index 0000000..46eb4dd --- /dev/null +++ b/inventory-dao/src/main/resources/mapper/InPostItemMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + in_post_item_id, in_list, in_list_item_id, public_post_id, create_time, create_by + + + insert into in_post_item (in_post_item_id,in_list,in_list_item_id,public_post_id,create_time,create_by)values + + (#{list.inPostItemId}, + #{list.inList}, + #{list.inListItemId}, + #{list.publicPostId}, + #{list.createTime}, + #{list.createBy}) + + + + + diff --git a/inventory-dao/src/main/resources/mapper/InPostListMapper.xml b/inventory-dao/src/main/resources/mapper/InPostListMapper.xml new file mode 100644 index 0000000..c9a5b3c --- /dev/null +++ b/inventory-dao/src/main/resources/mapper/InPostListMapper.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 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 + + (#{list.publicPostListId}, + #{list.publicPostId}, + #{list.listId}, + #{list.publicItemTitle}, + #{list.publicItemContent}, + #{list.sortId},#{list.standard}, + #{list.frequency}, + #{list.createTime}, + #{list.createBy}) + + + + + diff --git a/inventory-dao/src/main/resources/mapper/InPostMapper.xml b/inventory-dao/src/main/resources/mapper/InPostMapper.xml new file mode 100644 index 0000000..07577af --- /dev/null +++ b/inventory-dao/src/main/resources/mapper/InPostMapper.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + 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 + + + insert into in_post (public_post_id,public_post_name,public_post_path,public_post_level,create_by,create_time,industry_id)values + + (#{list.publicPostId}, + #{list.publicPostName}, + #{list.publicPostPath}, + #{list.publicPostLevel}, + #{list.createBy}, + #{list.createTime}, + #{list.industryId}) + + + + + diff --git a/inventory-dao/src/main/resources/mapper/ent/InListItemMapper.xml b/inventory-dao/src/main/resources/mapper/ent/InListItemMapper.xml index 60586da..5fbf5a4 100644 --- a/inventory-dao/src/main/resources/mapper/ent/InListItemMapper.xml +++ b/inventory-dao/src/main/resources/mapper/ent/InListItemMapper.xml @@ -44,6 +44,7 @@ item_basis, item_proof, item_law, sort_id, del_state,create_time, create_by, mod + + + insert into in_list_item (item_id,list_id,industry_id, item_title,item_content,del_state,create_by,create_time,sort_id)values + + (#{list.itemId}, + #{list.listId}, + #{list.industryId}, + #{list.itemTitle}, + #{list.itemContent}, + 1, + #{list.createBy}, + #{list.createTime}, + #{list.sortId}) + + + diff --git a/inventory-gov/pom.xml b/inventory-gov/pom.xml index 27ddf1e..69b5306 100644 --- a/inventory-gov/pom.xml +++ b/inventory-gov/pom.xml @@ -228,6 +228,14 @@ + + + com.alibaba + easyexcel + 3.1.3 + + + diff --git a/inventory-gov/src/main/java/com/rzyc/config/PageAspect.java b/inventory-gov/src/main/java/com/rzyc/config/PageAspect.java new file mode 100644 index 0000000..f4c7b84 --- /dev/null +++ b/inventory-gov/src/main/java/com/rzyc/config/PageAspect.java @@ -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; + } +} diff --git a/inventory-gov/src/main/java/com/rzyc/controller/BaseController.java b/inventory-gov/src/main/java/com/rzyc/controller/BaseController.java index 34b50d1..5a326cb 100644 --- a/inventory-gov/src/main/java/com/rzyc/controller/BaseController.java +++ b/inventory-gov/src/main/java/com/rzyc/controller/BaseController.java @@ -487,6 +487,19 @@ public class BaseController { @Autowired 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 changeDynamicRole = new ArrayList<>(); + //管理员角色id protected static String ADMIN_ROLE_ID = "295EF8C3-902F-41F0-95C8-D3AB9C6DA143"; diff --git a/inventory-gov/src/main/java/com/rzyc/controller/ImportController.java b/inventory-gov/src/main/java/com/rzyc/controller/ImportController.java index dd378ad..32094ab 100644 --- a/inventory-gov/src/main/java/com/rzyc/controller/ImportController.java +++ b/inventory-gov/src/main/java/com/rzyc/controller/ImportController.java @@ -16,12 +16,15 @@ import com.rzyc.model.oth.OthRefuge; import com.rzyc.model.user.ListPerform; import com.rzyc.model.user.SysUnit; import com.rzyc.model.user.SysUser; +import com.rzyc.service.PcBusinessService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.poi.ss.usermodel.*; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -41,6 +44,13 @@ public class ImportController extends com.rzyc.controller.BaseController { //街道id protected String STREET = "510114102000"; + private PcBusinessService pcBusinessService; + + @Autowired + public ImportController(PcBusinessService pcBusinessService) { + this.pcBusinessService = pcBusinessService; + } + /** * 导入应急避难场所 * @param file @@ -2975,5 +2985,21 @@ public class ImportController extends com.rzyc.controller.BaseController { 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"; + } + + } diff --git a/inventory-gov/src/main/java/com/rzyc/controller/IndustryListController.java b/inventory-gov/src/main/java/com/rzyc/controller/IndustryListController.java index d4bd6f0..95abcdb 100644 --- a/inventory-gov/src/main/java/com/rzyc/controller/IndustryListController.java +++ b/inventory-gov/src/main/java/com/rzyc/controller/IndustryListController.java @@ -7,13 +7,18 @@ import com.common.utils.StringUtils; import com.common.utils.model.*; import com.github.pagehelper.Page; 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.ent.BaseInClass; import com.rzyc.model.ent.InList; import com.rzyc.model.ent.InListItem; +import com.rzyc.service.PcBusinessService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; @@ -37,6 +42,8 @@ import java.util.List; @Validated @RestController public class IndustryListController extends BaseController{ + @Autowired + private PcBusinessService pcBusinessService; /** * 父级行业列表 @@ -202,5 +209,54 @@ public class IndustryListController extends BaseController{ return url; } + /** + * 读取行业公共岗位 + * @param industryId + * @return + */ + @ApiOperation(value = "读取行业公共岗位", notes = "读取行业公共岗位") + @GetMapping("/getIndustryPost") + @ResponseBody + public SingleResult getIndustryPost(@RequestParam(required = true)String industryId)throws Exception{ + return pcBusinessService.selectByIndustryId(industryId); + } + + + /** + * 读取行业公共岗位责任清单 + * @param industryId + * @return + */ + @ApiOperation(value = "读取行业公共岗位责任清单", notes = "读取行业公共岗位责任清单") + @GetMapping("/getIndustryPostDuty") + @ResponseBody + public SingleResult 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 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()); + } + + + + + + + + + + } diff --git a/inventory-gov/src/main/java/com/rzyc/service/PcBusinessService.java b/inventory-gov/src/main/java/com/rzyc/service/PcBusinessService.java index c2d2857..2b5fe20 100644 --- a/inventory-gov/src/main/java/com/rzyc/service/PcBusinessService.java +++ b/inventory-gov/src/main/java/com/rzyc/service/PcBusinessService.java @@ -1,5 +1,6 @@ package com.rzyc.service; +import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.common.utils.Arith; @@ -18,15 +19,18 @@ import com.rzyc.controller.BaseController; import com.rzyc.enums.DelState; import com.rzyc.enums.RedisKeys; 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.ent.EntPost; -import com.rzyc.model.ent.EntUser; -import com.rzyc.model.ent.InEntList; -import com.rzyc.model.ent.SysEnterprise; +import com.rzyc.model.ent.*; +import com.rzyc.utils.easyexcel.EntEnterprisePostListener; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; 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.regex.Matcher; import java.util.regex.Pattern; @@ -60,4 +64,32 @@ public class PcBusinessService extends BaseController { 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(); + Pageposts = (Page) 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(); + Pageposts = (Page) inPostListMapper.selectByListId(industryId,listId); + singleResult.setDataPager(posts); + return singleResult; + } + + public SingleResult selectByIndustryId(String industryId){ + SingleResult singleResult = new SingleResult(); + Listposts = inPostMapper.selectByIndustryId(industryId); + singleResult.setData(posts); + return singleResult; + } + + } diff --git a/inventory-gov/src/main/java/com/rzyc/utils/easyexcel/EntEnterprisePostListener.java b/inventory-gov/src/main/java/com/rzyc/utils/easyexcel/EntEnterprisePostListener.java new file mode 100644 index 0000000..aaf071e --- /dev/null +++ b/inventory-gov/src/main/java/com/rzyc/utils/easyexcel/EntEnterprisePostListener.java @@ -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 { + + 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 cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT); + + + /** + * 缓存的岗位 + */ + private List cachePost = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT); + /** + * 缓存的履职清单 + */ + private List cachePostList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT); + /** + * 缓存的责任清单中间表 + */ + private List cachePostItem = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT); + /** + * 缓存的责任清单 + */ + private List 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; + } +} diff --git a/utils/src/main/java/com/common/utils/pager/PageOperation.java b/utils/src/main/java/com/common/utils/pager/PageOperation.java index dacee97..ffc5f47 100644 --- a/utils/src/main/java/com/common/utils/pager/PageOperation.java +++ b/utils/src/main/java/com/common/utils/pager/PageOperation.java @@ -4,7 +4,8 @@ import java.lang.annotation.*; /** * @Author jilin - * @Date 2021/11/09 11:59 + * @author Xuwanxin + * @Date 2022/11/1 * 分页aop **/ @Target({ElementType.PARAMETER, ElementType.METHOD})