Merge remote-tracking branch 'origin/dongj' into dongj

This commit is contained in:
yuqh 2024-10-14 15:21:05 +08:00
commit f11dba5d41
7 changed files with 255 additions and 23 deletions

View File

@ -0,0 +1,152 @@
package com.hzya.frame.plugin.a8bill.plugin;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.hzya.frame.base.PluginBaseEntity;
import com.hzya.frame.plugin.a8bill.dao.IPayBillPluginInitializerDao;
import com.hzya.frame.plugin.a8bill.entity.PayBillEntity;
import com.hzya.frame.plugin.a8bill.service.INingboBankPluginService;
import com.hzya.frame.sysnew.integtationTaskLivingDetails.entity.IntegrationTaskLivingDetailsEntity;
import com.hzya.frame.sysnew.integtationTaskLivingDetails.service.IIntegrationTaskLivingDetailsService;
import com.hzya.frame.web.entity.BaseResult;
import com.hzya.frame.web.entity.JsonResultEntity;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
/**
* @Description OA付款申请审批完成后传u8c
* @Author xiangerlin
* @Date 2024/10/9 14:19
**/
public class PayReqSyncU8CPluginInitializer extends PluginBaseEntity {
Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private INingboBankPluginService ningboBankPluginService;
@Resource
private IIntegrationTaskLivingDetailsService taskLivingDetailsService;
@Autowired
private IPayBillPluginInitializerDao payBillDao;
@Value("${OA.data_source_code}")
private String oa_data_source_code;
/***
* 插件初始化方法
* @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 "PayReqSyncU8CPlugin";
}
/****
* 插件的名称
* @author 👻👻👻👻👻👻👻👻 gjh
* @date 2023-08-02 10:48
* @return void
**/
@Override
public String getPluginName() {
return "付款申请审批结果传U8C";
}
/****
* 插件的显示值
* @author 👻👻👻👻👻👻👻👻 gjh
* @date 2023-08-02 10:48
* @return void
**/
@Override
public String getPluginLabel() {
return "付款申请审批结果传U8C";
}
/***
* 插件类型 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("======开始执行付款申请审批结果传U8C========");
JSONObject requestJsonObj = JSON.parseObject(requestJson.toString(), JSONObject.class);
String integration_task_living_details_id = requestJsonObj.getString("integration_task_living_details_id");
IntegrationTaskLivingDetailsEntity oldMsg = new IntegrationTaskLivingDetailsEntity();
if (StrUtil.isNotEmpty(integration_task_living_details_id)) {
oldMsg = taskLivingDetailsService.get(integration_task_living_details_id);
}
String rootAppPk = oldMsg.getRootAppPk();
try {
StringBuffer sb = new StringBuffer();
if (StrUtil.isNotEmpty(rootAppPk)) {
sb.append(" and id = '" + rootAppPk + "'");
}else {
sb.append("and finishedflag = '1' and pushState is null");
}
PayBillEntity oaBillEntity = new PayBillEntity();
oaBillEntity.setDataSourceCode(oa_data_source_code);
StringBuffer stringBuffer = new StringBuffer();
//付款单
stringBuffer.append("SELECT * from v_hzya_payres_u8c WHERE 1= 1 ");
stringBuffer.append(sb.toString());
List<HashMap<String, Object>> hashMaps = payBillDao.getOaBillData(stringBuffer.toString(), oaBillEntity);
for (HashMap<String, Object> hashMap : hashMaps) {
JSONObject main = new JSONObject();
for (String key : hashMap.keySet()) {
main.put(key, hashMap.get(key));
}
ningboBankPluginService.updateU8CStatus(main,integration_task_living_details_id);
}
} catch (Exception e) {
logger.info("获取OA数据失败" + e.getMessage());
e.printStackTrace();
}
return BaseResult.getSuccessMessageEntity(getPluginName()+"执行成功");
}
}

View File

@ -53,8 +53,8 @@ public interface INingboBankPluginService {
/**
* 更新u8c单据状态
* @param billCode oa单据编号
* @param dwbm 公司编码
* @param jsonObject
* @param integration_task_living_details_id 重试id
*/
void updateU8CStatus(String billCode,String dwbm);
void updateU8CStatus(JSONObject jsonObject,String integration_task_living_details_id);
}

View File

@ -157,8 +157,6 @@ private IFormmain0044Service formmain0044Service;
//修改推送状态防止重复推送
oaBillEntity.setSql(str);
payBillDao.updateStateForId(str,oaBillEntity);
//更新u8c付款单状态
updateU8CStatus(main.getString("serialNo"),main.getString("dwbm"));
}catch (Exception e){
logger.info("宁波银行付款接口调用出错:{}",e);
}
@ -386,25 +384,94 @@ private IFormmain0044Service formmain0044Service;
/**
* 更新u8c单据状态
* @param billCode oa单据编号
* @param dwbm 公司编码
* @param main
*/
@Override
public void updateU8CStatus(String billCode,String dwbm) {
public void updateU8CStatus(JSONObject main,String integration_task_living_details_id) {
String billCode = main.getString("serialNo");
String dwbm = main.getString("dwbm");
String state = main.getString("state");
String userCode = main.getString("userCode");
String id = main.getString("id");
if (StrUtil.isNotEmpty(billCode)){
JSONObject param = new JSONObject();
param.put("billno",billCode);
param.put("corpcode",dwbm);
param.put("billType","paybill");
param.put("userCode","hzya");
param.put("ckeckResult","Y");
param.put("ckeckNote","审批通过");
String s = executeEsb(param.toString(), "8000350060","800035");
System.out.println("调用U8C付款单审批返回参数"+s);
logger.info("调用U8C付款单审批返回参数:{}",s);
PayBillEntity oaBillEntity = new PayBillEntity();
oaBillEntity.setDataSourceCode(oa_data_source_code);
String str = "update formmain_0058 set field0072 = 'N' where id = "+id;
try {
JSONObject param = new JSONObject();
param.put("billno",billCode);
param.put("corpcode",dwbm);
param.put("billType","paybill");
param.put("userCode",userCode);
param.put("ckeckResult","3".equals(state) ? "Y" :"N");
param.put("ckeckNote",getStateName(state));
String result = executeEsb(param.toString(), "8000350060","800035");
logger.info("调用U8C付款单审批返回参数:{}",result);
//保存日志
IntegrationTaskLivingDetailsEntity taskLivingDetail = new IntegrationTaskLivingDetailsEntity();
taskLivingDetail.setCreate_time(new Date());
taskLivingDetail.setModify_time(new Date());
taskLivingDetail.setRootAppPk(id);
taskLivingDetail.setRootAppBill(main.getString("serialNo"));
taskLivingDetail.setPluginId("PayReqSyncU8CPlugin");
taskLivingDetail.setRootAppNewData(param.toString());
taskLivingDetail.setNewTransmitInfo(result);
taskLivingDetail.setNewPushDate(new Date());
JSONObject resultObj = JSON.parseObject(result);
boolean flag = resultObj.getBoolean("flag");
//保存日志
saveLog(integration_task_living_details_id,flag,taskLivingDetail);
//更新oa表单推送状态
if (flag){
str = "update formmain_0058 set field0072 = 'Y' where id = "+id;
}
}catch (Exception e){
logger.error("执行U8C付款单审批接口出错:{}",e);
}
//修改推送状态防止重复推送
oaBillEntity.setSql(str);
try {
payBillDao.updateStateForId(str,oaBillEntity);
} catch (Exception e) {
logger.error("执行U8C付款单审批接口后更新OA单据状态出错:{}",e);
}
}
}
//审批状态对应的中文
private String getStateName(String state){
if ("3".equals(state)){
return "审批通过";
}else if ("1".equals(state)){
return "流程终止";
}else if ("2".equals(state)){
return "流程撤销";
}
return "审批通过";
}
public void saveLog(String integration_task_living_details_id, Boolean flag, IntegrationTaskLivingDetailsEntity taskLivingDetail){
try {
//判断成功调用这个方法
if (StrUtil.isEmpty(integration_task_living_details_id)){
if (flag){
taskLivingDetailsService.saveLogToSuccess(taskLivingDetail);
}else {
//失败 调用这个方法
taskLivingDetailsService.saveLogToFail(taskLivingDetail);
}
}else {
taskLivingDetail.setId(integration_task_living_details_id);
if (flag){
//如果是重试 成功调这个方法
taskLivingDetailsService.saveLogFailToSuccess(taskLivingDetail);
}else {
//如果是重试 失败调这个方法
taskLivingDetailsService.updateLogFailToSuccess(taskLivingDetail);
}
}
}catch (Exception e){
logger.error("保存日志出错:{}",e);
}
}
private static String getAccLogXmlTemplate(){
// return "<forms version=\"2.1\"><formExport><summary id=\"1828182906863371818\" name=\"formmain_0044\"/><definitions><column id=\"field0001\" type=\"0\" name=\"我方账号\" isNullable=\"false\" length=\"200\"/><column id=\"field0017\" type=\"0\" name=\"我方开户行\" isNullable=\"false\" length=\"200\"/><column id=\"field0024\" type=\"0\" name=\"我方户名\" isNullable=\"false\" length=\"200\"/><column id=\"field0029\" type=\"0\" name=\"客户方账号\" isNullable=\"false\" length=\"200\"/><column id=\"field0022\" type=\"0\" name=\"客户方户名\" isNullable=\"false\" length=\"2000\"/><column id=\"field0030\" type=\"0\" name=\"客户方开户行\" isNullable=\"false\" length=\"500\"/><column id=\"field0018\" type=\"2\" name=\"交易日期\" isNullable=\"false\" length=\"255\"/><column id=\"field0019\" type=\"0\" name=\"交易流水号\" isNullable=\"false\" length=\"100\"/><column id=\"field0020\" type=\"4\" name=\"收款金额\" isNullable=\"false\" length=\"20\"/><column id=\"field0021\" type=\"0\" name=\"摘要\" isNullable=\"false\" length=\"500\"/><column id=\"field0025\" type=\"0\" name=\"银行类型\" isNullable=\"false\" length=\"100\"/><column id=\"field0026\" type=\"0\" name=\"银行流水号\" isNullable=\"false\" length=\"100\"/><column id=\"field0027\" type=\"0\" name=\"币种\" isNullable=\"false\" length=\"100\"/><column id=\"field0028\" type=\"0\" name=\"用途\" isNullable=\"false\" length=\"800\"/><column id=\"field0031\" type=\"0\" name=\"关联客户号\" isNullable=\"false\" length=\"100\"/><column id=\"field0032\" type=\"0\" name=\"客商编号\" isNullable=\"false\" length=\"100\"/><column id=\"field0033\" type=\"0\" name=\"交易代码\" isNullable=\"false\" length=\"100\"/><column id=\"field0034\" type=\"0\" name=\"客商名称\" isNullable=\"false\" length=\"100\"/><column id=\"field0035\" type=\"0\" name=\"对账码\" isNullable=\"false\" length=\"100\"/><column id=\"field0036\" type=\"0\" name=\"备注\" isNullable=\"false\" length=\"800\"/><column id=\"field0037\" type=\"0\" name=\"ERP业务参考号\" isNullable=\"false\" length=\"100\"/><column id=\"field0038\" type=\"0\" name=\"币种ID\" isNullable=\"false\" length=\"100\"/><column id=\"field0039\" type=\"0\" name=\"币种编码\" isNullable=\"false\" length=\"100\"/><column id=\"field0040\" type=\"0\" name=\"控制只关联1次\" isNullable=\"false\" length=\"100\"/><column id=\"field0044\" type=\"4\" name=\"收款剩余金额\" isNullable=\"false\" length=\"20\"/><column id=\"field0045\" type=\"0\" name=\"收款完成情况\" isNullable=\"false\" length=\"100\"/><column id=\"field0046\" type=\"4\" name=\"是否收款完成\" isNullable=\"false\" length=\"20\"/></definitions><values><column name=\"我方账号\"><value><![CDATA[{}]]></value></column><column name=\"我方开户行\"><value><![CDATA[{}]]></value></column><column name=\"我方户名\"><value><![CDATA[{}]]></value></column><column name=\"客户方账号\"><value><![CDATA[{}]]></value></column><column name=\"客户方户名\"><value><![CDATA[{}]]></value></column><column name=\"客户方开户行\"><value><![CDATA[{}]]></value></column><column name=\"交易日期\"><value><![CDATA[{}]]></value></column><column name=\"交易流水号\"><value><![CDATA[{}]]></value></column><column name=\"收款金额\"><value><![CDATA[{}]]></value></column><column name=\"摘要\"><value><![CDATA[{}]]></value></column><column name=\"银行类型\"><value><![CDATA[{}]]></value></column><column name=\"银行流水号\"><value><![CDATA[{}]]></value></column><column name=\"币种\"><value><![CDATA[{}]]></value></column><column name=\"用途\"><value><![CDATA[{}]]></value></column><column name=\"关联客户号\"><value><![CDATA[{}]]></value></column><column name=\"客商编号\"><value><![CDATA[{}]]></value></column><column name=\"交易代码\"><value><![CDATA[{}]]></value></column><column name=\"客商名称\"><value><![CDATA[{}]]></value></column><column name=\"对账码\"><value><![CDATA[{}]]></value></column><column name=\"备注\"><value><![CDATA[{}]]></value></column><column name=\"ERP业务参考号\"><value><![CDATA[{}]]></value></column><column name=\"币种ID\"><value><![CDATA[{}]]></value></column><column name=\"币种编码\"><value><![CDATA[{}]]></value></column><column name=\"控制只关联1次\"><value><![CDATA[{}]]></value></column><column name=\"收款剩余金额\"><value><![CDATA[{}]]></value></column><column name=\"收款完成情况\"><value><![CDATA[{}]]></value></column><column name=\"是否收款完成\"><value><![CDATA[{}]]></value></column></values><subForms/></formExport></forms>";
return "<forms version=\"2.1\"><formExport><summary id=\"1828182906863371818\" name=\"formmain_0044\"/><definitions><column id=\"field0001\" type=\"0\" name=\"我方账号\" isNullable=\"false\" length=\"200\"/><column id=\"field0017\" type=\"0\" name=\"我方开户行\" isNullable=\"false\" length=\"200\"/><column id=\"field0024\" type=\"0\" name=\"我方户名\" isNullable=\"false\" length=\"200\"/><column id=\"field0029\" type=\"0\" name=\"客户方账号\" isNullable=\"false\" length=\"200\"/><column id=\"field0022\" type=\"0\" name=\"客户方户名\" isNullable=\"false\" length=\"2000\"/><column id=\"field0030\" type=\"0\" name=\"客户方开户行\" isNullable=\"false\" length=\"500\"/><column id=\"field0018\" type=\"2\" name=\"交易日期\" isNullable=\"false\" length=\"255\"/><column id=\"field0019\" type=\"0\" name=\"交易流水号\" isNullable=\"false\" length=\"100\"/><column id=\"field0020\" type=\"4\" name=\"收款金额\" isNullable=\"false\" length=\"20\"/><column id=\"field0021\" type=\"0\" name=\"摘要\" isNullable=\"false\" length=\"500\"/><column id=\"field0025\" type=\"0\" name=\"银行类型\" isNullable=\"false\" length=\"100\"/><column id=\"field0026\" type=\"0\" name=\"银行流水号\" isNullable=\"false\" length=\"100\"/><column id=\"field0027\" type=\"0\" name=\"币种\" isNullable=\"false\" length=\"100\"/><column id=\"field0028\" type=\"0\" name=\"用途\" isNullable=\"false\" length=\"800\"/><column id=\"field0036\" type=\"0\" name=\"备注\" isNullable=\"false\" length=\"800\"/><column id=\"field0039\" type=\"0\" name=\"币种编码\" isNullable=\"false\" length=\"100\"/></definitions><values><column name=\"我方账号\"><value><![CDATA[{}]]></value></column><column name=\"我方开户行\"><value><![CDATA[{}]]></value></column><column name=\"我方户名\"><value><![CDATA[{}]]></value></column><column name=\"客户方账号\"><value><![CDATA[{}]]></value></column><column name=\"客户方户名\"><value><![CDATA[{}]]></value></column><column name=\"客户方开户行\"><value><![CDATA[{}]]></value></column><column name=\"交易日期\"><value><![CDATA[{}]]></value></column><column name=\"交易流水号\"><value><![CDATA[{}]]></value></column><column name=\"收款金额\"><value><![CDATA[{}]]></value></column><column name=\"摘要\"><value><![CDATA[{}]]></value></column><column name=\"银行类型\"><value><![CDATA[{}]]></value></column><column name=\"银行流水号\"><value><![CDATA[{}]]></value></column><column name=\"币种\"><value><![CDATA[{}]]></value></column><column name=\"用途\"><value><![CDATA[{}]]></value></column><column name=\"备注\"><value><![CDATA[{}]]></value></column><column name=\"币种编码\"><value><![CDATA[{}]]></value></column></values><subForms/></formExport></forms>";

View File

@ -29,7 +29,9 @@ public class SalesBillingServiceImpl implements ISalesBillingService {
private IU8cSalesBillingService iu8cSalesBillingService;
private final String appId = "800035";
private final String apiCode = "8000350047";
//这个接口调错了要用开发的那个审批接口
//private final String apiCode = "8000350047";
private final String apiCode = "8000350060";
private final String publicKey = "ZJYATW/MfYZX7zF0eAh4DJXbyTLwUtwSoSz5Y/o1ksAaN/dCe7eDIk+3zDUT+v578prj";
private final String secretKey = "+5BUkLQh3iX3VHgEt5bE2IPh+ZeebGvDaEspsvVu739Ar6sFnwg+fpPod4t6XhoTj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=";
@ -131,6 +133,16 @@ public class SalesBillingServiceImpl implements ISalesBillingService {
data.put("queryinfo", queryinfo);
data.put("approveinfo", approveinfo);
params = data.toJSONString();
//用新的审批接口
JSONObject jsonObject = new JSONObject();
jsonObject.put("billno",entity.getCode());
jsonObject.put("corpcode",entity.getCorp());
jsonObject.put("billType","saleinvoice");
jsonObject.put("userCode","15715849962");
jsonObject.put("ckeckResult","Y");
jsonObject.put("ckeckNote","审批通过");
params = jsonObject.toString();
return params;
}
@ -143,7 +155,7 @@ public class SalesBillingServiceImpl implements ISalesBillingService {
.put("secretKey", secretKey)
.put("appId", appId)
.build();
String res = HttpRequest.post("http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface").addHeaders(header).body(params).timeout(60000).execute().body();
String res = HttpRequest.post("http://127.0.0.1:8901/kangarooDataCenterV3/entranceController/externalCallInterface").addHeaders(header).body(params).timeout(60000).execute().body();
return res;
}
}

View File

@ -6,4 +6,5 @@
<bean name="ningboBankPayResultPluginInitializer" class="com.hzya.frame.plugin.a8bill.plugin.NingboBankPayResultPluginInitializer" />
<bean name="ningboBankTTPayPluginInitializer" class="com.hzya.frame.plugin.a8bill.plugin.NingboBankTTPayPluginInitializer" />
<bean name="ningboBankTTPayResultPluginInitializer" class="com.hzya.frame.plugin.a8bill.plugin.NingboBankTTPayResultPluginInitializer" />
<bean name="payReqSyncU8CPluginInitializer" class="com.hzya.frame.plugin.a8bill.plugin.PayReqSyncU8CPluginInitializer" />
</beans>

View File

@ -75,7 +75,7 @@ public class temButtom {
@Test
public void updateU8CTest(){
try {
ningboBankPluginService.updateU8CStatus("FK2409190002","001");
//ningboBankPluginService.updateU8CStatus("FK2409190002","001","3");
}catch (Exception ex){
ex.printStackTrace();
}

View File

@ -22,7 +22,7 @@
formmain_0049.field0045 as corp, -- 公司编码
CONVERT(varchar,formmain_0049.start_date, 23) as dateBegin,-- 单据开始日期
CONVERT(varchar,formmain_0049.modify_date, 23) as dateEnd, -- 单据结束日期
'15639671252' as approvid, -- 审批人
'15715849962' as approvid, -- 审批人
CONVERT(varchar,formmain_0049.modify_date, 23) as approvedate, -- 审核时间
case when COL_SUMMARY.STATE = '1' then 'R' when COL_SUMMARY.STATE = '3' then 'Y' ELSE 'Y' END as status, -- 审批状态Y通过N不通过R驳回
'已阅' as note -- 批语