master
wanghui 1 month ago
parent ff6e6c0845
commit ca39d02c9f
  1. 20
      .idea/jarRepositories.xml
  2. 12
      .idea/misc.xml
  3. 6
      .idea/vcs.xml
  4. 33
      micro-api/micro-api-bfs/pom.xml
  5. 19
      micro-api/micro-api-bfs/src/main/java/com/sinosoft/bfs/api/RemoteBusinessDataService.java
  6. 18
      micro-api/micro-api-bfs/src/main/java/com/sinosoft/bfs/api/RemoteCostCenterQuryService.java
  7. 20
      micro-api/micro-api-bfs/src/main/java/com/sinosoft/bfs/api/RemoteInstitutionQuryService.java
  8. 18
      micro-api/micro-api-bfs/src/main/java/com/sinosoft/bfs/api/RemotePeriodManagemen.java
  9. 27
      micro-api/micro-api-bfs/src/main/java/com/sinosoft/bfs/api/RemoteSupplierInfoService.java
  10. 254
      micro-api/micro-api-bfs/src/main/java/com/sinosoft/bfs/api/domain/bo/RemoteBusinessDataBo.java
  11. 32
      micro-api/micro-api-bfs/src/main/java/com/sinosoft/bfs/api/domain/bo/RemoteCostCenterQuryBo.java
  12. 14
      micro-api/micro-api-bfs/src/main/java/com/sinosoft/bfs/api/domain/bo/RemoteQuryInStitutionBo.java
  13. 24
      micro-api/micro-api-bfs/src/main/java/com/sinosoft/bfs/api/domain/bo/RemoteSupplierInfoBo.java
  14. 29
      micro-api/micro-api-bfs/src/main/java/com/sinosoft/bfs/api/domain/vo/RemoteCostCenterQuryVo.java
  15. 32
      micro-api/micro-api-bfs/src/main/java/com/sinosoft/bfs/api/domain/vo/RemotePeriodManagementVo.java
  16. 22
      micro-api/micro-api-bfs/src/main/java/com/sinosoft/bfs/api/domain/vo/RemoteSupplierInfoVo.java
  17. 42
      micro-api/micro-api-bls/pom.xml
  18. 20
      micro-api/micro-api-bls/src/main/java/com/sinosoft/bls/RemoteBusinessCalbackServcie.java
  19. 17
      micro-api/micro-api-bls/src/main/java/com/sinosoft/bls/RemoteBusinessPayService.java
  20. 27
      micro-api/micro-api-bls/src/main/java/com/sinosoft/bls/RemoteCallBackSystemService.java
  21. 30
      micro-api/micro-api-bls/src/main/java/com/sinosoft/bls/RemoteCollectionBankService.java
  22. 22
      micro-api/micro-api-bls/src/main/java/com/sinosoft/bls/RemoteMitBlsService.java
  23. 19
      micro-api/micro-api-bls/src/main/java/com/sinosoft/bls/RemoteTemporaryChargesService.java
  24. 21
      micro-api/micro-api-bls/src/main/java/com/sinosoft/bls/RemoteVoucherBackService.java
  25. 12
      micro-api/micro-api-bls/src/main/java/com/sinosoft/bls/domian/ConfirmPaymentBo.java
  26. 37
      micro-api/micro-api-bls/src/main/java/com/sinosoft/bls/domian/ConfirmPaymentClientInfoBo.java
  27. 133
      micro-api/micro-api-bls/src/main/java/com/sinosoft/bls/domian/ConfirmPaymentLevel2Bo.java
  28. 258
      micro-api/micro-api-bls/src/main/java/com/sinosoft/bls/domian/RemoteBlsBusinessDataBo.java
  29. 254
      micro-api/micro-api-bls/src/main/java/com/sinosoft/bls/domian/RemoteBusinessPayables.java
  30. 21
      micro-api/micro-api-bls/src/main/java/com/sinosoft/bls/domian/RemoteCallbackSystemBo.java
  31. 24
      micro-api/micro-api-bls/src/main/java/com/sinosoft/bls/domian/RemoteCallbackSystemDetailBo.java
  32. 28
      micro-api/micro-api-bls/src/main/java/com/sinosoft/bls/domian/RemoteCallbackSystemDetailVo.java
  33. 18
      micro-api/micro-api-bls/src/main/java/com/sinosoft/bls/domian/RemoteCallbackSystemVo.java
  34. 79
      micro-api/micro-api-bls/src/main/java/com/sinosoft/bls/domian/RemoteCollectionBankBo.java
  35. 89
      micro-api/micro-api-bls/src/main/java/com/sinosoft/bls/domian/RemoteCollectionBankVo.java
  36. 10
      micro-api/micro-api-bls/src/main/java/com/sinosoft/bls/domian/RemoteCollectionQuryBo.java
  37. 170
      micro-api/micro-api-bls/src/main/java/com/sinosoft/bls/domian/RemoteTemporaryCharges.java
  38. 30
      micro-api/micro-api-bls/src/main/java/com/sinosoft/bls/domian/RemoteVoucherBackBo.java
  39. 98
      micro-api/micro-api-bom/pom.xml
  40. 33
      micro-api/micro-api-customer/pom.xml
  41. 32
      micro-api/micro-api-customer/src/main/java/com/sinosoft/customer/RemoteCustomerService.java
  42. 28
      micro-api/micro-api-customer/src/main/java/com/sinosoft/customer/RemoteMitCustomerQueryService.java
  43. 40
      micro-api/micro-api-customer/src/main/java/com/sinosoft/customer/domain/bo/RemoteClientInfo.java
  44. 31
      micro-api/micro-api-customer/src/main/java/com/sinosoft/customer/domain/bo/RemoteCustomer.java
  45. 8
      micro-api/micro-api-customer/src/main/java/com/sinosoft/customer/domain/bo/RemoteCustomerBo.java
  46. 11
      micro-api/micro-api-customer/src/main/java/com/sinosoft/customer/domain/bo/SubCustomerBo.java
  47. 12
      micro-api/micro-api-customer/src/main/java/com/sinosoft/customer/domain/vo/CustomerNoVo.java
  48. 28
      micro-api/micro-api-customer/src/main/java/com/sinosoft/customer/domain/vo/RemoteMasterCusomerVo.java
  49. 10
      micro-api/micro-api-customer/src/main/java/com/sinosoft/customer/domain/vo/SubCustomerVo.java
  50. 33
      micro-api/micro-api-leaf/pom.xml
  51. 20
      micro-api/micro-api-leaf/src/main/java/com/sinosoft/leaf/api/RemoteGetMaxNoService.java
  52. 17
      micro-api/micro-api-leaf/src/main/java/com/sinosoft/leaf/api/domain/bo/MaxNoBo.java
  53. 10
      micro-api/micro-api-leaf/src/main/java/com/sinosoft/leaf/api/domain/vo/MaxNoVo.java
  54. 41
      micro-api/micro-api-msg/pom.xml
  55. 36
      micro-api/micro-api-msg/src/main/java/com/sinosoft/msg/api/EmailSendMessageService.java
  56. 15
      micro-api/micro-api-msg/src/main/java/com/sinosoft/msg/api/domain/BatchEmailReceiving.java
  57. 37
      micro-api/micro-api-msg/src/main/java/com/sinosoft/msg/api/domain/bo/BacthEmailSendBo.java
  58. 42
      micro-api/micro-api-msg/src/main/java/com/sinosoft/msg/api/domain/bo/EmailSendBo.java
  59. 19
      micro-api/micro-api-msg/src/main/java/com/sinosoft/msg/api/domain/vo/BatchEmailSendVo.java
  60. 20
      micro-api/micro-api-msg/src/main/java/com/sinosoft/msg/api/domain/vo/EmailSendVo.java
  61. 38
      micro-api/micro-api-print/pom.xml
  62. 29
      micro-api/micro-api-print/src/main/java/com/sinosoft/print/api/RemoteTemplatePrintService.java
  63. 28
      micro-api/micro-api-print/src/main/java/com/sinosoft/print/api/domian/bo/RemoteMergeCallBackBo.java
  64. 30
      micro-api/micro-api-print/src/main/java/com/sinosoft/print/api/domian/bo/RemotePrintBo.java
  65. 40
      micro-api/micro-api-print/src/main/java/com/sinosoft/print/api/domian/bo/RemotePrintFile.java
  66. 17
      micro-api/micro-api-print/src/main/java/com/sinosoft/print/api/domian/bo/RemoteTemplateParam.java
  67. 23
      micro-api/micro-api-print/src/main/java/com/sinosoft/print/api/domian/vo/RemotePrintResualtVo.java
  68. 34
      micro-api/micro-api-product/pom.xml
  69. 35
      micro-api/micro-api-product/src/main/java/com/sinosoft/product/ProductService.java
  70. 57
      micro-api/micro-api-product/src/main/java/com/sinosoft/product/domian/RemoteProdBaseVo.java
  71. 33
      micro-api/micro-api-resource/pom.xml
  72. 101
      micro-api/micro-api-resource/src/main/java/com/sinosoft/resource/api/RemoteFileService.java
  73. 53
      micro-api/micro-api-resource/src/main/java/com/sinosoft/resource/api/RemoteFileServiceMock.java
  74. 27
      micro-api/micro-api-resource/src/main/java/com/sinosoft/resource/api/RemoteMailService.java
  75. 43
      micro-api/micro-api-resource/src/main/java/com/sinosoft/resource/api/RemoteMessageService.java
  76. 45
      micro-api/micro-api-resource/src/main/java/com/sinosoft/resource/api/RemoteMessageServiceStub.java
  77. 171
      micro-api/micro-api-resource/src/main/java/com/sinosoft/resource/api/RemoteSmsService.java
  78. 45
      micro-api/micro-api-resource/src/main/java/com/sinosoft/resource/api/domain/RemoteFile.java
  79. 36
      micro-api/micro-api-resource/src/main/java/com/sinosoft/resource/api/domain/RemoteMergeFile.java
  80. 14
      micro-api/micro-api-resource/src/main/java/com/sinosoft/resource/api/domain/RemoteMergeFileOss.java
  81. 36
      micro-api/micro-api-resource/src/main/java/com/sinosoft/resource/api/domain/RemoteSms.java
  82. 17
      micro-api/micro-api-resource/src/main/java/com/sinosoft/resource/api/domain/RemoteTrunsFile.java
  83. 34
      micro-api/micro-api-risk/pom.xml
  84. 22
      micro-api/micro-api-risk/src/main/java/com/sinosoft/blackList/BlackListService.java
  85. 29
      micro-api/micro-api-risk/src/main/java/com/sinosoft/blackList/BlacklistCustomersService.java
  86. 19
      micro-api/micro-api-risk/src/main/java/com/sinosoft/blackList/BlacklistOrganizationService.java
  87. 26
      micro-api/micro-api-risk/src/main/java/com/sinosoft/blackList/LargeAmountTransactionService.java
  88. 20
      micro-api/micro-api-risk/src/main/java/com/sinosoft/blackList/LargeSuspiciousDataService.java
  89. 26
      micro-api/micro-api-risk/src/main/java/com/sinosoft/blackList/SuspiciousTransactionReportService.java
  90. 46
      micro-api/micro-api-risk/src/main/java/com/sinosoft/blackList/domain/bo/IsBlackListBo.java
  91. 63
      micro-api/micro-api-risk/src/main/java/com/sinosoft/blackList/domain/bo/RemoteBlacklistCustomersBo.java
  92. 81
      micro-api/micro-api-risk/src/main/java/com/sinosoft/blackList/domain/bo/RemoteBlacklistOrganizationBo.java
  93. 160
      micro-api/micro-api-risk/src/main/java/com/sinosoft/blackList/domain/bo/RemoteBlackmissionBo.java
  94. 62
      micro-api/micro-api-risk/src/main/java/com/sinosoft/blackList/domain/bo/RemoteLargeAmountTransactionBo.java
  95. 79
      micro-api/micro-api-risk/src/main/java/com/sinosoft/blackList/domain/bo/RemoteRiskLxihtradedetailBo.java
  96. 99
      micro-api/micro-api-risk/src/main/java/com/sinosoft/blackList/domain/bo/RemoteSuspiciousTransactionReportBo.java
  97. 59
      micro-api/micro-api-risk/src/main/java/com/sinosoft/blackList/domain/vo/IsBlackListVo.java
  98. 14
      micro-api/micro-api-risk/src/main/java/com/sinosoft/blackList/domain/vo/RemoteISLargeResultVo.java
  99. 43
      micro-api/micro-api-system/pom.xml
  100. 27
      micro-api/micro-api-system/src/main/java/com/sinosoft/system/api/RemoteClientService.java
  101. Some files were not shown because too many files have changed in this diff Show More

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="https://repo.maven.apache.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
</component>
</project>

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="ms-17" project-jdk-type="JavaSDK" />
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

@ -0,0 +1,33 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.sinosoft</groupId>
<artifactId>micro-api</artifactId>
<version>${revision}</version>
</parent>
<artifactId>micro-api-bfs</artifactId>
<description>
业财服务接口
</description>
<dependencies>
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-common-core</artifactId>
</dependency>
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-common-feign</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
</dependencies>
</project>

@ -0,0 +1,19 @@
package com.sinosoft.bfs.api;
import com.sinosoft.bfs.api.domain.bo.RemoteBusinessDataBo;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.domain.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* 同步业财业务信息接口
*/
@FeignClient(value = ServiceNames.BFS,contextId = "remoteBusinessDataService")
public interface RemoteBusinessDataService {
@PostMapping("/sync/remoteBusinessData")
R<Boolean> remoteBusinessData(@RequestBody RemoteBusinessDataBo bo);
}

@ -0,0 +1,18 @@
package com.sinosoft.bfs.api;
import com.sinosoft.bfs.api.domain.bo.RemoteCostCenterQuryBo;
import com.sinosoft.bfs.api.domain.vo.RemoteCostCenterQuryVo;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.domain.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@FeignClient(value = ServiceNames.BFS,contextId = "remoteCostCenterQuryService")
public interface RemoteCostCenterQuryService {
@PostMapping("/costMapping/remoteCostCenterQury")
R<List<RemoteCostCenterQuryVo>> costCenterQury(@RequestBody RemoteCostCenterQuryBo bo);
}

@ -0,0 +1,20 @@
package com.sinosoft.bfs.api;
import com.sinosoft.bfs.api.domain.bo.RemoteQuryInStitutionBo;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.domain.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(value = ServiceNames.BFS,contextId = "remoteInstitutionQuryService")
public interface RemoteInstitutionQuryService {
/**
* 查询机构映射
* @param bo
* @return
*/
@PostMapping("/qury/bussnesDataSync")
R<RemoteQuryInStitutionBo> quryInStitutionresult(@RequestBody RemoteQuryInStitutionBo bo) ;
}

@ -0,0 +1,18 @@
package com.sinosoft.bfs.api;
import com.sinosoft.bfs.api.domain.vo.RemotePeriodManagementVo;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.domain.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
/**
* 查询会计期间
*/
@FeignClient(value = ServiceNames.BFS,contextId = "remotePeriodManagemen")
public interface RemotePeriodManagemen {
//查询当前有效会计期间
@GetMapping("/periodManagement/getEffectivePeriodManagemen")
R<RemotePeriodManagementVo> getEffectivePeriodManagemen();
}

@ -0,0 +1,27 @@
package com.sinosoft.bfs.api;
import com.sinosoft.bfs.api.domain.bo.RemoteSupplierInfoBo;
import com.sinosoft.bfs.api.domain.vo.RemoteSupplierInfoVo;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.domain.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* 供应商信息服务
*/
@FeignClient(value = ServiceNames.BFS,contextId = "remoteSupplierInfoService")
public interface RemoteSupplierInfoService {
/**
* 供应商信息查询
* @param bo
* @return
*/
@PostMapping("/bussnessQury/remoteSupplierInfo")
R<List<RemoteSupplierInfoVo>> remoteSupplierInfo(@RequestBody RemoteSupplierInfoBo bo);
}

@ -0,0 +1,254 @@
package com.sinosoft.bfs.api.domain.bo;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* 业财凭证业务数据远程输入对象
*/
@Data
public class RemoteBusinessDataBo {
/**
* 批次号
*/
private String batchno;
/**
* 业务费用 ID
*/
private String businessPremId;
/**
* 来源系统
*/
private String sourceCode;
/**
* 业务场景类别编码
*/
private String bussType;
/**
* 业务场景类别名称
*/
private String bussName;
/**
* 保单险种 ID
*/
private String policyProductId;
/**
* 团单号
*/
private String policyNo;
/**
* 保单号
*/
private String singlePolicyNo;
/**
* 险种代码
*/
private String productCode;
/**
* 总金额
*/
private BigDecimal amount;
/**
* 不含税金额
*/
private BigDecimal income;
/**
* 税额
*/
private BigDecimal tax;
/**
* 币种
*/
private String currency;
/**
* 交易日期
*/
private Date businessDate;
/**
* 案件 ID
*/
private String claimId;
/**
* 应付号
*/
private String actugetno;
/**
* 理赔回退标识
*/
private String isBack;
/**
* 业务渠道
*/
private String channelCode;
/**
* 销售渠道
*/
private String salesChannel;
/**
* 收付机构
*/
private String subManageCom;
/**
* 银行账户代码
*/
private String bankAccount;
/**
* 银行账户名称
*/
private String bankAccountName;
/**
* 支付方式
*/
private String payMode;
/**
* 保单业务交易号码
*/
private String transactionNo;
/**
* 保单管理机构
*/
private String policyOrgCode;
/**
* 首年标志
*/
private String snflag;
/**
* 首期标志
*/
private String sqflag;
/**
* 缴别
*/
private String payIntervalType;
/**
* 缴费期限
*/
private String payInterval;
/**
* 缴费期限标志
*/
private String payIntervalFlag;
/**
* 业务来源
*/
private String businessSource;
/**
* 费用类型
*/
private String expenseType;
/**
* 健康险业务标识
*/
private String healthLabel;
/**
* 银行对账码
*/
private String matchCode;
/**
* 开户行
*/
private String hbkId;
/**
* 账户标示
*/
private String hktId;
/**
* 业务性质
*/
private String operSourceType;
/**
* 税率
*/
private String taxRate;
/**
* 统一社会信用代码
*/
private String taxregno;
/**
* 税码
*/
private String taxCode;
/**
* 佣金大类编码
*/
private String cwCode;
/**
* 佣金项编码
*/
private String cwItem;
/**
* 承诺项目
*/
private String budgetCode;
/**
* 创建日期
*/
private Date createDate;
/**
* 更新日期
*/
private Date updateDate;
/**
* 提数方式
*/
private String drawType;
/**
* 业务号码
*/
private String businessNo;
/**
* 现金流
*/
private String cashFlow;
}

@ -0,0 +1,32 @@
package com.sinosoft.bfs.api.domain.bo;
import lombok.Data;
/**
* 成本中心查询输入对象
*/
@Data
public class RemoteCostCenterQuryBo {
/**
* 管理机构
*/
private String manageCom;
/**
* 管理机构名称
*/
private String manageComName;
/**
* 成本中心编码
*/
private String accjgCode;
/**
* 成本中心描述
*/
private String accjgName;
}

@ -0,0 +1,14 @@
package com.sinosoft.bfs.api.domain.bo;
import lombok.Data;
/**
* 查询管理机构映射编码对象
*/
@Data
public class RemoteQuryInStitutionBo {
//管理机构
String manageCom;
//映射码值
String sapInstitution;
}

@ -0,0 +1,24 @@
package com.sinosoft.bfs.api.domain.bo;
import lombok.Builder;
import lombok.Data;
/**
* 供应商信息查询参数
*/
@Data
public class RemoteSupplierInfoBo {
/**
* 供应商或债权人的帐号
*/
private String lifnr;
/**
* 名称1
*/
private String name1;
/**
* 统一社会信用代码
*/
private String ztyxydm;
}

@ -0,0 +1,29 @@
package com.sinosoft.bfs.api.domain.vo;
import lombok.Data;
/**
* 成本中心查询输出对象
*/
@Data
public class RemoteCostCenterQuryVo {
/**
* 管理机构
*/
private String manageCom;
/**
* 管理机构名称
*/
private String manageComName;
/**
* 成本中心编码
*/
private String accjgCode;
/**
* 成本中心描述
*/
private String accjgName;
}

@ -0,0 +1,32 @@
package com.sinosoft.bfs.api.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@Data
public class RemotePeriodManagementVo {
/**
* 年度
*/
private String year;
/**
* 月度
*/
private String month;
/**
* 月度起期
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date startdate;
/**
* 月度止期
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date enddate;
}

@ -0,0 +1,22 @@
package com.sinosoft.bfs.api.domain.vo;
import lombok.Data;
/**
* 供应商信息查询返回参数
*/
@Data
public class RemoteSupplierInfoVo {
/**
* 供应商或债权人的帐号
*/
private String lifnr;
/**
* 名称 1
*/
private String name1;
/**
* 统一社会信用代码
*/
private String ztyxydm;
}

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.sinosoft</groupId>
<artifactId>micro-api</artifactId>
<version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>micro-api-bls</artifactId>
<description>
结算服务接口
</description>
<dependencies>
<!-- Micro Common Core-->
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-common-core</artifactId>
</dependency>
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-common-feign</artifactId>
</dependency>
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-common-mybatis</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
</dependencies>
</project>

@ -0,0 +1,20 @@
package com.sinosoft.bls;
import com.sinosoft.bls.domian.RemoteBlsBusinessDataBo;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.domain.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* 场景数据回传业财服产生的场景数据回传结算在结算中存储供I17使用
*/
@FeignClient(value = ServiceNames.BLS,contextId = "remoteBusinessCalbackServcie")
public interface RemoteBusinessCalbackServcie {
@PostMapping("/voucher/businessCalback")
R<Boolean> businessCalback(@RequestBody List<RemoteBlsBusinessDataBo> boList) ;
}

@ -0,0 +1,17 @@
package com.sinosoft.bls;
import com.sinosoft.bls.domian.RemoteBusinessPayables;
import com.sinosoft.common.core.constant.ServiceNames;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* 支付查询服务
*/
@FeignClient(value = ServiceNames.BLS,contextId = "remoteBusinessPayService")
public interface RemoteBusinessPayService {
@PostMapping("/payables/queryPayables")
RemoteBusinessPayables queryPayment(@RequestBody RemoteBusinessPayables payables);
}

@ -0,0 +1,27 @@
package com.sinosoft.bls;
import com.sinosoft.bls.domian.RemoteBlsBusinessDataBo;
import com.sinosoft.bls.domian.RemoteCallbackSystemBo;
import com.sinosoft.bls.domian.RemoteCallbackSystemVo;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.domain.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* 对账码回传系统服务
*/
@FeignClient(value = ServiceNames.BLS,contextId = "remoteCallBackSystemService")
public interface RemoteCallBackSystemService {
/**
* 账期对账
* @param remoteCallbackSystemBo
* @return
*/
@PostMapping("/chargesInformation/accountDateCallback")
R<RemoteCallbackSystemVo> accountDateCallback(@RequestBody RemoteCallbackSystemBo remoteCallbackSystemBo) ;
}

@ -0,0 +1,30 @@
package com.sinosoft.bls;
import com.sinosoft.bls.domian.RemoteCollectionBankBo;
import com.sinosoft.bls.domian.RemoteCollectionBankVo;
import com.sinosoft.bls.domian.RemoteCollectionQuryBo;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.domain.R;
import com.sinosoft.common.mybatis.core.page.PageQuery;
import com.sinosoft.common.mybatis.core.page.TableDataInfo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
@FeignClient(value = ServiceNames.BLS,contextId = "remoteCollectionBankService")
public interface RemoteCollectionBankService {
/**
* 查询收入款银行信息
* @param bo
* @return
*/
@PostMapping("/collectionbank/list")
TableDataInfo<RemoteCollectionBankVo> quryCollectionBankPage(@RequestBody RemoteCollectionQuryBo bo) ;
@PostMapping("/collectionbank/getSapBankCode")
R<RemoteCollectionBankVo> getSapBankCode(@RequestBody RemoteCollectionBankBo bo);
}

@ -0,0 +1,22 @@
package com.sinosoft.bls;
import com.sinosoft.bls.domian.ConfirmPaymentBo;
import com.sinosoft.bls.domian.RemoteVoucherBackBo;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.domain.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* 中间业务平台交费确认接口
*/
@FeignClient(value = ServiceNames.BLS,contextId = "remoteMitBlsService")
public interface RemoteMitBlsService {
@PostMapping("/mitBls/confirmPayment")
R<String> confirmPayment(@RequestBody ConfirmPaymentBo object);
}

@ -0,0 +1,19 @@
package com.sinosoft.bls;
import com.sinosoft.bls.domian.RemoteTemporaryCharges;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.domain.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* 暂收费查询接口
*/
@FeignClient(value = ServiceNames.BLS,contextId = "remoteTemporaryChargesService")
public interface RemoteTemporaryChargesService {
@PostMapping("/charges/queryTemporaryCharges")
R<RemoteTemporaryCharges> queryTemporaryCharges(@RequestBody RemoteTemporaryCharges charges);
}

@ -0,0 +1,21 @@
package com.sinosoft.bls;
import com.sinosoft.bls.domian.RemoteVoucherBackBo;
import com.sinosoft.common.core.constant.ServiceNames;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* 凭证信息回传接口
*/
@FeignClient(value = ServiceNames.BLS,contextId = "remoteVoucherBackService")
public interface RemoteVoucherBackService {
@PostMapping("/voucher/back")
String voucherBack(@RequestBody List<RemoteVoucherBackBo> boList);
}

@ -0,0 +1,12 @@
package com.sinosoft.bls.domian;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class ConfirmPaymentBo {
@JsonProperty("ClientInfo")
private ConfirmPaymentClientInfoBo confirmPaymentClientInfoBo;
@JsonProperty("InputData")
private ConfirmPaymentLevel2Bo confirmPaymentLevel2Bo;
}

@ -0,0 +1,37 @@
package com.sinosoft.bls.domian;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.Date;
@Data
public class ConfirmPaymentClientInfoBo {
@JsonProperty("BusinessCode")
String BusinessCode;
@JsonProperty("Date")
String Date;
@JsonProperty("DealType")
String DealType;
@JsonProperty("Operator")
String Operator;
@JsonProperty("PageRowNum")
String PageRowNum;
@JsonProperty("Result")
String Result;
@JsonProperty("ResultCode")
String ResultCode;
@JsonProperty("RowNumStart")
String RowNumStart;
@JsonProperty("SeqNo")
String SeqNo;
@JsonProperty("SubBusinessCode")
String SubBusinessCode;
@JsonProperty("Time")
String Time;
@JsonProperty("TotalRowNum")
String TotalRowNum;
@JsonProperty("TurnPageFlag")
String TurnPageFlag;
}

@ -0,0 +1,133 @@
package com.sinosoft.bls.domian;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sinosoft.common.core.validate.AddGroup;
import com.sinosoft.common.core.validate.EditGroup;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import java.math.BigDecimal;
@Data
public class ConfirmPaymentLevel2Bo {
/**
* 对接系统
*/
@NotBlank(message = "对接系统不能为空", groups = { AddGroup.class, EditGroup.class })
String transSource;
/**
* 请求时间
*/
@NotBlank(message = "交易时间不能为空", groups = { AddGroup.class, EditGroup.class })
String transTime;
/**
* 请求流水号
*/
@NotBlank(message = "请求流水号不能为空", groups = { AddGroup.class, EditGroup.class })
String transSeq;
/**
* 付款人名称
*/
@NotBlank(message = "付款人名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String payerName;
/**
* 付款人开户行
*/
private String payerBank;
/**
* 付款人银行账号
*/
private String payerBankAccount;
/**
* 金额
*/
@NotNull(message = "金额不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal amount;
/**
* 缴费方式
*/
@NotBlank(message = "缴费方式不能为空", groups = { AddGroup.class, EditGroup.class })
private String paymentMethod;
/**
* 到账日期
*/
@NotBlank(message = "到账日期不能为空", groups = { AddGroup.class, EditGroup.class })
private String arrivalDate;
/**
* 对账码
*/
@NotBlank(message = "对账码不能为空", groups = { AddGroup.class, EditGroup.class })
private String reconciliationCode;
/**
* 匹配余额
*/
private BigDecimal matchingBalance;
/**
* 原始金额
*/
private BigDecimal orgAmount;
/**
* 银行明细虚拟账户
*/
private String virtualAccount;
/**
* 缴费项目
*/
private String chargItems;
/**
* 溢交退费金额
*/
private BigDecimal excessPaymentAmount;
/**
* 管理机构
*/
@NotBlank(message = "管理机构不能为空", groups = { AddGroup.class, EditGroup.class })
private String manageCom;
/**
* 收款银行账号
*/
@NotBlank(message = "收款银行账号不能为空", groups = { AddGroup.class, EditGroup.class })
private String receivingBankAccount;
/**
* 收款银行名称
*/
private String receivingBankName;
/**
* 付款方开户行信息
*/
@NotBlank(message = "付款方开户行信息不能为空", groups = { AddGroup.class, EditGroup.class })
private String oppBankLocation;
/**
* 保单号
*/
@NotBlank(message = "保单号不能为空", groups = { AddGroup.class, EditGroup.class })
private String policyNumber;
/**
* 电E金服标识0非电E金服1电E金服
*/
@NotBlank(message = "电E金服标识不能为空", groups = { AddGroup.class, EditGroup.class })
@Pattern(regexp = "0|1", message = "支付方式只能是0-非电E金服,1-电E金服中的一个", groups = {AddGroup.class, EditGroup.class})
private String isEfinance;
}

@ -0,0 +1,258 @@
package com.sinosoft.bls.domian;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* 业财凭证业务数据远程输入对象
*/
@Data
public class RemoteBlsBusinessDataBo {
/**
* 批次号
*/
private String batchno;
/**
* 业务费用 ID
*/
private String businessPremId;
/**
* 来源系统
*/
private String sourceCode;
/**
* 业务场景类别编码
*/
private String bussType;
/**
* 业务场景类别名称
*/
private String bussName;
/**
* 保单险种 ID
*/
private String policyProductId;
/**
* 团单号
*/
private String policyNo;
/**
* 保单号
*/
private String singlePolicyNo;
/**
* 险种代码
*/
private String productCode;
/**
* 总金额
*/
private BigDecimal amount;
/**
* 不含税金额
*/
private BigDecimal income;
/**
* 税额
*/
private BigDecimal tax;
/**
* 币种
*/
private String currency;
/**
* 交易日期
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date businessDate;
/**
* 案件 ID
*/
private String claimId;
/**
* 应付号
*/
private String actugetno;
/**
* 理赔回退标识
*/
private String isBack;
/**
* 业务渠道
*/
private String channelCode;
/**
* 销售渠道
*/
private String salesChannel;
/**
* 收付机构
*/
private String subManageCom;
/**
* 银行账户代码
*/
private String bankAccount;
/**
* 银行账户名称
*/
private String bankAccountName;
/**
* 支付方式
*/
private String payMode;
/**
* 保单业务交易号码
*/
private String transactionNo;
/**
* 保单管理机构
*/
private String policyOrgCode;
/**
* 首年标志
*/
private String snflag;
/**
* 首期标志
*/
private String sqflag;
/**
* 缴别
*/
private String payIntervalType;
/**
* 缴费期限
*/
private String payInterval;
/**
* 缴费期限标志
*/
private String payIntervalFlag;
/**
* 业务来源
*/
private String businessSource;
/**
* 费用类型
*/
private String expenseType;
/**
* 健康险业务标识
*/
private String healthLabel;
/**
* 银行对账码
*/
private String matchCode;
/**
* 开户行
*/
private String hbkId;
/**
* 账户标示
*/
private String hktId;
/**
* 业务性质
*/
private String operSourceType;
/**
* 税率
*/
private String taxRate;
/**
* 统一社会信用代码
*/
private String taxregno;
/**
* 税码
*/
private String taxCode;
/**
* 佣金大类编码
*/
private String cwCode;
/**
* 佣金项编码
*/
private String cwItem;
/**
* 承诺项目
*/
private String budgetCode;
/**
* 创建日期
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date createDate;
/**
* 更新日期
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date updateDate;
/**
* 提数方式
*/
private String drawType;
/**
* 业务号码
*/
private String businessNo;
/**
* 现金流
*/
private String cashFlow;
}

@ -0,0 +1,254 @@
package com.sinosoft.bls.domian;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
/**
* 支付数据查询
*/
@Data
public class RemoteBusinessPayables {
/**
* ID
*/
private Long payablesId;
/**
* 业务应付号码
*/
private String businessPaymentNumber;
/**
* 来源系统
*/
private String fromSystem;
/**
* 渠道
*/
private String channel;
/**
* 支付方式
*/
private String paymentMethod;
/**
* 付费类型
*/
private String payeeType;
/**
* 收款人名称
*/
private String payeeName;
/**
* 银行编码
*/
private String bankCode;
/**
* 银行账号
*/
private String bankAccount;
/**
* 应付日期
*/
private LocalDate payableDate;
/**
* 支付日期
*/
private Date paymentDate;
/**
* 保单号
*/
private String policyNumber;
/**
* 业务类型
*/
private String businessType;
/**
* 业务号码
*/
private String businessNumber;
/**
* 金额
*/
private BigDecimal amount;
/**
* 共保标记
*/
private String coInsuranceMark;
/**
* 业务归属机构
*/
private String manageCom;
/**
* 开户行名称
*/
private String bankLocation;
/**
* 币种
*/
private String currency;
/**
* 加急标记
*/
private String fastFlag;
/**
* 公私标记
*/
private String privateFlag;
/**
* 卡折类型
*/
private String cardType;
/**
* 在途状态
*/
private String inTransitStatus;
/**
* 支付状态
*/
private String paymentStatus;
/**
* 成功失败标记
*/
private String successFailureMark;
/**
* 失败原因
*/
private String failureReason;
/**
* 转账批次号
*/
private String transferBatchNumber;
/**
* 银行对账码
*/
private String reconciliationCode;
/**
* 发盘次数
*/
private Long offerCount;
/**
* 交易流水号
*/
private String transSeq;
/**
* 交易子流水号
*/
private String rdSeq;
/**
* 开户行所在省
*/
private String bankProvice;
/**
* 开户行所在市b
*/
private String bankCity;
/**
* 支出虚拟户
*/
private String virtualAccount;
/**
* 电财数据标记(销管使用)
*/
private String electricData;
/**
* 泰和业务标记(委托业务使用)
*/
private String taiheFlag;
/**
* 付费类型(0-业务付费1-无单退费2-溢交退费
*/
private String refundType;
/**
* 缴费项目
*/
private String chargItems;
/**
* 审核结论
*/
private String auditResult;
/**
* 审核结论描述
*/
private String auditDescribe;
/**
* 审核人
*/
private String auditBy;
/**
* 企业付款账户
*/
private String corpAct;
/**
* 企业付款银行
*/
private String corpBank;
/**
* 企业付款银行名称
*/
private String corpBankName;
/**
* 企业付款机构
*/
private String corpEntity;
/**
* 交易流水编号
*/
private String noteCode;
/**
* 资金核对码
*/
private String fundAbstract;
/**
* 退票时间
*/
private Date reversalDate;
}

@ -0,0 +1,21 @@
package com.sinosoft.bls.domian;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* 回调系统报文体
*/
@Data
public class RemoteCallbackSystemBo {
//凭证号
private String belnrSap;
//凭证日期
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date accountDate;
//凭证明细
private List<RemoteCallbackSystemDetailBo> accountDetail;
}

@ -0,0 +1,24 @@
package com.sinosoft.bls.domian;
import lombok.Data;
import java.math.BigDecimal;
/**
* 回调系统详情
*/
@Data
public class RemoteCallbackSystemDetailBo {
//业务数据ID
private Long id;
//批次号
private String batchno;
//业务费用ID
private String businessPremId;
//业务场景类别编码
private String bussType;
//总金额
private BigDecimal amount;
//保单业务交易号码
private String transactionNo;
}

@ -0,0 +1,28 @@
package com.sinosoft.bls.domian;
import lombok.Data;
import java.math.BigDecimal;
/**
* 回调系统返回详情
*/
@Data
public class RemoteCallbackSystemDetailVo {
//业务数据ID
private Long id;
//批次号
private String batchno;
//业务费用ID
private String businessPremId;
//业务场景类别编码
private String bussType;
//总金额
private BigDecimal amount;
//保单业务交易号码
private String transactionNo;
//同步状态
private String status;
//错误描述
private String errorMsg;
}

@ -0,0 +1,18 @@
package com.sinosoft.bls.domian;
import lombok.Data;
import java.util.List;
/**
* 业务系统回调返回信息
*/
@Data
public class RemoteCallbackSystemVo {
//同步状态
private String status;
//错误信息
private String errorMsg;
//业务数据详情
private List<RemoteCallbackSystemDetailVo> accountDetail;
}

@ -0,0 +1,79 @@
package com.sinosoft.bls.domian;
import com.sinosoft.common.core.validate.AddGroup;
import com.sinosoft.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 收款银行配置业务对象 collection_bank
*
* @author
* @date 2025-05-23
*/
@Data
public class RemoteCollectionBankBo {
/**
* 主键ID
*/
private Long id;
/**
* 银行编码
*/
private String bankCode;
/**
* 银行账号
*/
private String bankAccount;
/**
* 账户户名
*/
private String bankAccountName;
/**
* 归属机构
*/
private String manageCom;
/**
* 是否委托专户
*/
private String isEntrust;
/**
* SAP机构
*/
private String sapInstitution;
/**
* 银行别称
*/
private String bankAlias;
/**
* 机构名称
*/
private String comName;
/**
* 状态
*/
private String status;
/**
* 银行类型 S-收款银行 F-付款银行
*/
private String bankType;
/**
* SAP收款银行
*/
private String sapBankCode;
}

@ -0,0 +1,89 @@
package com.sinosoft.bls.domian;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 收款银行配置视图对象 collection_bank
*
* @author
* @date 2025-05-23
*/
@Data
public class RemoteCollectionBankVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
private Long id;
/**
* 银行编码
*/
private String bankCode;
/**
* 银行账号
*/
private String bankAccount;
/**
* 账户户名
*/
private String bankAccountName;
/**
* 归属机构
*/
private String manageCom;
/**
* 是否委托专户
*/
private String isEntrust;
/**
* SAP机构
*/
private String sapInstitution;
/**
* 银行别称
*/
private String bankAlias;
/**
* 机构名称
*/
private String comName;
/**
* 状态
*/
private String status;
/**
* 银行类型 S-收款银行 F-付款银行
*/
private String bankType;
/**
* 账户标记
*/
private String bankFlag;
/**
* SAP收款银行
*/
private String sapBankCode;
}

@ -0,0 +1,10 @@
package com.sinosoft.bls.domian;
import com.sinosoft.common.mybatis.core.page.PageQuery;
import lombok.Data;
@Data
public class RemoteCollectionQuryBo {
private RemoteCollectionBankBo remoteCollectionBankBo;
private PageQuery pageQuery;
}

@ -0,0 +1,170 @@
package com.sinosoft.bls.domian;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
/**
* 暂收费查询对象
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class RemoteTemporaryCharges {
/**
* 暂收费ID
*/
private Long temporaryChargeId;
/**
* 暂收费号码
*/
private String temporaryChargeNumber;
/**
* 银行流水号
*/
private String bankSerialNumber;
/**
* 付款人名称
*/
private String payerName;
/**
* 付款人开户行
*/
private String payerBank;
/**
* 付款人银行账号
*/
private String payerBankAccount;
/**
* 保单号
*/
private String policyNumber;
/**
* 金额
*/
private BigDecimal amount;
/**
* 缴费方式
*/
private String paymentMethod;
/**
* 收款银行账号
*/
private String receivingBankAccount;
/**
* 收款银行名称
*/
private String receivingBankName;
/**
* 到账日期
*/
private LocalDate arrivalDate;
/**
* 对账码
*/
private String reconciliationCode;
/**
* 匹配状态
*/
private String matchingStatus;
/**
* 匹配余额
*/
private BigDecimal matchingBalance;
/**
* 审批状态
*/
private String approvalStatus;
/**
* 溢交退费金额
*/
private BigDecimal excessPaymentAmount;
/**
* 管理机构
*/
private String manageCom;
/**
* 是否委托专户
*/
private String isEntrust;
/**
* 备注
*/
private String remark;
/**
* 是否特殊收费
*/
private String isSpec;
/**
* 特殊收费类型
*/
private String specType;
/**
* 审核人
*/
private String approvalBy;
/**
* 审核时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date approvalTime;
/**
* 原始金额
*/
private BigDecimal orgAmount;
/**
* 银行明细虚拟账户
*/
private String virtualAccount;
/**
* 缴费项目
*/
private String chargItems;
/**
* 缴费项目
*/
private String oppBankLocation;
/**
* 电E金服标识0非电E金服1电E金服
*/
private String isEfinance;
/**
* 是否做过资金补录
*/
private String isInformation;
}

@ -0,0 +1,30 @@
package com.sinosoft.bls.domian;
import lombok.Data;
import java.math.BigDecimal;
/**
* 凭证回传
*/
@Data
public class RemoteVoucherBackBo {
/**
* 收支类型 Pay-付费Rec-收款批量Temp-暂收费
*/
String feeType;
//会计凭证编号
String belnrSap;
//场景编码
String costId;
//总账科目
String finItemCode;
//银行对账码
String reconCode;
//业务号码
String businessNo;
//记账金额
BigDecimal amount;
//会计期间
String period;
}

@ -0,0 +1,98 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.sinosoft</groupId>
<artifactId>micro-api-bom</artifactId>
<packaging>pom</packaging>
<version>${revision}</version>
<description>
api依赖项
</description>
<properties>
<revision>2.2.2</revision>
</properties>
<dependencyManagement>
<dependencies>
<!-- 系统接口 -->
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-api-system</artifactId>
<version>${revision}</version>
</dependency>
<!-- 资源服务接口 -->
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-api-resource</artifactId>
<version>${revision}</version>
</dependency>
<!-- workflow接口 -->
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-api-workflow</artifactId>
<version>${revision}</version>
</dependency>
<!-- leaf接口 -->
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-api-leaf</artifactId>
<version>${revision}</version>
</dependency>
<!-- 客户中心接口 -->
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-api-customer</artifactId>
<version>${revision}</version>
</dependency>
<!-- 业务风控接口 -->
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-api-risk</artifactId>
<version>${revision}</version>
</dependency>
<!-- 打印引擎接口 -->
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-api-print</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-api-msg</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-api-product</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-api-bfs</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-api-bls</artifactId>
<version>${revision}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.sinosoft</groupId>
<artifactId>micro-api</artifactId>
<version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>micro-api-customer</artifactId>
<description>
客户中心接口
</description>
<dependencies>
<!-- Micro Common Core-->
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-common-core</artifactId>
</dependency>
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-common-feign</artifactId>
</dependency>
</dependencies>
</project>

@ -0,0 +1,32 @@
package com.sinosoft.customer;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.domain.R;
import com.sinosoft.customer.domain.bo.SubCustomerBo;
import com.sinosoft.customer.domain.vo.CustomerNoVo;
import com.sinosoft.customer.domain.vo.RemoteMasterCusomerVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* 客户中心查询接口
*/
@FeignClient(value = ServiceNames.CUSTOMER,contextId = "remoteCustomerService")
public interface RemoteCustomerService {
//根据子客户号查询主客户号
@PostMapping("/customerquery/quryMasterCustomerNo")
R<CustomerNoVo> quryMasterCustomerNo(@RequestBody SubCustomerBo subCustomerBo);
//根据主客户号查询所有子客户号
@PostMapping("/customerquery/qurySubCustomerNo")
R<CustomerNoVo> qurySubCustomerNo(@RequestBody String masterCustomerNo);
@PostMapping("/customerquery/remoteQuryMasterCustomer")
R<RemoteMasterCusomerVo> remoteQuryMasterCustomer(@RequestBody String masterCustomerNo);
}

@ -0,0 +1,28 @@
package com.sinosoft.customer;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.domain.R;
import com.sinosoft.common.core.utils.ReturnOptions;
import com.sinosoft.common.feign.config.FeignConfig;
import com.sinosoft.common.feign.config.FeignRemoveUnnecessaryHeaders;
import com.sinosoft.customer.domain.bo.RemoteCustomer;
import com.sinosoft.customer.domain.bo.SubCustomerBo;
import org.springframework.boot.configurationprocessor.json.JSONObject;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* 中间业务平台客户查询服务接口
*/
@FeignClient(value = ServiceNames.CUSTOMER,contextId = "remoteMitCustomerQueryService",configuration = FeignConfig.class)
public interface RemoteMitCustomerQueryService {
//根据子客户号查询主客户号
@PostMapping("/mitCustomer/quryCustomerNo")
R<String> quryCustomerNo(@RequestBody String object);
@PostMapping(value = "/mitCustomer/quryCustomerOwn",
consumes = "application/json; charset=UTF-8")
R<String> quryCustomerOwn(@RequestBody String json);
}

@ -0,0 +1,40 @@
package com.sinosoft.customer.domain.bo;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
public class RemoteClientInfo {
private String DealType;
private String ClientType;
private String BusinessCode;
private String SubBusinessCode;
private Date Date;
//请求时间
private String Time;
//请求流水号
private String SeqNo;
//请求操作员
private String Operator;
//翻页标识
private int TurnPageFlag;
//排序标记
private int OrderByFlag;
//排序字段
private int OrderByField;
//起始行号
private int RowNumStart;
//页码数
private int PageRowNum;
//总行数
private int TotalRowNum;
//结果
private String Result;
//结果编码(电话中心)
private String ResultCode;
}

@ -0,0 +1,31 @@
package com.sinosoft.customer.domain.bo;
import lombok.Data;
import java.time.LocalDate;
import java.util.Locale;
@Data
public class RemoteCustomer {
String customerNo;
//姓名
String name;
//证件类型
String idType;
//证件号码
String idNo;
LocalDate birthday;
//性别
String gender;
// 覆写 setIdNo 方法,将传入的值转换为大写
public void setIdNo(String idNo) {
if (idNo != null) {
this.idNo = idNo.toUpperCase(Locale.ENGLISH);
} else {
this.idNo = null;
}
}
}

@ -0,0 +1,8 @@
package com.sinosoft.customer.domain.bo;
import lombok.Data;
@Data
public class RemoteCustomerBo {
}

@ -0,0 +1,11 @@
package com.sinosoft.customer.domain.bo;
import lombok.Data;
@Data
public class SubCustomerBo {
//子客户号
String subCustomerNo;
//系统
String system;
}

@ -0,0 +1,12 @@
package com.sinosoft.customer.domain.vo;
import lombok.Data;
import java.util.List;
@Data
public class CustomerNoVo {
String masterCustomerNo;
List<SubCustomerVo> subCustomerVoList;
}

@ -0,0 +1,28 @@
package com.sinosoft.customer.domain.vo;
import lombok.Data;
import java.time.LocalDate;
@Data
public class RemoteMasterCusomerVo {
/**
* 客户编号
*/
private String customerNo;
/**
* 客户姓名
*/
private String name;
/**
* 性别
*/
private String gender;
/**
* 出生日期
*/
private LocalDate birthday;
}

@ -0,0 +1,10 @@
package com.sinosoft.customer.domain.vo;
import lombok.Data;
@Data
public class SubCustomerVo {
String subCustomerNo;
String system;
}

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.sinosoft</groupId>
<artifactId>micro-api</artifactId>
<version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>micro-api-leaf</artifactId>
<description>
ID号码生成接口
</description>
<dependencies>
<!-- Micro Common Core-->
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-common-core</artifactId>
</dependency>
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-common-feign</artifactId>
</dependency>
</dependencies>
</project>

@ -0,0 +1,20 @@
package com.sinosoft.leaf.api;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.domain.R;
import com.sinosoft.leaf.api.domain.bo.MaxNoBo;
import com.sinosoft.leaf.api.domain.vo.MaxNoVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import java.util.List;
@FeignClient(value = ServiceNames.LEAF,contextId = "remoteGetMaxNoService")
public interface RemoteGetMaxNoService {
@PostMapping("/maxno/getMaxNo")
R<MaxNoVo> getMaxNo(MaxNoBo maxNoBo);
@PostMapping("/maxno/getListMaxNo")
R<List<MaxNoVo>> getListMaxNo(MaxNoBo maxNoBo);
}

@ -0,0 +1,17 @@
package com.sinosoft.leaf.api.domain.bo;
import lombok.Data;
@Data
public class MaxNoBo {
//流水号类型
String noType;
//获取个数
int number ;
//流水号长度
int length;
//流水号前缀
String prefix;
//流水号后缀
String suffix;
}

@ -0,0 +1,10 @@
package com.sinosoft.leaf.api.domain.vo;
import lombok.Data;
@Data
public class MaxNoVo {
String noType;
String maxNo;
boolean state;
}

@ -0,0 +1,41 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.sinosoft</groupId>
<artifactId>micro-api</artifactId>
<version>${revision}</version>
</parent>
<artifactId>micro-api-msg</artifactId>
<description>
通知接口
</description>
<dependencies>
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-common-core</artifactId>
</dependency>
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-common-feign</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-api-resource</artifactId>
</dependency>
</dependencies>
</project>

@ -0,0 +1,36 @@
package com.sinosoft.msg.api;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.domain.R;
import com.sinosoft.msg.api.domain.bo.BacthEmailSendBo;
import com.sinosoft.msg.api.domain.bo.EmailSendBo;
import com.sinosoft.msg.api.domain.vo.BatchEmailSendVo;
import com.sinosoft.msg.api.domain.vo.EmailSendVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(value = ServiceNames.MSG,contextId = "emailSendMessageService")
public interface EmailSendMessageService {
/**
* 发送邮件--对外接口
* @param bo
* @return
*/
@PostMapping("/EmailSend/sendEmail")
R<EmailSendVo> sendOne(@RequestBody EmailSendBo bo) ;
/**
* 批量发送邮件--对外接口
* @param bos
* @return
*/
@PostMapping("/EmailSend/batchSendEmail")
R<BatchEmailSendVo> sendBatch(@RequestBody BacthEmailSendBo bos) ;
}

@ -0,0 +1,15 @@
package com.sinosoft.msg.api.domain;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
/**
* 批量邮件接收对象
*/
@Data
public class BatchEmailReceiving {
//发送邮箱号码
private String emailNo;
//发送参数
private JSONObject parms;
}

@ -0,0 +1,37 @@
package com.sinosoft.msg.api.domain.bo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sinosoft.msg.api.domain.BatchEmailReceiving;
import com.sinosoft.common.core.validate.QueryGroup;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* 批量邮件发送接口对象
*/
@Data
public class BacthEmailSendBo {
//邮件模版ID
@NotNull(message = "模版编码不能为空", groups = { QueryGroup.class })
private String templateCode;
//归属系统
@NotNull(message = "归属系统不能为空", groups = { QueryGroup.class })
private String system;
//归属模块
@NotNull(message = "归属模块不能为空", groups = { QueryGroup.class })
private String module;
//版本号
@NotNull(message = "版本号不能为空", groups = { QueryGroup.class })
private String versionNumber;
//发送类型
@NotNull(message = "发送类型不能为空", groups = { QueryGroup.class })
private String sendType;
//发送时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date sendTime;
//发送参数
private List<BatchEmailReceiving> sendParms;
}

@ -0,0 +1,42 @@
package com.sinosoft.msg.api.domain.bo;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sinosoft.common.core.validate.QueryGroup;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.util.Date;
/**
* 邮件发送接口对象
*/
@Data
public class EmailSendBo {
//邮件模版ID
@NotNull(message = "模版编码不能为空", groups = { QueryGroup.class })
private String templateCode;
//归属系统
@NotNull(message = "归属系统不能为空", groups = { QueryGroup.class })
private String system;
//归属模块
@NotNull(message = "归属模块不能为空", groups = { QueryGroup.class })
private String module;
//版本号
@NotNull(message = "版本号不能为空", groups = { QueryGroup.class })
private String versionNumber;
//发送邮箱号码
@NotNull(message = "邮箱号码不能为空", groups = { QueryGroup.class })
private String emailNo;
//发送类型
@NotNull(message = "发送类型不能为空", groups = { QueryGroup.class })
private String sendType;
//发送时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date sendTime;
//发送参数
private JSONObject parms;
//模版内容
private String templateContent;
}

@ -0,0 +1,19 @@
package com.sinosoft.msg.api.domain.vo;
import lombok.Data;
import java.util.List;
/**
* 批量邮件发送接口对象
*/
@Data
public class BatchEmailSendVo {
//成功标记
private Boolean isSuccess;
//反馈消息
private String message;
//逐条返回信息
private List<EmailSendVo> detailList;
}

@ -0,0 +1,20 @@
package com.sinosoft.msg.api.domain.vo;
import lombok.Data;
/**
* 邮箱发送返回对象
*/
@Data
public class EmailSendVo {
//发送ID
private Long sendId;
//成功标记
private Boolean isSuccess;
//反馈消息
private String message;
//发送邮箱号码
private String emailNo;
}

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.sinosoft</groupId>
<artifactId>micro-api</artifactId>
<version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>micro-api-print</artifactId>
<description>
打印引擎接口
</description>
<dependencies>
<!-- Micro Common Core-->
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-common-core</artifactId>
</dependency>
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-common-feign</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
</dependencies>
</project>

@ -0,0 +1,29 @@
package com.sinosoft.print.api;
import com.alibaba.fastjson.JSONObject;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.domain.R;
import com.sinosoft.print.api.domian.bo.RemoteMergeCallBackBo;
import com.sinosoft.print.api.domian.bo.RemotePrintBo;
import com.sinosoft.print.api.domian.vo.RemotePrintResualtVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* 远程调用打印引擎打印模版
*/
@FeignClient(value = ServiceNames.PRINT,contextId = "remoteTemplatePrintService")
public interface RemoteTemplatePrintService {
// 按模版打印
@PostMapping("/remoteTemplate/PrintTemp")
R<RemotePrintResualtVo> quryMasterCustomerNo(@RequestBody List<RemotePrintBo> boList);
@PostMapping("/remoteTemplate/tempMergeCallBack")
R<Boolean> tempMergeCallBack(@RequestBody RemoteMergeCallBackBo bo);
}

@ -0,0 +1,28 @@
package com.sinosoft.print.api.domian.bo;
import lombok.Data;
@Data
public class RemoteMergeCallBackBo {
/**
* 唯一ID
*/
String uuid;
/**
* 合并类型
*/
String mergeType;
/**
* 状态
*/
String status;
/**
* 错误信息
*/
String message;
/**
* 打印文件信息
*/
RemotePrintFile printFile;
}

@ -0,0 +1,30 @@
package com.sinosoft.print.api.domian.bo;
import lombok.Data;
import java.util.List;
/**
* 远程打印请求参数
*/
@Data
public class RemotePrintBo {
//请求ID
String requestId;
//业务类型
String businessType;
//业务号码
String businessNumber;
//模版ID
String templateCode;
//模版版本
String versionNumber;
//来源系统
String fromSystem;
//来源模块
String fromModule;
//是否签章
String isSealAllowed;
//模版参数
List<RemoteTemplateParam> params;
}

@ -0,0 +1,40 @@
package com.sinosoft.print.api.domian.bo;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
@Data
public class RemotePrintFile implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* oss主键
*/
private Long ossId;
/**
* 文件名称
*/
private String name;
/**
* 文件地址
*/
private String url;
/**
* 原名
*/
private String originalName;
/**
* 文件后缀名
*/
private String fileSuffix;
}

@ -0,0 +1,17 @@
package com.sinosoft.print.api.domian.bo;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
/**
* 远程模板打印参数
*/
@Data
public class RemoteTemplateParam {
// 文件顺序
private int filesOrder;
// 文件类型
private String filesType;
// 参数值
private JSONObject data;
}

@ -0,0 +1,23 @@
package com.sinosoft.print.api.domian.vo;
import lombok.Data;
/**
* 远程打印结果
*/
@Data
public class RemotePrintResualtVo {
/**
* Ossid
*/
private Long ossId;
/**
* 文件名称
*/
private String name;
/**
* 文件地址
*/
private String url;
}

@ -0,0 +1,34 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.sinosoft</groupId>
<artifactId>micro-api</artifactId>
<version>${revision}</version>
</parent>
<artifactId>micro-api-product</artifactId>
<description>
产品中心接口
</description>
<dependencies>
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-common-core</artifactId>
</dependency>
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-common-feign</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
</dependencies>
</project>

@ -0,0 +1,35 @@
package com.sinosoft.product;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.domain.R;
import com.sinosoft.common.feign.config.FeignConfig;
import com.sinosoft.common.feign.config.FeignRemoveUnnecessaryHeaders;
import com.sinosoft.product.domian.RemoteProdBaseVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@FeignClient(value = ServiceNames.PRODUCT,contextId = "productService")
public interface ProductService {
/**
* 根据产品编码查询产品名称
*/
@PostMapping("/apply/queryProductName")
R<String> queryProductName(@RequestBody List<String> productCodes) ;
/**
* 查询长短险标记
*/
@PostMapping("/apply/queryProductPeriod")
R<RemoteProdBaseVo> queryProductPeriod(@RequestBody String productCode) ;
/**
* 查询长短险标记
*/
@PostMapping("/apply/remoteQueryAllProduct")
R<List<RemoteProdBaseVo>> remoteQueryAllProduct() ;
}

@ -0,0 +1,57 @@
package com.sinosoft.product.domian;
import lombok.Data;
@Data
public class RemoteProdBaseVo {
/**
* 产品编码
*/
private String productCode;
/**
* 产品名称
*/
private String productName;
/**
* 险种版本
*/
private String productVersion;
/**
* 险类编码
*/
private String kindCode;
/**
* 险种分类
*/
private String productType;
/**
* 长短险标记L-长期险M-短期险S-极短期险
*/
private String productPeriod;
/**
* 主附险标记
*/
private String subFlag;
/**
* 管理部门
*/
private String mngCom;
/**
* 账户险标记
*/
private String insuAccFlag;
/**
* 归属系统
*/
private String system;
}

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.sinosoft</groupId>
<artifactId>micro-api</artifactId>
<version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>micro-api-resource</artifactId>
<description>
资源服务接口模块
</description>
<dependencies>
<!-- Micro Common Core-->
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-common-core</artifactId>
</dependency>
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-common-feign</artifactId>
</dependency>
</dependencies>
</project>

@ -0,0 +1,101 @@
package com.sinosoft.resource.api;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.domain.R;
import com.sinosoft.common.core.exception.ServiceException;
import com.sinosoft.common.feign.config.FeignConfig;
import com.sinosoft.common.feign.config.FeignRemoveUnnecessaryHeaders;
import com.sinosoft.resource.api.domain.RemoteFile;
import com.sinosoft.resource.api.domain.RemoteTrunsFile;
import feign.Headers;
import feign.RequestLine;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Collection;
import java.util.List;
/**
* 文件服务
*
* @author Lion Li
*/
@FeignClient(value = ServiceNames.RESOURCE, contextId = "remoteFileService", configuration = {FeignConfig.class, FeignRemoveUnnecessaryHeaders.class})
public interface RemoteFileService {
/**
* 上传文件
*
* @param file 文件信息
* @return 结果
*/
@PostMapping("/file/upload")
R<RemoteFile> upload(@RequestParam("name") String name,@RequestParam("originalFilename") String originalFilename,
@RequestParam("contentType") String contentType,@RequestParam("file") byte[] file,
@RequestParam("system") String system) throws ServiceException;
/**
* 通过ossId查询对应的url
*
* @param ossIds ossId串逗号分隔
* @return url串逗号分隔
*/
@GetMapping("/file/selectUrlByIds")
R<String> selectUrlByIds(@RequestParam("ossIds") String ossIds);
/**
* 通过ossId查询列表
*
* @param ossIds ossId串逗号分隔
* @return 列表
*/
@GetMapping("/file/selectByIds")
R<List<RemoteFile>> selectByIds(@RequestParam("ossIds") String ossIds);
@GetMapping("/file/selectById")
R<RemoteFile> selectById(@RequestParam("ossId") String ossId);
@GetMapping("/file/selectByIdList")
R<List<RemoteFile>> selectByIdList(@RequestParam("ossIdList") Collection<Long> ossIds);
@PostMapping(value ="/file/getFileInputStream")
@Headers("Content-Type: application/json")
R<RemoteTrunsFile> getFileInputStream(@RequestParam("ossId") Long ossId);
@PostMapping(value = "/file/uploadMultipartFile")
R<RemoteFile> uploadMultipartFile(@RequestBody RemoteTrunsFile trunsFile) throws ServiceException;
/**
* 通过文件路径文件名归属系统下载文件
*/
@PostMapping(value = "/file/downloadFileByFilePath")
R<RemoteTrunsFile> downloadFileByFilePath(@RequestParam("file") RemoteFile file,@RequestParam("system") String system);
/**
* 通过文件路径文件名归属系统批量下载文件
*/
@GetMapping(value = "/file/batchDownloadFileByFilePath")
R<List<RemoteTrunsFile>> batchDownloadFileByFilePath(@RequestParam("fileList") List<RemoteFile> fileList,@RequestParam("system") String system);
/**
* 通过文件路径名称归属系统生成sys_oss表
*/
@PostMapping(value = "/file/getExistFile" ,consumes = MediaType.APPLICATION_JSON_VALUE)
R<RemoteFile> getExistFile(@RequestBody RemoteFile file,@RequestParam("system") String system);
/**
* 通过ossId删除文件
*
* @param ossIds OSS ID集合
* @return 删除结果
*/
@PostMapping("/file/deleteByIds")
R<Void> deleteByIds(@RequestParam("ossIds") Collection<Long> ossIds);
}

@ -0,0 +1,53 @@
//package com.sinosoft.resource.api;
//
//import lombok.extern.slf4j.Slf4j;
//import com.sinosoft.common.core.utils.StringUtils;
//import com.sinosoft.resource.api.domain.RemoteFile;
//
//import java.util.List;
//
///**
// * 文件服务(降级处理)
// *
// * @author Lion Li
// */
//@Slf4j
//public class RemoteFileServiceMock implements RemoteFileService {
//
// /**
// * 上传文件
// *
// * @param file 文件信息
// * @return 结果
// */
// @Override
// public RemoteFile upload(String name, String originalFilename, String contentType, byte[] file) {
// log.warn("服务调用异常 -> 降级处理");
// return null;
// }
//
// /**
// * 通过ossId查询对应的url
// *
// * @param ossIds ossId串逗号分隔
// * @return url串逗号分隔
// */
// @Override
// public String selectUrlByIds(String ossIds) {
// log.warn("服务调用异常 -> 降级处理");
// return StringUtils.EMPTY;
// }
//
// /**
// * 通过ossId查询列表
// *
// * @param ossIds ossId串逗号分隔
// * @return 列表
// */
// @Override
// public List<RemoteFile> selectByIds(String ossIds) {
// log.warn("服务调用异常 -> 降级处理");
// return List.of();
// }
//
//}

@ -0,0 +1,27 @@
package com.sinosoft.resource.api;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.exception.ServiceException;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
* 邮件服务
*
* @author Lion Li
*/
@FeignClient(value = ServiceNames.RESOURCE,contextId = "remoteMailService")
public interface RemoteMailService {
/**
* 发送邮件
*
* @param to 接收人
* @param subject 标题
* @param text 内容
*/
@PostMapping("/email/send")
void send(@RequestParam("to") String to,@RequestParam("subject") String subject,@RequestParam("text") String text) throws ServiceException;
}

@ -0,0 +1,43 @@
package com.sinosoft.resource.api;
import com.sinosoft.common.core.constant.ServiceNames;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* 消息服务
*
* @author Lion Li
*/
@FeignClient(value = ServiceNames.RESOURCE,contextId = "remoteMessageService")
public interface RemoteMessageService {
/**
* 发送消息
*
* @param sessionKey session主键 一般为用户id
* @param message 消息文本
*/
@GetMapping("/msg/publishMessage")
void publishMessage(@RequestParam("sessionKey") Long sessionKey,@RequestParam("message") String message);
/**
* 发送消息
*
* @param sessionKeys session主键 一般为用户id
* @param message 消息文本
*/
@GetMapping("/msg/multiplayer/publishMessage")
void publishMessage(@RequestParam("sessionKeys") List<Long> sessionKeys, @RequestParam("message") String message);
/**
* 发布订阅的消息(群发)
*
* @param message 消息内容
*/
@GetMapping("/msg/publishAll")
void publishAll(@RequestParam("message") String message);
}

@ -0,0 +1,45 @@
//package com.sinosoft.resource.api;
//
//import lombok.RequiredArgsConstructor;
//import lombok.extern.slf4j.Slf4j;
//
///**
// * 消息服务
// *
// * @author Lion Li
// */
//@Slf4j
//@RequiredArgsConstructor
//public class RemoteMessageServiceStub implements RemoteMessageService {
//
// private final RemoteMessageService remoteMessageService;
//
// /**
// * 发送消息
// *
// * @param sessionKey session主键 一般为用户id
// * @param message 消息文本
// */
// @Override
// public void publishMessage(Long sessionKey, String message) {
// try {
// remoteMessageService.publishMessage(sessionKey, message);
// } catch (Exception e) {
// log.warn("推送功能未开启或服务未找到");
// }
// }
//
// /**
// * 发布订阅的消息(群发)
// *
// * @param message 消息内容
// */
// @Override
// public void publishAll(String message) {
// try {
// remoteMessageService.publishAll(message);
// } catch (Exception e) {
// log.warn("推送功能未开启或服务未找到");
// }
// }
//}

@ -0,0 +1,171 @@
package com.sinosoft.resource.api;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.domain.R;
import com.sinosoft.resource.api.domain.RemoteSms;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.LinkedHashMap;
import java.util.List;
/**
* 短信服务
*
* @author Feng
*/
@FeignClient(value = ServiceNames.RESOURCE,contextId = "remoteSmsService")
public interface RemoteSmsService {
/**
* 同步方法发送固定消息模板短信
*
* @param phone 目标手机号
* @param message 短信内容
* @return 封装了短信发送结果的 RemoteSms 对象
*/
@PostMapping("/sms/sendMessage")
R<RemoteSms> sendMessage(@RequestParam("phone") String phone,@RequestParam("message") String message);
/**
* 同步方法发送固定消息模板多模板参数短信
*
* @param phone 目标手机号
* @param messages 短信模板参数使用 LinkedHashMap 以保持参数顺序
* @return 封装了短信发送结果的 RemoteSms 对象
*/
@PostMapping("/sms/sendMessageMap")
R<RemoteSms> sendMessage(@RequestParam("phone") String phone, @RequestParam("messages") LinkedHashMap<String, String> messages);
/**
* 同步方法使用自定义模板发送短信
*
* @param phone 目标手机号
* @param templateId 短信模板ID
* @param messages 短信模板参数使用 LinkedHashMap 以保持参数顺序
* @return 封装了短信发送结果的 RemoteSms 对象
*/
@PostMapping("/sms/sendMessageTemplate")
R<RemoteSms> sendMessage(@RequestParam("phone") String phone,@RequestParam("templateId") String templateId,
@RequestParam("messages") LinkedHashMap<String, String> messages);
/**
* 同步方法群发固定模板短信
*
* @param phones 目标手机号列表1~1000
* @param message 短信内容
* @return 封装了短信发送结果的 RemoteSms 对象
*/
@PostMapping("/sms/messageTexting")
R<RemoteSms> messageTexting(@RequestParam("phones") List<String> phones, @RequestParam("message") String message);
/**
* 同步方法使用自定义模板群发短信
*
* @param phones 目标手机号列表1~10001~1000
* @param templateId 短信模板ID
* @param messages 短信模板参数使用 LinkedHashMap 以保持参数顺序
* @return 封装了短信发送结果的 RemoteSms 对象
*/
@PostMapping("/sms/messageTextingTemplate")
R<RemoteSms> messageTexting(@RequestParam("phones") List<String> phones, @RequestParam("templateId") String templateId,
@RequestParam("messages") LinkedHashMap<String, String> messages);
/**
* 异步方法发送固定消息模板短信
*
* @param phone 目标手机号
* @param message 短信内容
*/
@PostMapping("/sms/sendMessageAsync")
void sendMessageAsync(@RequestParam("phone") String phone, @RequestParam("message") String message);
/**
* 异步方法使用自定义模板发送短信
*
* @param phone 目标手机号
* @param templateId 短信模板ID
* @param messages 短信模板参数使用 LinkedHashMap 以保持参数顺序
*/
@PostMapping("/sms/sendMessageMapAsync")
void sendMessageAsync(@RequestParam("phone") String phone, @RequestParam("templateId") String templateId,
@RequestParam("messages") LinkedHashMap<String, String> messages);
/**
* 延迟发送发送固定消息模板短信
*
* @param phone 目标手机号
* @param message 短信内容
* @param delayedTime 延迟发送时间毫秒
*/
@PostMapping("/sms/delayMessage")
void delayMessage(@RequestParam("phone") String phone, @RequestParam("message") String message, @RequestParam("delayedTime") Long delayedTime);
/**
* 延迟发送使用自定义模板发送定时短信
*
* @param phone 目标手机号
* @param templateId 短信模板ID
* @param messages 短信模板参数使用 LinkedHashMap 以保持参数顺序
* @param delayedTime 延迟发送时间毫秒
*/
@PostMapping("/sms/delayMessageMap")
void delayMessage(@RequestParam("phone") String phone, @RequestParam("templateId") String templateId,
@RequestParam("messages") LinkedHashMap<String, String> messages, @RequestParam("delayedTime") Long delayedTime);
/**
* 延迟群发群发延迟短信
*
* @param phones 目标手机号列表1~1000
* @param message 短信内容
* @param delayedTime 延迟发送时间毫秒
*/
@PostMapping("/sms/delayMessageTexting")
void delayMessageTexting(@RequestParam("phones") List<String> phones, @RequestParam("message") String message, @RequestParam("delayedTime") Long delayedTime);
/**
* 延迟群发使用自定义模板发送群体延迟短信
*
* @param phones 目标手机号列表1~1000
* @param templateId 短信模板ID
* @param messages 短信模板参数使用 LinkedHashMap 以保持参数顺序
* @param delayedTime 延迟发送时间毫秒
*/
@PostMapping("/sms/delayMessageMapTexting")
void delayMessageTexting(@RequestParam("phones") List<String> phones, @RequestParam("templateId") String templateId,
@RequestParam("messages") LinkedHashMap<String, String> messages, @RequestParam("delayedTime") Long delayedTime);
/**
* 加入黑名单
*
* @param phone 手机号
*/
@PostMapping("/sms/addBlacklistOne")
void addBlacklist(@RequestParam("phone") String phone);
/**
* 加入黑名单
*
* @param phones 手机号列表
*/
@PostMapping("/sms/addBlacklist")
void addBlacklist(@RequestParam("phones") List<String> phones);
/**
* 移除黑名单
*
* @param phone 手机号
*/
@PostMapping("/sms/removeBlacklistOne")
void removeBlacklist(@RequestParam("phone") String phone);
/**
* 移除黑名单
*
* @param phones 手机号
*/
@PostMapping("/sms/removeBlacklist")
void removeBlacklist(@RequestParam("phones") List<String> phones);
}

@ -0,0 +1,45 @@
package com.sinosoft.resource.api.domain;
import lombok.Data;
import java.io.InputStream;
import java.io.Serial;
import java.io.Serializable;
/**
* 文件信息
*
* @author
*/
@Data
public class RemoteFile implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* oss主键
*/
private Long ossId;
/**
* 文件名称
*/
private String name;
/**
* 文件地址
*/
private String url;
/**
* 原名
*/
private String originalName;
/**
* 文件后缀名
*/
private String fileSuffix;
}

@ -0,0 +1,36 @@
package com.sinosoft.resource.api.domain;
import lombok.Data;
import java.util.List;
/**
* 文件合并请求参数
*/
@Data
public class RemoteMergeFile {
//原始文件归属桶
String fromSystem ;
//合并后文件归属桶
String toSystem ;
//合并后的文件名
String fileName;
//合并后的文件后缀
String fileSuffix;
//合并后的文件类型
String contentType;
//合并后被合并文件是否删除
Boolean isDelete;
//合并类型,用于异步合并的返回处理
String mergeType;
//来源系统
String system;
//源数据id
Long orgId;
//是否需要扁平化处理(压缩)
Boolean isFlat;
//唯一ID
String uuid;
//合并的文件id
List<RemoteMergeFileOss> ossIds;
}

@ -0,0 +1,14 @@
package com.sinosoft.resource.api.domain;
import lombok.Data;
/**
* 文件合并存储信息
*/
@Data
public class RemoteMergeFileOss {
//文件存储ossid
private Long ossId;
//文件合并顺序
private Long mergeOrder;
}

@ -0,0 +1,36 @@
package com.sinosoft.resource.api.domain;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 文件信息
*
* @author
*/
@Data
public class RemoteSms implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 是否成功
*/
private Boolean success;
/**
* 配置标识名 如未配置取对应渠道名例如 Alibaba
*/
private String configId;
/**
* 厂商原返回体
* <p>
* 可自行转换为 SDK 对应的 SendSmsResponse
*/
private String response;
}

@ -0,0 +1,17 @@
package com.sinosoft.resource.api.domain;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
/**
* 文件上传容器
*/
@Data
public class RemoteTrunsFile {
String name;
String originalFilename;
String contentType;
byte[] file;
String system;
}

@ -0,0 +1,34 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.sinosoft</groupId>
<artifactId>micro-api</artifactId>
<version>${revision}</version>
</parent>
<artifactId>micro-api-risk</artifactId>
<description>
业务风险接口
</description>
<dependencies>
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-common-core</artifactId>
</dependency>
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-common-feign</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
</dependencies>
</project>

@ -0,0 +1,22 @@
package com.sinosoft.blackList;
import com.sinosoft.blackList.domain.bo.IsBlackListBo;
import com.sinosoft.blackList.domain.bo.RemoteBlackmissionBo;
import com.sinosoft.blackList.domain.vo.IsBlackListVo;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.domain.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@FeignClient(value = ServiceNames.RISK,contextId = "blackListService")
public interface BlackListService {
@PostMapping("/data/isBlackList")
List<IsBlackListVo> isBlackList(@RequestBody List<IsBlackListBo> isBlackListBo);
@PostMapping("/blackmission/receiveResults")
R<Boolean> receiveApprovalResults(@RequestBody RemoteBlackmissionBo bo);
}

@ -0,0 +1,29 @@
package com.sinosoft.blackList;
import com.sinosoft.blackList.domain.bo.RemoteBlacklistCustomersBo;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.domain.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@FeignClient(value = ServiceNames.RISK,contextId = "blacklistCustomersService")
public interface BlacklistCustomersService {
@PostMapping("/customers/add")
R<Boolean> add(@RequestBody RemoteBlacklistCustomersBo bo) ;
/**
* 新增反洗钱个人黑名单信息批量--对外接口
*/
@PostMapping("/customers/addBatch")
R<Boolean> addBatch(@RequestBody List<RemoteBlacklistCustomersBo> bos) ;
}

@ -0,0 +1,19 @@
package com.sinosoft.blackList;
import com.sinosoft.blackList.domain.bo.RemoteBlacklistOrganizationBo;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.domain.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@FeignClient(value = ServiceNames.RISK,contextId = "blacklistOrganizationService")
public interface BlacklistOrganizationService {
@PostMapping("/organization/add")
R<Boolean> add(@RequestBody RemoteBlacklistOrganizationBo bo) ;
@PostMapping("/organization/addBatch")
R<Boolean> addBatch(@RequestBody List<RemoteBlacklistOrganizationBo> bos);
}

@ -0,0 +1,26 @@
package com.sinosoft.blackList;
import com.sinosoft.blackList.domain.bo.RemoteLargeAmountTransactionBo;
import com.sinosoft.blackList.domain.bo.RemoteRiskLxihtradedetailBo;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.domain.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@FeignClient(value = ServiceNames.RISK,contextId = "largeAmountTransactionService")
public interface LargeAmountTransactionService {
@PostMapping("/amountTransaction/add")
R<Boolean> add(@RequestBody RemoteLargeAmountTransactionBo bo) ;
@PostMapping("/amountTransaction/addBatch")
R<Boolean> addBatch(@RequestBody List<RemoteLargeAmountTransactionBo> bos) ;
@PostMapping("/lxihtradedetail/addBatch")
R<Boolean> addBatchDetail(@RequestBody List<RemoteRiskLxihtradedetailBo> bos);
}

@ -0,0 +1,20 @@
package com.sinosoft.blackList;
import com.sinosoft.blackList.domain.vo.RemoteISLargeResultVo;
import com.sinosoft.common.core.constant.ServiceNames;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.Map;
@FeignClient(value = ServiceNames.RISK,contextId = "largeSuspiciousDataService")
public interface LargeSuspiciousDataService {
/**
* 是否为大额可疑交易数据
* @param
* @return
*/
@PostMapping("/largeSuspiciousData/isLargeSus")
RemoteISLargeResultVo isLargeSuspicious(@RequestBody Map<String,Object> requestMap);
}

@ -0,0 +1,26 @@
package com.sinosoft.blackList;
import com.sinosoft.blackList.domain.bo.RemoteSuspiciousTransactionReportBo;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.domain.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@FeignClient(value = ServiceNames.RISK,contextId = "suspiciousTransactionReportService")
public interface SuspiciousTransactionReportService {
@PostMapping("/transactionReport/add")
R<Boolean> add(@RequestBody RemoteSuspiciousTransactionReportBo bo) ;
@PostMapping("/transactionReport/addBatch")
R<Boolean> addBatch(@RequestBody List<RemoteSuspiciousTransactionReportBo> bos) ;
}

@ -0,0 +1,46 @@
package com.sinosoft.blackList.domain.bo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sinosoft.common.core.validate.AddGroup;
import com.sinosoft.common.core.validate.EditGroup;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
public class IsBlackListBo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 客户姓名
*/
@NotBlank(message = "客户姓名不能为空", groups = { AddGroup.class, EditGroup.class })
private String name;
/**
* 性别
*/
@NotBlank(message = "性别不能为空", groups = { AddGroup.class, EditGroup.class })
private String gender;
/**
* 出生日期
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@NotNull(message = "出生日期不能为空", groups = { AddGroup.class, EditGroup.class })
private Date birthday;
/**
* 证件类型
*/
@NotBlank(message = "证件类型不能为空", groups = { AddGroup.class, EditGroup.class })
private String identificationType;
/**
* 证件号码
*/
@NotBlank(message = "证件号码不能为空", groups = { AddGroup.class, EditGroup.class })
private String identificationNumber;
}

@ -0,0 +1,63 @@
package com.sinosoft.blackList.domain.bo;
import lombok.Data;
/**
* 反洗钱个人黑名单信息业务对象 blacklist_customers
*
* @author
* @date 2025-02-26
*/
@Data
public class RemoteBlacklistCustomersBo {
//黑名单客户号
private String blackno;
//黑名单客户姓名
private String name;
//黑名单客户证件类型
private String idtype;
//黑名单客户证件号
private String idno;
//黑名单客户国籍
private String nativeplace;
//黑名单客户性别('M':男,'F':女,'O':其他)
private String sex;
//黑名单客户证件有效止期
private String idenddate;
//黑名单客户生日年(YYYY)
private String birthdayyear;
//黑名单客户生日日期(YYYY-MM-DD)
private String birthday;
//黑名单客户国籍
private String nationality;
//黑名单客户联系方式(电话、邮箱等)
private String contacttype;
//黑名单客户职业
private String occupation;
//黑名单客户通讯地址
private String postaladdress;
//黑名单客户类别(如高风险、欺诈等)
private String blacktypecode;
//黑名单客户开始日期
private String blackstartdate;
//黑名单客户终止日期(如果为永久黑名单,可以为空或设定一个默认值)
private String blackenddate;
//黑名单客户信息描述
private String detaildescribe;
//黑名单客户机构
private String managecom;
//黑名单客户创建人
private String operator;
//黑名单客户创建日期
private String makedate;
//黑名单客户创建时间
private String maketime;
//黑名单客户修改人
private String modifydate;
//黑名单客户修改时间
private String modifytime;
//大额可疑交易操作类型
private String operateType;
}

@ -0,0 +1,81 @@
package com.sinosoft.blackList.domain.bo;
import lombok.Data;
/**
* 黑名单客户信息业务对象 blacklist_organization
*
* @author
* @date 2025-02-26
*/
@Data
public class RemoteBlacklistOrganizationBo {
//黑名单客户编号
private String blackno;
//黑名单客户姓名
private String name;
//黑名单客户通讯地址
private String postaladdress;
//黑名单客户经营范围
private String businessrange;
//黑名单客户经营证件名称
private String bbusinesslicensename;
//黑名单客户经营证件号码
private String businesslicenseno;
//黑名单客户经营证件终止日期
private String businesslicenseendddate;
//黑名单客户营业执照号码
private String taxcode;
//黑名单客户其他证件
private String otherbusinesslicense;
//黑名单客户其他证件终止日期
private String otherbusinesslicenseendddate;
//控股股东名称
private String stockholders;
//控股股东证件类型
private String stockholdersidtypes;
//、控股股东证件有效期
private String stockholdersidenddates;
//实际控制人名称
private String actualowners;
//实际控制人证件类型
private String actualownersidtypes;
//实际控制人证件有效期
private String actualownersidenddates;
//法定代表人名称
private String legalpersons;
//法定代表人证件类型
private String legalpersonsidtypes;
//法定代表人证件有效期
private String legalpersonsidenddates;
//授权办理业务人员名称
private String agentsnames;
//授权办理业务人员证件号
private String agentsidnos;
//授权办理业务人员证件有效期
private String agentsidenddates;
//黑名单客户分类
private String blacktypecode;
//黑名单客户开始时间
private String blackstartdate;
//黑名单客户终止时间
private String blackenddate;
//黑名单客户管理机构
private String managecom;
//黑名单客户创建人
private String operator;
//黑名单客户创建日期
private String makedate;
//黑名单客户创建时间
private String maketime;
//黑名单客户修改日期
private String modifydate;
//黑名单客户修改时间
private String modifytime;
//备用字段1
private String standbyflag1;
//大额可疑操作类型
private String operateType;
}

@ -0,0 +1,160 @@
package com.sinosoft.blackList.domain.bo;
import com.sinosoft.common.core.validate.AddGroup;
import com.sinosoft.common.core.validate.EditGroup;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.time.LocalDate;
import java.util.Date;
/**
* 黑名单审批业务对象 blackmission
*
* @author
* @date 2025-02-26
*/
@Data
public class RemoteBlackmissionBo {
/**
* 主键 ID
*/
@NotNull(message = "主键 ID不能为空", groups = { EditGroup.class })
private Long missionId;
/**
* 客户号
*/
@NotBlank(message = "客户号不能为空", groups = { AddGroup.class, EditGroup.class })
private String customerNo;
/**
* 客户姓名
*/
@NotBlank(message = "客户姓名不能为空", groups = { AddGroup.class, EditGroup.class })
private String customerName;
/**
* 客户证件号
*/
@NotBlank(message = "客户证件号不能为空", groups = { AddGroup.class, EditGroup.class })
private String customerIdNo;
/**
* 客户出生日期
*/
@NotBlank(message = "客户出生日期不能为空", groups = { AddGroup.class, EditGroup.class })
private LocalDate customerBirthday;
/**
* 客户国籍
*/
@NotBlank(message = "客户国籍不能为空", groups = { AddGroup.class, EditGroup.class })
private String customerNation;
/**
* 操作模块
*/
@NotBlank(message = "操作模块不能为空", groups = { AddGroup.class, EditGroup.class })
private String operatorModule;
/**
* 黑名单客户号
*/
@NotBlank(message = "黑名单客户号不能为空", groups = { AddGroup.class, EditGroup.class })
private String blackNo;
/**
* 黑名单分类
*/
@NotBlank(message = "黑名单分类不能为空", groups = { AddGroup.class, EditGroup.class })
private String blackType;
/**
* 黑名单姓名
*/
@NotBlank(message = "黑名单姓名不能为空", groups = { AddGroup.class, EditGroup.class })
private String blackName;
/**
* 黑名单证件号
*/
@NotBlank(message = "黑名单证件号不能为空", groups = { AddGroup.class, EditGroup.class })
private String blackIdNo;
/**
* 黑名单出生日期
*/
@NotBlank(message = "黑名单出生日期不能为空", groups = { AddGroup.class, EditGroup.class })
private LocalDate blackBirthday;
/**
* 黑名单国籍
*/
@NotBlank(message = "黑名单国籍不能为空", groups = { AddGroup.class, EditGroup.class })
private String blackNation;
/**
* 管理机构
*/
@NotBlank(message = "管理机构不能为空", groups = { AddGroup.class, EditGroup.class })
private String manageCom;
/**
* 业务号
*/
@NotBlank(message = "业务号不能为空", groups = { AddGroup.class, EditGroup.class })
private String businessNo;
/**
* 审批结果 0 - 待审批1 - 暂停交易2 - 允许交易3 - 上报总公司合规
*/
@NotBlank(message = "0 - 待审批、1 - 暂停交易、2 - 允许交易、3 - 上报总公司合规不能为空", groups = { AddGroup.class, EditGroup.class })
private String auditResult;
/**
* 审批意见
*/
@NotBlank(message = "审批意见不能为空", groups = { AddGroup.class, EditGroup.class })
private String auditOpinion;
/**
* 意见分析
*/
@NotBlank(message = "意见分析不能为空", groups = { AddGroup.class, EditGroup.class })
private String opinionAnalyse;
/**
* 审批人
*/
@NotBlank(message = "审批人不能为空", groups = { AddGroup.class, EditGroup.class })
private String auditOperator;
/**
* 审批时间
*/
@NotNull(message = "审批时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date auditDate;
/**
* 提示时间
*/
@NotNull(message = "提示时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date makeDate;
/**
* YY01 - 分公司运营审核HG01 - 分公司合规审核YY02 - 总公司运营审核HG02 - 总公司合规审核S00 - 确认黑名单S09 - 非黑名单
*/
@NotBlank(message = "YY01 - 分公司运营审核、HG01 - 分公司合规审核、YY02 - 总公司运营审核、HG02 - 总公司合规审核、S00 - 确认黑名单、S09 - 非黑名单不能为空", groups = { AddGroup.class, EditGroup.class })
private String state;
/**
* 操作类型
*/
@NotBlank(message = "操作类型不能为空", groups = { AddGroup.class, EditGroup.class })
private String operateType;
}

@ -0,0 +1,62 @@
package com.sinosoft.blackList.domain.bo;
import lombok.Data;
/**
* 大额交易业务对象 large_amount_transaction
*
* @author
* @date 2025-02-26
*/
@Data
public class RemoteLargeAmountTransactionBo {
//大额交易编号
private String dealno;
//客户号
private String csnm;
//客户姓名
private String ctnm;
//客户身份证件/证明文件类型(如身份证、护照、营业执照等)
private String citp;
//证件号码
private String ctid;
//客户国籍
private String ctnt;
//交易发生日期
private String htdt;
//数据状态 如“待审核”“已报送”
private String datastate;
//批处理日期
private String dealdate;
//批处理时间
private String dealtime;
//报告创建人员
private String operator;
//所属机构或部门
private String managecom;
//职业或行业信息
private String ctvc;
//联系电话
private String cctl;
//住址或经营地址
private String ctar;
//客户其他联系方式 如邮箱、微信等
private String ccei;
//其他证件类型
private String oitp;
//初审意见(通过/驳回)
private String appreark;
//复审意见
private String audremark;
//终审结果
private String authremark;
//否经过人工补正
private String mirs;
//备用字段
private String standbyflag1;
//大额可疑交易操作类型
private String operateType;
}

@ -0,0 +1,79 @@
package com.sinosoft.blackList.domain.bo;
import com.fasterxml.jackson.annotation.JsonFilter;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 大额交易明细对象 risk_lxihtradedetail
*
* @author
* @date 2025-03-13
*/
@Data
public class RemoteRiskLxihtradedetailBo{
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键自增
*/
private Long id;
/**
* 大额交易明细编码
*/
private Long tsdt;
/**
* 大额交易明细ID
*/
@JsonFilter("tsdtID")
private Long tsdtId;
/**
* 交易编号
*/
private String dealNo;
/**
* 大额交易特征代码
*/
private String crcd;
/**
* 金融机构网点代码
*/
private String finc;
/**
* 账户类型
*/
private String catp;
/**
* 账号
*/
private String ctac;
/**
* 交易时间
*/
private String tstm;
/**
* 备注字段1
*/
private String standByFlag1;
/**
* 操作类型
*/
private String operateType;
}

@ -0,0 +1,99 @@
package com.sinosoft.blackList.domain.bo;
import lombok.Data;
/**
* 可疑交易信息业务对象 suspicious_transaction_report
*
* @author
* @date 2025-02-26
*/
@Data
public class RemoteSuspiciousTransactionReportBo {
//可疑交易编号
private String dealno;
//可疑交易特征
private String stcr;
//可疑交易报告紧急程度
private String sdgr;
//tkms
private String tkms;
//疑点分析
private String ssds;
//客户号
private String csnm;
//客户姓名
private String ctnm;
//可疑主体身份证件/证明文件类型(如身份证、护照、营业执照等)
private String citp;
//证件号码
private String ctid;
//个人姓名或企业名称
private String cttp;
//联系电话
private String cctl;
//住址或经营地址
private String ctar;
//其他联系方式(如邮箱、微信等)
private String ccei;
//职业或行业信息
private String ctvc;
//交易发生的地理位置
private String trcd;
//、可疑主体姓名/名称
private String crnm;
//法定代表人证件类型
private String crit;
//法定代表人证件号码
private String crid;
//报告状态(如“待审核”“已报送”)
private String datastate;
//文件名称
private String filename;
//文件路径
private String filepath;
//交易处理的日期
private String dealdate;
//批处理时间
private String dealtime;
//填报人员姓名或工号
private String rpnm;
//报告创建人员
private String operator;
//所属机构或部门
private String managecom;
//初次报送的报文名称
private String torp;
//初次报送的可疑交易报告报文名称
private String orxn;
//报送方向 如“央行反洗钱系统”
private String dorp;
//其他报送方向(补充报送方向)
private String odrp;
//可疑交易报告触发点(如“频繁大额转账”)
private String tptr;
//其他可疑交易报告触发点(补充说明其他可疑行为)
private String otpr;
//交易流水或行为描述
private String stcb;
//疑似涉罪类型 如洗钱、诈骗等
private String tosc;
//人工补正标识
private String mirs;
//可疑主体国籍(国籍信息)
private String stnt;
//其他证件类型
private String oitp;
//法定代表人其他证件类型
private String orit;
//初审意见(通过/驳回)
private String appremark;
//复审意见
private String audremark;
//终审结果
private String authremark;
//大额可疑交易操作类型
private String operateType;
}

@ -0,0 +1,59 @@
package com.sinosoft.blackList.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sinosoft.common.core.validate.AddGroup;
import com.sinosoft.common.core.validate.EditGroup;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
public class IsBlackListVo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 客户姓名
*/
@NotBlank(message = "客户姓名不能为空", groups = { AddGroup.class, EditGroup.class })
private String name;
/**
* 性别
*/
@NotBlank(message = "性别不能为空", groups = { AddGroup.class, EditGroup.class })
private String gender;
/**
* 出生日期
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@NotNull(message = "出生日期不能为空", groups = { AddGroup.class, EditGroup.class })
private Date birthday;
/**
* 证件类型
*/
@NotBlank(message = "证件类型不能为空", groups = { AddGroup.class, EditGroup.class })
private String identificationType;
/**
* 证件号码
*/
@NotBlank(message = "证件号码不能为空", groups = { AddGroup.class, EditGroup.class })
private String identificationNumber;
/**
* 是否黑名单:道琼斯黑名单
*/
@NotBlank(message = "是否黑名单(道琼斯)不能为空", groups = { AddGroup.class, EditGroup.class })
private boolean isBlack;
/**
* 是否黑名单:反洗钱黑名单
*/
@NotBlank(message = "是否黑名单(反洗钱)不能为空", groups = { AddGroup.class, EditGroup.class })
private boolean isAML;
}

@ -0,0 +1,14 @@
package com.sinosoft.blackList.domain.vo;
import lombok.Data;
@Data
public class RemoteISLargeResultVo {
//姓名
private String name;
//是否为大额交易
private Boolean isLarge;
//是否为可疑交易
private Boolean isSuspicious;
}

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.sinosoft</groupId>
<artifactId>micro-api</artifactId>
<version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>micro-api-system</artifactId>
<description>
系统接口模块
</description>
<dependencies>
<!-- Micro Common Core-->
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-common-core</artifactId>
</dependency>
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-common-json</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.sinosoft</groupId>-->
<!-- <artifactId>micro-common-excel</artifactId>-->
<!-- </dependency>-->
<dependency>
<groupId>com.sinosoft</groupId>
<artifactId>micro-common-feign</artifactId>
</dependency>
</dependencies>
</project>

@ -0,0 +1,27 @@
package com.sinosoft.system.api;
import com.sinosoft.common.core.constant.ServiceNames;
import com.sinosoft.common.core.domain.R;
import com.sinosoft.system.api.domain.vo.RemoteClientVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
* 客户端服务
*
* @author Michelle.Chung
*/
@FeignClient(value = ServiceNames.SYSTEM,contextId = "remoteClientService")
public interface RemoteClientService {
/**
* 根据客户端id获取客户端详情
*
* @param clientId 客户端id
* @return 客户端对象
*/
@GetMapping("/client/info/queryByClientId")
R<RemoteClientVo> queryByClientId(@RequestParam("clientId") String clientId);
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save