oa对接cbs

This commit is contained in:
xiang2lin 2024-06-14 16:49:04 +08:00
parent ae9eca4c92
commit 55f9afdf48
6 changed files with 607 additions and 0 deletions

View File

@ -0,0 +1,10 @@
package com.hzya.frame.seeyon.cbs8.dao;
import com.hzya.frame.basedao.dao.IBaseDao;
import com.hzya.frame.seeyon.cbs8.entity.PaymentEntity;
/**
* oa集成cbs
*/
public interface IPaymentDao extends IBaseDao<PaymentEntity,String> {
}

View File

@ -0,0 +1,15 @@
package com.hzya.frame.seeyon.cbs8.dao.impl;
import com.hzya.frame.basedao.dao.MybatisGenericDao;
import com.hzya.frame.seeyon.cbs8.dao.IPaymentDao;
import com.hzya.frame.seeyon.cbs8.entity.PaymentEntity;
import org.springframework.stereotype.Repository;
/**
* @Description oa集成cbs
* @Author xiangerlin
* @Date 2024/6/6 16:28
**/
@Repository("OAPaymentDaoImpl")
public class PaymentDaoImpl extends MybatisGenericDao<PaymentEntity,String> implements IPaymentDao {
}

View File

@ -0,0 +1,300 @@
package com.hzya.frame.seeyon.cbs8.entity;
import com.hzya.frame.web.entity.BaseEntity;
/**
* @Description
* @Author xiangerlin
* @Date 2024/6/6 16:17
**/
public class PaymentEntity extends BaseEntity {
private String oaId;//主表id
private String payCompany;//付款公司
private String title;//流程标题
private String tableName;//表名称
private String billName;//单据名称
private String referenceNum;//业务参考号 唯一id
private String referenceNumNew;//重试的时候生成新的业务参考号
private String busType;//业务类型
private String payResultField;//支付结果字段
private String payDateField;//打款日期字段
private String receiptFiled;//电子回单字段
private String summaryId;//summaryid
private String startDate;//单据日期
private String finishedflag;//流程状态
private String payDate;//打款日期
private String payResult;//支付结果
private String payAccount;//付款账号
private String payBankName;//付款开户银行
private String amount;//金额
private String purpose;//支付用途
private String revAccount;//收款账号
private String revBankName;//收款开户行名称
private String revBankType;//收款银行类型
private String revAccountName;//收款账户名称
private String cnapsCode;//联行号
private String receipt;//电子回单
private String currency;//币种 数字
private String currencyName;//币种 中文
private String currencyCode;//币种编码
private String personalFlag;//公私标记
private String payType;//付款类别
private String payCompanyCode;//付款公司编码
public String getOaId() {
return oaId;
}
public void setOaId(String oaId) {
this.oaId = oaId;
}
public String getPayCompany() {
return payCompany;
}
public void setPayCompany(String payCompany) {
this.payCompany = payCompany;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getTableName() {
return tableName;
}
public void setTableName(String tableName) {
this.tableName = tableName;
}
public String getBillName() {
return billName;
}
public void setBillName(String billName) {
this.billName = billName;
}
public String getReferenceNum() {
return referenceNum;
}
public void setReferenceNum(String referenceNum) {
this.referenceNum = referenceNum;
}
public String getReferenceNumNew() {
return referenceNumNew;
}
public void setReferenceNumNew(String referenceNumNew) {
this.referenceNumNew = referenceNumNew;
}
public String getBusType() {
return busType;
}
public void setBusType(String busType) {
this.busType = busType;
}
public String getPayResultField() {
return payResultField;
}
public void setPayResultField(String payResultField) {
this.payResultField = payResultField;
}
public String getPayDateField() {
return payDateField;
}
public void setPayDateField(String payDateField) {
this.payDateField = payDateField;
}
public String getReceiptFiled() {
return receiptFiled;
}
public void setReceiptFiled(String receiptFiled) {
this.receiptFiled = receiptFiled;
}
public String getSummaryId() {
return summaryId;
}
public void setSummaryId(String summaryId) {
this.summaryId = summaryId;
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
public String getFinishedflag() {
return finishedflag;
}
public void setFinishedflag(String finishedflag) {
this.finishedflag = finishedflag;
}
public String getPayDate() {
return payDate;
}
public void setPayDate(String payDate) {
this.payDate = payDate;
}
public String getPayResult() {
return payResult;
}
public void setPayResult(String payResult) {
this.payResult = payResult;
}
public String getPayAccount() {
return payAccount;
}
public void setPayAccount(String payAccount) {
this.payAccount = payAccount;
}
public String getPayBankName() {
return payBankName;
}
public void setPayBankName(String payBankName) {
this.payBankName = payBankName;
}
public String getAmount() {
return amount;
}
public void setAmount(String amount) {
this.amount = amount;
}
public String getPurpose() {
return purpose;
}
public void setPurpose(String purpose) {
this.purpose = purpose;
}
public String getRevAccount() {
return revAccount;
}
public void setRevAccount(String revAccount) {
this.revAccount = revAccount;
}
public String getRevBankName() {
return revBankName;
}
public void setRevBankName(String revBankName) {
this.revBankName = revBankName;
}
public String getRevBankType() {
return revBankType;
}
public void setRevBankType(String revBankType) {
this.revBankType = revBankType;
}
public String getRevAccountName() {
return revAccountName;
}
public void setRevAccountName(String revAccountName) {
this.revAccountName = revAccountName;
}
public String getCnapsCode() {
return cnapsCode;
}
public void setCnapsCode(String cnapsCode) {
this.cnapsCode = cnapsCode;
}
public String getReceipt() {
return receipt;
}
public void setReceipt(String receipt) {
this.receipt = receipt;
}
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
public String getCurrencyName() {
return currencyName;
}
public void setCurrencyName(String currencyName) {
this.currencyName = currencyName;
}
public String getCurrencyCode() {
return currencyCode;
}
public void setCurrencyCode(String currencyCode) {
this.currencyCode = currencyCode;
}
public String getPersonalFlag() {
return personalFlag;
}
public void setPersonalFlag(String personalFlag) {
this.personalFlag = personalFlag;
}
public String getPayType() {
return payType;
}
public void setPayType(String payType) {
this.payType = payType;
}
public String getPayCompanyCode() {
return payCompanyCode;
}
public void setPayCompanyCode(String payCompanyCode) {
this.payCompanyCode = payCompanyCode;
}
}

View File

@ -0,0 +1,219 @@
<?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.seeyon.cbs8.entity.PaymentEntity">
<resultMap id="get-PaymentEntity-result" type="com.hzya.frame.seeyon.cbs8.entity.PaymentEntity">
<result property="referenceNum" column="referenceNum" />
<result property="busType" column="busType" />
<result property="title" column="title" />
<result property="amount" column="amount" />
<result property="currency" column="currency" />
<result property="payAccount" column="payAccount" jdbcType="VARCHAR" />
<result property="revAccount" column="revAccount" />
<result property="revAccountName" column="revAccountName" />
<result property="revBankType" column="revBankType" />
<result property="revBankName" column="revBankName" />
<result property="cnapsCode" column="cnapsCode" />
<result property="purpose" column="purpose" />
<result property="personalFlag" column="personalFlag" />
<result property="tableName" column="tableName" />
<result property="oaId" column="oaId" />
<result property="payCompany" column="payCompany" />
<result property="billName" column="billName" />
<result property="payResultField" column="payResultField" />
<result property="payDateField" column="payDateField" />
<result property="receiptFiled" column="receiptFiled" />
<result property="summaryId" column="summaryId" />
<result property="startDate" column="startDate" />
<result property="finishedflag" column="finishedflag" />
<result property="payDate" column="payDate" />
<result property="payResult" column="payResult" />
<result property="payBankName" column="payBankName" />
<result property="receipt" column="receipt" />
<result property="payType" column="payType" />
<result property="payCompanyCode" column="payCompanyCode" />
</resultMap>
<sql id="PaymentEntity_Base_Column_List">
oaId,
payCompany,
payCompanyCode,
title,
tableName,
billName,
referenceNum,
busType,
payResultField,
payDateField,
receiptFiled,
summaryId,
startDate,
finishedflag,
payDate,
payResult,
payAccount,
payBankName,
amount,
purpose,
revAccount,
revBankName,
revBankType,
revAccountName,
cnapsCode,
receipt,
currency,
personalFlag,
payType
</sql>
<!-- 采用==查询 -->
<select id="PaymentEntity_list_base" resultMap="get-PaymentEntity-result" parameterType="com.hzya.frame.seeyon.cbs8.entity.PaymentEntity">
select
<include refid="PaymentEntity_Base_Column_List"/>
from
v_hzya_oa_cbs_all
<trim prefix="where" prefixOverrides="and">
<if test="referenceNum != null and referenceNum !='' "> referenceNum = #{referenceNum} </if>
<if test="busType != null and busType !='' "> and busType = #{busType} </if>
<if test="amount != null and amount !='' ">and amount = #{amount} </if>
<if test="currency != null and currency !='' "> and currency = #{currency} </if>
<if test="payAccount != null and payAccount !='' ">and payAccount = #{payAccount} </if>
<if test="revAccount != null and revAccount !='' "> and revAccount = #{revAccount} </if>
<if test="revAccountName != null and revAccountName !='' "> and revAccountName = #{revAccountName} </if>
<if test="revBankType != null and revBankType !='' "> and revBankType = #{revBankType} </if>
<if test="revBankName != null and revBankName !='' ">and revBankName = #{revBankName} </if>
<if test="cnapsCode != null and cnapsCode !='' ">and cnapsCode = #{cnapsCode} </if>
<if test="purpose != null and purpose !='' "> and purpose = #{purpose} </if>
<if test="personalFlag != null and personalFlag !='' ">and personalFlag = #{personalFlag} </if>
<if test="tableName != null and tableName !='' "> and tableName = #{tableName} </if>
<if test="oaId != null and oaId !='' ">and oaId = #{oaId} </if>
<if test="payCompany != null and payCompany !='' "> and payCompany = #{payCompany} </if>
<if test="payCompanyCode != null and payCompanyCode !='' "> and payCompanyCode = #{payCompanyCode} </if>
<if test="title != null and title !='' "> and title = #{title} </if>
<if test="billName != null and billName !='' "> and billName = #{billName} </if>
<if test="payResult != null and payResult !='' ">and payResult = #{payResult} </if>
<if test="payBankName != null and payBankName !='' ">and payBankName = #{payBankName} </if>
<if test="payType != null and payType !='' "> and payType = #{payType} </if>
</trim>
</select>
<!-- 查询交易成功,且电子回单为空的,上传电子回单用 -->
<select id="PaymentEntity_list_base_elec_isnull" resultMap="get-PaymentEntity-result" parameterType="com.hzya.frame.seeyon.cbs8.entity.PaymentEntity">
select
<include refid="PaymentEntity_Base_Column_List"/>
from
v_hzya_oa_cbs_all
<trim prefix="where" prefixOverrides="and">
<if test="referenceNum != null and referenceNum !='' "> referenceNum = #{referenceNum} </if>
<if test="busType != null and busType !='' "> and busType = #{busType} </if>
<if test="amount != null and amount !='' ">and amount = #{amount} </if>
<if test="currency != null and currency !='' "> and currency = #{currency} </if>
<if test="payAccount != null and payAccount !='' ">and payAccount = #{payAccount} </if>
<if test="revAccount != null and revAccount !='' "> and revAccount = #{revAccount} </if>
<if test="revAccountName != null and revAccountName !='' "> and revAccountName = #{revAccountName} </if>
<if test="revBankType != null and revBankType !='' "> and revBankType = #{revBankType} </if>
<if test="revBankName != null and revBankName !='' ">and revBankName = #{revBankName} </if>
<if test="cnapsCode != null and cnapsCode !='' ">and cnapsCode = #{cnapsCode} </if>
<if test="purpose != null and purpose !='' "> and purpose = #{purpose} </if>
<if test="personalFlag != null and personalFlag !='' ">and personalFlag = #{personalFlag} </if>
<if test="tableName != null and tableName !='' "> and tableName = #{tableName} </if>
<if test="oaId != null and oaId !='' ">and oaId = #{oaId} </if>
<if test="payCompany != null and payCompany !='' "> and payCompany = #{payCompany} </if>
<if test="payCompanyCode != null and payCompanyCode !='' "> and payCompanyCode = #{payCompanyCode} </if>
<if test="title != null and title !='' "> and title = #{title} </if>
<if test="billName != null and billName !='' "> and billName = #{billName} </if>
<if test="payBankName != null and payBankName !='' ">and payBankName = #{payBankName} </if>
<if test="payType != null and payType !='' "> and payType = #{payType} </if>
and receipt is null and personalFlag='0' and payResult = '支付成功'
</trim>
</select>
<!-- 查询推送状态为null的代表没有发送请求或者请求客户服务器没有返回的 采用==查询 -->
<select id="PaymentEntity_list_base_unpaid" resultMap="get-PaymentEntity-result" parameterType="com.hzya.frame.seeyon.cbs8.entity.PaymentEntity">
select
<include refid="PaymentEntity_Base_Column_List"/>
from
v_hzya_oa_cbs
<trim prefix="where" prefixOverrides="and">
<if test="referenceNum != null and referenceNum !='' "> referenceNum = #{referenceNum} </if>
<if test="busType != null and busType !='' "> and busType = #{busType} </if>
<if test="amount != null and amount !='' ">and amount = #{amount} </if>
<if test="currency != null and currency !='' "> and currency = #{currency} </if>
<if test="payAccount != null and payAccount !='' ">and payAccount = #{payAccount} </if>
<if test="revAccount != null and revAccount !='' "> and revAccount = #{revAccount} </if>
<if test="revAccountName != null and revAccountName !='' "> and revAccountName = #{revAccountName} </if>
<if test="revBankType != null and revBankType !='' "> and revBankType = #{revBankType} </if>
<if test="revBankName != null and revBankName !='' ">and revBankName = #{revBankName} </if>
<if test="cnapsCode != null and cnapsCode !='' ">and cnapsCode = #{cnapsCode} </if>
<if test="purpose != null and purpose !='' "> and purpose = #{purpose} </if>
<if test="personalFlag != null and personalFlag !='' ">and personalFlag = #{personalFlag} </if>
<if test="tableName != null and tableName !='' "> and tableName = #{tableName} </if>
<if test="oaId != null and oaId !='' ">and oaId = #{oaId} </if>
<if test="payCompany != null and payCompany !='' "> and payCompany = #{payCompany} </if>
<if test="payCompanyCode != null and payCompanyCode !='' "> and payCompanyCode = #{payCompanyCode} </if>
<if test="title != null and title !='' "> and title = #{title} </if>
<if test="billName != null and billName !='' "> and billName = #{billName} </if>
<if test="payResult != null and payResult !='' ">and payResult = #{payResult} </if>
<if test="payBankName != null and payBankName !='' ">and payBankName = #{payBankName} </if>
<if test="payType != null and payType !='' "> and payType = #{payType} </if>
<if test="finishedflag != null and finishedflag !='' "> and finishedflag = #{finishedflag} </if>
and payResult is null
and oaId not in (select field0001 from formmain_1283)
and startDate >= #{startDate}
</trim>
</select>
<!-- 查询未完成的 采用==查询 -->
<select id="PaymentEntity_list_base_in_payment" resultMap="get-PaymentEntity-result" parameterType="com.hzya.frame.seeyon.cbs8.entity.PaymentEntity">
select
<include refid="PaymentEntity_Base_Column_List"/>
from
v_hzya_oa_cbs
<trim prefix="where" prefixOverrides="and">
<if test="referenceNum != null and referenceNum !='' "> referenceNum = #{referenceNum} </if>
<if test="busType != null and busType !='' "> and busType = #{busType} </if>
<if test="amount != null and amount !='' ">and amount = #{amount} </if>
<if test="currency != null and currency !='' "> and currency = #{currency} </if>
<if test="payAccount != null and payAccount !='' ">and payAccount = #{payAccount} </if>
<if test="revAccount != null and revAccount !='' "> and revAccount = #{revAccount} </if>
<if test="revAccountName != null and revAccountName !='' "> and revAccountName = #{revAccountName} </if>
<if test="revBankType != null and revBankType !='' "> and revBankType = #{revBankType} </if>
<if test="revBankName != null and revBankName !='' ">and revBankName = #{revBankName} </if>
<if test="cnapsCode != null and cnapsCode !='' ">and cnapsCode = #{cnapsCode} </if>
<if test="purpose != null and purpose !='' "> and purpose = #{purpose} </if>
<if test="personalFlag != null and personalFlag !='' ">and personalFlag = #{personalFlag} </if>
<if test="tableName != null and tableName !='' "> and tableName = #{tableName} </if>
<if test="oaId != null and oaId !='' ">and oaId = #{oaId} </if>
<if test="payCompany != null and payCompany !='' "> and payCompany = #{payCompany} </if>
<if test="payCompanyCode != null and payCompanyCode !='' "> and payCompanyCode = #{payCompanyCode} </if>
<if test="title != null and title !='' "> and title = #{title} </if>
<if test="billName != null and billName !='' "> and billName = #{billName} </if>
<if test="payResult != null and payResult !='' ">and payResult = #{payResult} </if>
<if test="payBankName != null and payBankName !='' ">and payBankName = #{payBankName} </if>
<if test="payType != null and payType !='' "> and payType = #{payType} </if>
and (payResult='支付中'
or payResult not in ('审批撤销','审批拒绝','处理失败','退票','支付成功','取消支付','修改支付','支付失败'))
and personalFlag='0'
</trim>
</select>
<!--修改视图支付状态-->
<update id="PaymentEntity_update_payState" parameterType="com.hzya.frame.seeyon.cbs8.entity.PaymentEntity">
update ${tableName} set
<trim suffix="" suffixOverrides=",">
<if test="payDate != null and payDate !='' ">${payDateField} =#{payDate},</if>
<if test="payResult != null and payResult !='' ">${payResultField} =#{payResult}</if>
</trim>
where id = #{oaId}
</update>
<!--修改电子回单-->
<update id="PaymentEntity_update_electronic" parameterType="com.hzya.frame.seeyon.cbs8.entity.PaymentEntity">
update ${tableName} set ${receiptFiled}=#{receipt} where id = #{oaId} and ${receiptFiled} is null
</update>
</mapper>

View File

@ -0,0 +1,23 @@
package com.hzya.frame.seeyon.cbs8.service;
import com.hzya.frame.basedao.service.IBaseService;
import com.hzya.frame.seeyon.cbs8.entity.PaymentEntity;
import java.util.List;
/**
* @Description oa对接cbs
* @Author xiangerlin
* @Date 2024/6/6 16:31
**/
public interface IPaymentService extends IBaseService<PaymentEntity,String> {
/**
* 查询待支付的数据 需要推送到CBS的
* 如果需要查询流程状态已结束的 需要调用方设置finishedflag=1
* @param entity
* @return
* @throws Exception
*/
List<PaymentEntity> queryUnpaid(PaymentEntity entity)throws Exception;
}

View File

@ -0,0 +1,40 @@
package com.hzya.frame.seeyon.cbs8.service.impl;
import com.hzya.frame.basedao.service.impl.BaseService;
import com.hzya.frame.seeyon.cbs8.dao.IPaymentDao;
import com.hzya.frame.seeyon.cbs8.entity.PaymentEntity;
import com.hzya.frame.seeyon.cbs8.service.IPaymentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Description
* @Author xiangerlin
* @Date 2024/6/6 16:34
**/
@Service("OAPaymentServiceImpl")
public class PaymentServiceImpl extends BaseService<PaymentEntity,String> implements IPaymentService {
private IPaymentDao paymentDao;
@Autowired
public void setPaymentDao(IPaymentDao paymentDao) {
this.paymentDao = paymentDao;
this.dao = paymentDao;
}
/**
* 查询待支付的数据 需要推送到CBS的
* 如果需要查询流程状态已结束的 需要调用方设置finishedflag=1
*
* @param entity
* @return
* @throws Exception
*/
@Override
public List<PaymentEntity> queryUnpaid(PaymentEntity entity) throws Exception {
return null;
}
}