diff --git a/base-buildpackage/src/main/java/com/hzya/frame/finance/conf/billtemplate/dao/IFeConfBillTemplateDao.java b/base-buildpackage/src/main/java/com/hzya/frame/finance/conf/billtemplate/dao/IFeConfBillTemplateDao.java new file mode 100644 index 00000000..549a440e --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/finance/conf/billtemplate/dao/IFeConfBillTemplateDao.java @@ -0,0 +1,15 @@ +package com.hzya.frame.finance.conf.billtemplate.dao; + +import com.hzya.frame.finance.conf.billtemplate.entity.FeConfBillTemplateEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +/** + * (fe_conf_bill_template: table)表数据库访问层 + * + * @author zydd + * @since 2025-08-29 17:44:59 + */ +public interface IFeConfBillTemplateDao extends IBaseDao { + +} + diff --git a/base-buildpackage/src/main/java/com/hzya/frame/finance/conf/billtemplate/dao/impl/FeConfBillTemplateDaoImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/finance/conf/billtemplate/dao/impl/FeConfBillTemplateDaoImpl.java new file mode 100644 index 00000000..f1e3708a --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/finance/conf/billtemplate/dao/impl/FeConfBillTemplateDaoImpl.java @@ -0,0 +1,18 @@ +package com.hzya.frame.finance.conf.billtemplate.dao.impl; + +import com.hzya.frame.finance.conf.billtemplate.entity.FeConfBillTemplateEntity; +import com.hzya.frame.finance.conf.billtemplate.dao.IFeConfBillTemplateDao; +import lombok.Data; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +/** + * (FeConfBillTemplate)表数据库访问层 + * + * @author zydd + * @since 2025-08-29 17:44:59 + */ +@Repository +public class FeConfBillTemplateDaoImpl extends MybatisGenericDao implements IFeConfBillTemplateDao{ + +} + diff --git a/base-buildpackage/src/main/java/com/hzya/frame/finance/conf/billtemplate/entity/FeConfBillTemplateEntity.java b/base-buildpackage/src/main/java/com/hzya/frame/finance/conf/billtemplate/entity/FeConfBillTemplateEntity.java new file mode 100644 index 00000000..0dc30aa2 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/finance/conf/billtemplate/entity/FeConfBillTemplateEntity.java @@ -0,0 +1,126 @@ +package com.hzya.frame.finance.conf.billtemplate.entity; + +import java.util.Date; + +import com.hzya.frame.web.entity.BaseEntity; +import lombok.Data; + +/** + * (FeConfBillTemplate)实体类 + * + * @author zydd + * @since 2025-08-29 17:44:59 + */ +@Data +public class FeConfBillTemplateEntity extends BaseEntity { + + private String name; + /** + * 财务组织取值 + */ + private String hOrgStr; + /** + * 单据日期 + */ + private String hBillDateStr; + /** + * 往来对象标识 + */ + private String hWldxStr; + /** + * 客户 + */ + private String hUserStr; + /** + * 供应商 + */ + private String hSupplierStr; + /** + * 部门 + */ + private String hDeptStr; + private String hCustomerStr; + /** + * 币种 + */ + private String hCurrenvyStr; + /** + * 备注 + */ + private String hRemarkStr; + /** + * 结算方式 + */ + private String hClearingFormStr; + private String hDef1; + private String hDef2; + private String hDef3; + private String hDef4; + private String hDef5; + private String hDef6; + private String hDef7; + private String hDef8; + private String hDef9; + private String hDef10; + /** + * 款项性质 + */ + private String bKxxzStr; + /** + * 业务类型 + */ + private String bYwlxStr; + /** + * 币种 + */ + private String bCurrencyStr; + /** + * 税率 + */ + private String bRateStr; + /** + * 原币金额 + */ + private String bYbjeStr; + /** + * 本币金额 + */ + private String bBbjeStr; + /** + * 收支项目 + */ + private String bZsxmStr; + /** + * 摘要 + */ + private String bZyStr; + /** + * 汇率 + */ + private String bExchangeRate; + /** + * 银行账号 + */ + private String bBankNum; + private String bDef1; + private String bDef2; + private String bDef3; + private String bDef4; + private String bDef5; + private String bDef6; + private String bDef7; + private String bDef8; + private String bDef9; + private String bDef10; + /** + * 创建人 + */ + private String createUser; + /** + * 修改人 + */ + private String modifyUser; + + +} + diff --git a/base-buildpackage/src/main/java/com/hzya/frame/finance/conf/billtemplate/entity/FeConfBillTemplateEntity.xml b/base-buildpackage/src/main/java/com/hzya/frame/finance/conf/billtemplate/entity/FeConfBillTemplateEntity.xml new file mode 100644 index 00000000..2e0b4747 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/finance/conf/billtemplate/entity/FeConfBillTemplateEntity.xml @@ -0,0 +1,663 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id + ,name + ,h_org_str + ,h_bill_date_str + ,h_wldx_str + ,h_user_str + ,h_customer_str + ,h_supplier_str + ,h_dept_str + ,h_currenvy_str + ,h_remark_str + ,h_clearing_form_str + ,h_def1 + ,h_def2 + ,h_def3 + ,h_def4 + ,h_def5 + ,h_def6 + ,h_def7 + ,h_def8 + ,h_def9 + ,h_def10 + ,b_kxxz_str + ,b_ywlx_str + ,b_currency_str + ,b_rate_str + ,b_ybje_str + ,b_bbje_str + ,b_zsxm_str + ,b_zy_str + ,b_exchange_rate + ,b_bank_num + ,b_def1 + ,b_def2 + ,b_def3 + ,b_def4 + ,b_def5 + ,b_def6 + ,b_def7 + ,b_def8 + ,b_def9 + ,b_def10 + ,create_time + ,create_user + ,modify_time + ,modify_user + ,sts + + + + + + + + + + + + + + + + insert into fe_conf_bill_template( + + id , + name , + h_org_str , + h_bill_date_str , + h_wldx_str , + h_user_str , + h_customer_str , + h_supplier_str , + h_dept_str , + h_currenvy_str , + h_remark_str , + h_clearing_form_str , + h_def1 , + h_def2 , + h_def3 , + h_def4 , + h_def5 , + h_def6 , + h_def7 , + h_def8 , + h_def9 , + h_def10 , + b_kxxz_str , + b_ywlx_str , + b_currency_str , + b_rate_str , + b_ybje_str , + b_bbje_str , + b_zsxm_str , + b_zy_str , + b_exchange_rate , + b_bank_num , + b_def1 , + b_def2 , + b_def3 , + b_def4 , + b_def5 , + b_def6 , + b_def7 , + b_def8 , + b_def9 , + b_def10 , + create_time , + create_time , + create_user , + modify_time , + modify_time , + modify_user , + sts , + sts, + + )values( + + #{id} , + #{name} , + #{hOrgStr} , + #{hBillDateStr} , + #{hWldxStr} , + #{hUserStr} , + #{hCustomerStr} , + #{hSupplierStr} , + #{hDeptStr} , + #{hCurrenvyStr} , + #{hRemarkStr} , + #{hClearingFormStr} , + #{hDef1} , + #{hDef2} , + #{hDef3} , + #{hDef4} , + #{hDef5} , + #{hDef6} , + #{hDef7} , + #{hDef8} , + #{hDef9} , + #{hDef10} , + #{bKxxzStr} , + #{bYwlxStr} , + #{bCurrencyStr} , + #{bRateStr} , + #{bYbjeStr} , + #{bBbjeStr} , + #{bZsxmStr} , + #{bZyStr} , + #{bExchangeRate} , + #{bBankNum} , + #{bDef1} , + #{bDef2} , + #{bDef3} , + #{bDef4} , + #{bDef5} , + #{bDef6} , + #{bDef7} , + #{bDef8} , + #{bDef9} , + #{bDef10} , + #{create_time} , + now() , + #{createUser} , + #{modify_time} , + now() , + #{modifyUser} , + #{sts} , + 'Y', + + ) + + + + insert into fe_conf_bill_template(name, h_org_str, h_bill_date_str, h_wldx_str, h_customer_str, h_supplier_str, + h_dept_str, h_currenvy_str, h_remark_str, h_clearing_form_str, h_def1, h_def2, h_def3, h_def4, h_def5, h_def6, + h_def7, h_def8, h_def9, h_def10, b_kxxz_str, b_ywlx_str, b_currency_str, b_rate_str, b_ybje_str, b_bbje_str, + b_zsxm_str, b_zy_str, b_exchange_rate, b_bank_num, b_def1, b_def2, b_def3, b_def4, b_def5, b_def6, b_def7, + b_def8, b_def9, b_def10, create_time, create_user, modify_time, modify_user, sts, sts) + values + + (#{entity.name},#{entity.hOrgStr},#{entity.hBillDateStr},#{entity.hWldxStr},#{entity.hCustomerStr},#{entity.hSupplierStr},#{entity.hDeptStr},#{entity.hCurrenvyStr},#{entity.hRemarkStr},#{entity.hClearingFormStr},#{entity.hDef1},#{entity.hDef2},#{entity.hDef3},#{entity.hDef4},#{entity.hDef5},#{entity.hDef6},#{entity.hDef7},#{entity.hDef8},#{entity.hDef9},#{entity.hDef10},#{entity.bKxxzStr},#{entity.bYwlxStr},#{entity.bCurrencyStr},#{entity.bRateStr},#{entity.bYbjeStr},#{entity.bBbjeStr},#{entity.bZsxmStr},#{entity.bZyStr},#{entity.bExchangeRate},#{entity.bBankNum},#{entity.bDef1},#{entity.bDef2},#{entity.bDef3},#{entity.bDef4},#{entity.bDef5},#{entity.bDef6},#{entity.bDef7},#{entity.bDef8},#{entity.bDef9},#{entity.bDef10},#{entity.create_time},#{entity.createUser},#{entity.modify_time},#{entity.modifyUser},#{entity.sts}, + 'Y') + + + + + insert into fe_conf_bill_template(name, h_org_str, h_bill_date_str, h_wldx_str, h_customer_str, h_supplier_str, + h_dept_str, h_currenvy_str, h_remark_str, h_clearing_form_str, h_def1, h_def2, h_def3, h_def4, h_def5, h_def6, + h_def7, h_def8, h_def9, h_def10, b_kxxz_str, b_ywlx_str, b_currency_str, b_rate_str, b_ybje_str, b_bbje_str, + b_zsxm_str, b_zy_str, b_exchange_rate, b_bank_num, b_def1, b_def2, b_def3, b_def4, b_def5, b_def6, b_def7, + b_def8, b_def9, b_def10, create_time, create_user, modify_time, modify_user, sts) + values + + (#{entity.name},#{entity.hOrgStr},#{entity.hBillDateStr},#{entity.hWldxStr},#{entity.hCustomerStr},#{entity.hSupplierStr},#{entity.hDeptStr},#{entity.hCurrenvyStr},#{entity.hRemarkStr},#{entity.hClearingFormStr},#{entity.hDef1},#{entity.hDef2},#{entity.hDef3},#{entity.hDef4},#{entity.hDef5},#{entity.hDef6},#{entity.hDef7},#{entity.hDef8},#{entity.hDef9},#{entity.hDef10},#{entity.bKxxzStr},#{entity.bYwlxStr},#{entity.bCurrencyStr},#{entity.bRateStr},#{entity.bYbjeStr},#{entity.bBbjeStr},#{entity.bZsxmStr},#{entity.bZyStr},#{entity.bExchangeRate},#{entity.bBankNum},#{entity.bDef1},#{entity.bDef2},#{entity.bDef3},#{entity.bDef4},#{entity.bDef5},#{entity.bDef6},#{entity.bDef7},#{entity.bDef8},#{entity.bDef9},#{entity.bDef10},#{entity.create_time},#{entity.createUser},#{entity.modify_time},#{entity.modifyUser},#{entity.sts}) + + on duplicate key update + name = values(name), + h_org_str = values(h_org_str), + h_bill_date_str = values(h_bill_date_str), + h_wldx_str = values(h_wldx_str), + h_customer_str = values(h_customer_str), + h_supplier_str = values(h_supplier_str), + h_dept_str = values(h_dept_str), + h_currenvy_str = values(h_currenvy_str), + h_remark_str = values(h_remark_str), + h_clearing_form_str = values(h_clearing_form_str), + h_def1 = values(h_def1), + h_def2 = values(h_def2), + h_def3 = values(h_def3), + h_def4 = values(h_def4), + h_def5 = values(h_def5), + h_def6 = values(h_def6), + h_def7 = values(h_def7), + h_def8 = values(h_def8), + h_def9 = values(h_def9), + h_def10 = values(h_def10), + b_kxxz_str = values(b_kxxz_str), + b_ywlx_str = values(b_ywlx_str), + b_currency_str = values(b_currency_str), + b_rate_str = values(b_rate_str), + b_ybje_str = values(b_ybje_str), + b_bbje_str = values(b_bbje_str), + b_zsxm_str = values(b_zsxm_str), + b_zy_str = values(b_zy_str), + b_exchange_rate = values(b_exchange_rate), + b_bank_num = values(b_bank_num), + b_def1 = values(b_def1), + b_def2 = values(b_def2), + b_def3 = values(b_def3), + b_def4 = values(b_def4), + b_def5 = values(b_def5), + b_def6 = values(b_def6), + b_def7 = values(b_def7), + b_def8 = values(b_def8), + b_def9 = values(b_def9), + b_def10 = values(b_def10), + create_time = values(create_time), + create_user = values(create_user), + modify_time = values(modify_time), + modify_user = values(modify_user), + sts = values(sts) + + + + update fe_conf_bill_template set + + name = #{name}, + h_org_str = #{hOrgStr}, + h_bill_date_str = #{hBillDateStr}, + h_wldx_str = #{hWldxStr}, + h_user_str = #{hUserStr}, + h_customer_str = #{hCustomerStr}, + h_supplier_str = #{hSupplierStr}, + h_dept_str = #{hDeptStr}, + h_currenvy_str = #{hCurrenvyStr}, + h_remark_str = #{hRemarkStr}, + h_clearing_form_str = #{hClearingFormStr}, + + h_def1 = #{hDef1}, + h_def2 = #{hDef2}, + h_def3 = #{hDef3}, + h_def4 = #{hDef4}, + h_def5 = #{hDef5}, + h_def6 = #{hDef6}, + h_def7 = #{hDef7}, + h_def8 = #{hDef8}, + h_def9 = #{hDef9}, + h_def10 = #{hDef10}, + b_kxxz_str = #{bKxxzStr}, + b_ywlx_str = #{bYwlxStr}, + b_currency_str = #{bCurrencyStr}, + b_rate_str = #{bRateStr}, + b_ybje_str = #{bYbjeStr}, + b_bbje_str = #{bBbjeStr}, + b_zsxm_str = #{bZsxmStr}, + b_zy_str = #{bZyStr}, + b_exchange_rate = #{bExchangeRate}, + b_bank_num = #{bBankNum}, + b_def1 = #{bDef1}, + b_def2 = #{bDef2}, + b_def3 = #{bDef3}, + b_def4 = #{bDef4}, + b_def5 = #{bDef5}, + b_def6 = #{bDef6}, + b_def7 = #{bDef7}, + b_def8 = #{bDef8}, + b_def9 = #{bDef9}, + b_def10 = #{bDef10}, + create_time = #{create_time}, + create_user = #{createUser}, + modify_time = #{modify_time}, + modify_time = now(), + modify_user = #{modifyUser}, + sts = #{sts}, + + where id = #{id} + + + + update fe_conf_bill_template + set sts= 'N', + modify_time = now() + where id = #{id} + + + + update fe_conf_bill_template set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id} + + and id = #{id} + and name = #{name} + and h_org_str = #{hOrgStr} + and h_bill_date_str = #{hBillDateStr} + and h_wldx_str = #{hWldxStr} + and h_user_str = #{hUserStr} + and h_customer_str = #{hCustomerStr} + and h_supplier_str = #{hSupplierStr} + and h_dept_str = #{hDeptStr} + and h_currenvy_str = #{hCurrenvyStr} + and h_remark_str = #{hRemarkStr} + and h_clearing_form_str = + #{hClearingFormStr} + + and h_def1 = #{hDef1} + and h_def2 = #{hDef2} + and h_def3 = #{hDef3} + and h_def4 = #{hDef4} + and h_def5 = #{hDef5} + and h_def6 = #{hDef6} + and h_def7 = #{hDef7} + and h_def8 = #{hDef8} + and h_def9 = #{hDef9} + and h_def10 = #{hDef10} + and b_kxxz_str = #{bKxxzStr} + and b_ywlx_str = #{bYwlxStr} + and b_currency_str = #{bCurrencyStr} + and b_rate_str = #{bRateStr} + and b_ybje_str = #{bYbjeStr} + and b_bbje_str = #{bBbjeStr} + and b_zsxm_str = #{bZsxmStr} + and b_zy_str = #{bZyStr} + and b_exchange_rate = #{bExchangeRate} + and b_bank_num = #{bBankNum} + and b_def1 = #{bDef1} + and b_def2 = #{bDef2} + and b_def3 = #{bDef3} + and b_def4 = #{bDef4} + and b_def5 = #{bDef5} + and b_def6 = #{bDef6} + and b_def7 = #{bDef7} + and b_def8 = #{bDef8} + and b_def9 = #{bDef9} + and b_def10 = #{bDef10} + and create_user = #{createUser} + and modify_user = #{modifyUser} + and sts = #{sts} + and sts='Y' + + + + + delete + from fe_conf_bill_template + where id = #{id} + + + + diff --git a/base-buildpackage/src/main/java/com/hzya/frame/finance/conf/billtemplate/service/IFeConfBillTemplateService.java b/base-buildpackage/src/main/java/com/hzya/frame/finance/conf/billtemplate/service/IFeConfBillTemplateService.java new file mode 100644 index 00000000..3b9a5766 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/finance/conf/billtemplate/service/IFeConfBillTemplateService.java @@ -0,0 +1,16 @@ +package com.hzya.frame.finance.conf.billtemplate.service; + +import com.hzya.frame.finance.conf.billtemplate.entity.FeConfBillTemplateEntity; +import com.hzya.frame.basedao.service.IBaseService; + +import java.util.List; + +/** + * (FeConfBillTemplate)表服务接口 + * + * @author zydd + * @since 2025-08-29 17:44:59 + */ +public interface IFeConfBillTemplateService extends IBaseService{ + List queryAll(FeConfBillTemplateEntity billTemplateEntity); +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/finance/conf/billtemplate/service/impl/FeConfBillTemplateServiceImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/finance/conf/billtemplate/service/impl/FeConfBillTemplateServiceImpl.java new file mode 100644 index 00000000..b65a15b6 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/finance/conf/billtemplate/service/impl/FeConfBillTemplateServiceImpl.java @@ -0,0 +1,35 @@ +package com.hzya.frame.finance.conf.billtemplate.service.impl; + +import com.hzya.frame.finance.conf.billtemplate.entity.FeConfBillTemplateEntity; +import com.hzya.frame.finance.conf.billtemplate.dao.IFeConfBillTemplateDao; +import com.hzya.frame.finance.conf.billtemplate.service.IFeConfBillTemplateService; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; + +import java.util.List; + +/** + * (FeConfBillTemplate)表服务实现类 + * + * @author zydd + * @since 2025-08-29 17:44:59 + */ +@Service +public class FeConfBillTemplateServiceImpl extends BaseService implements IFeConfBillTemplateService { + + private IFeConfBillTemplateDao feConfBillTemplateDao; + + @Autowired + public void setFeConfBillTemplateDao(IFeConfBillTemplateDao dao) { + this.feConfBillTemplateDao = dao; + this.dao = dao; + } + + @Override + public List queryAll(FeConfBillTemplateEntity billTemplateEntity) { + List all = feConfBillTemplateDao.query(billTemplateEntity); + return all; + } +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/finance/conf/controller/BillTemplate.java b/base-buildpackage/src/main/java/com/hzya/frame/finance/conf/controller/BillTemplate.java new file mode 100644 index 00000000..7fd4d712 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/finance/conf/controller/BillTemplate.java @@ -0,0 +1,38 @@ +package com.hzya.frame.finance.conf.controller; + +import com.hzya.frame.finance.conf.billtemplate.entity.FeConfBillTemplateEntity; +import com.hzya.frame.finance.conf.billtemplate.service.IFeConfBillTemplateService; +import com.hzya.frame.web.action.DefaultController; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * Created by zydd on 2025-08-29 17:48 + * 收付款单据模板 + */ +@RestController +@RequestMapping("/fe/conf/billtemplate") +public class BillTemplate extends DefaultController { + + @Autowired + private IFeConfBillTemplateService billTemplateService; + + @RequestMapping("/queryAll") + public JsonResultEntity queryAll(@RequestBody FeConfBillTemplateEntity billTemplateEntity){ + try { + List all = billTemplateService.queryAll(billTemplateEntity); + return getSuccessMessageEntity("你太棒了!",all); + }catch (Exception e){ + e.printStackTrace(); + return getFailureMessageEntity(e.getMessage()); + } + } + + +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/finance/flow/controller/GTSController.java b/base-buildpackage/src/main/java/com/hzya/frame/finance/flow/controller/GTSController.java index 44cefaf3..f5d94222 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/finance/flow/controller/GTSController.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/finance/flow/controller/GTSController.java @@ -2,6 +2,8 @@ package com.hzya.frame.finance.flow.controller; import com.hzya.frame.finance.claim.entity.ClaimVO; import com.hzya.frame.finance.flow.entity.MdmKkBankflowGtsEntity; +import com.hzya.frame.finance.flow.entity.PuFaBankFlowGtsRequestVO; +import com.hzya.frame.finance.flow.entity.PuFaBankFlowGtsResponseVO; import com.hzya.frame.finance.flow.service.IMdmKkBankflowGtsService; import com.hzya.frame.web.action.DefaultController; import com.hzya.frame.web.entity.JsonResultEntity; @@ -44,6 +46,17 @@ public class GTSController extends DefaultController { // // } + @RequestMapping("queryGts") + public JsonResultEntity queryGts(@RequestBody PuFaBankFlowGtsRequestVO vo){ + try { + PuFaBankFlowGtsResponseVO responseVO = bankflowGtsService.queryGts(vo); + return getSuccessMessageEntity("请求成功",responseVO); + }catch (Exception e){ + e.printStackTrace(); + return getFailureMessageEntity(e.getMessage()); + } + } + } diff --git a/base-buildpackage/src/main/java/com/hzya/frame/finance/flow/entity/MdmKkBankflowGtsEntity.java b/base-buildpackage/src/main/java/com/hzya/frame/finance/flow/entity/MdmKkBankflowGtsEntity.java index 26071f5c..e3864a95 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/finance/flow/entity/MdmKkBankflowGtsEntity.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/finance/flow/entity/MdmKkBankflowGtsEntity.java @@ -1,8 +1,12 @@ package com.hzya.frame.finance.flow.entity; import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; import com.hzya.frame.web.entity.BaseEntity; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; /** * 账户明细查询(GTS)(MdmKkBankflowGts)实体类 @@ -11,6 +15,8 @@ import lombok.Data; * @since 2025-08-22 09:36:27 */ @Data +@AllArgsConstructor +@NoArgsConstructor public class MdmKkBankflowGtsEntity extends BaseEntity { /** 单据规则 */ @@ -32,48 +38,70 @@ public class MdmKkBankflowGtsEntity extends BaseEntity { /** mdm_up_id */ private String mdmUpId; /** 交易流水号 */ + @JSONField(name = "tranSeqNo1") private String transeqno1; /** 对方户名 */ + @JSONField(name = "cnterAcctName") private String cnteracctname; /** 对方账户 */ + @JSONField(name = "cnterAcctNo") private String cnteracctno; /** 对方开户行 */ + @JSONField(name = "opnBnkInfo") private String opnbnkinfo; /** 交易金额 */ + @JSONField(name = "tranAmt") private String tranamt; /** 转入金额 */ + @JSONField(name = "inAmtLot") private String inamtlot; /** 转出金额 */ + @JSONField(name = "tfrOutAmt") private String tfroutamt; /** 币种 */ + @JSONField(name = "ccy") private String ccy; /** 余额 */ + @JSONField(name = "balance") private String balance; /** 转入/转出标志 */ + @JSONField(name = "outFlag") private String outflag; /** 企业流水 */ + @JSONField(name = "bussSeqNo") private String bussseqno; /** 银行流水 */ + @JSONField(name = "bnkPrchSeqNo") private String bnkprchseqno; /** 交易日期 */ + @JSONField(name = "tranDate") private String trandate; /** 交易时间 */ + @JSONField(name = "tranTimep") private String trantimep; /** 用途 */ - private String yt; + @JSONField(name = "usage") + private String yt; /** 单据号 */ + @JSONField(name = "depRecptId") private String deprecptid; /** 交易类型 */ + @JSONField(name = "tranTpCdSet") private String trantpcdset; /** 保留 */ + @JSONField(name = "kpDmn") private String kpdmn; /** 摘要 */ + @JSONField(name = "abstract") private String zy; /** 备注 */ + @JSONField(name = "remark") private String remark; /** 附言 */ + @JSONField(name = "postscript") private String postscript; /** 流水类型 */ + @JSONField(name = "rsrvFldNm") private String rsrvfldnm; /** 认领状态 */ private String claimstatus; diff --git a/base-buildpackage/src/main/java/com/hzya/frame/finance/flow/entity/PuFaBankFlowGtsRequestVO.java b/base-buildpackage/src/main/java/com/hzya/frame/finance/flow/entity/PuFaBankFlowGtsRequestVO.java new file mode 100644 index 00000000..0c5c028c --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/finance/flow/entity/PuFaBankFlowGtsRequestVO.java @@ -0,0 +1,18 @@ +package com.hzya.frame.finance.flow.entity; + +import lombok.Data; + +/** + * Created by zydd on 2025-08-30 11:02 + * 浦发银行流水明细请求VO + */ +@Data +public class PuFaBankFlowGtsRequestVO { + private String clientNo; + private String pyAcctNo; + private String startDate;//yyyyMMdd + private String endDate;//yyyyMMdd + private String acptNum;//页 + private String queryNum;//行 + +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/finance/flow/entity/PuFaBankFlowGtsResponseVO.java b/base-buildpackage/src/main/java/com/hzya/frame/finance/flow/entity/PuFaBankFlowGtsResponseVO.java new file mode 100644 index 00000000..9db84822 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/finance/flow/entity/PuFaBankFlowGtsResponseVO.java @@ -0,0 +1,20 @@ +package com.hzya.frame.finance.flow.entity; + +import lombok.Data; + +import java.util.List; + +/** + * Created by zydd on 2025-08-30 11:13 + * 浦发银行流水明细返回VO + */ +@Data +public class PuFaBankFlowGtsResponseVO { + private String statusCode; + private String transNo; + private String returnCode; + private String returnInfo; + private String qryRsltNum; + private String totalNum; + private List acctDtlInfo; +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/finance/flow/service/IMdmKkBankflowGtsService.java b/base-buildpackage/src/main/java/com/hzya/frame/finance/flow/service/IMdmKkBankflowGtsService.java index ca58f30c..6fb4e2c2 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/finance/flow/service/IMdmKkBankflowGtsService.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/finance/flow/service/IMdmKkBankflowGtsService.java @@ -2,6 +2,9 @@ package com.hzya.frame.finance.flow.service; import com.hzya.frame.finance.flow.entity.MdmKkBankflowGtsEntity; import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.finance.flow.entity.PuFaBankFlowGtsRequestVO; +import com.hzya.frame.finance.flow.entity.PuFaBankFlowGtsResponseVO; + /** * 账户明细查询(GTS)(MdmKkBankflowGts)表服务接口 * @@ -9,4 +12,5 @@ import com.hzya.frame.basedao.service.IBaseService; * @since 2025-08-22 09:36:27 */ public interface IMdmKkBankflowGtsService extends IBaseService{ + PuFaBankFlowGtsResponseVO queryGts(PuFaBankFlowGtsRequestVO vo); } diff --git a/base-buildpackage/src/main/java/com/hzya/frame/finance/flow/service/impl/MdmKkBankflowGtsServiceImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/finance/flow/service/impl/MdmKkBankflowGtsServiceImpl.java index a1be5c28..c00991dd 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/finance/flow/service/impl/MdmKkBankflowGtsServiceImpl.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/finance/flow/service/impl/MdmKkBankflowGtsServiceImpl.java @@ -1,12 +1,32 @@ package com.hzya.frame.finance.flow.service.impl; +import cn.hutool.core.lang.Assert; +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSON; import com.hzya.frame.finance.flow.entity.MdmKkBankflowGtsEntity; import com.hzya.frame.finance.flow.dao.IMdmKkBankflowGtsDao; +import com.hzya.frame.finance.flow.entity.PuFaBankFlowGtsRequestVO; +import com.hzya.frame.finance.flow.entity.PuFaBankFlowGtsResponseVO; import com.hzya.frame.finance.flow.service.IMdmKkBankflowGtsService; -import org.springframework.stereotype.Service; +import com.hzya.frame.finance.utils.pufabank.SM2Cryptor; +import com.hzya.frame.finance.utils.pufabank.SM2Sign; +import com.hzya.frame.finance.utils.pufabank.SM2SignVerify; +import okhttp3.*; +import org.bouncycastle.pqc.math.linearalgebra.ByteUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; import org.springframework.beans.factory.annotation.Autowired; + import javax.annotation.Resource; +import javax.xml.bind.DatatypeConverter; + import com.hzya.frame.basedao.service.impl.BaseService; + +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; + /** * 账户明细查询(GTS)(MdmKkBankflowGts)表服务实现类 * @@ -15,12 +35,161 @@ import com.hzya.frame.basedao.service.impl.BaseService; */ @Service public class MdmKkBankflowGtsServiceImpl extends BaseService implements IMdmKkBankflowGtsService { - + + @Value("${bank_flow_gts_url}") + private String gtsUrl; + private static final String secret = "NmZkMC00ZDMpLWFyYzgtN2JwN2ZmY2J1NmF4MC40NzQ0ODA5MzA2MzE4OTg2NzAu"; + private static final String charset = "UTF-8"; + private static final String privatekey = "ae14b3717d6b44b55e500a807248aab425e1d1677df1718410c453f3fe257541"; + private static final String contentType = "application/json;charset=utf-8"; + private static final String clientId = "f42d86e9-debd-4423-84af-74549a51c7c2"; + private IMdmKkBankflowGtsDao mdmKkBankflowGtsDao; - + + + + private static final OkHttpClient client = new OkHttpClient.Builder() + .connectionPool(new ConnectionPool(500, 5, TimeUnit.MINUTES)).connectTimeout(10000, TimeUnit.MILLISECONDS) + .readTimeout(60000, TimeUnit.MILLISECONDS).build(); + + @Autowired - public void setMdmKkBankflowGtsDao(IMdmKkBankflowGtsDao dao) { - this.mdmKkBankflowGtsDao = dao; - this.dao = dao; - } + public void setMdmKkBankflowGtsDao(IMdmKkBankflowGtsDao dao) { + this.mdmKkBankflowGtsDao = dao; + this.dao = dao; + } + + /** + * 存在分页,请注意 + */ + @Override + public PuFaBankFlowGtsResponseVO queryGts(PuFaBankFlowGtsRequestVO vo) { + PuFaBankFlowGtsResponseVO responseVO = new PuFaBankFlowGtsResponseVO(); + try { + int page = Integer.valueOf(vo.getAcptNum()); + int size = Integer.valueOf(vo.getQueryNum()); + + //请求 + + System.out.println(JSONUtil.toJsonStr(vo)); + PuFaBankFlowGtsResponseVO response = queryData(vo); + + + return response; + } catch (Exception e) { + e.printStackTrace(); + Assert.state(false, "获取流水数据失败,失败原因:{}", e.getMessage()); + } + return null; + } + + /** + * 请求浦发 + */ + public PuFaBankFlowGtsResponseVO queryData(PuFaBankFlowGtsRequestVO vo) throws Exception { + PuFaBankFlowGtsResponseVO res = new PuFaBankFlowGtsResponseVO(); + String data = JSONUtil.toJsonStr(vo); + String newBodyData = getNonceParam(false, data); + byte[] dataBytes = newBodyData.getBytes(charset); + + SM2Sign sign = SM2SignVerify.sign(ByteUtils.fromHexString(privatekey), dataBytes); + byte[] signBytes = sign.getSm2_sign().getBytes(charset); + String signature = DatatypeConverter.printBase64Binary(signBytes); + + Request request = createRequest("GET", gtsUrl, data, signature); + Response response = client.newCall(request).execute(); + String resBody = new String(response.body().bytes(), "UTF-8"); + + String decryptBody = SM2Cryptor.decrypt(secret, resBody); + + PuFaBankFlowGtsResponseVO responseVO = JSON.parseObject(decryptBody, PuFaBankFlowGtsResponseVO.class); + + res = responseVO; + + List all = new ArrayList<>(); + all.addAll(responseVO.getAcctDtlInfo()); + + Integer acptNum = Integer.valueOf(vo.getAcptNum());//开始笔数 + Integer queryNum = Integer.valueOf(vo.getQueryNum());//每次笔数 + Integer totalNum = Integer.valueOf(responseVO.getTotalNum());//总笔数 + + + int allPage = (totalNum / queryNum) + 1; + + + for (int i = 1; i acctDtlInfo = responseVO1.getAcctDtlInfo(); + all.addAll(acctDtlInfo); + } + res.setAcctDtlInfo(all); + return res; + } + + public static String getNonceParam( boolean forbidden ,String data){ + //防重放参数。毫秒级的时间戳,与浦发服务器(北京时间)时间误差不能超过15分钟。样例:1543461367533 + long timestamp = 0L; + //防重放参数。X-SPDB-Nonce为交易序号,需保证唯一。样例:TRANS10145581 + String nonce = ""; + /* + * 防重放参数 + * 如需使用防重放参数,需要对‘时间戳’和‘防重放参数’加签 + */ + String newBodyData = data; + + if (forbidden) {//如需使用防重放参数 + //对应请求报文头参数 X-SPDB-Timestamp + timestamp = System.currentTimeMillis();// X-SPDB-Timestamp + //对应请求报文头参数 X-SPDB-Nonce + nonce = "TRAN10145581";// X-SPDB-Nonce + //注意:签名原文需要拼接防重放参数 例:{"name":"zhangshan"}1591077686410TRAN10145581 + newBodyData = data + timestamp + nonce; + System.out.println("签名原文:" + newBodyData); + } + return newBodyData; + } + + public static Request createRequest(String requestMethod,String url,String data,String signature){ + Request request =null; + String encrypted = SM2Cryptor.encrypt(secret, data); + if("GET".equals(requestMethod) || "get".equals(requestMethod)){ + url = url + "?encryptBody=" + encrypted; + request = new Request.Builder().url(url).get() + .addHeader("Content-Type", contentType) //Content-Type + .addHeader("X-SPDB-Client-ID", clientId) //Client-ID + .addHeader("X-SPDB-SIGNATURE", signature) //签名结果 + .addHeader("X-SPDB-SM", "true") //使用国密 + .addHeader("X-SPDB-Encryption", "true") //使用全报文加密 + .build(); + + }else if("POST".equals(requestMethod) || "post".equals(requestMethod)){ + //发送HTTP请求 + MediaType mediaType = MediaType.parse(contentType); + // 数据加密-使用国密SM2算法加密 注意加密数据不添加防重放参数 + RequestBody body = RequestBody.create(mediaType, encrypted); + request = new Request.Builder().url(url).post(body) + .addHeader("Content-Type", contentType) //Content-Type + .addHeader("X-SPDB-Client-ID", clientId) //Client-ID + .addHeader("X-SPDB-SIGNATURE", signature) //签名结果 + .addHeader("X-SPDB-SM", "true") //使用国密 + .addHeader("X-SPDB-Encryption", "true") //使用全报文加密 + .build(); + } + return request; + } } diff --git a/base-buildpackage/src/main/java/com/hzya/frame/finance/utils/pufabank/SPDBSMEncryptor.java b/base-buildpackage/src/main/java/com/hzya/frame/finance/utils/pufabank/SPDBSMEncryptor.java index 17a036c1..7171ff4c 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/finance/utils/pufabank/SPDBSMEncryptor.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/finance/utils/pufabank/SPDBSMEncryptor.java @@ -144,7 +144,7 @@ public class SPDBSMEncryptor { System.out.println("signature:" + signature); //发送HTTP请求 - Request request = createRequest("post", url, data, signature); + Request request = createRequest("get", url, data, signature); Response response = client.newCall(request).execute(); String resBody = new String(response.body().bytes(), "UTF-8"); diff --git a/base-buildpackage/src/main/resources/application-cocodev.yml b/base-buildpackage/src/main/resources/application-cocodev.yml index 752971c9..5d42740a 100644 --- a/base-buildpackage/src/main/resources/application-cocodev.yml +++ b/base-buildpackage/src/main/resources/application-cocodev.yml @@ -51,4 +51,8 @@ client_secret: d18726dcc8ad487facdc pubKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAur9ViNXdgV9qTxoKuLRhXqhKcQ1A4Vl6AqM8me0W5iXSCW49X2jSdnp3kEL5CqiINqPoqwQjFSdBCDrYotvp8nmIW1iifpR+IRteDWmJ6H/bHOarZYCDz3rkYYqe6UOzjWnlx0xq3VPjRyJ51z/bL26c0GiQK6sLS9k960kfv3JwmyT1DFQzXTcRExqSAqDawyvwYfjmbwF8SX50CzIz5eXfVTsQhEZBcd6EIKJL37uo+7mBJ6QLpjLyXio51CdJoLRXmPfRrmY29yyTwLIDV0ujOM0u7SPOK+loXesNnSS9Qjwg9B++GZzZdg0smVd/MS0dVLnr541RzGuaK7GuFwIDAQAB secret_level: L0 ## 服务器地址 -baseUrl: http://115.238.74.170:8089/ \ No newline at end of file +baseUrl: http://115.238.74.170:8089/ + +###########gts +bank_flow_gts_url: https://etest4.spdb.com.cn/spdb/uat/api/corporateAccounts/banks/transDetails +###########gts \ No newline at end of file