diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/contract/dao/IContractAuditDao.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/contract/dao/IContractAuditDao.java new file mode 100644 index 00000000..ca94f335 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/contract/dao/IContractAuditDao.java @@ -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 { +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/contract/dao/impl/ContractAuditDaoImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/contract/dao/impl/ContractAuditDaoImpl.java new file mode 100644 index 00000000..981ed004 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/contract/dao/impl/ContractAuditDaoImpl.java @@ -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 implements IContractAuditDao { +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/contract/entity/ContractAuditEntity.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/contract/entity/ContractAuditEntity.java new file mode 100644 index 00000000..5d3b3cbe --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/contract/entity/ContractAuditEntity.java @@ -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; + } +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/contract/entity/ContractAuditEntity.xml b/base-buildpackage/src/main/java/com/hzya/frame/plugin/contract/entity/ContractAuditEntity.xml new file mode 100644 index 00000000..5f5f918e --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/contract/entity/ContractAuditEntity.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/contract/plugin/ContractAuditPluginInitializer.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/contract/plugin/ContractAuditPluginInitializer.java new file mode 100644 index 00000000..6f7ae7e7 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/contract/plugin/ContractAuditPluginInitializer.java @@ -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 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 headerMap = MapBuilder.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 tokenHeaderMap = MapBuilder.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; + } +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/contract/service/IContractAuditService.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/contract/service/IContractAuditService.java new file mode 100644 index 00000000..8d216ac0 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/contract/service/IContractAuditService.java @@ -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 { + + /** + * 查询超过60天还没审批的逾期合同 + * @param entity + * @return + * @throws Exception + */ + List queryOverdueList(ContractAuditEntity entity)throws Exception; +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/contract/service/impl/ContractAuditServiceImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/contract/service/impl/ContractAuditServiceImpl.java new file mode 100644 index 00000000..5d953f29 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/contract/service/impl/ContractAuditServiceImpl.java @@ -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 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 queryOverdueList(ContractAuditEntity entity) throws Exception { + List query = contractAuditDao.query(entity); + return query; + } +} diff --git a/base-buildpackage/src/main/resources/cfgHome/plugin/contract/pluginCfg.xml b/base-buildpackage/src/main/resources/cfgHome/plugin/contract/pluginCfg.xml new file mode 100644 index 00000000..6c8f8261 --- /dev/null +++ b/base-buildpackage/src/main/resources/cfgHome/plugin/contract/pluginCfg.xml @@ -0,0 +1,6 @@ + + +ContractAuditPluginInitializer +ContractAuditPluginInitializer插件 +25033101 + diff --git a/base-buildpackage/src/main/resources/cfgHome/plugin/contract/spring/spring-buildpackage-plugin.xml b/base-buildpackage/src/main/resources/cfgHome/plugin/contract/spring/spring-buildpackage-plugin.xml new file mode 100644 index 00000000..aea3fc4b --- /dev/null +++ b/base-buildpackage/src/main/resources/cfgHome/plugin/contract/spring/spring-buildpackage-plugin.xml @@ -0,0 +1,5 @@ + + + + +