Commit 2dda5080 authored by 廖鑫's avatar 廖鑫

厅局办件推送,加入页面修改,页面导入excel,事项信息排除,办件推送限制

parent 52ca33f4
......@@ -16,7 +16,6 @@
<groupId>com.mortals.xhx</groupId>
<artifactId>xhx-base</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<dependencies>
......
......@@ -46,12 +46,23 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.20</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
......
......@@ -34,9 +34,21 @@
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.20</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
......@@ -59,9 +71,11 @@
<version>2.0.5</version>
</dependency>
<!-- 加入Caffeine缓存 处理数据提高效率-->
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
</dependency>
<!--处理身份证格式-->
<dependency>
......@@ -72,4 +86,6 @@
</dependencies>
</project>
......@@ -30,6 +30,9 @@ const router = new Router({
...restBuilder('area', 'system/area'), // 系统管理-区域管理
...restBuilder('arameter', 'arameter'), // 系统管理-区域管理
//在此添加业务模块
//以下为基础路由配置
......
......@@ -54,8 +54,8 @@ public class MybatisConfiguration extends AbstractMybatisConfiguration {
@Bean(name = "sqlSessionFactory")
public SqlSessionFactory sqlSessionFactoryBean(@Qualifier("dataSource") DataSource dataSource) {
return super.getSqlSessionFactoryBean(dataSource);
// return getSqlSessionFactoryBean(dataSource);
// return super.getSqlSessionFactoryBean(dataSource);
return getSqlSessionFactoryBean(dataSource);
}
public SqlSessionFactory getSqlSessionFactoryBean(DataSource dataSource) {
......
package com.mortals.xhx.modules.arameter.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.modules.arameter.model.ArameterEntity;
/**
* <p>Title: 表</p>
* <p>Description: ArameterDao DAO接口 </p>
* @author
* @version 1.0.0
*/
public interface ArameterDao extends ICRUDDao<ArameterEntity,Long> {
}
package com.mortals.xhx.modules.arameter.dao.ibatis;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.modules.arameter.dao.ArameterDao;
import com.mortals.xhx.modules.arameter.model.ArameterEntity;
import org.springframework.stereotype.Repository;
/**
* <p>Title: 表</p>
* <p>Description: ArameterDaoImpl DAO接口 </p>
* @author
* @version 1.0.0
*/
@Repository("arameterDao")
public class ArameterDaoImpl extends BaseCRUDDaoMybatis<ArameterEntity,Long> implements ArameterDao {
}
package com.mortals.xhx.modules.arameter.model;
import java.util.Date;
import com.mortals.framework.model.BaseEntityLong;
/**
*
* Description:Arameter
* date: 2021-8-9 17:30:56
*/
public class ArameterEntity extends BaseEntityLong{
private static final long serialVersionUID = 1628501456199L;
/**
* 入驻系统名称
*/
private String eventName;
/**
* 入驻系统编码
*/
private String eventCode;
/**
* 申请并受理接口地址
*/
private String acceptAdress;
/**
* 审查接口地址
*/
private String reviewAdress;
/**
* 决定接口地址
*/
private String decideAdress;
/**
* 创建时间
*/
private Date createDate;
/**
* 更新时间
*/
private Date updateDate;
/**
* 省
*/
private String province;
/**
* 市
*/
private String city;
/**
* 区/县
*/
private String county;
/**
* 街道
*/
private String address;
/**
* 阈值
*/
private String thresholdValue;
/**
* 创建者id
*/
private String creatorId;
/**
* 地区编码
*/
private String areaCode;
public ArameterEntity(){
}
/**
* 获取 入驻系统名称
* @return eventName
*/
public String getEventName() {
return this.eventName;
}
/**
* 设置 入驻系统名称
* @param eventName
*/
public void setEventName(String eventName) {
this.eventName = eventName;
}
/**
* 获取 入驻系统编码
* @return eventCode
*/
public String getEventCode() {
return this.eventCode;
}
/**
* 设置 入驻系统编码
* @param eventCode
*/
public void setEventCode(String eventCode) {
this.eventCode = eventCode;
}
/**
* 获取 申请并受理接口地址
* @return acceptAdress
*/
public String getAcceptAdress() {
return this.acceptAdress;
}
/**
* 设置 申请并受理接口地址
* @param acceptAdress
*/
public void setAcceptAdress(String acceptAdress) {
this.acceptAdress = acceptAdress;
}
/**
* 获取 审查接口地址
* @return reviewAdress
*/
public String getReviewAdress() {
return this.reviewAdress;
}
/**
* 设置 审查接口地址
* @param reviewAdress
*/
public void setReviewAdress(String reviewAdress) {
this.reviewAdress = reviewAdress;
}
/**
* 获取 决定接口地址
* @return decideAdress
*/
public String getDecideAdress() {
return this.decideAdress;
}
/**
* 设置 决定接口地址
* @param decideAdress
*/
public void setDecideAdress(String decideAdress) {
this.decideAdress = decideAdress;
}
/**
* 获取 创建时间
* @return createDate
*/
public Date getCreateDate() {
return this.createDate;
}
/**
* 设置 创建时间
* @param createDate
*/
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
/**
* 获取 更新时间
* @return updateDate
*/
public Date getUpdateDate() {
return this.updateDate;
}
/**
* 设置 更新时间
* @param updateDate
*/
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
/**
* 获取 省
* @return province
*/
public String getProvince() {
return this.province;
}
/**
* 设置 省
* @param province
*/
public void setProvince(String province) {
this.province = province;
}
/**
* 获取 市
* @return city
*/
public String getCity() {
return this.city;
}
/**
* 设置 市
* @param city
*/
public void setCity(String city) {
this.city = city;
}
/**
* 获取 区/县
* @return county
*/
public String getCounty() {
return this.county;
}
/**
* 设置 区/县
* @param county
*/
public void setCounty(String county) {
this.county = county;
}
/**
* 获取 街道
* @return address
*/
public String getAddress() {
return this.address;
}
/**
* 设置 街道
* @param address
*/
public void setAddress(String address) {
this.address = address;
}
/**
* 获取 阈值
* @return thresholdValue
*/
public String getThresholdValue() {
return this.thresholdValue;
}
/**
* 设置 阈值
* @param thresholdValue
*/
public void setThresholdValue(String thresholdValue) {
this.thresholdValue = thresholdValue;
}
/**
* 获取 创建者id
* @return creatorId
*/
public String getCreatorId() {
return this.creatorId;
}
/**
* 设置 创建者id
* @param creatorId
*/
public void setCreatorId(String creatorId) {
this.creatorId = creatorId;
}
/**
* 获取 地区编码
* @return areaCode
*/
public String getAreaCode() {
return this.areaCode;
}
/**
* 设置 地区编码
* @param areaCode
*/
public void setAreaCode(String areaCode) {
this.areaCode = areaCode;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null)
return false;
if (obj instanceof ArameterEntity) {
ArameterEntity tmp = (ArameterEntity) obj;
if (this.getId().longValue() == tmp.getId().longValue()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb
.append(",id:").append(getId())
.append(",eventName:").append(getEventName())
.append(",eventCode:").append(getEventCode())
.append(",acceptAdress:").append(getAcceptAdress())
.append(",reviewAdress:").append(getReviewAdress())
.append(",decideAdress:").append(getDecideAdress())
.append(",createDate:").append(getCreateDate())
.append(",updateDate:").append(getUpdateDate())
.append(",province:").append(getProvince())
.append(",city:").append(getCity())
.append(",county:").append(getCounty())
.append(",address:").append(getAddress())
.append(",thresholdValue:").append(getThresholdValue())
.append(",creatorId:").append(getCreatorId())
.append(",areaCode:").append(getAreaCode())
;
return sb.toString();
}
public void initAttrValue(){
this.eventName = null;
this.eventCode = null;
this.acceptAdress = null;
this.reviewAdress = null;
this.decideAdress = null;
this.createDate = null;
this.updateDate = null;
this.province = null;
this.city = null;
this.county = null;
this.address = null;
this.thresholdValue = null;
this.creatorId = null;
this.areaCode = null;
}
}
\ No newline at end of file
package com.mortals.xhx.modules.arameter.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.modules.arameter.model.ArameterEntity;
/**
* <p>Title: 表</p>
* <p>Description: ArameterService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
public interface ArameterService extends ICRUDService<ArameterEntity,Long>{
}
\ No newline at end of file
package com.mortals.xhx.modules.arameter.service.impl;
import cn.hutool.core.date.DateTime;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.xhx.common.utils.SnowFlakeUtil;
import com.mortals.xhx.modules.arameter.dao.ArameterDao;
import com.mortals.xhx.modules.arameter.model.ArameterEntity;
import com.mortals.xhx.modules.arameter.service.ArameterService;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
/**
* <p>Title: 表</p>
* <p>Description: ArameterService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
@Service("arameterService")
public class ArameterServiceImpl extends AbstractCRUDServiceImpl<ArameterDao, ArameterEntity, Long> implements ArameterService {
@Override
protected void saveBefore(ArameterEntity entity, Context context) throws AppException {
if (entity.newEntity()){
entity.setId(SnowFlakeUtil.get().nextId());
entity.setCreatorId(String.valueOf(context.getUser().getId()));
//固定阈值,先写死
entity.setThresholdValue("6");
entity.setCreateTime(DateTime.now());
entity.setUpdateTime(entity.getUpdateTime());
}
super.saveBefore(entity, context);
}
}
\ No newline at end of file
package com.mortals.xhx.modules.arameter.web;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mortals.xhx.modules.arameter.model.ArameterEntity;
import com.mortals.xhx.modules.arameter.service.ArameterService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.mortals.framework.web.BaseCRUDJsonController;
import org.springframework.web.bind.annotation.PostMapping;
import com.alibaba.fastjson.JSONObject;
/**
* <p>Title: 表</p>
* <p>Description: ArameterController </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
@RestController
@RequestMapping("arameter")
public class ArameterController extends BaseCRUDJsonController<ArameterService,ArameterForm, ArameterEntity,Long> {
public ArameterController(){
super.setFormClass(ArameterForm.class);
super.setModuleDesc( "表");
}
/**
* 查询表
*/
@PostMapping(value="list")
public String list(HttpServletRequest request, HttpServletResponse response, ArameterForm form) {
try{
return super.list(request, response, form);
}catch(Exception e){
log.error("查询表列表错误",e);
JSONObject ret = new JSONObject();
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, super.convertException(e));
return ret.toJSONString();
}
}
/**
* 添加表
*/
@PostMapping(value="add")
public String add(HttpServletRequest request, HttpServletResponse response, ArameterForm form) {
try{
return super.add(request, response, form);
}catch(Exception e){
log.error("添加表错误",e);
JSONObject ret = new JSONObject();
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, super.convertException(e));
return ret.toJSONString();
}
}
/**
* 编辑表
*/
@PostMapping(value="edit")
public String edit(HttpServletRequest request, HttpServletResponse response, ArameterForm form) {
try{
return super.edit(request, response, form);
}catch(Exception e){
log.error("编辑表错误",e);
JSONObject ret = new JSONObject();
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, super.convertException(e));
return ret.toJSONString();
}
}
/**
* 保存表
*/
@PostMapping(value="save")
public String save(HttpServletRequest request, HttpServletResponse response, ArameterForm form) {
try{
return super.save(request, response, form);
}catch(Exception e){
log.error("保存表错误",e);
JSONObject ret = new JSONObject();
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, super.convertException(e));
return ret.toJSONString();
}
}
/**
* 删除表
*/
@PostMapping(value="delete")
public String delete(HttpServletRequest request, HttpServletResponse response, ArameterForm form) {
try{
return super.delete(request, response, form);
}catch(Exception e){
log.error("删除表错误",e);
JSONObject ret = new JSONObject();
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, super.convertException(e));
return ret.toJSONString();
}
}
/**
* 查看表
*/
@PostMapping(value="view")
public String view(HttpServletRequest request, HttpServletResponse response, ArameterForm form) {
try{
return super.view(request, response, form);
}catch(Exception e){
log.error("查看表错误",e);
JSONObject ret = new JSONObject();
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, super.convertException(e));
return ret.toJSONString();
}
}
}
\ No newline at end of file
package com.mortals.xhx.modules.arameter.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.modules.arameter.model.ArameterEntity;
import com.mortals.xhx.modules.arameter.model.ArameterQuery;
/**
* <p>Title: 表</p>
* <p>Description: ArameterForm </p>
* @author
* @version 1.0.0
*/
public class ArameterForm extends BaseCRUDFormLong<ArameterEntity> {
private ArameterEntity arameter = new ArameterEntity();
private ArameterQuery query = new ArameterQuery();
public ArameterForm(){
}
@Override
public ArameterEntity getEntity() {
return arameter;
}
public ArameterEntity getArameter() {
return arameter;
}
public void setArameter(ArameterEntity arameter) {
this.arameter = arameter;
}
@Override
public ArameterQuery getQuery() {
return query;
}
public void setQuery(ArameterQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.modules.area.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.base.system.area.model.AreaEntity;
/**
* <p>Title: 地区表</p>
* <p>Description: AreaDao DAO接口 </p>
* @author
* @version 1.0.0
*/
public interface AreaDao extends ICRUDDao<AreaEntity,Long>{
}
package com.mortals.xhx.modules.area.dao.ibatis;
import com.mortals.xhx.base.system.area.dao.AreaDao;
import com.mortals.xhx.base.system.area.model.AreaEntity;
import org.springframework.stereotype.Repository;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
/**
* <p>Title: 地区表</p>
* <p>Description: AreaDaoImpl DAO接口 </p>
* @author
* @version 1.0.0
*/
@Repository("areaDao")
public class AreaDaoImpl extends BaseCRUDDaoMybatis<AreaEntity,Long> implements AreaDao {
}
package com.mortals.xhx.modules.area.model;
import com.mortals.framework.model.BaseEntityLong;
/**
*
* Description:Area
* date: 2021-8-10 13:22:19
*/
public class AreaEntity extends BaseEntityLong{
private static final long serialVersionUID = 1628572939315L;
/**
* 地区名称
*/
private String areaName;
/**
* 地区简称
*/
private String areaSimpleName;
/**
* 上级地区ID
*/
private String parentAreaId;
/**
* 行政区域代码 行政区域代码
*/
private String areaCode;
/**
* 删除标识
*/
private String deleteFlag;
/**
* 创建人
*/
private String creatorId;
/**
* 创建人名称
*/
private String creatorName;
/**
* 创建时间
*/
private String createsTime;
/**
* 更新时间
*/
private String updatesTime;
/**
* 1省级,2市级,3区县级,4乡镇级,5村
*/
private String areaLevel;
/**
* 排序
*/
private String sortKey;
/**
* 地区层级编码
*/
private String areaLevelCode;
/**
* 临时使用确认地区层级
*/
private String submitAreaLevel;
/**
* 是否特殊区域:0.否,1.是
*/
private String isSpecial;
/**
* 行政区域描述
*/
private String areaDesc;
public AreaEntity(){
}
/**
* 获取 地区名称
* @return areaName
*/
public String getAreaName() {
return this.areaName;
}
/**
* 设置 地区名称
* @param areaName
*/
public void setAreaName(String areaName) {
this.areaName = areaName;
}
/**
* 获取 地区简称
* @return areaSimpleName
*/
public String getAreaSimpleName() {
return this.areaSimpleName;
}
/**
* 设置 地区简称
* @param areaSimpleName
*/
public void setAreaSimpleName(String areaSimpleName) {
this.areaSimpleName = areaSimpleName;
}
/**
* 获取 上级地区ID
* @return parentAreaId
*/
public String getParentAreaId() {
return this.parentAreaId;
}
/**
* 设置 上级地区ID
* @param parentAreaId
*/
public void setParentAreaId(String parentAreaId) {
this.parentAreaId = parentAreaId;
}
/**
* 获取 行政区域代码 行政区域代码
* @return areaCode
*/
public String getAreaCode() {
return this.areaCode;
}
/**
* 设置 行政区域代码 行政区域代码
* @param areaCode
*/
public void setAreaCode(String areaCode) {
this.areaCode = areaCode;
}
/**
* 获取 删除标识
* @return deleteFlag
*/
public String getDeleteFlag() {
return this.deleteFlag;
}
/**
* 设置 删除标识
* @param deleteFlag
*/
public void setDeleteFlag(String deleteFlag) {
this.deleteFlag = deleteFlag;
}
/**
* 获取 创建人
* @return creatorId
*/
public String getCreatorId() {
return this.creatorId;
}
/**
* 设置 创建人
* @param creatorId
*/
public void setCreatorId(String creatorId) {
this.creatorId = creatorId;
}
/**
* 获取 创建人名称
* @return creatorName
*/
public String getCreatorName() {
return this.creatorName;
}
/**
* 设置 创建人名称
* @param creatorName
*/
public void setCreatorName(String creatorName) {
this.creatorName = creatorName;
}
/**
* 获取 创建时间
* @return createsTime
*/
public String getCreatesTime() {
return this.createsTime;
}
/**
* 设置 创建时间
* @param createsTime
*/
public void setCreatesTime(String createsTime) {
this.createsTime = createsTime;
}
/**
* 获取 更新时间
* @return updatesTime
*/
public String getUpdatesTime() {
return this.updatesTime;
}
/**
* 设置 更新时间
* @param updatesTime
*/
public void setUpdatesTime(String updatesTime) {
this.updatesTime = updatesTime;
}
/**
* 获取 1省级,2市级,3区县级,4乡镇级,5村
* @return areaLevel
*/
public String getAreaLevel() {
return this.areaLevel;
}
/**
* 设置 1省级,2市级,3区县级,4乡镇级,5村
* @param areaLevel
*/
public void setAreaLevel(String areaLevel) {
this.areaLevel = areaLevel;
}
/**
* 获取 排序
* @return sortKey
*/
public String getSortKey() {
return this.sortKey;
}
/**
* 设置 排序
* @param sortKey
*/
public void setSortKey(String sortKey) {
this.sortKey = sortKey;
}
/**
* 获取 地区层级编码
* @return areaLevelCode
*/
public String getAreaLevelCode() {
return this.areaLevelCode;
}
/**
* 设置 地区层级编码
* @param areaLevelCode
*/
public void setAreaLevelCode(String areaLevelCode) {
this.areaLevelCode = areaLevelCode;
}
/**
* 获取 临时使用确认地区层级
* @return submitAreaLevel
*/
public String getSubmitAreaLevel() {
return this.submitAreaLevel;
}
/**
* 设置 临时使用确认地区层级
* @param submitAreaLevel
*/
public void setSubmitAreaLevel(String submitAreaLevel) {
this.submitAreaLevel = submitAreaLevel;
}
/**
* 获取 是否特殊区域:0.否,1.是
* @return isSpecial
*/
public String getIsSpecial() {
return this.isSpecial;
}
/**
* 设置 是否特殊区域:0.否,1.是
* @param isSpecial
*/
public void setIsSpecial(String isSpecial) {
this.isSpecial = isSpecial;
}
/**
* 获取 行政区域描述
* @return areaDesc
*/
public String getAreaDesc() {
return this.areaDesc;
}
/**
* 设置 行政区域描述
* @param areaDesc
*/
public void setAreaDesc(String areaDesc) {
this.areaDesc = areaDesc;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null)
return false;
if (obj instanceof AreaEntity) {
AreaEntity tmp = (AreaEntity) obj;
if (this.getId().longValue() == tmp.getId().longValue()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb
.append(",id:").append(getId())
.append(",areaName:").append(getAreaName())
.append(",areaSimpleName:").append(getAreaSimpleName())
.append(",parentAreaId:").append(getParentAreaId())
.append(",areaCode:").append(getAreaCode())
.append(",deleteFlag:").append(getDeleteFlag())
.append(",creatorId:").append(getCreatorId())
.append(",creatorName:").append(getCreatorName())
.append(",createsTime:").append(getCreatesTime())
.append(",updatesTime:").append(getUpdatesTime())
.append(",areaLevel:").append(getAreaLevel())
.append(",sortKey:").append(getSortKey())
.append(",areaLevelCode:").append(getAreaLevelCode())
.append(",submitAreaLevel:").append(getSubmitAreaLevel())
.append(",isSpecial:").append(getIsSpecial())
.append(",areaDesc:").append(getAreaDesc())
;
return sb.toString();
}
public void initAttrValue(){
this.areaName = null;
this.areaSimpleName = null;
this.parentAreaId = null;
this.areaCode = null;
this.deleteFlag = null;
this.creatorId = null;
this.creatorName = null;
this.createsTime = null;
this.updatesTime = null;
this.areaLevel = null;
this.sortKey = null;
this.areaLevelCode = null;
this.submitAreaLevel = null;
this.isSpecial = null;
this.areaDesc = null;
}
}
\ No newline at end of file
package com.mortals.xhx.modules.area.model;
import java.util.List;
/**
*
* Description:Area
* date: 2021-8-10 13:22:19
*/
public class AreaQuery extends AreaEntity{
private static final long serialVersionUID = 1628572939325L;
/** 主键ID */
private List<String> idList;
/** 地区名称 */
private List<String> areaNameList;
/** 地区简称 */
private List<String> areaSimpleNameList;
/** 上级地区ID */
private List<String> parentAreaIdList;
/** 行政区域代码 行政区域代码 */
private List<String> areaCodeList;
/** 删除标识 */
private List<String> deleteFlagList;
/** 创建人 */
private List<String> creatorIdList;
/** 创建人名称 */
private List<String> creatorNameList;
/** 创建时间 */
private List<String> createTimeList;
/** 更新时间 */
private List<String> updateTimeList;
/** 1省级,2市级,3区县级,4乡镇级,5村 */
private List<String> areaLevelList;
/** 排序 */
private List<String> sortKeyList;
/** 地区层级编码 */
private List<String> areaLevelCodeList;
/** 临时使用确认地区层级 */
private List<String> submitAreaLevelList;
/** 是否特殊区域:0.否,1.是 */
private List<String> isSpecialList;
/** 行政区域描述 */
private List<String> areaDescList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<AreaQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<AreaQuery> andConditionList;
public AreaQuery(){
}
/**
* 获取 主键ID
* @return idList
*/
public List<String> getIdList(){
return this.idList;
}
/**
* 设置 主键ID
* @param idList
*/
public void setIdList(List<String> idList){
this.idList = idList;
}
/**
* 获取 地区名称
* @return areaNameList
*/
public List<String> getAreaNameList(){
return this.areaNameList;
}
/**
* 设置 地区名称
* @param areaNameList
*/
public void setAreaNameList(List<String> areaNameList){
this.areaNameList = areaNameList;
}
/**
* 获取 地区简称
* @return areaSimpleNameList
*/
public List<String> getAreaSimpleNameList(){
return this.areaSimpleNameList;
}
/**
* 设置 地区简称
* @param areaSimpleNameList
*/
public void setAreaSimpleNameList(List<String> areaSimpleNameList){
this.areaSimpleNameList = areaSimpleNameList;
}
/**
* 获取 上级地区ID
* @return parentAreaIdList
*/
public List<String> getParentAreaIdList(){
return this.parentAreaIdList;
}
/**
* 设置 上级地区ID
* @param parentAreaIdList
*/
public void setParentAreaIdList(List<String> parentAreaIdList){
this.parentAreaIdList = parentAreaIdList;
}
/**
* 获取 行政区域代码 行政区域代码
* @return areaCodeList
*/
public List<String> getAreaCodeList(){
return this.areaCodeList;
}
/**
* 设置 行政区域代码 行政区域代码
* @param areaCodeList
*/
public void setAreaCodeList(List<String> areaCodeList){
this.areaCodeList = areaCodeList;
}
/**
* 获取 删除标识
* @return deleteFlagList
*/
public List<String> getDeleteFlagList(){
return this.deleteFlagList;
}
/**
* 设置 删除标识
* @param deleteFlagList
*/
public void setDeleteFlagList(List<String> deleteFlagList){
this.deleteFlagList = deleteFlagList;
}
/**
* 获取 创建人
* @return creatorIdList
*/
public List<String> getCreatorIdList(){
return this.creatorIdList;
}
/**
* 设置 创建人
* @param creatorIdList
*/
public void setCreatorIdList(List<String> creatorIdList){
this.creatorIdList = creatorIdList;
}
/**
* 获取 创建人名称
* @return creatorNameList
*/
public List<String> getCreatorNameList(){
return this.creatorNameList;
}
/**
* 设置 创建人名称
* @param creatorNameList
*/
public void setCreatorNameList(List<String> creatorNameList){
this.creatorNameList = creatorNameList;
}
/**
* 获取 创建时间
* @return createTimeList
*/
public List<String> getCreateTimeList(){
return this.createTimeList;
}
/**
* 设置 创建时间
* @param createTimeList
*/
public void setCreateTimeList(List<String> createTimeList){
this.createTimeList = createTimeList;
}
/**
* 获取 更新时间
* @return updateTimeList
*/
public List<String> getUpdateTimeList(){
return this.updateTimeList;
}
/**
* 设置 更新时间
* @param updateTimeList
*/
public void setUpdateTimeList(List<String> updateTimeList){
this.updateTimeList = updateTimeList;
}
/**
* 获取 1省级,2市级,3区县级,4乡镇级,5村
* @return areaLevelList
*/
public List<String> getAreaLevelList(){
return this.areaLevelList;
}
/**
* 设置 1省级,2市级,3区县级,4乡镇级,5村
* @param areaLevelList
*/
public void setAreaLevelList(List<String> areaLevelList){
this.areaLevelList = areaLevelList;
}
/**
* 获取 排序
* @return sortKeyList
*/
public List<String> getSortKeyList(){
return this.sortKeyList;
}
/**
* 设置 排序
* @param sortKeyList
*/
public void setSortKeyList(List<String> sortKeyList){
this.sortKeyList = sortKeyList;
}
/**
* 获取 地区层级编码
* @return areaLevelCodeList
*/
public List<String> getAreaLevelCodeList(){
return this.areaLevelCodeList;
}
/**
* 设置 地区层级编码
* @param areaLevelCodeList
*/
public void setAreaLevelCodeList(List<String> areaLevelCodeList){
this.areaLevelCodeList = areaLevelCodeList;
}
/**
* 获取 临时使用确认地区层级
* @return submitAreaLevelList
*/
public List<String> getSubmitAreaLevelList(){
return this.submitAreaLevelList;
}
/**
* 设置 临时使用确认地区层级
* @param submitAreaLevelList
*/
public void setSubmitAreaLevelList(List<String> submitAreaLevelList){
this.submitAreaLevelList = submitAreaLevelList;
}
/**
* 获取 是否特殊区域:0.否,1.是
* @return isSpecialList
*/
public List<String> getIsSpecialList(){
return this.isSpecialList;
}
/**
* 设置 是否特殊区域:0.否,1.是
* @param isSpecialList
*/
public void setIsSpecialList(List<String> isSpecialList){
this.isSpecialList = isSpecialList;
}
/**
* 获取 行政区域描述
* @return areaDescList
*/
public List<String> getAreaDescList(){
return this.areaDescList;
}
/**
* 设置 行政区域描述
* @param areaDescList
*/
public void setAreaDescList(List<String> areaDescList){
this.areaDescList = areaDescList;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<AreaQuery> getOrConditionList(){
return this.orConditionList;
}
/**
* 设置 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @param orConditionList
*/
public void setOrConditionList(List<AreaQuery> orConditionList){
this.orConditionList = orConditionList;
}
/**
* 获取 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @return andConditionList
*/
public List<AreaQuery> getAndConditionList(){
return this.andConditionList;
}
/**
* 设置 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @param andConditionList
*/
public void setAndConditionList(List<AreaQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.modules.area.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.base.system.area.model.AreaEntity;
/**
* <p>Title: 地区表</p>
* <p>Description: AreaService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
public interface AreaService extends ICRUDService<AreaEntity,Long>{
}
\ No newline at end of file
package com.mortals.xhx.modules.area.service.impl;
import com.mortals.xhx.base.system.area.model.AreaEntity;
import com.mortals.xhx.modules.area.dao.AreaDao;
import com.mortals.xhx.modules.area.service.AreaService;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
/**
* <p>Title: 地区表</p>
* <p>Description: AreaService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
@Service("areaService")
public class AreaServiceImpl extends AbstractCRUDServiceImpl<AreaDao, AreaEntity, Long> implements AreaService {
}
\ No newline at end of file
package com.mortals.xhx.modules.area.web;
import com.mortals.xhx.base.system.area.model.AreaEntity;
import com.mortals.xhx.modules.area.service.AreaService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.mortals.framework.web.BaseCRUDJsonMappingController;
/**
* <p>Title: 地区表</p>
* <p>Description: AreaController </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author zxfei
* @version 1.0.0
*/
@RestController
@RequestMapping("area")
public class AreaController extends BaseCRUDJsonMappingController<AreaService,AreaForm, AreaEntity,Long> {
public AreaController(){
super.setFormClass(AreaForm.class);
super.setModuleDesc("地区表");
}
}
\ No newline at end of file
package com.mortals.xhx.modules.area.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.base.system.area.model.AreaEntity;
import com.mortals.xhx.base.system.area.model.AreaQuery;
/**
* <p>Title: 地区表</p>
* <p>Description: AreaForm </p>
* @author
* @version 1.0.0
*/
public class AreaForm extends BaseCRUDFormLong<AreaEntity> {
private AreaEntity area = new AreaEntity();
private AreaQuery query = new AreaQuery();
public AreaForm(){
}
@Override
public AreaEntity getEntity() {
return area;
}
public AreaEntity getArea() {
return area;
}
public void setArea(AreaEntity area) {
this.area = area;
}
@Override
public AreaQuery getQuery() {
return query;
}
public void setQuery(AreaQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.modules.implementlist.config;
import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.concurrent.TimeUnit;
/**
* @Title: Caffeine缓存配置类,
* @Package: com.atm.affair.config
* @Description: 单独配置,在使用时调用,不与springcache依赖(及不使用注解方式)
* @Author: tinker
* @Date: 4/10/21
* @Version: V1.0
*/
@Configuration
public class CaffCacheConfig {
@Bean
public Cache<String, Object> caffeineCache() {
return Caffeine.newBuilder()
.expireAfterWrite(1, TimeUnit.DAYS) //设置最后一次写入或访问后固定时间期限
.initialCapacity(100) //初始大小
.maximumSize(5000) //最大条数
.build();
}
}
......@@ -11,5 +11,10 @@ import com.mortals.xhx.modules.implementlist.model.ImplementlistEntity;
*/
public interface ImplementlistService extends ICRUDService<ImplementlistEntity,Long> {
/**
* 获取实施清单
* @param event_code 实施清单编码
* @return
*/
ImplementlistEntity getThImplement(String event_code);
}
\ No newline at end of file
package com.mortals.xhx.modules.implementlist.service.impl;
import com.github.benmanes.caffeine.cache.Cache;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.modules.implementlist.dao.ImplementlistDao;
import com.mortals.xhx.modules.implementlist.model.ImplementlistEntity;
import com.mortals.xhx.modules.implementlist.service.ImplementlistService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>Title: 实施清单主表</p>
* <p>Description: ImplementlistService service接口 </p>
......@@ -13,6 +18,27 @@ import org.springframework.stereotype.Service;
* @version 1.0.0
*/
@Service("implementlistService")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class ImplementlistServiceImpl extends AbstractCRUDServiceImpl<ImplementlistDao, ImplementlistEntity, Long> implements ImplementlistService {
private final Cache<String, Object> caffeineCache;
@Override
public ImplementlistEntity getThImplement(String event_code) {
caffeineCache.getIfPresent(event_code);
ImplementlistEntity thImplementList = (ImplementlistEntity) caffeineCache.asMap().get(event_code);
if (thImplementList != null) {
return thImplementList;
}
ImplementlistEntity implementlistEntity = new ImplementlistEntity();
implementlistEntity.setEventCode(event_code);
List<ImplementlistEntity> implementlistEntities = this.find(implementlistEntity, null);
if (implementlistEntities.size() > 0) {
for (ImplementlistEntity entity : implementlistEntities) {
thImplementList=entity;
caffeineCache.put(event_code, entity);
}
}
return thImplementList;
}
}
\ No newline at end of file
......@@ -13,5 +13,4 @@ import java.util.List;
* @version 1.0.0
*/
public interface InformationDao extends ICRUDSubmeterDao<InformationEntity,Long>{
List<SupplementEntity> queryListForSupplementEntityList();
}
......@@ -38,8 +38,4 @@ public class InformationDaoImpl extends SubmeterDaoImpl<InformationEntity, Long>
return param;
}
@Override
public List<SupplementEntity> queryListForSupplementEntityList() {
return getSqlSession().selectList(getSqlId("queryList"), null);
}
}
......@@ -71,14 +71,13 @@ public class ApplyAndAcceptInformationTaskImpl implements ITaskExcuteService {
e.setBizStatus(NodeTypeEnum.审查.getDesc());
e.setNodeType(NodeTypeEnum.审查.getCode());
e.setProcessStatusName("审查");
informationService.update(e, null);
log.info("推送省一体化申请并受理成功,办件编码:" + ifResultInfo.getJSONObject("data").getString("code"));
} else {
e.setFailTimes(e.getFailTimes() + 1);
e.setFailReason(ifResultInfo.getString("message"));
informationService.update(e, null);
log.info("省一体化申请并受理数据推送失败:" + ifResultInfo.getString("message"));
}
informationService.update(e, null);
//记录接口交换记录
recordInterfaceExchangeRecord(post, ifResultInfo, e, dataMap);
} catch (Exception ex) {
......@@ -154,7 +153,7 @@ public class ApplyAndAcceptInformationTaskImpl implements ITaskExcuteService {
HashMap<String, Object> rprojectruntaskMap = new HashMap<>(16);
rprojectruntaskMap.put("nodeType", informationEntity.getNodeType());
rprojectruntaskMap.put("addUserId", "-1");
rprojectruntaskMap.put("curHandlerName", informationEntity.getCurHandlerName());
rprojectruntaskMap.put("curHandlerName", "");
rprojectruntaskMap.put("auditAdvice", "1");
rprojectruntaskMap.put("auditRemark", "同意");
rprojectruntaskMap.put("genTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(informationEntity.getGenTime()));
......
......@@ -105,21 +105,19 @@ public class DecideInformationTaskImpl implements ITaskExcuteService {
e.setBizStatus(NodeTypeEnum.办结.getDesc());
e.setNodeType(NodeTypeEnum.办结.getCode());
e.setProcessStatusName("办结");
informationService.update(e, null);
log.info("推送一体化决定数据成功,办件编码:" + ifResultInfo.getJSONObject("data").getString("code"));
log.info("推送一体化决定数据成功" );
} else {
e.setFailTimes(e.getFailTimes() + 1);
e.setFailReason(ifResultInfo.getString("message"));
informationService.update(e, null);
log.info("省一体化申请并受理数据推送失败:" + ifResultInfo.getString("message"));
}
informationService.update(e, null);
//记录接口交换记录
recordInterfaceExchangeRecord(post, ifResultInfo, e, dataMap);
} catch (Exception ex) {
log.error("省一体化决定数据推送失败:连接异常" + post);
//记录接口交换记录
recordInterfaceExchangeRecord(post, ifResultInfo, e, dataMap);
}
});
} else {
......
......@@ -105,14 +105,13 @@ public class ReviewInformationTaskImpl implements ITaskExcuteService {
e.setBizStatus(NodeTypeEnum.决定.getDesc());
e.setNodeType(NodeTypeEnum.决定.getCode());
e.setProcessStatusName("决定");
informationService.update(e, null);
log.info("推送一体化审查数据成功,");
} else {
e.setFailTimes(e.getFailTimes() + 1);
e.setFailReason(ifResultInfo.getString("message"));
informationService.update(e, null);
log.info("省一体化申请并受理数据推送失败:" + ifResultInfo.getString("message"));
}
informationService.update(e, null);
//记录接口交换记录
recordInterfaceExchangeRecord(post, ifResultInfo, e, dataMap);
} catch (Exception ex) {
......
package com.mortals.xhx.modules.supplement.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.framework.dao.ICRUDSubmeterDao;
import com.mortals.xhx.modules.supplement.model.SupplementEntity;
import org.apache.poi.ss.formula.functions.T;
import java.util.List;
/**
* <p>Title: 办件补录表</p>
* <p>Title: 办件信息临时表</p>
* <p>Description: SupplementDao DAO接口 </p>
* @author
* @version 1.0.0
*/
public interface SupplementDao extends ICRUDDao<SupplementEntity,Long>{
public interface SupplementDao extends ICRUDSubmeterDao<SupplementEntity,Long>{
}
......@@ -2,21 +2,38 @@ package com.mortals.xhx.modules.supplement.dao.ibatis;
import com.mortals.xhx.modules.supplement.dao.SupplementDao;
import com.mortals.xhx.modules.supplement.model.SupplementEntity;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.stereotype.Repository;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.framework.dao.ibatis.SubmeterDaoImpl;
import com.mortals.framework.model.TableParam;
import com.mortals.framework.model.TableStrategy;
import org.springframework.util.ObjectUtils;
import java.util.List;
import java.util.Date;
/**
* <p>Title: 办件补录表</p>
* <p>Description: SupplementDaoImpl DAO接口 </p>
*
* @author
* @version 1.0.0
*/
* <p>Title: 办件信息临时表</p>
* <p>Description: SupplementDaoImpl DAO接口 </p>
* @author
* @version 1.0.0
*/
@Repository("supplementDao")
public class SupplementDaoImpl extends BaseCRUDDaoMybatis<SupplementEntity, Long> implements SupplementDao {
public class SupplementDaoImpl extends SubmeterDaoImpl<SupplementEntity,Long> implements SupplementDao {
@Override
protected TableStrategy getTableStrategy()
{
return new TableStrategy("mortals_iot_zd_supplement_${unionTime}", TableStrategy.STRATEGY_BY_MONTH);
}
@Override
public TableParam getTableParam(SupplementEntity entity)
{
TableParam param = new TableParam();
if (!ObjectUtils.isEmpty(entity.getCreateTime())){
param.unionTime = entity.getCreateTime();
}
if (ObjectUtils.isEmpty(param.unionTime)) {
param.unionTime = new Date();
}
return param;
}
}
......@@ -2,13 +2,19 @@ package com.mortals.xhx.modules.supplement.listener;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.fastjson.JSONObject;
import com.mortals.xhx.common.code.SystemConstant;
import com.mortals.xhx.common.utils.DateByAffairUtils;
import com.mortals.xhx.common.utils.SnowFlakeUtil;
import com.mortals.xhx.modules.implementlist.model.ImplementlistEntity;
import com.mortals.xhx.modules.implementlist.service.ImplementlistService;
import com.mortals.xhx.modules.supplement.dao.SupplementDao;
import com.mortals.xhx.modules.supplement.model.SupplementEntity;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.List;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @author Wz
......@@ -18,6 +24,10 @@ import java.util.List;
@Slf4j
public class InformationDataConversionListener extends AnalysisEventListener<SupplementEntity> {
private SupplementDao supplementDao;
private ImplementlistService implementlistService;
/**
* 每隔5条存储数据库,实际使用中可以3000条,然后清理list ,方便内存回收
*/
......@@ -26,31 +36,110 @@ public class InformationDataConversionListener extends AnalysisEventListener<Sup
/**
* 这个集合用于接收 读取Excel文件得到的数据
*/
List<SupplementEntity> entityList=new ArrayList<SupplementEntity>();
List<SupplementEntity> entityList = new ArrayList<SupplementEntity>();
//装入当前excel的事项编码
List<String> eventCodeList = new ArrayList<>();
private SupplementDao supplementDao;
public InformationDataConversionListener(SupplementDao supplementDao){
this.supplementDao=supplementDao;
public InformationDataConversionListener(SupplementDao supplementDao, ImplementlistService implementlistService) {
this.supplementDao = supplementDao;
this.implementlistService = implementlistService;
}
//当前系统编码
private String SYS_CODE = "";
private String AREA_CODE = "";
public void currentSystemCode(String sysCode, String areaCode) {
this.SYS_CODE = sysCode;
this.AREA_CODE = areaCode;
}
//当前系统剩余多少条办件量(可推送的办件量)=固定阈值-已推送办件
private int FIXED_AMOUNT = 0;
public int theAmountOfDeliverablesThatCanBePushed(Integer limitTheNumberOfDocuments, int count) {
return FIXED_AMOUNT = limitTheNumberOfDocuments - count;
}
@SneakyThrows
@Override
public void invoke(SupplementEntity supplementEntity, AnalysisContext analysisContext) {
//调用方法生成临时表,在数据清洗后删除临时表
supplementEntity.setId(SnowFlakeUtil.get().nextId());
String dateTime = "";
if (SystemConstant.BEOR) {
dateTime = DateByAffairUtils.randomDate(SystemConstant.DAYS);
} else {
dateTime = DateByAffairUtils.randomBetweenDate(SystemConstant.DAYS);
}
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date dayRadomWorkingTime = DateByAffairUtils.getDayRadomWorkingTime(simpleDateFormat.parse(dateTime), null, null);
supplementEntity.setApplyTime(simpleDateFormat.format(dayRadomWorkingTime));
supplementEntity.setSysCode(SYS_CODE);
entityList.add(supplementEntity);
eventCodeList.add(supplementEntity.getImplCode());
if (entityList.size() > FIXED_AMOUNT) {
throw new RuntimeException("数据上传失败,失败原因: 今日推送量已超过5000,请明天再试");
} else {
//达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM
if (entityList.size() >= BATCH_COUNT) {
//判断当前上传的excel表格中那些是非本区域的办件
Map<String, Object> stringObjectMap = judgeTheProcessingArea(eventCodeList, AREA_CODE);
//判断当前是否还有数据,如果有数据,则表明当前map存在非本区域办件,则抛出异常
boolean easyToUseValue = stringObjectMap.get("boolean") != null ? false : true;
if (easyToUseValue) {
supplementDao.insertBatch(entityList);
//存储完成清理list
entityList.clear();
} else {
throw new RuntimeException("当前excel数据存在非本区域办件:" + stringObjectMap);
}
}
}
}
private Map<String, Object> judgeTheProcessingArea(List<String> eventCodeList, String areaCode) {
String shardKey = areaCode.substring(0, 4);
Map<String, Object> objectHashMap = new HashMap<>();
List<Object> objects =new ArrayList<>();
for (String eventCode : eventCodeList) {
//装入非本区域办件
//装入符合条件的办件信息
Map<String, String> stringStringHashMap = new HashMap<>();
ImplementlistEntity thImplement = implementlistService.getThImplement(eventCode);
if (!shardKey.equals(thImplement.getShardKey())) {
stringStringHashMap.put("eventName", thImplement.getEventName());
stringStringHashMap.put("eventCode", thImplement.getEventCode());
objects.add(stringStringHashMap);
}
}
if (objects.size() > 0) {
objectHashMap.put("affairs", objects);
}
if (null != objectHashMap) {
objectHashMap.put("code", "500");
objectHashMap.put("boolean", false);
} else {
objectHashMap.put("boolean", null);
}
return objectHashMap;
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
//判断当前上传的excel表格中那些是非本区域的办件
Map<String, Object> stringObjectMap = judgeTheProcessingArea(eventCodeList, AREA_CODE);
//判断当前是否还有数据,如果有数据,则表明当前map存在非本区域办件,则抛出异常
boolean easyToUseValue = stringObjectMap.get("boolean") != null ? false : true;
if (easyToUseValue) {
supplementDao.insertBatch(entityList);
} else {
throw new RuntimeException("当前excel数据存在非本区域办件:" + JSONObject.toJSONString(stringObjectMap));
}
log.info("=======Excel文件<<>>导入成功===========");
}
}
......@@ -8,14 +8,14 @@ import com.mortals.xhx.common.utils.ExcelConvertCardType;
import com.mortals.xhx.common.utils.ExcelConvertDateProperty;
import com.mortals.xhx.common.utils.ExcelConvertMainProperty;
/**
*
* Description:Supplement
* date: 2021-7-30 17:13:21
* date: 2021-8-9 13:36:05
*/
public class SupplementEntity extends BaseEntityLong{
private static final long serialVersionUID = 1627636401661L;
private static final long serialVersionUID = 1628487365457L;
/**
* 实施清单名称
......@@ -507,7 +507,7 @@ public class SupplementEntity extends BaseEntityLong{
this.acceptPhone = null;
this.sysCode = null;
this.isExecute = null;
this.isSuccess = null ;
this.isSuccess = null;
this.failReason = null;
}
}
\ No newline at end of file
......@@ -5,13 +5,22 @@ import java.util.List;
/**
*
* Description:Supplement
* date: 2021-7-30 17:13:21
* date: 2021-8-9 13:36:05
*/
public class SupplementQuery extends SupplementEntity{
private static final long serialVersionUID = 1627636401663L;
private static final long serialVersionUID = 1628487365457L;
/** 开始 主键ID,主键,业务生成 */
private Long idStart;
/** 结束 主键ID,主键,业务生成 */
private Long idEnd;
/** 增加 主键ID,主键,业务生成 */
private Long idIncrement;
/** 主键ID,主键,业务生成 */
private List <Long> idList;
/** 主键 */
private List<String> idList;
/** 实施清单名称 */
private List<String> implNameList;
......@@ -87,18 +96,66 @@ public class SupplementQuery extends SupplementEntity{
}
/**
* 获取 主键
* 获取 开始 主键ID,主键,业务生成
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 主键ID,主键,业务生成
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 主键ID,主键,业务生成
* @return idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 主键ID,主键,业务生成
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 主键ID,主键,业务生成
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 主键ID,主键,业务生成
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 主键ID,主键,业务生成
* @return idList
*/
public List<String> getIdList(){
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 主键
* 设置 主键ID,主键,业务生成
* @param idList
*/
public void setIdList(List<String> idList){
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
......
package com.mortals.xhx.modules.supplement.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.common.pdu.ApiRespPdu;
import com.mortals.xhx.modules.supplement.model.SupplementEntity;
import java.util.List;
import org.springframework.web.multipart.MultipartFile;
/**
* <p>Title: 办件补录表</p>
......@@ -14,4 +14,6 @@ import java.util.List;
public interface SupplementService extends ICRUDService<SupplementEntity,Long>{
//导入excel办件
ApiRespPdu importOfficeInformation(MultipartFile file,Long id);
}
\ No newline at end of file
package com.mortals.xhx.modules.supplement.service.impl;
import com.alibaba.excel.EasyExcel;
import com.mortals.xhx.common.pdu.ApiRespPdu;
import com.mortals.xhx.modules.arameter.model.ArameterEntity;
import com.mortals.xhx.modules.arameter.service.ArameterService;
import com.mortals.xhx.modules.implementlist.service.ImplementlistService;
import com.mortals.xhx.modules.information.dao.InformationDao;
import com.mortals.xhx.modules.information.model.InformationQuery;
import com.mortals.xhx.modules.supplement.dao.SupplementDao;
import com.mortals.xhx.modules.supplement.listener.InformationDataConversionListener;
import com.mortals.xhx.modules.supplement.model.SupplementEntity;
import com.mortals.xhx.modules.supplement.service.SupplementService;
import lombok.SneakyThrows;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import org.springframework.web.multipart.MultipartFile;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.TimeZone;
/**
* <p>Title: 办件补录表</p>
* <p>Description: SupplementService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* @version 1.0.0
*/
* <p>Title: 办件补录表</p>
* <p>Description: SupplementService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
*
* @version 1.0.0
*/
@Service("supplementService")
public class SupplementServiceImpl extends AbstractCRUDServiceImpl<SupplementDao, SupplementEntity, Long> implements SupplementService {
@Autowired
private SupplementDao supplementDao;
@Autowired
private ImplementlistService implementlistService;
@Autowired
private InformationDao informationDao;
@Autowired
private ArameterService arameterService;
@SneakyThrows
@Override
public ApiRespPdu importOfficeInformation(MultipartFile file, Long id) {
//1.导入之前,查询当前系统编码的阈值,以及多少办件量,并判断今天能否再次推送
ArameterEntity arameterEntity = new ArameterEntity();
arameterEntity.setCreatorId(String.valueOf(id));
List<ArameterEntity> arameterEntities = arameterService.find(arameterEntity, null);
//系统编码
String sysCode = arameterEntities.get(0).getEventCode();
//地区编码
String areaCode = arameterEntities.get(0).getAreaCode();
//当前系统每天的固定办件量
Integer limitTheNumberOfDocuments = Integer.valueOf(arameterEntities.get(0).getThresholdValue());
InformationQuery informationQuery = new InformationQuery();
//设置查询条件,查询当天的办件量
informationQuery.setSystemCode(sysCode);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//当前时间毫秒数
long current=System.currentTimeMillis();
//今天零点零分零秒的毫秒数
long zero=current/(1000*3600*24)*(1000*3600*24)- TimeZone.getDefault().getRawOffset();
//今天23点59分59秒的毫秒数
long twelve=zero+24*60*60*1000-1;
informationQuery.setQueryBeginTime(simpleDateFormat.format(new Date(zero)));
informationQuery.setQueryEndTime(simpleDateFormat.format(new Date(twelve)));
//当前系统(当天)已推送的办件量
int count = informationDao.getCount(informationQuery);
ApiRespPdu<Object> objectApiRespPdu = new ApiRespPdu<>();
if (count > limitTheNumberOfDocuments) {
objectApiRespPdu.setCode(500);
objectApiRespPdu.setMsg("数据上传失败,失败原因: 今日推送量已超过6,请明天再试");
return objectApiRespPdu;
} else {
try {
InformationDataConversionListener informationDataConversionListener = new InformationDataConversionListener(supplementDao,implementlistService);
informationDataConversionListener.theAmountOfDeliverablesThatCanBePushed(limitTheNumberOfDocuments,count);
informationDataConversionListener.currentSystemCode(sysCode,areaCode);
EasyExcel.read(file.getInputStream(), SupplementEntity.class, informationDataConversionListener)
.sheet(0)
.headRowNumber(3)
.doRead();
objectApiRespPdu.setCode(200);
objectApiRespPdu.setMsg("数据上传成功");
return objectApiRespPdu;
} catch (Exception e) {
e.printStackTrace();
objectApiRespPdu.setCode(500);
objectApiRespPdu.setMsg("数据上传失败,失败原因:" + e.getMessage()+"目前剩余容量:"+String.valueOf(limitTheNumberOfDocuments-count));
return objectApiRespPdu;
}
}
}
}
\ No newline at end of file
......@@ -22,6 +22,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
......@@ -62,32 +63,27 @@ public class SupplementTaskImpl implements ITaskExcuteService {
List<SupplementEntity> supplementEntities = supplementService.find(new SupplementEntity(),null);
if (supplementEntities.size() > 0){
supplementEntities.forEach(e->{
//TODO:查询实施清单信息,通过事项编码查询有问题,后期改动
ImplementlistQuery implementlistQuery = new ImplementlistQuery();
implementlistQuery.setEventCode(e.getImplCode());
List<ImplementlistEntity> implementlistEntities = implementlistService.find(implementlistQuery, null);
//TODO:查询实施清单信息,通过事项编码查询有问题(但因数据库存储的事项数据是条件过滤后的,故暂时不改动查询),后期改动
ImplementlistEntity thImplement = implementlistService.getThImplement(e.getImplCode());
try {
InformationQuery informationQuery = new InformationQuery();
//组装第一次业务数据(清洗后的)
informationQuery = assemblyOfficeData(informationQuery,e);
if (implementlistEntities.size() > 0 ){
informationQuery.setDeptCode(implementlistEntities.get(0).getDeptCode());
informationQuery.setAreaCode(implementlistEntities.get(0).getAreaCode());
informationQuery.setEventCode(implementlistEntities.get(0).getEventCode());
informationQuery.setEventName(implementlistEntities.get(0).getEventName());
informationQuery.setIsCharge(implementlistEntities.get(0).getIsCharges());
if (null!=thImplement){
informationQuery.setDeptCode(thImplement.getDeptCode());
informationQuery.setAreaCode(thImplement.getAreaCode());
informationQuery.setEventCode(thImplement.getEventCode());
informationQuery.setEventName(thImplement.getEventName());
informationQuery.setIsCharge(thImplement.getIsCharges());
//是否转化成功:0默认 1成功
informationQuery.setIsSuccess("0");
//是否推送(0 否 1是)
informationQuery.setIsReport("0");
informationDao.insert(informationQuery);
//清洗成功后,清除临时表的所有数据
supplementDao.delete(e.getId());
}else {
informationQuery.setFailReason(" Err:实施清单不存在");
informationQuery.setIsSuccess("0");
informationDao.insert(informationQuery);
}
informationDao.insert(informationQuery);
}catch (Exception ex){
log.error("转换失败:SupplementID:"+e.getId());
log.error("转换失败:失败原因" + ex.getMessage());
......@@ -98,8 +94,10 @@ public class SupplementTaskImpl implements ITaskExcuteService {
}
}
private InformationQuery assemblyOfficeData(InformationQuery informationQuery,SupplementEntity supplementEntity) {
Date randomDate = DateByAffairUtils.getDayWorkingTimeByRandom(null,9,17);
private InformationQuery assemblyOfficeData(InformationQuery informationQuery, SupplementEntity supplementEntity) throws Exception {
//流程时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date randomDate = DateByAffairUtils.getDayWorkingTimeByRandom(sdf.parse(supplementEntity.getApplyTime()),9,17);
informationQuery.setId(SnowFlakeUtil.get().nextId());
//默认为0:网络办件
informationQuery.setApplyType("0");
......@@ -142,8 +140,11 @@ public class SupplementTaskImpl implements ITaskExcuteService {
informationQuery.setCurHandlerName(supplementEntity.getAcceptName());
informationQuery.setIsReport("0");
informationQuery.setIsCharge("0");
informationQuery.setSystemCode(supplementEntity.getSysCode());
//测试暂时写死
informationQuery.setSystemCode("000L");
informationQuery.setNodeType(NodeTypeEnum.受理.getCode());
informationQuery.setBizStatus(NodeTypeEnum.受理.getDesc());
informationQuery.setProcessStatusName("申请并受理");
......
package com.mortals.xhx.modules.supplement.web;
import com.alibaba.excel.EasyExcel;
import com.mortals.framework.service.IUser;
import com.mortals.xhx.common.pdu.ApiRespPdu;
import com.mortals.xhx.modules.information.service.InformationService;
import com.mortals.xhx.modules.supplement.dao.SupplementDao;
import com.mortals.xhx.modules.supplement.model.SupplementEntity;
import com.mortals.xhx.modules.supplement.listener.*;
import com.mortals.xhx.modules.supplement.service.SupplementService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import com.mortals.framework.web.BaseCRUDJsonMappingController;
import org.springframework.web.multipart.MultipartFile;
/**
* <p>Title: 办件补录表</p>
* <p>Description: SupplementController </p>
......@@ -27,35 +22,20 @@ import org.springframework.web.multipart.MultipartFile;
@RequestMapping("supplement")
public class SupplementController extends BaseCRUDJsonMappingController<SupplementService,SupplementForm, SupplementEntity,Long> {
@Autowired
private SupplementDao supplementDao;
@Autowired
private InformationService informationService;
private SupplementService supplementService;
@Value("${egov.applyAndAcceptNode-url}")
private String url;
/**
* 导入办件信息,一阶段通过excel表格导入
*/
@PostMapping(value="importOfficeInformation")
public ApiRespPdu importOfficeInformation(@RequestPart("file") MultipartFile file) throws Exception{
ApiRespPdu<Object> objectApiRespPdu = new ApiRespPdu<>();
try{
EasyExcel.read(file.getInputStream(), SupplementEntity.class, new InformationDataConversionListener(supplementDao))
.sheet(0)
.headRowNumber(3)
.doRead();
objectApiRespPdu.setCode(200);
objectApiRespPdu.setMsg("数据上传成功");
return objectApiRespPdu;
}catch(Exception e){
e.printStackTrace();
objectApiRespPdu.setCode(500);
objectApiRespPdu.setMsg("数据上传失败,失败原因:"+e.getMessage());
return objectApiRespPdu;
}
Long id = getContext().getUser().getId();
//TODO: 暂未判断当前区域
ApiRespPdu respPdu=supplementService.importOfficeInformation(file,id);
return respPdu;
}
......
......@@ -14,13 +14,28 @@ spring:
# exclude: org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration
#本地环境
cloud:
nacos:
# Nacos 作为注册中心的配置项,对应 NacosDiscoveryProperties 配置类
discovery:
server-addr: 127.0.0.1:8848 # Nacos 服务器地址
group: DEFAULT_GROUP
namespace: 00d2fea1-874c-42cf-bf70-df75db75800a
config:
server-addr: ${spring.cloud.nacos.discovery.server-addr} # Nacos 服务器地址
group: ${spring.cloud.nacos.discovery.group}
namespace: ${spring.cloud.nacos.discovery.namespace} # Nacos 命名空间 dev 的编号
file-extension: yaml
#测试环境
# cloud:
# nacos:
# # Nacos 作为注册中心的配置项,对应 NacosDiscoveryProperties 配置类
# discovery:
# server-addr: 127.0.0.1:8848 # Nacos 服务器地址
# server-addr: 192.168.0.252:8848 # Nacos 服务器地址
# group: DEFAULT_GROUP
# namespace: 00d2fea1-874c-42cf-bf70-df75db75800a
# namespace: dataCenter
# config:
# server-addr: ${spring.cloud.nacos.discovery.server-addr} # Nacos 服务器地址
# group: ${spring.cloud.nacos.discovery.group}
......@@ -28,19 +43,6 @@ spring:
# file-extension: yaml
#测试环境
cloud:
nacos:
# Nacos 作为注册中心的配置项,对应 NacosDiscoveryProperties 配置类
discovery:
server-addr: 192.168.0.252:8848/nacos # Nacos 服务器地址
group: DEFAULT_GROUP
namespace: dataCenter
config:
server-addr: ${spring.cloud.nacos.discovery.server-addr} # Nacos 服务器地址
group: ${spring.cloud.nacos.discovery.group}
namespace: ${spring.cloud.nacos.discovery.namespace} # Nacos 命名空间 dev 的编号
file-extension: yaml
mybatis:
root-path: com.mortals
type-aliases-package: com.mortals.framework.model,com.mortals.xhx.common.**.model,com.mortals.xhx.**.model
......@@ -51,8 +53,8 @@ service:
cacheClass: com.mortals.framework.service.impl.RedisCacheServiceImpl
application:
auth:
unloginUrl: /refresh,/error,/login/login,/login/index,/login/logout,/securitycode/createCode,/test*,/api/asset/*,/api/*,/swagger-ui*
uncheckUrl: /refresh,/error,/login/login,/login/index,/login/logout,/securitycode/createCode,/test*,/api/asset/*,/api/*,/swagger-ui*
unloginUrl: /refresh,/error,/login/login,/login/index,/login/logout,/securitycode/createCode,/test*,/api/asset/*,/api/*,/swagger-ui*,/supplement*
uncheckUrl: /refresh,/error,/login/login,/login/index,/login/logout,/securitycode/createCode,/test*,/api/asset/*,/api/*,/swagger-ui*,/supplement*
egov:
applyAndAcceptNode-url: http://59.225.209.134:8080/api/interface-admin-service/commonAcceptDataOpenRest/commonAcceptDatas/000L/21111Q01DR/V2.10/uakhAdee9sHyKriiRyTgjg8dvdVehrHp/1
......
......@@ -9,7 +9,7 @@
<setting name="useGeneratedKeys" value="false" />
<setting name="defaultExecutorType" value="REUSE" />
<!-- 是否开始sql日志控制台打印 -->
<setting name="logImpl" value="STDOUT_LOGGING" />
<!-- <setting name="logImpl" value="STDOUT_LOGGING" />-->
</settings>
<plugins>
<plugin interceptor="com.mortals.framework.thirty.mybatis.MortalsPagePlugin">
......
......@@ -38,4 +38,9 @@
<appender-ref ref="fileInfo"/>
<appender-ref ref="fileError"/>
</root>
<!-- <logger name="com.mortals.xhx.modules" level="INFO" additivity="false">-->
<!-- <appender-ref ref="console"/>-->
<!-- <appender-ref ref="fileInfo"/>-->
<!-- <appender-ref ref="fileError"/>-->
<!-- </logger>-->
</configuration>
\ No newline at end of file
This diff is collapsed.
/*
Navicat Premium Data Transfer
Source Server : local
Source Server Type : MySQL
Source Server Version : 80025
Source Host : localhost:3306
Source Schema : xhx-base
Target Server Type : MySQL
Target Server Version : 80025
File Encoding : 65001
Date: 04/08/2021 17:10:29
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for mortails_affair_supplement
-- ----------------------------
DROP TABLE IF EXISTS `mortails_affair_supplement`;
CREATE TABLE `mortails_affair_supplement` (
`id` bigint NOT NULL COMMENT '主键',
`impl_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '实施清单名称',
`impl_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '实施清单编码',
`application_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '申请人属性',
`application_card_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '申请人证件类型',
`application_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '申请人姓名',
`application_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '申请人证件号码',
`application_phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '申请人手机号码',
`mechanism_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '机构名称',
`mechanism_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '机构地址',
`mechanism_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '机构性质',
`mechanism_id_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '机构证件类型',
`mechanism_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '机构编码',
`legal_person` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '法人姓名',
`apply_time` datetime NULL DEFAULT NULL COMMENT '办件申请日期',
`accept_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '受理人姓名',
`accept_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '受理人身份证号码',
`accept_phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '受理人手机号',
`sys_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '系统编码',
`is_execute` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '是否执行转化(0.未执行 1.已执行)',
`is_success` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '是否转化成功(0默认 1成功)',
`fail_reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '失败原因',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '办件补录表' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
......@@ -25,6 +25,7 @@
<properties>
<common-lib.version>0.0.1-SNAPSHOT</common-lib.version>
<aliyun-java-sdk-core.version>4.5.16</aliyun-java-sdk-core.version>
</properties>
<dependencyManagement>
......@@ -67,5 +68,132 @@
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<!-- 去除resources下的所有文件 -->
<!-- <excludes>-->
<!-- <exclude>**/*.properties</exclude>-->
<!-- <exclude>**/*.xml</exclude>-->
<!-- <exclude>**/*.yml</exclude>-->
<!-- <exclude>etlsql/**</exclude>-->
<!-- <exclude>sqlmap/**</exclude>-->
<!-- <exclude>config/**</exclude>-->
<!-- </excludes>-->
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
<outputDirectory>${project.build.directory}/${project.name}/boot</outputDirectory>
<layout>ZIP</layout>
<!-- 打包时,本jar包不包含其他依赖包 , 否则打出的jar包还是很大 -->
<!-- <includes>-->
<!-- <include>-->
<!-- <groupId>nothing</groupId>-->
<!-- <artifactId>nothing</artifactId>-->
<!-- </include>-->
<!-- </includes>-->
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<!--设置jar所依赖的三方jar包存放的路径 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dep</id>
<phase>prepare-package</phase>
<goals>
<goal>
copy-dependencies
</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/${project.name}/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
<!-- 是否不包含间接依赖 -->
<excludeTransitive>false</excludeTransitive>
<!-- 忽略版本 -->
<stripVersion>false</stripVersion>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<encoding>UTF-8</encoding>
<outputDirectory>${project.build.directory}/${project.name}/conf</outputDirectory>
<resources>
<resource>
<directory>src/main/resources/</directory>
<includes>
<include>etlsql/**</include>
<include>sqlmap/**</include>
<include>config/**</include>
<include>*.yml</include>
<include>*.xml</include>
<include>*.properties</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-bin</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<encoding>UTF-8</encoding>
<outputDirectory>${project.build.directory}/${project.name}/bin</outputDirectory>
<resources>
<resource>
<directory>src/main/bin/</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment