Commit 1100c623 by huluobin

资产负债

parent 8ab5e334
...@@ -50,28 +50,28 @@ ...@@ -50,28 +50,28 @@
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId> <artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope> <!-- <scope>test</scope>-->
</dependency> </dependency>
<!--mp 增加Mybatis--> <!--mp 增加Mybatis-->
<dependency> <dependency>
<groupId>com.baomidou</groupId> <groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId> <artifactId>mybatis-plus-boot-starter</artifactId>
<scope>test</scope> <!-- <scope>test</scope>-->
</dependency> </dependency>
<!--fastJson--> <!--fastJson-->
<dependency> <dependency>
<groupId>com.alibaba</groupId> <groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId> <artifactId>fastjson</artifactId>
<scope>test</scope> <!-- <scope>test</scope>-->
</dependency> </dependency>
<!--mysql--> <!--mysql-->
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId> <artifactId>mysql-connector-java</artifactId>
<scope>test</scope> <!-- <scope>test</scope>-->
</dependency> </dependency>
<dependency> <dependency>
......
package com.bailuntec.api; package com.bailuntec.api;
import com.bailuntec.api.bailuntec.cw.CwApiJackson2HttpMeesageConverter;
import feign.codec.Decoder;
import org.springframework.beans.factory.ObjectFactory;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.cloud.openfeign.support.SpringDecoder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
/** /**
...@@ -14,4 +20,11 @@ import org.springframework.context.annotation.Configuration; ...@@ -14,4 +20,11 @@ import org.springframework.context.annotation.Configuration;
@Configuration @Configuration
@EnableFeignClients(basePackages = {"com.bailuntec.api"}) @EnableFeignClients(basePackages = {"com.bailuntec.api"})
public class Config { public class Config {
@Bean
public Decoder feignDecoder() {
CwApiJackson2HttpMeesageConverter cwApiJackson2HttpMeesageConverter = new CwApiJackson2HttpMeesageConverter();
ObjectFactory<HttpMessageConverters> objectFactory = () -> new HttpMessageConverters(cwApiJackson2HttpMeesageConverter);
return new SpringDecoder(objectFactory);
}
} }
package com.bailuntec.api.bailuntec.cw; package com.bailuntec.api.bailuntec.cw;
import com.bailuntec.api.bailuntec.cw.response.GetCashiersResp; import com.bailuntec.api.bailuntec.cw.request.PostApplyReq;
import com.bailuntec.api.bailuntec.cw.response.GetHandleFeeTradeRecordsResp; import com.bailuntec.api.bailuntec.cw.response.*;
import com.bailuntec.api.bailuntec.cw.response.GetRepayPlanDetailsResp;
import com.bailuntec.api.bailuntec.cw.response.GetWithdrawDetailPagesResp;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component; import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping; 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; import org.springframework.web.bind.annotation.RequestParam;
import java.util.List; import java.util.List;
...@@ -19,7 +19,7 @@ import java.util.List; ...@@ -19,7 +19,7 @@ import java.util.List;
* @author robbendev * @author robbendev
* @since 2020/9/28 4:02 下午 * @since 2020/9/28 4:02 下午
*/ */
@FeignClient(name = "cw", url = "http://cw.bailuntec.com/", fallback = CwApi.CwApiFallback.class) @FeignClient(name = "cw", url = "http://cw.bailuntec.com/")
public interface CwApi { public interface CwApi {
/** /**
...@@ -75,29 +75,45 @@ public interface CwApi { ...@@ -75,29 +75,45 @@ public interface CwApi {
@RequestParam("endDate") String endDate); @RequestParam("endDate") String endDate);
@Component /**
class CwApiFallback implements CwApi { * 推送费用单到财务系统
*
* @param req req
* @return resp
*/
@PostMapping(value = "/API/API/Apply", consumes = {MediaType.APPLICATION_JSON_VALUE}, produces = MediaType.APPLICATION_JSON_VALUE)
CwResult<String> postApply(@RequestBody PostApplyReq req);
@Override
public List<GetCashiersResp> getCashiers(Integer rows, String BeginModifyTime, String EndModifyTime, Integer Page) {
throw new RuntimeException("net work error");
}
@Override /**
public GetWithdrawDetailPagesResp getWithdrawDetailPages(Integer pagesize, String begintime, String endtime, Integer pageindex) { * 获取公司主体借款余额
throw new RuntimeException("net work error"); *
} * @return 公司主体借款余额
*/
@GetMapping("/api/api/GetBorrows")
CwResult<List<BorrowBalanceDTO>> getBorrows();
@Override /**
public List<GetHandleFeeTradeRecordsResp> getHandleFeeTradeRecords(String beginTime, String endTime) { * 获取银行账号余额
throw new RuntimeException("net work error"); *
} * @return 银行账号余额
*/
@GetMapping("/api/api/GetBankAccountSummary")
CwResult<List<BankAccountBalanceDTO>> getBankAccountSummary();
@Override /**
public List<GetRepayPlanDetailsResp> getRepayPlanDetails(String startDate, String endDate) { * 获取平台提现在途资金信息
throw new RuntimeException("net work error"); *
} * @return 平台提现在途资金信息
*/
@GetMapping("/api/api/GetWithdrawOnWaySummary")
CwResult<List<WithdrawOnWayDTO>> getWithdrawOnWaySummary();
} /**
* 获取PayPal帐号信息
*
* @return PayPal帐号信息
*/
@GetMapping("/api/api/GetPayPalBalance")
List<PayPalBalanceDTO> getPayPalBalance();
} }
package com.bailuntec.api.bailuntec.cw;
import org.springframework.http.MediaType;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020/10/29 8:57 下午
*/
public class CwApiJackson2HttpMeesageConverter extends MappingJackson2HttpMessageConverter {
public CwApiJackson2HttpMeesageConverter() {
List<MediaType> mediaTypes = new ArrayList<>();
mediaTypes.add(MediaType.TEXT_PLAIN);
mediaTypes.add(MediaType.TEXT_HTML);
setSupportedMediaTypes(mediaTypes);
}
}
package com.bailuntec.api.bailuntec.cw.request;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class ApplyMoneyDetail {
///申请金额的名称(类型)
private String Name;
///金额
private BigDecimal Money;
///兑换成人民币金额
private BigDecimal MoneyRmb;
///备注
private String Remark;
}
package com.bailuntec.api.bailuntec.cw.request;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020/10/29 6:44 下午
*/
@Data
public class PostApplyReq {
// 申请标题(Title)不可为空;
private String Title;
// 公司主体(CompanyMainName)不可为空;
private String CompanyMainName;
// 审核回调地址(ApplyCallbackUrl)不可为空;
private String ApplyCallbackUrl;
// 出纳回调地址(CashierCallbackUrl)不可为空;
private String CashierCallbackUrl;
// 币种编号(UnitCode)不可为空;
private String UnitCode;
// 币种名称(UnitName)不可为空;
private String UnitName;
private String TradeObjectID;
//交易对象(TradeObjectID/TradeObjectName)不可为空;
private String TradeObjectName;
private String BankNameto;
private String BankCardto;
private String BankCardUserto;
private String SourceCode;
private String SourceTypeCode;
private String ApplyType;
//// 申请人(UserAcctID/UserAcctName)不存在;
private String UserAcctID;
private String UserAcctName;
private Integer PayDay;
private List<ApplyMoneyDetail> MoneyDetail;
private Date ExpectPayTime;
private String DetailKey;
private String TypeName;
private String ItemColumn;
private String CustomerCode;
}
package com.bailuntec.api.bailuntec.cw.response;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* 银行账号余额
*/
@Data
public class BankAccountBalanceDTO {
@JsonProperty("CompanyValue")
@JSONField(name = "CompanyValue")
private Integer companyValue;
@JsonProperty("CompanyName")
@JSONField(name = "CompanyName")
private String companyName;
@JsonProperty("PayAccountID")
@JSONField(name = "PayAccountID")
private Integer payAccountId;
@JsonProperty("BankName")
@JSONField(name = "BankName")
private String bankName;
@JsonProperty("BankCard")
@JSONField(name = "BankCard")
private String bankCard;
@JsonProperty("BankCardUser")
@JSONField(name = "BankCardUser")
private String bankCardUser;
@JsonProperty("Balance")
@JSONField(name = "Balance")
private BigDecimal balanceRmb;
}
package com.bailuntec.api.bailuntec.cw.response;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* 公司主体借款余额
*/
@Data
public class BorrowBalanceDTO {
@JSONField(name = "Company")
@JsonProperty("Company")
private String companyName;
@JSONField(name = "CompanyVal")
@JsonProperty("CompanyVal")
private Integer companyValue;
@JSONField(name = "BankCard")
@JsonProperty("BankCard")
private String bankCard;
@JSONField(name = "BankName")
@JsonProperty("BankName")
private String bankName;
@JSONField(name = "BankCardUser")
@JsonProperty("BankCardUser")
private String bankCardUser;
@JSONField(name = "Creditor")
@JsonProperty("Creditor")
private String creditor;
@JSONField(name = "NoRepayMoneyRMB")
@JsonProperty("NoRepayMoneyRMB")
private BigDecimal balanceRmb;
}
package com.bailuntec.api.bailuntec.cw.response;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020/10/29 6:59 下午
*/
@Data
public class CwResult<T> {
@JsonProperty("Success")
private Boolean Success;
@JsonProperty("Message")
private String Message;
@JsonProperty("Data")
private T Data;
}
package com.bailuntec.api.bailuntec.cw.response;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class PayPalBalanceDTO {
@JSONField(name = "Account")
@JsonProperty("Account")
private String account;
@JSONField(name = "CurrencyCode")
@JsonProperty("CurrencyCode")
private String currencyCode;
@JSONField(name = "Balance")
@JsonProperty("Balance")
private BigDecimal balance;
}
package com.bailuntec.api.bailuntec.cw.response;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* 平台提现在途
*/
@Data
public class WithdrawOnWayDTO {
@JSONField(name = "SalePlatformId")
@JsonProperty("SalePlatformId")
private Integer salePlatformId;
@JSONField(name = "SalePlatform")
@JsonProperty("SalePlatform")
private String salePlatform;
@JSONField(name = "PlatformId")
@JsonProperty("PlatformId")
private Integer platformId;
@JSONField(name = "Platform")
@JsonProperty("Platform")
private String platform;
@JSONField(name = "PayAccountId")
@JsonProperty("PayAccountId")
private Integer payAccountId;
@JSONField(name = "PayAccount")
@JsonProperty("PayAccount")
private String payAccount;
@JSONField(name = "BankName")
@JsonProperty("BankName")
private String bankName;
@JSONField(name = "BankCardUser")
@JsonProperty("BankCardUser")
private String bankCardUser;
@JSONField(name = "RMBMoney")
@JsonProperty("RMBMoney")
private BigDecimal amountRmb;
}
package com.bailuntec.api.bailuntec.oa; package com.bailuntec.api.bailuntec.oa;
import com.bailuntec.api.bailuntec.oa.response.ExchangeRate;
import com.bailuntec.api.bailuntec.oa.response.OaDepartmentResp; import com.bailuntec.api.bailuntec.oa.response.OaDepartmentResp;
import com.bailuntec.api.bailuntec.oa.response.OaUserResp; import com.bailuntec.api.bailuntec.oa.response.OaUserResp;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List; import java.util.List;
...@@ -39,4 +41,8 @@ public interface OaApi { ...@@ -39,4 +41,8 @@ public interface OaApi {
@GetMapping("/api/user/GetDeparmentList") @GetMapping("/api/user/GetDeparmentList")
List<OaDepartmentResp> getDeparmentList(); List<OaDepartmentResp> getDeparmentList();
@GetMapping("/api/ExchangeRate/GetExchangeRate")
String getExchangeRate(@RequestParam("fromCur") String fromCur,
@RequestParam("toCur") String toCur);
} }
package com.bailuntec.api.bailuntec.oa.response;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.Data;
import java.math.BigDecimal;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020/10/29 5:57 下午
*/
@Data
public class ExchangeRate {
@JsonProperty("Rate")
private BigDecimal rate;
@JsonProperty("ToCurName")
private String toCurName;
}
...@@ -35,4 +35,5 @@ public class OaDepartmentResp { ...@@ -35,4 +35,5 @@ public class OaDepartmentResp {
private Integer sort; private Integer sort;
private Integer departmentId; private Integer departmentId;
} }
...@@ -2,10 +2,18 @@ package com.bailuntec.api.bailuntec.cw; ...@@ -2,10 +2,18 @@ package com.bailuntec.api.bailuntec.cw;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.serializer.SerializerFeature;
import com.bailuntec.api.Application;
import com.bailuntec.api.bailuntec.cw.request.PostApplyReq;
import com.bailuntec.api.bailuntec.cw.response.CwResult;
import lombok.extern.slf4j.Slf4j;
import org.assertj.core.util.Lists;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;
import java.time.LocalDateTime; import javax.annotation.Resource;
import java.time.format.DateTimeFormatter;
import java.util.Date; import java.util.Date;
/** /**
...@@ -16,8 +24,16 @@ import java.util.Date; ...@@ -16,8 +24,16 @@ import java.util.Date;
* @author robbendev * @author robbendev
* @since 2020/10/8 1:38 下午 * @since 2020/10/8 1:38 下午
*/ */
@ActiveProfiles(value = "test")
@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
class CwApiTest { class CwApiTest {
@Resource
CwApi cwApi;
@Test @Test
void getCashiers() { void getCashiers() {
} }
...@@ -36,6 +52,47 @@ class CwApiTest { ...@@ -36,6 +52,47 @@ class CwApiTest {
@Test @Test
void postApply() {
PostApplyReq req = new PostApplyReq();
req.setTitle("test");
req.setCompanyMainName("test");
req.setApplyCallbackUrl("test");
req.setCashierCallbackUrl("test");
req.setUnitCode("code");
req.setUnitName("code");
req.setTradeObjectID("test");
req.setTradeObjectName("test");
req.setBankNameto("test");
req.setBankCardto("test");
req.setBankCardUserto("test");
req.setSourceCode("newCost");
req.setSourceTypeCode("newCostType");
req.setApplyType("");
req.setUserAcctID("-1");
req.setUserAcctName("");
req.setPayDay(0);
req.setExpectPayTime(new Date());
req.setMoneyDetail(Lists.newArrayList());
req.setDetailKey("test");
req.setTypeName("");
req.setItemColumn("");
req.setCustomerCode("");
CwResult<String> string = cwApi.postApply(req);
log.info(string.toString());
}
@Test
void testRgex() {
String string = "\"{dsadsads\"\"\"dda}\"";
log.info(string.replaceAll(" /^['|\"](.*)['|\"]$/", ""));
}
@Test
void testFastJson() { void testFastJson() {
String date = "/Date(-62135596800000)/"; String date = "/Date(-62135596800000)/";
......
package com.bailuntec.api.bailuntec.oa;
import com.bailuntec.api.Application;
import com.bailuntec.api.amazon.api.JsonUtilByFsJson;
import com.bailuntec.api.bailuntec.oa.response.ExchangeRate;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;
import javax.annotation.Resource;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020/10/29 6:04 下午
*/
@ActiveProfiles(value = "test")
@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
class OaApiTest {
@Resource
OaApi oaApi;
@Test
void getAllUser() {
}
@Test
void getDeparmentList() {
}
@Test
void getExchangeRate() {
String exchangeRate = oaApi.getExchangeRate("CNY", "CNY");
log.info(exchangeRate);
ExchangeRate exchangeRate1 = JsonUtilByFsJson.jsonToBean(exchangeRate, ExchangeRate.class);
log.info(exchangeRate1.toString());
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment