will.chen 7 سال پیش
والد
کامیت
769521f6a9
23فایلهای تغییر یافته به همراه1241 افزوده شده و 6 حذف شده
  1. 9 5
      build.gradle
  2. 1 1
      src/main/java/com/uas/erp/schedular/database/RestJdbcTemplate.java
  3. 43 0
      src/main/java/com/uas/erp/schedular/finance/domain/AccptInfo.java
  4. 34 0
      src/main/java/com/uas/erp/schedular/finance/domain/AddCreditApplyInfo.java
  5. 95 0
      src/main/java/com/uas/erp/schedular/finance/domain/AuditAddCreditApplyInfoReq.java
  6. 93 0
      src/main/java/com/uas/erp/schedular/finance/domain/AuditCreditApplyInfoReq.java
  7. 34 0
      src/main/java/com/uas/erp/schedular/finance/domain/CreditApplyInfo.java
  8. 51 0
      src/main/java/com/uas/erp/schedular/finance/domain/CreditApplyUserfileInfo.java
  9. 173 0
      src/main/java/com/uas/erp/schedular/finance/domain/CreditApplyUserinfo.java
  10. 140 0
      src/main/java/com/uas/erp/schedular/finance/domain/DrawApplyInfo.java
  11. 23 0
      src/main/java/com/uas/erp/schedular/finance/domain/ERPRespHeader.java
  12. 26 0
      src/main/java/com/uas/erp/schedular/finance/domain/FileTypeCreditInfo.java
  13. 43 0
      src/main/java/com/uas/erp/schedular/finance/domain/FileTypeInfo.java
  14. 23 0
      src/main/java/com/uas/erp/schedular/finance/domain/GetAddCreditApplyInfoResp.java
  15. 23 0
      src/main/java/com/uas/erp/schedular/finance/domain/GetCreditApplyInfoResp.java
  16. 32 0
      src/main/java/com/uas/erp/schedular/finance/domain/GetDrawInfoResp.java
  17. 20 0
      src/main/java/com/uas/erp/schedular/finance/domain/MessageId.java
  18. 52 0
      src/main/java/com/uas/erp/schedular/finance/domain/OrderDetailInfo.java
  19. 61 0
      src/main/java/com/uas/erp/schedular/finance/domain/OrderInfo.java
  20. 59 0
      src/main/java/com/uas/erp/schedular/finance/domain/RepayPlanInfo.java
  21. 156 0
      src/main/java/com/uas/erp/schedular/finance/mq/RabbitReceiveServiceImpl.java
  22. 48 0
      src/main/java/com/uas/erp/schedular/finance/task/AccountApplyTask.java
  23. 2 0
      src/main/resources/application.yml

+ 9 - 5
build.gradle

@@ -10,6 +10,7 @@ buildscript {
     repositories {
         maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
         maven { url "https://plugins.gradle.org/m2/" }
+        maven { url "http://113.105.74.141:8081/artifactory/libs-snapshot-local" }
         maven { url "https://repo.spring.io/libs-release" }
         mavenCentral()
         jcenter()
@@ -31,15 +32,15 @@ jar {
     version = ''
 }
 
-sourceCompatibility = 1.7
+sourceCompatibility = 1.8
 
 repositories {
     mavenLocal()
     maven { url "http://repo.spring.io/libs-milestone" }
     maven { url "http://repo.spring.io/libs-release" }
-	maven { url "http://10.10.101.21:8081/artifactory/libs-release-local" }
-	maven { url "http://10.10.101.21:8081/artifactory/ext-release-local" }
-    maven { url "http://10.10.101.21:8081/artifactory/libs-snapshot-local" }
+    maven { url "http://113.105.74.141:8081/artifactory/libs-snapshot-local" }
+    maven { url "http://113.105.74.141:8081/artifactory/libs-release-local" }
+    maven { url "http://113.105.74.141:8081/artifactory/ext-release-local" }
     maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
     mavenCentral()
 }
@@ -54,6 +55,9 @@ dependencies {
     compile 'org.springframework.boot:spring-boot-starter-data-jpa'
     compile "org.springframework.boot:spring-boot-starter-web"
     testCompile "org.springframework.boot:spring-boot-starter-test"
+    compile('org.springframework.boot:spring-boot-starter-amqp')
+    compile "com.usoft.framework:usoft-mq-utils:dev-1.0-SNAPSHOT"
+    compile(group: 'com.usoft.framework', name: 'usoft-security-utils', version: 'dev-1.0-SNAPSHOT')
     compile "com.h2database:h2"
     compile "com.alibaba:fastjson:$fastjsonVersion"
     compile "com.uas.api:b2c-erp-api:$mallApiVersion"
@@ -72,7 +76,7 @@ docker {
 uploadArchives {
     repositories {
         mavenDeployer {
-            repository(url: "http://10.10.101.21:8081/artifactory/libs-release-local") {
+            repository(url: "http://113.105.74.141:8081/artifactory/libs-release-local") {
                 authentication(userName: "yingp", password: "111111")
             }
         }

+ 1 - 1
src/main/java/com/uas/erp/schedular/database/RestJdbcTemplate.java

@@ -32,7 +32,7 @@ public class RestJdbcTemplate {
     private SettingService settingService;
 
     private String getUrl() {
-        return settingService.getValue("api.database.url");
+        return settingService.getValue("api.database.url") == null ? "http://127.0.0.1:9002/uas_database" : settingService.getValue("api.database.url");
     }
 
     /**

+ 43 - 0
src/main/java/com/uas/erp/schedular/finance/domain/AccptInfo.java

@@ -0,0 +1,43 @@
+package com.uas.erp.schedular.finance.domain;
+
+public class AccptInfo {
+
+    private String code; //验收单号
+    private String accept_date; //验收日期
+    private double amount; //验收金额
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getAccept_date() {
+        return accept_date;
+    }
+
+    public void setAccept_date(String accept_date) {
+        this.accept_date = accept_date;
+    }
+
+    public double getAmount() {
+        return amount;
+    }
+
+    public void setAmount(double amount) {
+        this.amount = amount;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    private Integer status; //验收状态
+
+}

+ 34 - 0
src/main/java/com/uas/erp/schedular/finance/domain/AddCreditApplyInfo.java

@@ -0,0 +1,34 @@
+package com.uas.erp.schedular.finance.domain;
+
+import java.util.List;
+
+public class AddCreditApplyInfo {
+
+    private String code;
+    private String parentCode;
+    private List<FileTypeCreditInfo> fileTypeCreditInfo;
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getParentCode() {
+        return parentCode;
+    }
+
+    public void setParentCode(String parentCode) {
+        this.parentCode = parentCode;
+    }
+
+    public List<FileTypeCreditInfo> getFileTypeCreditInfo() {
+        return fileTypeCreditInfo;
+    }
+
+    public void setFileTypeCreditInfo(List<FileTypeCreditInfo> fileTypeCreditInfo) {
+        this.fileTypeCreditInfo = fileTypeCreditInfo;
+    }
+}

+ 95 - 0
src/main/java/com/uas/erp/schedular/finance/domain/AuditAddCreditApplyInfoReq.java

@@ -0,0 +1,95 @@
+package com.uas.erp.schedular.finance.domain;
+
+public class AuditAddCreditApplyInfoReq {
+
+    private String creditApplyCode; //额度申请记录编号
+    private double creditAmount; //批复额度
+    private String creditStartDate; //额度生效日
+    private String creditEndDate; //额度到期日
+    private double creditRate;//利率
+    private double creditUsedAmount;//已用额度
+    private double creditUsableAmount;//剩余可用额度
+    private Integer creditStatus;//审核状态(100:已通过,102:未通过)
+    private String signature; //请求参数签名,(GET KV:K1=V2&K2=V2 ; POST JSON: {"K1":"V1","K2":"V2",signature:""})
+    private String secretId0; //秘密身份ID
+
+    public String getCreditApplyCode() {
+        return creditApplyCode;
+    }
+
+    public void setCreditApplyCode(String creditApplyCode) {
+        this.creditApplyCode = creditApplyCode;
+    }
+
+    public double getCreditAmount() {
+        return creditAmount;
+    }
+
+    public void setCreditAmount(double creditAmount) {
+        this.creditAmount = creditAmount;
+    }
+
+    public String getCreditStartDate() {
+        return creditStartDate;
+    }
+
+    public void setCreditStartDate(String creditStartDate) {
+        this.creditStartDate = creditStartDate;
+    }
+
+    public String getCreditEndDate() {
+        return creditEndDate;
+    }
+
+    public void setCreditEndDate(String creditEndDate) {
+        this.creditEndDate = creditEndDate;
+    }
+
+    public double getCreditRate() {
+        return creditRate;
+    }
+
+    public void setCreditRate(double creditRate) {
+        this.creditRate = creditRate;
+    }
+
+    public double getCreditUsedAmount() {
+        return creditUsedAmount;
+    }
+
+    public void setCreditUsedAmount(double creditUsedAmount) {
+        this.creditUsedAmount = creditUsedAmount;
+    }
+
+    public double getCreditUsableAmount() {
+        return creditUsableAmount;
+    }
+
+    public void setCreditUsableAmount(double creditUsableAmount) {
+        this.creditUsableAmount = creditUsableAmount;
+    }
+
+    public Integer getCreditStatus() {
+        return creditStatus;
+    }
+
+    public void setCreditStatus(Integer creditStatus) {
+        this.creditStatus = creditStatus;
+    }
+
+    public String getSignature() {
+        return signature;
+    }
+
+    public void setSignature(String signature) {
+        this.signature = signature;
+    }
+
+    public String getSecretId0() {
+        return secretId0;
+    }
+
+    public void setSecretId0(String secretId0) {
+        this.secretId0 = secretId0;
+    }
+}

+ 93 - 0
src/main/java/com/uas/erp/schedular/finance/domain/AuditCreditApplyInfoReq.java

@@ -0,0 +1,93 @@
+package com.uas.erp.schedular.finance.domain;
+
+import com.uas.erp.schedular.b2b.domain.KeyEntity;
+
+public class AuditCreditApplyInfoReq extends KeyEntity{
+
+    private Integer cqId;
+    private String creditApplyCode;//额度申请记录编号
+    private double creditAmount;//批复额度
+    private String creditStartDate;//额度生效日
+    private String creditEndDate;//额度到期日
+    private double creditRate;//利率
+    private Integer creditStatus;//审核状态(100:已通过,102:未通过)
+    private String signature; //请求参数签名
+    private String secretId; //秘密身份ID
+
+    public Integer getCqId() {
+        return cqId;
+    }
+
+    public void setCqId(Integer cqId) {
+        this.cqId = cqId;
+    }
+
+    public String getCreditApplyCode() {
+        return creditApplyCode;
+    }
+
+    public void setCreditApplyCode(String creditApplyCode) {
+        this.creditApplyCode = creditApplyCode;
+    }
+
+    public double getCreditAmount() {
+        return creditAmount;
+    }
+
+    public void setCreditAmount(double creditAmount) {
+        this.creditAmount = creditAmount;
+    }
+
+    public String getCreditStartDate() {
+        return creditStartDate;
+    }
+
+    public void setCreditStartDate(String creditStartDate) {
+        this.creditStartDate = creditStartDate;
+    }
+
+    public String getCreditEndDate() {
+        return creditEndDate;
+    }
+
+    public void setCreditEndDate(String creditEndDate) {
+        this.creditEndDate = creditEndDate;
+    }
+
+    public double getCreditRate() {
+        return creditRate;
+    }
+
+    public void setCreditRate(double creditRate) {
+        this.creditRate = creditRate;
+    }
+
+    public Integer getCreditStatus() {
+        return creditStatus;
+    }
+
+    public void setCreditStatus(Integer creditStatus) {
+        this.creditStatus = creditStatus;
+    }
+
+    public String getSignature() {
+        return signature;
+    }
+
+    public void setSignature(String signature) {
+        this.signature = signature;
+    }
+
+    public String getSecretId() {
+        return secretId;
+    }
+
+    public void setSecretId(String secretId) {
+        this.secretId = secretId;
+    }
+
+    @Override
+    public Object getKey() {
+        return cqId;
+    }
+}

+ 34 - 0
src/main/java/com/uas/erp/schedular/finance/domain/CreditApplyInfo.java

@@ -0,0 +1,34 @@
+package com.uas.erp.schedular.finance.domain;
+
+import java.util.List;
+
+public class CreditApplyInfo {
+
+    private String code;
+    private CreditApplyUserinfo creditApplyUserinfo;
+    private List<FileTypeCreditInfo> FileTypeCreditInfoList;
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public CreditApplyUserinfo getCreditApplyUserinfo() {
+        return creditApplyUserinfo;
+    }
+
+    public void setCreditApplyUserinfo(CreditApplyUserinfo creditApplyUserinfo) {
+        this.creditApplyUserinfo = creditApplyUserinfo;
+    }
+
+    public List<FileTypeCreditInfo> getFileTypeCreditInfoList() {
+        return FileTypeCreditInfoList;
+    }
+
+    public void setFileTypeCreditInfoList(List<FileTypeCreditInfo> fileTypeCreditInfoList) {
+        FileTypeCreditInfoList = fileTypeCreditInfoList;
+    }
+}

+ 51 - 0
src/main/java/com/uas/erp/schedular/finance/domain/CreditApplyUserfileInfo.java

@@ -0,0 +1,51 @@
+package com.uas.erp.schedular.finance.domain;
+
+public class CreditApplyUserfileInfo {
+
+    private String code;
+    private String creditApplyCode;
+    private String fileTypeCode;
+    private String url;
+    private Integer number;
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getCreditApplyCode() {
+        return creditApplyCode;
+    }
+
+    public void setCreditApplyCode(String creditApplyCode) {
+        this.creditApplyCode = creditApplyCode;
+    }
+
+    public String getFileTypeCode() {
+        return fileTypeCode;
+    }
+
+    public void setFileTypeCode(String fileTypeCode) {
+        this.fileTypeCode = fileTypeCode;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public Integer getNumber() {
+        return number;
+    }
+
+    public void setNumber(Integer number) {
+        this.number = number;
+    }
+
+}

+ 173 - 0
src/main/java/com/uas/erp/schedular/finance/domain/CreditApplyUserinfo.java

@@ -0,0 +1,173 @@
+package com.uas.erp.schedular.finance.domain;
+
+import com.uas.erp.schedular.util.StringUtil;
+
+public class CreditApplyUserinfo {
+
+    private String code; // 基础信息编号
+    private String enBusinessMain; //主营业务
+    private String enBusinessType; //经营类型
+    private String enAreaProvince; //企业办公省市区(省)
+    private String enAreaCity; //企业办公省市区(市)
+    private String enAreaDistrict; //企业办公省市区(区)
+    private String enAddress; //详细地址
+    private String userName; //联系人姓名
+    private String userPhone; //手机号码
+    private String userAreaProvince; //联系人地址省市区(省)
+    private String userAreaCity; //联系人地址省市区(市)
+    private String userAreaDistrict;//联系人地址省市区(区)
+    private String userAddress; //联系人详细地址
+    private String enName; //企业名称
+    private String creditApplyCode; //额度申请记录编号
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getEnBusinessMain() {
+        return enBusinessMain;
+    }
+
+    public void setEnBusinessMain(String enBusinessMain) {
+        this.enBusinessMain = enBusinessMain;
+    }
+
+    public String getEnBusinessType() {
+        return enBusinessType;
+    }
+
+    public void setEnBusinessType(String enBusinessType) {
+        this.enBusinessType = enBusinessType;
+    }
+
+    public String getEnAreaProvince() {
+        return enAreaProvince;
+    }
+
+    public void setEnAreaProvince(String enAreaProvince) {
+        this.enAreaProvince = enAreaProvince;
+    }
+
+    public String getEnAreaCity() {
+        return enAreaCity;
+    }
+
+    public void setEnAreaCity(String enAreaCity) {
+        this.enAreaCity = enAreaCity;
+    }
+
+    public String getEnAreaDistrict() {
+        return enAreaDistrict;
+    }
+
+    public void setEnAreaDistrict(String enAreaDistrict) {
+        this.enAreaDistrict = enAreaDistrict;
+    }
+
+    public String getEnAddress() {
+        return enAddress;
+    }
+
+    public void setEnAddress(String enAddress) {
+        this.enAddress = enAddress;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getUserPhone() {
+        return userPhone;
+    }
+
+    public void setUserPhone(String userPhone) {
+        this.userPhone = userPhone;
+    }
+
+    public String getUserAreaProvince() {
+        return userAreaProvince;
+    }
+
+    public void setUserAreaProvince(String userAreaProvince) {
+        this.userAreaProvince = userAreaProvince;
+    }
+
+    public String getUserAreaCity() {
+        return userAreaCity;
+    }
+
+    public void setUserAreaCity(String userAreaCity) {
+        this.userAreaCity = userAreaCity;
+    }
+
+    public String getUserAreaDistrict() {
+        return userAreaDistrict;
+    }
+
+    public void setUserAreaDistrict(String userAreaDistrict) {
+        this.userAreaDistrict = userAreaDistrict;
+    }
+
+    public String getUserAddress() {
+        return userAddress;
+    }
+
+    public void setUserAddress(String userAddress) {
+        this.userAddress = userAddress;
+    }
+
+    public String getEnName() {
+        return enName;
+    }
+
+    public void setEnName(String enName) {
+        this.enName = enName;
+    }
+
+    public String getCreditApplyCode() {
+        return creditApplyCode;
+    }
+
+    public void setCreditApplyCode(String creditApplyCode) {
+        this.creditApplyCode = creditApplyCode;
+    }
+
+    public String toCustomerInforInsertSql(String customerInforCode){
+        String customerInforInsertSql = "insert into CustomerInfor(cu_id,cu_code,cu_name,cu_contact,cu_contactphone,cu_officeadd,cu_status,cu_statuscode,cu_recordman,cu_date) values("
+                + "CustomerInfor_seq.nextval,'"
+                + customerInforCode
+                + "','"
+                + StringUtil.nvl(this.enName,"")
+                + "','"
+                + StringUtil.nvl(this.userName,"")
+                + "','"
+                + StringUtil.nvl(this.userPhone,"")
+                + "','"
+                + this.enAreaProvince + this.enAreaCity + this.enAreaDistrict + this.enAddress
+                + "','在录入','ENTERING','管理员',sysdate)";
+        return customerInforInsertSql;
+    }
+
+    public String toCustomerQuotaInsertSql(String customerQuotaCode, String customerInforCode){
+        String customerQuotaInsertSql = "insert into CustomerQuota(cq_id,cq_code,cq_custcode,cq_custname,cq_b2bCreditCode,cq_sendStatus,cq_quotatype,cq_nomfcust,cq_class,cq_status,cq_statuscode,cq_recorder,cq_indate) values("
+                + "CustomerQuota_seq.nextval,'"
+                + customerQuotaCode
+                + "','"
+                + customerInforCode
+                + "','"
+                + this.enName
+                + "','"
+                + this.creditApplyCode
+                + "','待上传','应收宝',-1,'应收宝额度申请单','在录入','ENTERING','管理员',sysdate"
+                + ")";
+        return customerQuotaInsertSql;
+    }
+}

+ 140 - 0
src/main/java/com/uas/erp/schedular/finance/domain/DrawApplyInfo.java

@@ -0,0 +1,140 @@
+package com.uas.erp.schedular.finance.domain;
+
+public class DrawApplyInfo {
+
+    private String code; //提款编号
+    private String creditCode; //额度/增额申请编号
+    private String creditApplyCode; // 额度申请记录编号
+    private String productCode; // 产品编号
+    private Integer enuu; //企业UU号
+    private String startDate; // 提款日期
+    private String submitDate; // 申请日期
+    private String auditDate; // 审核日期
+    private String endDate; // 到期日期
+    private double drawAmount; //提款金额
+    private double transferAmount; //转让金额
+    private double monthRate; //月利率
+    private String maturity; //融资期限
+    private String auditStatus; //受理状态 (201:受理中,202:未通过,200:已通过)
+    private String drawStatus; //打款状态 (211:未打款,210:已打款)
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getCreditCode() {
+        return creditCode;
+    }
+
+    public void setCreditCode(String creditCode) {
+        this.creditCode = creditCode;
+    }
+
+    public String getCreditApplyCode() {
+        return creditApplyCode;
+    }
+
+    public void setCreditApplyCode(String creditApplyCode) {
+        this.creditApplyCode = creditApplyCode;
+    }
+
+    public String getProductCode() {
+        return productCode;
+    }
+
+    public void setProductCode(String productCode) {
+        this.productCode = productCode;
+    }
+
+    public Integer getEnuu() {
+        return enuu;
+    }
+
+    public void setEnuu(Integer enuu) {
+        this.enuu = enuu;
+    }
+
+    public String getStartDate() {
+        return startDate;
+    }
+
+    public void setStartDate(String startDate) {
+        this.startDate = startDate;
+    }
+
+    public String getSubmitDate() {
+        return submitDate;
+    }
+
+    public void setSubmitDate(String submitDate) {
+        this.submitDate = submitDate;
+    }
+
+    public String getAuditDate() {
+        return auditDate;
+    }
+
+    public void setAuditDate(String auditDate) {
+        this.auditDate = auditDate;
+    }
+
+    public String getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(String endDate) {
+        this.endDate = endDate;
+    }
+
+    public double getDrawAmount() {
+        return drawAmount;
+    }
+
+    public void setDrawAmount(double drawAmount) {
+        this.drawAmount = drawAmount;
+    }
+
+    public double getTransferAmount() {
+        return transferAmount;
+    }
+
+    public void setTransferAmount(double transferAmount) {
+        this.transferAmount = transferAmount;
+    }
+
+    public double getMonthRate() {
+        return monthRate;
+    }
+
+    public void setMonthRate(double monthRate) {
+        this.monthRate = monthRate;
+    }
+
+    public String getMaturity() {
+        return maturity;
+    }
+
+    public void setMaturity(String maturity) {
+        this.maturity = maturity;
+    }
+
+    public String getAuditStatus() {
+        return auditStatus;
+    }
+
+    public void setAuditStatus(String auditStatus) {
+        this.auditStatus = auditStatus;
+    }
+
+    public String getDrawStatus() {
+        return drawStatus;
+    }
+
+    public void setDrawStatus(String drawStatus) {
+        this.drawStatus = drawStatus;
+    }
+}

+ 23 - 0
src/main/java/com/uas/erp/schedular/finance/domain/ERPRespHeader.java

@@ -0,0 +1,23 @@
+package com.uas.erp.schedular.finance.domain;
+
+public class ERPRespHeader {
+
+    private Integer code;
+    private String msg;
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public void setCode(Integer code) {
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+}

+ 26 - 0
src/main/java/com/uas/erp/schedular/finance/domain/FileTypeCreditInfo.java

@@ -0,0 +1,26 @@
+package com.uas.erp.schedular.finance.domain;
+
+import java.util.List;
+
+public class FileTypeCreditInfo {
+
+    private FileTypeInfo fileTypeInfo;
+    private List<CreditApplyUserfileInfo> creditApplyUserfileInfo;
+
+    public FileTypeInfo getFileTypeInfo() {
+        return fileTypeInfo;
+    }
+
+    public void setFileTypeInfo(FileTypeInfo fileTypeInfo) {
+        this.fileTypeInfo = fileTypeInfo;
+    }
+
+    public List<CreditApplyUserfileInfo> getCreditApplyUserfileInfo() {
+        return creditApplyUserfileInfo;
+    }
+
+    public void setCreditApplyUserfileInfo(List<CreditApplyUserfileInfo> creditApplyUserfileInfo) {
+        this.creditApplyUserfileInfo = creditApplyUserfileInfo;
+    }
+
+}

+ 43 - 0
src/main/java/com/uas/erp/schedular/finance/domain/FileTypeInfo.java

@@ -0,0 +1,43 @@
+package com.uas.erp.schedular.finance.domain;
+
+public class FileTypeInfo {
+
+    private Integer required; // 资料类型(必填或选填)
+    private String name; // 资料名称
+    private Integer number; // 资料序号
+
+    public Integer getRequired() {
+        return required;
+    }
+
+    public void setRequired(Integer required) {
+        this.required = required;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getNumber() {
+        return number;
+    }
+
+    public void setNumber(Integer number) {
+        this.number = number;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    private String code; // 资料编号
+
+}

+ 23 - 0
src/main/java/com/uas/erp/schedular/finance/domain/GetAddCreditApplyInfoResp.java

@@ -0,0 +1,23 @@
+package com.uas.erp.schedular.finance.domain;
+
+public class GetAddCreditApplyInfoResp {
+
+    private ERPRespHeader respHeader;
+    private AddCreditApplyInfo addCreditApplyInfo;
+
+    public ERPRespHeader getRespHeader() {
+        return respHeader;
+    }
+
+    public void setRespHeader(ERPRespHeader respHeader) {
+        this.respHeader = respHeader;
+    }
+
+    public AddCreditApplyInfo getAddCreditApplyInfo() {
+        return addCreditApplyInfo;
+    }
+
+    public void setAddCreditApplyInfo(AddCreditApplyInfo addCreditApplyInfo) {
+        this.addCreditApplyInfo = addCreditApplyInfo;
+    }
+}

+ 23 - 0
src/main/java/com/uas/erp/schedular/finance/domain/GetCreditApplyInfoResp.java

@@ -0,0 +1,23 @@
+package com.uas.erp.schedular.finance.domain;
+
+public class GetCreditApplyInfoResp {
+
+    private ERPRespHeader respHeader;
+    private CreditApplyInfo creditApplyInfo;
+
+    public ERPRespHeader getRespHeader() {
+        return respHeader;
+    }
+
+    public void setRespHeader(ERPRespHeader respHeader) {
+        this.respHeader = respHeader;
+    }
+
+    public CreditApplyInfo getCreditApplyInfo() {
+        return creditApplyInfo;
+    }
+
+    public void setCreditApplyInfo(CreditApplyInfo creditApplyInfo) {
+        this.creditApplyInfo = creditApplyInfo;
+    }
+}

+ 32 - 0
src/main/java/com/uas/erp/schedular/finance/domain/GetDrawInfoResp.java

@@ -0,0 +1,32 @@
+package com.uas.erp.schedular.finance.domain;
+
+import java.util.List;
+
+public class GetDrawInfoResp {
+
+    private ERPRespHeader respHeader;
+    private DrawApplyInfo drawApplyInfo;
+    private List<OrderInfo> OrderInfoList;
+
+    public ERPRespHeader getRespHeader() {
+        return respHeader;
+    }
+    public void setRespHeader(ERPRespHeader respHeader) {
+        this.respHeader = respHeader;
+    }
+    public DrawApplyInfo getDrawApplyInfo() {
+        return drawApplyInfo;
+    }
+
+    public void setDrawApplyInfo(DrawApplyInfo drawApplyInfo) {
+        this.drawApplyInfo = drawApplyInfo;
+    }
+
+    public List<OrderInfo> getOrderInfoList() {
+        return OrderInfoList;
+    }
+
+    public void setOrderInfoList(List<OrderInfo> orderInfoList) {
+        OrderInfoList = orderInfoList;
+    }
+}

+ 20 - 0
src/main/java/com/uas/erp/schedular/finance/domain/MessageId.java

@@ -0,0 +1,20 @@
+package com.uas.erp.schedular.finance.domain;
+
+public enum MessageId {
+
+    /**
+     * 应收宝
+     */
+    RECEIVABLE("1001");
+
+    private String code;
+
+    public String getCode() {
+        return code;
+    }
+
+    MessageId(String code){
+        this.code = code;
+    }
+
+}

+ 52 - 0
src/main/java/com/uas/erp/schedular/finance/domain/OrderDetailInfo.java

@@ -0,0 +1,52 @@
+package com.uas.erp.schedular.finance.domain;
+
+import java.util.List;
+
+public class OrderDetailInfo {
+
+    private String code; // 订单明细编号
+    private String name; // 产品名称
+    private String specifications; // 规格
+    private String cmpCode; // 型号
+    private List<AccptInfo> accptInfo; //验收单信息
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getSpecifications() {
+        return specifications;
+    }
+
+    public void setSpecifications(String specifications) {
+        this.specifications = specifications;
+    }
+
+    public String getCmpCode() {
+        return cmpCode;
+    }
+
+    public void setCmpCode(String cmpCode) {
+        this.cmpCode = cmpCode;
+    }
+
+    public List<AccptInfo> getAccptInfo() {
+        return accptInfo;
+    }
+
+    public void setAccptInfo(List<AccptInfo> accptInfo) {
+        this.accptInfo = accptInfo;
+    }
+}

+ 61 - 0
src/main/java/com/uas/erp/schedular/finance/domain/OrderInfo.java

@@ -0,0 +1,61 @@
+package com.uas.erp.schedular.finance.domain;
+
+import java.util.List;
+
+public class OrderInfo {
+
+    private String code; //订单编号
+    private double amount; //订单金额
+    private double acceptanceAmountTotal; //验收金额总计
+    private String customerName; //客户名称
+    private String orderDate; //订单日期
+    private List<OrderDetailInfo> orderDetailInfo; //产品信息
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public double getAmount() {
+        return amount;
+    }
+
+    public void setAmount(double amount) {
+        this.amount = amount;
+    }
+
+    public double getAcceptanceAmountTotal() {
+        return acceptanceAmountTotal;
+    }
+
+    public void setAcceptanceAmountTotal(double acceptanceAmountTotal) {
+        this.acceptanceAmountTotal = acceptanceAmountTotal;
+    }
+
+    public String getCustomerName() {
+        return customerName;
+    }
+
+    public void setCustomerName(String customerName) {
+        this.customerName = customerName;
+    }
+
+    public String getOrderDate() {
+        return orderDate;
+    }
+
+    public void setOrderDate(String orderDate) {
+        this.orderDate = orderDate;
+    }
+
+    public List<OrderDetailInfo> getOrderDetailInfo() {
+        return orderDetailInfo;
+    }
+
+    public void setOrderDetailInfo(List<OrderDetailInfo> orderDetailInfo) {
+        this.orderDetailInfo = orderDetailInfo;
+    }
+}

+ 59 - 0
src/main/java/com/uas/erp/schedular/finance/domain/RepayPlanInfo.java

@@ -0,0 +1,59 @@
+package com.uas.erp.schedular.finance.domain;
+
+public class RepayPlanInfo {
+
+    private Integer periodsNumber; //还款期数
+    private String repayDate; //还款日期
+    private double shouldRepayInterest; //应收利息
+    private double shouldRepayPrincipal; //应还本金
+    private double shouldRepayTotal; //应还本息合计
+    private Short status;           //状态
+
+    public Short getStatus() {
+        return status;
+    }
+
+    public void setStatus(Short status) {
+        this.status = status;
+    }
+
+    public Integer getPeriodsNumber() {
+        return periodsNumber;
+    }
+
+    public void setPeriodsNumber(Integer periodsNumber) {
+        this.periodsNumber = periodsNumber;
+    }
+
+    public String getRepayDate() {
+        return repayDate;
+    }
+
+    public void setRepayDate(String repayDate) {
+        this.repayDate = repayDate;
+    }
+
+    public double getShouldRepayInterest() {
+        return shouldRepayInterest;
+    }
+
+    public void setShouldRepayInterest(double shouldRepayInterest) {
+        this.shouldRepayInterest = shouldRepayInterest;
+    }
+
+    public double getShouldRepayPrincipal() {
+        return shouldRepayPrincipal;
+    }
+
+    public void setShouldRepayPrincipal(double shouldRepayPrincipal) {
+        this.shouldRepayPrincipal = shouldRepayPrincipal;
+    }
+
+    public double getShouldRepayTotal() {
+        return shouldRepayTotal;
+    }
+
+    public void setShouldRepayTotal(double shouldRepayTotal) {
+        this.shouldRepayTotal = shouldRepayTotal;
+    }
+}

+ 156 - 0
src/main/java/com/uas/erp/schedular/finance/mq/RabbitReceiveServiceImpl.java

@@ -0,0 +1,156 @@
+package com.uas.erp.schedular.finance.mq;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
+import com.uas.erp.schedular.database.RestJdbcTemplate;
+import com.uas.erp.schedular.entity.Master;
+import com.uas.erp.schedular.entity.MqConfig;
+import com.uas.erp.schedular.service.MasterService;
+import com.uas.erp.schedular.service.SettingService;
+import com.uas.erp.schedular.util.ContextHolder;
+import com.uas.erp.schedular.util.HmacUtils;
+import com.uas.erp.schedular.web.ResultWrap;
+import com.usoft.mq.utils.BaseRabbitReceiveService;
+import com.usoft.mq.utils.MessageInfo;
+import com.usoft.security.utils.OpenApiSignUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.annotation.Order;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Service;
+import org.springframework.util.Assert;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+import org.springframework.web.util.DefaultUriTemplateHandler;
+
+import javax.annotation.PostConstruct;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class RabbitReceiveServiceImpl extends BaseRabbitReceiveService {
+
+
+    @Autowired
+    private RestTemplate restTemplate;
+    @Autowired
+    private RestJdbcTemplate jdbcTemplate;
+    @Autowired
+    private SettingService settingService;
+
+    private final static String SECRETKEY = "600d3f07955ba67fe050007f01002db2";
+    private final static String BASEPATH = "http://192.168.253.3:26600";
+    private final static String UASURL = "http://218.18.115.198:8888/ERP";
+    private final static String MASTERNAME = "YITOA_BL";
+
+    @PostConstruct
+    public void init() throws InterruptedException {
+        Master master = new Master();
+        master.setMa_user("YITOA_DATACENTER");
+        master.setMa_uu(10050002L);
+        master.setMa_accesssecret(SECRETKEY);
+        master.setMa_env("prod");
+        ContextHolder.setMaster(master);
+        MqConfig mqConfig = null;
+        try {
+            mqConfig = jdbcTemplate.queryForBean("select MA_MQDYNAMICCREATE ,MA_MQHOST, MA_MQPORT, MA_MQVIRTUALHOST, MA_MQUSERNAME, MA_MQPASSWORD, MA_MQQUEUENAME from master where ma_user='" + MASTERNAME + "'", MqConfig.class);
+        }catch (Exception e){
+
+        }
+        if(mqConfig != null){
+            isDynamicCreate = mqConfig.isMa_mqdynamiccreate();
+            host = mqConfig.getMa_mqhost();
+            port = mqConfig.getMa_mqport();
+            virtualHost = mqConfig.getMa_mqvirtualhost();
+            username = mqConfig.getMa_mqusername();
+            password = mqConfig.getMa_mqpassword();
+            queueName = mqConfig.getMa_mqqueuename();
+        }
+    }
+
+    @Override
+    public void processMessage(MessageInfo messageInfo) throws Exception {
+//        messageInfo.getUserId().equals()
+        switch (messageInfo.getAppId()){
+            case "1001":                //应收宝
+                processMessageForReceivable(messageInfo.getBizId(), messageInfo.getBizType());
+                break;
+            default:
+                //throw new Exception();
+                break;
+        }
+    }
+
+    private void processMessageForReceivable(String bizId, String bizType) throws Exception {
+        String url = "";
+        String uasURL = "";
+        String codeName = "";
+        switch (bizType){
+            case "1":                   //额度申请
+                url = BASEPATH + "/api/credit/get?";
+                uasURL = "/openapi/receivable/getCreditApplyInfoReq.action";
+                codeName = "creditApplyCode";
+                break;
+            case "2":                   //提款申请
+                url = BASEPATH + "/api/draw/get?";
+                uasURL = "/openapi/receivable/getDrawInfoResp.action";
+                codeName = "code";
+                break;
+            case "3":                   //增额申请
+                url = BASEPATH + "/api/addCredit/get?";
+                uasURL = "/openapi/receivable/getAddCreditApplyInfoReq.action";
+                codeName = "creditApplyCode";
+                break;
+            default:
+                //throw new Exception();
+                break;
+        }
+        Execute(url, bizId, uasURL, codeName);
+    }
+
+    private void Execute(String requestURL, String bizId, String uasURL, String codeName) throws Exception {
+        String paramStr = "secretId=" + 10046945 + "&"+ codeName +"=" + URLEncoder.encode(bizId,"UTF-8");
+        //进行签名
+        String signatureValue = OpenApiSignUtil.sign(paramStr,SECRETKEY);
+        signatureValue = URLEncoder.encode(signatureValue, "UTF-8");
+        String signatureKV = OpenApiSignUtil.SIGNATURE_KEY + "=" + signatureValue;
+        paramStr += "&" + signatureKV;
+        requestURL = requestURL + paramStr;
+
+        DefaultUriTemplateHandler uriTemplateHandler = new DefaultUriTemplateHandler();
+        uriTemplateHandler.setStrictEncoding(true);
+        restTemplate.setUriTemplateHandler(uriTemplateHandler);
+        String result = restTemplate.getForObject(requestURL, String.class);
+        String UASurl = UASURL + uasURL;
+        Map<String, Object> map = new HashMap<String, Object>();
+        map.put("data", result);
+
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        headers.add("referer", getSignature(codeName));
+        MultiValueMap<String, Object> formData = new LinkedMultiValueMap<>();
+        formData.setAll(map);
+        HttpEntity<MultiValueMap<String, Object>> request = new HttpEntity<>(formData, headers);
+        String returnStr = restTemplate.postForEntity(UASurl, request, String.class).getBody();
+        ResultWrap<String> wrap = JSON.parseObject(returnStr, new TypeReference<ResultWrap<String>>(){});
+    }
+
+    public String getSignature(String code) {
+        String url = "_timestamp=" + System.currentTimeMillis() + "&master=";
+        if("code".equals(code)){
+            url += "YITOA_BL";
+        }else{
+            url += "YITOA_DATACENTER";
+        }
+        // 签名
+        return url + "&_signature=" + HmacUtils.encode(url);
+    }
+}

+ 48 - 0
src/main/java/com/uas/erp/schedular/finance/task/AccountApplyTask.java

@@ -1,5 +1,6 @@
 package com.uas.erp.schedular.finance.task;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.uas.api.crypto.util.FlexJsonUtils;
 import com.uas.erp.schedular.finance.domain.*;
@@ -7,12 +8,20 @@ import com.uas.erp.schedular.task.support.Method;
 import com.uas.erp.schedular.task.support.Role;
 import com.uas.erp.schedular.task.support.TaskMapping;
 import com.uas.erp.schedular.web.ResultWrap;
+import com.usoft.security.utils.OpenApiSignUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.ui.ModelMap;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
+import org.springframework.web.client.RestTemplate;
+import org.springframework.web.util.DefaultUriTemplateHandler;
 
+import java.io.UnsupportedEncodingException;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 应收账款轮询
@@ -22,6 +31,45 @@ import java.util.List;
 @TaskMapping(title = "金融服务", role = Role.SELLER)
 public class AccountApplyTask extends AbstractTask {
 
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    /**
+     * 打款信息回传给B2B
+     */
+    @TaskMapping(title = "上传打款信息", fixedDelay = 60000, method = Method.UPLOAD)
+    public void uploadDrawDraw() throws NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException {
+        List<Map<String, Object>> drawDrawInfo = jdbcTemplate.queryForList("select distinct aa_code,aa_b2bCode,to_char(aa_actpaydate,'YYYY-MM-DD HH24:MI:SS') aa_actpaydate,nvl(cq_dueamount,0) cq_dueamount,nvl(cq_spamount,0) cq_spamount,to_char(cq_enddate,'YYYY-MM-DD HH24:MI:SS') cq_enddate from AccountApply left join SELLER_QUOTA_VIEW on cq_code=aa_cacode LEFT JOIN REIMBURSEMENTPLAN ON AA_CODE = RP_AACODE where aa_actpaydate is not null and aa_sendstatus='待上传' and aa_status='已审核' and aa_b2bCode is not null and RP_AACODE IS NOT NULL");
+        if(drawDrawInfo != null && drawDrawInfo.size()>0){
+            for(Map<String, Object> map : drawDrawInfo){
+                JSONObject json = new JSONObject();
+                json.put("code", String.valueOf(map.get("AA_B2BCODE")));       //提款申请编号
+                json.put("startDate", String.valueOf(map.get("AA_ACTPAYDATE")));  //提款日期
+                json.put("endDate", String.valueOf(map.get("CQ_ENDDATE")));    //到期日期
+                json.put("usedAmount", String.valueOf(map.get("CQ_DUEAMOUNT"))); //已用额度
+                json.put("usableAmount", String.valueOf(map.get("CQ_SPAMOUNT")));   //剩余可用额度
+                List<RepayPlanInfo> repayPlanInfoList = jdbcTemplate.queryForBeanList("select rp_nper periodsNumber,to_char(rp_backdate,'YYYY-MM-DD HH24:MI:SS') repayDate,rp_interest shouldRepayInterest,rp_principal shouldRepayPrincipal,rp_thisback shouldRepayTotal,(case RP_ISCARRYOUT when '已执行' then '300' when '未执行' then '301' else '302' end) status from Reimbursementplan where rp_aacode='"+map.get("AA_CODE")+"'", RepayPlanInfo.class);
+                json.put("repayPlanInfo", repayPlanInfoList);
+                json.put("signature", "");
+                json.put("secretId", "10046945");
+                String secretkey = "600d3f07955ba67fe050007f01002db2";			//手动写死保理账套的 MA_ACCESSSECRET,由于开启事物导致的无法切换账套
+                String signatureValue = OpenApiSignUtil.sign(JSON.toJSONString(json),String.valueOf(secretkey));
+                json.put("signature",signatureValue);
+
+                DefaultUriTemplateHandler uriTemplateHandler = new DefaultUriTemplateHandler();
+                uriTemplateHandler.setStrictEncoding(true);
+                restTemplate.setUriTemplateHandler(uriTemplateHandler);
+
+                String result = restTemplate.postForObject("http://192.168.253.3:26600/api/draw", json.toString(), String.class);
+                JSONObject response = (JSONObject) JSONObject.parse(result);
+                if("0".equals(String.valueOf(response.get("code")))){
+                    jdbcTemplate.execute("update AccountApply set aa_sendstatus='已上传' where aa_code='"+ map.get("AA_CODE") +"'");
+                }
+            }
+        }
+    }
+
     /**
      * 应收账款转让下载
      */

+ 2 - 0
src/main/resources/application.yml

@@ -25,6 +25,8 @@ spring:
 ---
 spring:
   profiles: dev
+  rabbitmq:
+    requested-heartbeat=30
 ---
 spring:
   profiles: prod