diff --git a/service/src/main/java/com/hzya/frame/seeyon/cbs8/dao/IPaymentDao.java b/service/src/main/java/com/hzya/frame/seeyon/cbs8/dao/IPaymentDao.java new file mode 100644 index 00000000..c8a18848 --- /dev/null +++ b/service/src/main/java/com/hzya/frame/seeyon/cbs8/dao/IPaymentDao.java @@ -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> { +} diff --git a/service/src/main/java/com/hzya/frame/seeyon/cbs8/dao/impl/PaymentDaoImpl.java b/service/src/main/java/com/hzya/frame/seeyon/cbs8/dao/impl/PaymentDaoImpl.java new file mode 100644 index 00000000..f2744983 --- /dev/null +++ b/service/src/main/java/com/hzya/frame/seeyon/cbs8/dao/impl/PaymentDaoImpl.java @@ -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 { +} diff --git a/service/src/main/java/com/hzya/frame/seeyon/cbs8/entity/PaymentEntity.java b/service/src/main/java/com/hzya/frame/seeyon/cbs8/entity/PaymentEntity.java new file mode 100644 index 00000000..c52ba289 --- /dev/null +++ b/service/src/main/java/com/hzya/frame/seeyon/cbs8/entity/PaymentEntity.java @@ -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; + } +} diff --git a/service/src/main/java/com/hzya/frame/seeyon/cbs8/entity/PaymentEntity.xml b/service/src/main/java/com/hzya/frame/seeyon/cbs8/entity/PaymentEntity.xml new file mode 100644 index 00000000..d6e57e45 --- /dev/null +++ b/service/src/main/java/com/hzya/frame/seeyon/cbs8/entity/PaymentEntity.xml @@ -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> diff --git a/service/src/main/java/com/hzya/frame/seeyon/cbs8/service/IPaymentService.java b/service/src/main/java/com/hzya/frame/seeyon/cbs8/service/IPaymentService.java new file mode 100644 index 00000000..caf8cd0b --- /dev/null +++ b/service/src/main/java/com/hzya/frame/seeyon/cbs8/service/IPaymentService.java @@ -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; +} diff --git a/service/src/main/java/com/hzya/frame/seeyon/cbs8/service/impl/PaymentServiceImpl.java b/service/src/main/java/com/hzya/frame/seeyon/cbs8/service/impl/PaymentServiceImpl.java new file mode 100644 index 00000000..0148c19f --- /dev/null +++ b/service/src/main/java/com/hzya/frame/seeyon/cbs8/service/impl/PaymentServiceImpl.java @@ -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; + } +}