Merge remote-tracking branch 'origin/ht' into ht
This commit is contained in:
commit
3ad580bd34
|
@ -37,8 +37,12 @@
|
|||
<activeByDefault>true</activeByDefault>
|
||||
</activation>
|
||||
</profile>
|
||||
|
||||
|
||||
<profile>
|
||||
<id>httest</id> <!--开发环境-->
|
||||
<properties>
|
||||
<profile.active>httest</profile.active>
|
||||
</properties>
|
||||
</profile>
|
||||
</profiles>
|
||||
<build>
|
||||
<finalName>kangarooDataCenterV3</finalName>
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
package com.hzya.frame.plugin.contract.dao;
|
||||
|
||||
import com.hzya.frame.basedao.dao.IBaseDao;
|
||||
import com.hzya.frame.plugin.contract.entity.ContractAuditEntity;
|
||||
|
||||
/**
|
||||
* @Description 合同评审
|
||||
* @Author xiangerlin
|
||||
* @Date 2025/3/31 14:55
|
||||
**/
|
||||
public interface IContractAuditDao extends IBaseDao<ContractAuditEntity,String> {
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
package com.hzya.frame.plugin.contract.dao.impl;
|
||||
|
||||
import com.hzya.frame.basedao.dao.MybatisGenericDao;
|
||||
import com.hzya.frame.plugin.contract.dao.IContractAuditDao;
|
||||
import com.hzya.frame.plugin.contract.entity.ContractAuditEntity;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
* @Description 合同评审
|
||||
* @Author xiangerlin
|
||||
* @Date 2025/3/31 14:56
|
||||
**/
|
||||
@Repository()
|
||||
public class ContractAuditDaoImpl extends MybatisGenericDao<ContractAuditEntity,String> implements IContractAuditDao {
|
||||
}
|
|
@ -0,0 +1,144 @@
|
|||
package com.hzya.frame.plugin.contract.entity;
|
||||
|
||||
import com.hzya.frame.web.entity.BaseEntity;
|
||||
|
||||
/**
|
||||
* @Description
|
||||
* @Author xiangerlin
|
||||
* @Date 2025/3/31 11:22
|
||||
**/
|
||||
public class ContractAuditEntity extends BaseEntity {
|
||||
|
||||
//表单id
|
||||
private String id;
|
||||
//单据号
|
||||
private String field0168;
|
||||
//合同编号
|
||||
private String field0239;
|
||||
//合同名称
|
||||
private String field0005;
|
||||
//流程id
|
||||
private String col_summary_id;
|
||||
//待办id
|
||||
private String affairId;
|
||||
//待办表体
|
||||
private String subject;
|
||||
//节点名称
|
||||
private String node_name;
|
||||
//节点权限
|
||||
private String node_policy;
|
||||
//待办接收时间
|
||||
private String receive_time;
|
||||
//待办完成时间
|
||||
private String complete_time;
|
||||
//待办状态
|
||||
private String state;
|
||||
//待办人登录名
|
||||
private String login_name;
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getCol_summary_id() {
|
||||
return col_summary_id;
|
||||
}
|
||||
|
||||
public void setCol_summary_id(String col_summary_id) {
|
||||
this.col_summary_id = col_summary_id;
|
||||
}
|
||||
|
||||
public String getAffairId() {
|
||||
return affairId;
|
||||
}
|
||||
|
||||
public void setAffairId(String affairId) {
|
||||
this.affairId = affairId;
|
||||
}
|
||||
|
||||
public String getField0168() {
|
||||
return field0168;
|
||||
}
|
||||
|
||||
public void setField0168(String field0168) {
|
||||
this.field0168 = field0168;
|
||||
}
|
||||
|
||||
public String getField0239() {
|
||||
return field0239;
|
||||
}
|
||||
|
||||
public void setField0239(String field0239) {
|
||||
this.field0239 = field0239;
|
||||
}
|
||||
|
||||
public String getField0005() {
|
||||
return field0005;
|
||||
}
|
||||
|
||||
public void setField0005(String field0005) {
|
||||
this.field0005 = field0005;
|
||||
}
|
||||
|
||||
public String getSubject() {
|
||||
return subject;
|
||||
}
|
||||
|
||||
public void setSubject(String subject) {
|
||||
this.subject = subject;
|
||||
}
|
||||
|
||||
public String getNode_name() {
|
||||
return node_name;
|
||||
}
|
||||
|
||||
public void setNode_name(String node_name) {
|
||||
this.node_name = node_name;
|
||||
}
|
||||
|
||||
public String getNode_policy() {
|
||||
return node_policy;
|
||||
}
|
||||
|
||||
public void setNode_policy(String node_policy) {
|
||||
this.node_policy = node_policy;
|
||||
}
|
||||
|
||||
public String getReceive_time() {
|
||||
return receive_time;
|
||||
}
|
||||
|
||||
public void setReceive_time(String receive_time) {
|
||||
this.receive_time = receive_time;
|
||||
}
|
||||
|
||||
public String getComplete_time() {
|
||||
return complete_time;
|
||||
}
|
||||
|
||||
public void setComplete_time(String complete_time) {
|
||||
this.complete_time = complete_time;
|
||||
}
|
||||
|
||||
public String getState() {
|
||||
return state;
|
||||
}
|
||||
|
||||
public void setState(String state) {
|
||||
this.state = state;
|
||||
}
|
||||
|
||||
public String getLogin_name() {
|
||||
return login_name;
|
||||
}
|
||||
|
||||
public void setLogin_name(String login_name) {
|
||||
this.login_name = login_name;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,57 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.hzya.frame.plugin.contract.dao.impl.ContractAuditDaoImpl">
|
||||
<resultMap id="get-ContractAuditEntity-result" type="com.hzya.frame.plugin.contract.entity.ContractAuditEntity">
|
||||
<!--主键 -->
|
||||
<result property="id" column="id"/>
|
||||
<result property="field0168" column="field0168"/>
|
||||
<result property="field0239" column="field0239"/>
|
||||
<result property="field0005" column="field0005"/>
|
||||
<result property="field0005" column="field0005"/>
|
||||
<result property="subject" column="subject"/>
|
||||
<result property="col_summary_id" column="col_summary_id"/>
|
||||
<result property="affairId" column="affairId"/>
|
||||
<result property="node_name" column="node_name"/>
|
||||
<result property="node_policy" column="node_policy"/>
|
||||
<result property="receive_time" column="receive_time"/>
|
||||
<result property="complete_time" column="complete_time"/>
|
||||
<result property="state" column="state"/>
|
||||
<result property="login_name" column="login_name"/>
|
||||
</resultMap>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- 查询 超期60天没审批的合同 -->
|
||||
<select id="entity_list_base" resultMap="get-ContractAuditEntity-result" parameterType="com.hzya.frame.plugin.contract.entity.ContractAuditEntity">
|
||||
SELECT
|
||||
formmain_0325.id,
|
||||
formmain_0325.field0168,
|
||||
formmain_0325.field0239,
|
||||
formmain_0325.field0005,
|
||||
COL_SUMMARY.subject,
|
||||
COL_SUMMARY.id as col_summary_id,
|
||||
CTP_AFFAIR.id as affairId,
|
||||
CTP_AFFAIR.node_name,
|
||||
CTP_AFFAIR.node_policy,
|
||||
CTP_AFFAIR.receive_time,
|
||||
CTP_AFFAIR.complete_time,
|
||||
CTP_AFFAIR.state,
|
||||
ORG_PRINCIPAL.login_name
|
||||
FROM
|
||||
formmain_0325
|
||||
LEFT JOIN COL_SUMMARY ON COL_SUMMARY.FORM_RECORDID = formmain_0325.id
|
||||
LEFT JOIN CTP_AFFAIR ON CTP_AFFAIR.OBJECT_ID = COL_SUMMARY.id
|
||||
LEFT JOIN ORG_PRINCIPAL on ORG_PRINCIPAL.member_id = CTP_AFFAIR.MEMBER_ID
|
||||
<trim prefix="where" prefixOverrides="and">
|
||||
<if test="id != null and id != ''">id = #{id}</if>
|
||||
<if test="field0168 != null and field0168 != ''">and formmain_0325.field0168 = #{field0168}</if>
|
||||
and CTP_AFFAIR.NODE_POLICY = '印章管理员'
|
||||
and CTP_AFFAIR.state = 3
|
||||
and DATEDIFF(DAY, CTP_AFFAIR.RECEIVE_TIME, GETDATE()) > 60
|
||||
</trim>
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
|
@ -0,0 +1,160 @@
|
|||
package com.hzya.frame.plugin.contract.plugin;
|
||||
|
||||
import cn.hutool.core.map.MapBuilder;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.hzya.frame.base.PluginBaseEntity;
|
||||
import com.hzya.frame.plugin.contract.entity.ContractAuditEntity;
|
||||
import com.hzya.frame.plugin.contract.service.IContractAuditService;
|
||||
import com.hzya.frame.web.entity.JsonResultEntity;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Description 合同评审,超过60天流程未审批的,把流程终止掉
|
||||
* @Author xiangerlin
|
||||
* @Date 2025/3/31 11:07
|
||||
**/
|
||||
public class ContractAuditPluginInitializer extends PluginBaseEntity {
|
||||
Logger logger = LoggerFactory.getLogger(getClass());
|
||||
|
||||
@Resource
|
||||
private IContractAuditService contractAuditService;
|
||||
/***
|
||||
* 插件初始化方法
|
||||
* @Author 👻👻👻👻👻👻👻👻 gjh
|
||||
* @Date 2023-08-02 10:48
|
||||
* @Param []
|
||||
* @return void
|
||||
**/
|
||||
@Override
|
||||
public void initialize() {
|
||||
logger.info(getPluginLabel() + "執行初始化方法initialize()");
|
||||
}
|
||||
|
||||
/****
|
||||
* 插件销毁方法
|
||||
* @author 👻👻👻👻👻👻👻👻 gjh
|
||||
* @date 2023-08-02 10:48
|
||||
* @return void
|
||||
**/
|
||||
@Override
|
||||
public void destroy() {
|
||||
logger.info(getPluginLabel() + "執行銷毀方法destroy()");
|
||||
}
|
||||
|
||||
/****
|
||||
* 插件的ID
|
||||
* @author 👻👻👻👻👻👻👻👻 gjh
|
||||
* @date 2023-08-02 10:48
|
||||
* @return void
|
||||
**/
|
||||
@Override
|
||||
public String getPluginId() {
|
||||
return "ContractAuditPluginInitializer";
|
||||
}
|
||||
|
||||
/****
|
||||
* 插件的名称
|
||||
* @author 👻👻👻👻👻👻👻👻 gjh
|
||||
* @date 2023-08-02 10:48
|
||||
* @return void
|
||||
**/
|
||||
@Override
|
||||
public String getPluginName() {
|
||||
return "OA合同评审流程检测插件";
|
||||
}
|
||||
|
||||
/****
|
||||
* 插件的显示值
|
||||
* @author 👻👻👻👻👻👻👻👻 gjh
|
||||
* @date 2023-08-02 10:48
|
||||
* @return void
|
||||
**/
|
||||
@Override
|
||||
public String getPluginLabel() {
|
||||
return "OA合同评审流程检测插件";
|
||||
}
|
||||
|
||||
/***
|
||||
* 插件类型 1、场景插件
|
||||
* @Author 👻👻👻👻👻👻👻👻 gjh
|
||||
* @Date 2023-08-02 14:01
|
||||
* @Param []
|
||||
* @return java.lang.String
|
||||
**/
|
||||
@Override
|
||||
public String getPluginType() {
|
||||
return "1";
|
||||
}
|
||||
|
||||
/***
|
||||
* 执行业务代码
|
||||
* @Author 👻👻👻👻👻👻👻👻 gjh
|
||||
* @Date 2023-08-07 11:20
|
||||
* @param requestJson 执行业务代码的参数
|
||||
* @return void
|
||||
**/
|
||||
@Override
|
||||
public JsonResultEntity executeBusiness(JSONObject requestJson) throws Exception {
|
||||
logger.info("======开始执行合同评审流程检测插件定时任务======");
|
||||
//1、查询超期的合同
|
||||
ContractAuditEntity contractAuditEntity = new ContractAuditEntity();
|
||||
contractAuditEntity.setDataSourceCode(requestJson.getString("sourceCode"));
|
||||
//contractAuditEntity.setField0168("PS202503270198");
|
||||
List<ContractAuditEntity> contractAuditList = contractAuditService.queryOverdueList(contractAuditEntity);
|
||||
if (CollectionUtils.isNotEmpty(contractAuditList)){
|
||||
String token = getToken();
|
||||
for (ContractAuditEntity auditEntity : contractAuditList) {
|
||||
//2、更新流程状态为终止状态
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("affairId",auditEntity.getAffairId());//待办id
|
||||
jsonObject.put("member",auditEntity.getLogin_name());//当前待办登录名
|
||||
//jsonObject.put("affairId","9022465059383233743");//待办id
|
||||
//jsonObject.put("member","yonyou");//当前待办登录名
|
||||
String reqParams = jsonObject.toString();
|
||||
logger.info("合同评审流程终止接口请求参数:{}",reqParams);
|
||||
//调用wms接口
|
||||
Map<String, String> headerMap = MapBuilder.<String, String>create(true)
|
||||
.put("apiCode", "8000590002")
|
||||
.put("publicKey","ZJYAWb7lhAUTYqekPkU+uHJv1/ObJxb7dT7sD8HPRDGAgyhCe7eDIk+3zDUT+v578prj")
|
||||
.put("secretKey","fviZnLBsQUAGF8w8FSOdJi7XlIm/XAZclMxRagDLfTyJFlvnIBF3w66Hrpfzs8cYj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")
|
||||
.put("appId","800059")
|
||||
.put("token",token)
|
||||
.build();
|
||||
String body = HttpRequest.post("http://127.0.0.1:10086/kangarooDataCenterV3/entranceController/externalCallInterface").addHeaders(headerMap).body(reqParams).timeout(60000).execute().body();
|
||||
logger.info("合同评审流程终止接口返回参数:{}",body);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
//获取token
|
||||
private String getToken(){
|
||||
String token = null;
|
||||
JSONObject tokenObj = new JSONObject();
|
||||
tokenObj.put("userName","rest0331");
|
||||
tokenObj.put("password","27db12a6-e09d-488f-90fb-143d9f45938d");
|
||||
tokenObj.put("loginName","yonyou");
|
||||
String tokenReqParams = tokenObj.toString();
|
||||
Map<String, String> tokenHeaderMap = MapBuilder.<String, String>create(true)
|
||||
.put("apiCode", "8000590001")
|
||||
.put("publicKey","ZJYAWb7lhAUTYqekPkU+uHJv1/ObJxb7dT7sD8HPRDGAgyhCe7eDIk+3zDUT+v578prj")
|
||||
.put("secretKey","fviZnLBsQUAGF8w8FSOdJi7XlIm/XAZclMxRagDLfTyJFlvnIBF3w66Hrpfzs8cYj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")
|
||||
.put("appId","800059")
|
||||
.build();
|
||||
String tokenBody = HttpRequest.post("http://127.0.0.1:10086/kangarooDataCenterV3/entranceController/externalCallInterface").addHeaders(tokenHeaderMap).body(tokenReqParams).timeout(60000).execute().body();
|
||||
if (StrUtil.isNotEmpty(tokenBody)){
|
||||
JsonResultEntity jsonResultEntity = JSONObject.parseObject(tokenBody, JsonResultEntity.class);
|
||||
JSONObject jsonObject = (JSONObject) jsonResultEntity.getAttribute();
|
||||
token = jsonObject.getString("id");
|
||||
}
|
||||
return token;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
package com.hzya.frame.plugin.contract.service;
|
||||
|
||||
import com.hzya.frame.basedao.service.IBaseService;
|
||||
import com.hzya.frame.plugin.contract.entity.ContractAuditEntity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description 合同评审
|
||||
* @Author xiangerlin
|
||||
* @Date 2025/3/31 11:15
|
||||
**/
|
||||
public interface IContractAuditService extends IBaseService<ContractAuditEntity,String> {
|
||||
|
||||
/**
|
||||
* 查询超过60天还没审批的逾期合同
|
||||
* @param entity
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
List<ContractAuditEntity> queryOverdueList(ContractAuditEntity entity)throws Exception;
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
package com.hzya.frame.plugin.contract.service.impl;
|
||||
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import com.hzya.frame.basedao.service.impl.BaseService;
|
||||
import com.hzya.frame.plugin.contract.dao.IContractAuditDao;
|
||||
import com.hzya.frame.plugin.contract.entity.ContractAuditEntity;
|
||||
import com.hzya.frame.plugin.contract.service.IContractAuditService;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description 合同评审
|
||||
* @Author xiangerlin
|
||||
* @Date 2025/3/31 11:16
|
||||
**/
|
||||
@Service()
|
||||
public class ContractAuditServiceImpl extends BaseService<ContractAuditEntity,String> implements IContractAuditService {
|
||||
|
||||
Logger logger = LogManager.getLogger(getClass());
|
||||
|
||||
private IContractAuditDao contractAuditDao;
|
||||
|
||||
@Autowired
|
||||
public void setContractAuditDao(IContractAuditDao dao) {
|
||||
this.contractAuditDao = dao;
|
||||
this.dao = dao;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询超过60天还没审批的逾期合同
|
||||
*
|
||||
* @param entity
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@DS("#entity.dataSourceCode")
|
||||
@Override
|
||||
public List<ContractAuditEntity> queryOverdueList(ContractAuditEntity entity) throws Exception {
|
||||
List<ContractAuditEntity> query = contractAuditDao.query(entity);
|
||||
return query;
|
||||
}
|
||||
}
|
|
@ -6,15 +6,15 @@ logging:
|
|||
encodings: UTF-8
|
||||
file:
|
||||
# 日志保存路径
|
||||
path: /home/webservice/zt/log
|
||||
path: D:\yongansystem\serverV3\log\zs
|
||||
spring:
|
||||
datasource:
|
||||
dynamic:
|
||||
datasource:
|
||||
master:
|
||||
url: jdbc:mysql://ufidahz.com.cn:9014/businesscenter_ht?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true
|
||||
url: jdbc:mysql://127.0.0.1:3307/businesscenter?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true
|
||||
username: root
|
||||
password: 62e4295b615a30dbf3b8ee96f41c820b
|
||||
password: bd993088e8a7c3dc5f44441617f9b4bf
|
||||
driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
|
||||
savefile:
|
||||
# 文件保存路径
|
||||
|
@ -39,7 +39,7 @@ cbs8:
|
|||
OA:
|
||||
data_source_code: yc_oa
|
||||
zt:
|
||||
url: http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface
|
||||
url: http://127.0.0.1:10086/kangarooDataCenterV3/entranceController/externalCallInterface
|
||||
zx:
|
||||
# 测试用这个 这个是银行给的
|
||||
privateKey: MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgtzMo2o6THK3yLIm+83Ch/560+02l2hjjBSFGieWY/Z6gCgYIKoEcz1UBgi2hRANCAATKhwZX4P3XI8vYTKeCOLMVbanUNbaXjrIEZynshwdOzRVgzRQSiPNWo6OBBkAPvqE+2RS+5ABpS82DSlKl81z0
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
#######################dev环境#######################
|
||||
logging:
|
||||
#日志级别 指定目录级别
|
||||
level:
|
||||
root: INFO
|
||||
encodings: UTF-8
|
||||
file:
|
||||
# 日志保存路径
|
||||
path: D:\yongansystem\serverV3\log\test
|
||||
spring:
|
||||
datasource:
|
||||
dynamic:
|
||||
datasource:
|
||||
master:
|
||||
url: jdbc:mysql://127.0.0.1:3307/businesscenter_test?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true
|
||||
username: root
|
||||
password: bd993088e8a7c3dc5f44441617f9b4bf
|
||||
driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
|
||||
savefile:
|
||||
# 文件保存路径
|
||||
path: /home/webservice/zt/file
|
||||
# path: D:\webservice\file
|
||||
# pluginpath: D:\webservice\plugin
|
||||
pluginpath: /home/webservice/zt/plugin
|
||||
# tomcatpath: D:\apache-tomcat-9.0.69\webapps\kangarooDataCenter\WEB-INF\classes\
|
||||
tomcatpath: /home/webservice/zt/tomcatV3/webapps/kangarooDataCenterV3/WEB-INF/classes/
|
||||
cbs8:
|
||||
appId: 1P4AGrpz
|
||||
appSecret: 2c2369ae5dc04382844bbe3a5abf39e1bea9cd3a
|
||||
url: https://cbs8-openapi-reprd.csuat.cmburl.cn
|
||||
# 测试用这个 这个是银行给的,和下面的公钥不是一对密钥
|
||||
ya_private_key: 83BA7EC821D35F4CB31FF9A51C1EFA520FC52AF828C2337F88E91CF119B07F44
|
||||
# 这个私钥到时候上传到cbs,和下面到是同一对
|
||||
#ya_private_key: e1eacfdee9b8d4184437d5a2071e17ce31befc3d93395f9f05709ed562e8dc46
|
||||
ya_public_key: 044fa399d2223760f17b81b863cb482b009294c4516f8a605dea1475ec09e720eaa98468715e5ad509a592a0b426061551c5a3df236966c23253a7d894eac0dcde
|
||||
cbs_public_key: 0469146F06BF3B01236E84632441E826
|
||||
#电子回单下载临时存放位置
|
||||
elec_path: /Users/xiangerlin/Downloads/
|
||||
OA:
|
||||
data_source_code: yc_oa
|
||||
zt:
|
||||
url: http://127.0.0.1:10087/kangarooDataCenterV3/entranceController/externalCallInterface
|
||||
zx:
|
||||
# 测试用这个 这个是银行给的
|
||||
privateKey: MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgtzMo2o6THK3yLIm+83Ch/560+02l2hjjBSFGieWY/Z6gCgYIKoEcz1UBgi2hRANCAATKhwZX4P3XI8vYTKeCOLMVbanUNbaXjrIEZynshwdOzRVgzRQSiPNWo6OBBkAPvqE+2RS+5ABpS82DSlKl81z0
|
||||
publicKey: MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEyocGV+D91yPL2EyngjizFW2p1DW2l46yBGcp7IcHTs0VYM0UEojzVqOjgQZAD76hPtkUvuQAaUvNg0pSpfNc9A==
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<plugin>
|
||||
<id>ContractAuditPluginInitializer</id>
|
||||
<name>ContractAuditPluginInitializer插件</name>
|
||||
<category>25033101</category>
|
||||
</plugin>
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||
<beans default-autowire="byName">
|
||||
<bean name="contractAuditPluginInitializer" class="com.hzya.frame.plugin.contract.plugin.ContractAuditPluginInitializer" />
|
||||
</beans>
|
|
@ -2,23 +2,34 @@ package com.hzya.frame;
|
|||
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.hzya.frame.seeyon.util.YzfSignUtil;
|
||||
import com.hzya.frame.sysnew.messageManageLog.entity.SysMessageManageLogEntity;
|
||||
import com.hzya.frame.util.AESUtil;
|
||||
import com.hzya.frame.web.entity.BaseResult;
|
||||
import org.apache.http.HttpEntity;
|
||||
import org.apache.http.client.config.RequestConfig;
|
||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.client.methods.HttpPost;
|
||||
import org.apache.http.client.methods.HttpPut;
|
||||
import org.apache.http.conn.ssl.NoopHostnameVerifier;
|
||||
import org.apache.http.conn.ssl.TrustAllStrategy;
|
||||
import org.apache.http.entity.ByteArrayEntity;
|
||||
import org.apache.http.entity.StringEntity;
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClientBuilder;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
import org.apache.http.ssl.SSLContextBuilder;
|
||||
import org.apache.http.util.EntityUtils;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
import javax.net.ssl.SSLContext;
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.sql.Timestamp;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
@ -36,7 +47,7 @@ public class temButtom {
|
|||
|
||||
@Test
|
||||
public void test01() {
|
||||
String a = AESUtil.encrypt("hzya@1314");
|
||||
String a = AESUtil.encrypt("hzya1314");
|
||||
System.out.println(a);
|
||||
String b = AESUtil.decrypt("62e4295b615a30dbf3b8ee96f41c820b");
|
||||
System.out.println(b);
|
||||
|
@ -50,32 +61,31 @@ public class temButtom {
|
|||
// task7803207f54ff047d6008dcce31c2628f 新增成功!
|
||||
// 2024-10-24 2024-10-24
|
||||
|
||||
String phone ="19357235324";
|
||||
String taskid ="task8b0c7ca72439bc9b0c1c89e8866c8275";
|
||||
String phone = "19357235324";
|
||||
String taskid = "task8b0c7ca72439bc9b0c1c89e8866c8275";
|
||||
//token
|
||||
Map<String, String> headers = new HashMap<>();
|
||||
String token ="https://oapi.dingtalk.com/gettoken?appkey=dingxewtjaserj292ggu&appsecret=DuRw6EEEvhGXfr6Q8wN_x4025qKjrffIGCXF9KeCKKIID-LVSsR6_8KWMei6sug1";
|
||||
String body = sendGet(token,headers);
|
||||
String token = "https://oapi.dingtalk.com/gettoken?appkey=dingxewtjaserj292ggu&appsecret=DuRw6EEEvhGXfr6Q8wN_x4025qKjrffIGCXF9KeCKKIID-LVSsR6_8KWMei6sug1";
|
||||
String body = sendGet(token, headers);
|
||||
JSONObject tokenobject = JSONObject.parseObject(body);
|
||||
|
||||
//钉钉id
|
||||
headers = new HashMap<>();
|
||||
//https://oapi.dingtalk.com/user/get_by_mobile?access_token=9abd3996cb103ba48dd8c69fea5473e7&mobile=15700100840
|
||||
String ddid ="https://oapi.dingtalk.com/user/get_by_mobile?access_token="+tokenobject.get("access_token")+"&mobile="+phone;
|
||||
String ddidbody = sendGet(ddid,headers);
|
||||
String ddid = "https://oapi.dingtalk.com/user/get_by_mobile?access_token=" + tokenobject.get("access_token") + "&mobile=" + phone;
|
||||
String ddidbody = sendGet(ddid, headers);
|
||||
JSONObject ddidobject = JSONObject.parseObject(ddidbody);
|
||||
|
||||
//人员id
|
||||
headers = new HashMap<>();
|
||||
//https://oapi.dingtalk.com/user/get?userid=111336474727636213&access_token=3d21a6614fb037a98542a537336e8149
|
||||
String userid ="https://oapi.dingtalk.com/user/get?userid="+ddidobject.get("userid")+"&access_token="+tokenobject.get("access_token");
|
||||
String useridbody = sendGet(userid,headers);
|
||||
String userid = "https://oapi.dingtalk.com/user/get?userid=" + ddidobject.get("userid") + "&access_token=" + tokenobject.get("access_token");
|
||||
String useridbody = sendGet(userid, headers);
|
||||
JSONObject useridobject = JSONObject.parseObject(useridbody);
|
||||
|
||||
|
||||
|
||||
CloseableHttpClient httpClient = HttpClients.createDefault();
|
||||
HttpPut httpPut = new HttpPut("https://api.dingtalk.com/v1.0/todo/users/"+useridobject.get("unionid")+"/tasks/"+taskid);
|
||||
HttpPut httpPut = new HttpPut("https://api.dingtalk.com/v1.0/todo/users/" + useridobject.get("unionid") + "/tasks/" + taskid);
|
||||
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000).setConnectionRequestTimeout(35000).setSocketTimeout(60000).build();
|
||||
httpPut.setConfig(requestConfig);
|
||||
httpPut.setHeader("Content-type", "application/json");
|
||||
|
@ -122,7 +132,7 @@ public class temButtom {
|
|||
|
||||
response = closeableHttpClient.execute(get);
|
||||
HttpEntity entity = response.getEntity();
|
||||
body.append(EntityUtils.toString(entity,"UTF-8"));
|
||||
body.append(EntityUtils.toString(entity, "UTF-8"));
|
||||
} catch (Exception e) {
|
||||
body.append(e.getMessage());
|
||||
} finally {
|
||||
|
@ -143,4 +153,140 @@ public class temButtom {
|
|||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void test0111() {
|
||||
//请求token
|
||||
String accessToken = getToken();
|
||||
//请求分页查询全量进项发票
|
||||
String data = getdata(accessToken);
|
||||
|
||||
|
||||
}
|
||||
|
||||
private String getdata(String accessToken) {
|
||||
String url = "http://oapi.nanofintax.com/api/invoice_receive/fp/v1/query?accessToken="+accessToken;
|
||||
JSONObject dayabody = new JSONObject();
|
||||
dayabody.put("accessKey","6X3B526P5HqE6ums");
|
||||
long timestamp = System.currentTimeMillis();
|
||||
dayabody.put("timestamp",timestamp);
|
||||
JSONObject queryParams = new JSONObject();
|
||||
queryParams.put("page",1);
|
||||
queryParams.put("size",50);
|
||||
dayabody.put("queryParams",queryParams);
|
||||
Map<String, Object> parametersMap = new HashMap<>();
|
||||
parametersMap.put("accessKey","6X3B526P5HqE6ums");
|
||||
parametersMap.put("timestamp",timestamp);
|
||||
|
||||
String a = YzfSignUtil.signRequest(parametersMap,"34e5fc32ac894a2ba2ade8c3852c7a0a");
|
||||
dayabody.put("sign",a);
|
||||
|
||||
StringBuilder body = new StringBuilder();
|
||||
SSLContext sslContext = null;
|
||||
try {
|
||||
sslContext = new SSLContextBuilder()
|
||||
.loadTrustMaterial(null, TrustAllStrategy.INSTANCE)
|
||||
.build();
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
CloseableHttpClient closeableHttpClient = HttpClients.custom()
|
||||
.setSSLContext(sslContext)
|
||||
.setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE)
|
||||
.build();
|
||||
|
||||
HttpPost post = new HttpPost(url);
|
||||
CloseableHttpResponse response = null;
|
||||
|
||||
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(6000).build();
|
||||
post.setConfig(requestConfig);//设置请求参数【超时时间】
|
||||
post.setHeader("Content-Type", "application/json; charset=utf-8");
|
||||
|
||||
try {
|
||||
if (dayabody.toJSONString() != null && !"".equals(dayabody.toJSONString())) {
|
||||
ByteArrayEntity entity = new ByteArrayEntity(dayabody.toJSONString().getBytes("UTF-8"));
|
||||
entity.setContentType("application/json");
|
||||
post.setEntity(entity);
|
||||
}
|
||||
response = closeableHttpClient.execute(post);
|
||||
|
||||
HttpEntity entity = response.getEntity();
|
||||
body.append(EntityUtils.toString(entity, "UTF-8"));
|
||||
} catch (Exception e) {
|
||||
body.append(e.getMessage());
|
||||
} finally {
|
||||
try {
|
||||
// 关闭响应对象
|
||||
if (response != null) {
|
||||
response.close();
|
||||
}
|
||||
// 关闭响应对象
|
||||
if (closeableHttpClient != null) {
|
||||
closeableHttpClient.close();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
System.out.println("body"+body);
|
||||
|
||||
return body.toString();
|
||||
}
|
||||
|
||||
private String getToken() {
|
||||
String url = "http://oapi.nanofintax.com/api/getToken";
|
||||
String bodys = "{\"accessKey\":\"6X3B526P5HqE6ums\",\"accessSecret\":\"34e5fc32ac894a2ba2ade8c3852c7a0a\"}";
|
||||
StringBuilder body = new StringBuilder();
|
||||
SSLContext sslContext = null;
|
||||
try {
|
||||
sslContext = new SSLContextBuilder()
|
||||
.loadTrustMaterial(null, TrustAllStrategy.INSTANCE)
|
||||
.build();
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
CloseableHttpClient closeableHttpClient = HttpClients.custom()
|
||||
.setSSLContext(sslContext)
|
||||
.setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE)
|
||||
.build();
|
||||
|
||||
HttpPost post = new HttpPost(url);
|
||||
CloseableHttpResponse response = null;
|
||||
|
||||
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(6000).build();
|
||||
post.setConfig(requestConfig);//设置请求参数【超时时间】
|
||||
post.setHeader("Content-Type", "application/json; charset=utf-8");
|
||||
|
||||
try {
|
||||
if (bodys != null && !"".equals(bodys)) {
|
||||
ByteArrayEntity entity = new ByteArrayEntity(bodys.getBytes("UTF-8"));
|
||||
entity.setContentType("application/json");
|
||||
post.setEntity(entity);
|
||||
}
|
||||
response = closeableHttpClient.execute(post);
|
||||
|
||||
HttpEntity entity = response.getEntity();
|
||||
body.append(EntityUtils.toString(entity, "UTF-8"));
|
||||
} catch (Exception e) {
|
||||
body.append(e.getMessage());
|
||||
} finally {
|
||||
try {
|
||||
// 关闭响应对象
|
||||
if (response != null) {
|
||||
response.close();
|
||||
}
|
||||
// 关闭响应对象
|
||||
if (closeableHttpClient != null) {
|
||||
closeableHttpClient.close();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
System.out.println("body"+body);
|
||||
String accessToken = JSONObject.parseObject(body.toString()).getJSONObject("result").getString("accessToken");
|
||||
|
||||
return accessToken;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,81 @@
|
|||
package com.hzya.frame.seeyon.util;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
/**
|
||||
* @ClassName YzfObjectUtil
|
||||
* @Description
|
||||
* @Author llg
|
||||
* Date 2025/4/2 2:12 下午
|
||||
*/
|
||||
public class YzfObjectUtil {
|
||||
/**
|
||||
* 是否为包装类型
|
||||
*
|
||||
* @param clazz 类
|
||||
* @return 是否为包装类型
|
||||
*/
|
||||
public static boolean isPrimitiveWrapper(Class<?> clazz) {
|
||||
if (null == clazz) {
|
||||
return false;
|
||||
}
|
||||
return BasicType.wrapperPrimitiveMap.containsKey(clazz);
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否为基本类型(包括包装类和原始类)
|
||||
*
|
||||
* @param clazz 类
|
||||
* @return 是否为基本类型
|
||||
*/
|
||||
public static boolean isBasicType(Class<?> clazz) {
|
||||
if (null == clazz) {
|
||||
return false;
|
||||
}
|
||||
return (clazz.isPrimitive() || isPrimitiveWrapper(clazz));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param clazz 类
|
||||
* @return 是否为简单值类型
|
||||
* 判断是否是基本数据类型、String类型、other CharSequence、Number、Date
|
||||
*/
|
||||
public static boolean isSimpleTypeOrString(Class<?> clazz) {
|
||||
if(clazz == null) {
|
||||
return false;
|
||||
}
|
||||
return isBasicType(clazz) || clazz.isEnum() || CharSequence.class.isAssignableFrom(clazz)
|
||||
|| Number.class.isAssignableFrom(clazz) || Date.class.isAssignableFrom(clazz);
|
||||
}
|
||||
|
||||
enum BasicType {
|
||||
BYTE, SHORT, INT, INTEGER, LONG, DOUBLE, FLOAT, BOOLEAN, CHAR, CHARACTER, STRING;
|
||||
|
||||
/**
|
||||
* 包装类型为Key,原始类型为Value,例如: Integer.class =》 int.class.
|
||||
*/
|
||||
public static final Map<Class<?>, Class<?>> wrapperPrimitiveMap = new ConcurrentHashMap<>(8);
|
||||
/**
|
||||
* 原始类型为Key,包装类型为Value,例如: int.class =》 Integer.class.
|
||||
*/
|
||||
public static final Map<Class<?>, Class<?>> primitiveWrapperMap = new ConcurrentHashMap<>(8);
|
||||
|
||||
static {
|
||||
wrapperPrimitiveMap.put(Boolean.class, boolean.class);
|
||||
wrapperPrimitiveMap.put(Byte.class, byte.class);
|
||||
wrapperPrimitiveMap.put(Character.class, char.class);
|
||||
wrapperPrimitiveMap.put(Double.class, double.class);
|
||||
wrapperPrimitiveMap.put(Float.class, float.class);
|
||||
wrapperPrimitiveMap.put(Integer.class, int.class);
|
||||
wrapperPrimitiveMap.put(Long.class, long.class);
|
||||
wrapperPrimitiveMap.put(Short.class, short.class);
|
||||
|
||||
for (Map.Entry<Class<?>, Class<?>> entry : wrapperPrimitiveMap.entrySet()) {
|
||||
primitiveWrapperMap.put(entry.getValue(), entry.getKey());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,50 @@
|
|||
package com.hzya.frame.seeyon.util;
|
||||
import java.security.MessageDigest;
|
||||
|
||||
/**
|
||||
* @ClassName YzfSHA256Util
|
||||
* @Description
|
||||
* @Author llg
|
||||
* Date 2025/4/2 2:11 下午
|
||||
*/
|
||||
public class YzfSHA256Util {
|
||||
|
||||
/**
|
||||
* 利用java原生的摘要实现SHA256加密
|
||||
* @param str 加密后的报文
|
||||
* @return
|
||||
*/
|
||||
public static String getSHA256StrJava(String str, String charsetName) {
|
||||
MessageDigest messageDigest;
|
||||
String encodeStr = "";
|
||||
|
||||
try {
|
||||
messageDigest = MessageDigest.getInstance("SHA-256");
|
||||
messageDigest.update(str.getBytes(charsetName));
|
||||
encodeStr = byte2Hex(messageDigest.digest());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return encodeStr;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将byte转为16进制
|
||||
* @param bytes
|
||||
* @return
|
||||
*/
|
||||
private static String byte2Hex(byte[] bytes) {
|
||||
StringBuffer stringBuffer = new StringBuffer();
|
||||
String temp = null;
|
||||
for (int i = 0; i < bytes.length; i++) {
|
||||
temp = Integer.toHexString(bytes[i] & 0xFF);
|
||||
if (temp.length() == 1) {
|
||||
//1得到一位的进行补0操作
|
||||
stringBuffer.append("0");
|
||||
}
|
||||
stringBuffer.append(temp);
|
||||
}
|
||||
return stringBuffer.toString();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
package com.hzya.frame.seeyon.util;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @ClassName YzfSignUtil
|
||||
* @Description
|
||||
* @Author llg
|
||||
* Date 2025/4/2 2:14 下午
|
||||
*/
|
||||
public class YzfSignUtil {
|
||||
private static final String CHARSET = "utf-8";
|
||||
|
||||
public static String signRequest(Map<String, Object> parametersMap, String secretkey) {
|
||||
ArrayList<String> list = new ArrayList<>();
|
||||
for (Map.Entry<String, Object> entry : parametersMap.entrySet()) {
|
||||
String key = entry.getKey();
|
||||
Object val = entry.getValue();
|
||||
if (StringUtils.isBlank(key) || val == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (YzfObjectUtil.isSimpleTypeOrString(val.getClass())) {
|
||||
if (null != val && !"".equals(val)) {
|
||||
list.add(key + "=" + val + "&");
|
||||
}
|
||||
}
|
||||
}
|
||||
int size = list.size();
|
||||
String[] arrayToSort = list.toArray(new String[size]);
|
||||
Arrays.sort(arrayToSort, String.CASE_INSENSITIVE_ORDER);
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < size; i++) {
|
||||
sb.append(arrayToSort[i]);
|
||||
}
|
||||
String result = sb.toString();
|
||||
result += secretkey;
|
||||
result = YzfSHA256Util.getSHA256StrJava(result, CHARSET);
|
||||
return result;
|
||||
}
|
||||
}
|
54
pom.xml
54
pom.xml
|
@ -471,33 +471,33 @@
|
|||
<artifactId>maven-war-plugin</artifactId>
|
||||
<configuration>
|
||||
<webResources>
|
||||
<resource>
|
||||
<directory>${basedir}/../base-service/src/main/webapp/WEB-INF/lib</directory>
|
||||
<targetPath>WEB-INF/lib/</targetPath>
|
||||
<filtering>false</filtering>
|
||||
<includes>
|
||||
<!-- 匹配所有jar包 -->
|
||||
<include>**/*.jar</include>
|
||||
</includes>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>${basedir}/../fw-bip/src/main/webapp/WEB-INF/lib</directory>
|
||||
<targetPath>WEB-INF/lib/</targetPath>
|
||||
<filtering>false</filtering>
|
||||
<includes>
|
||||
<!-- 匹配所有jar包 -->
|
||||
<include>**/*.jar</include>
|
||||
</includes>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>${basedir}/../fw-ningbobank/src/main/webapp/WEB-INF/lib</directory>
|
||||
<targetPath>WEB-INF/lib/</targetPath>
|
||||
<filtering>false</filtering>
|
||||
<includes>
|
||||
<!-- 匹配所有jar包 -->
|
||||
<include>**/*.jar</include>
|
||||
</includes>
|
||||
</resource>
|
||||
<!-- <resource>-->
|
||||
<!-- <directory>${basedir}/../base-service/src/main/webapp/WEB-INF/lib</directory>-->
|
||||
<!-- <targetPath>WEB-INF/lib/</targetPath>-->
|
||||
<!-- <filtering>false</filtering>-->
|
||||
<!-- <includes>-->
|
||||
<!-- <!– 匹配所有jar包 –>-->
|
||||
<!-- <include>**/*.jar</include>-->
|
||||
<!-- </includes>-->
|
||||
<!-- </resource>-->
|
||||
<!-- <resource>-->
|
||||
<!-- <directory>${basedir}/../fw-bip/src/main/webapp/WEB-INF/lib</directory>-->
|
||||
<!-- <targetPath>WEB-INF/lib/</targetPath>-->
|
||||
<!-- <filtering>false</filtering>-->
|
||||
<!-- <includes>-->
|
||||
<!-- <!– 匹配所有jar包 –>-->
|
||||
<!-- <include>**/*.jar</include>-->
|
||||
<!-- </includes>-->
|
||||
<!-- </resource>-->
|
||||
<!-- <resource>-->
|
||||
<!-- <directory>${basedir}/../fw-ningbobank/src/main/webapp/WEB-INF/lib</directory>-->
|
||||
<!-- <targetPath>WEB-INF/lib/</targetPath>-->
|
||||
<!-- <filtering>false</filtering>-->
|
||||
<!-- <includes>-->
|
||||
<!-- <!– 匹配所有jar包 –>-->
|
||||
<!-- <include>**/*.jar</include>-->
|
||||
<!-- </includes>-->
|
||||
<!-- </resource>-->
|
||||
</webResources>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
|
Loading…
Reference in New Issue