Browse Source

调整

master
Yen 3 years ago
parent
commit
8301d4a0e1
  1. 13
      pom.xml
  2. 4
      src/main/java/com/qs/cost/common/conf/MainServerProperties.java
  3. 7
      src/main/java/com/qs/cost/common/dto/u8/U8RequestBo.java
  4. 13
      src/main/java/com/qs/cost/common/utils/HttpUtil.java
  5. 2
      src/main/java/com/qs/cost/module/controller/LzOrderController.java
  6. 61
      src/main/java/com/qs/cost/module/domain/GetListEntity.java
  7. 5
      src/main/java/com/qs/cost/module/domain/LzOrder.java
  8. 25
      src/main/java/com/qs/cost/module/service/JiaJinService.java
  9. 8
      src/main/resources/application-dev.yml
  10. 94
      src/test/java/boot/BootTest.java
  11. 2
      src/test/java/boot/PrintDemo.java
  12. 36
      src/test/java/boot/PrintDemo3.java

13
pom.xml

@ -107,6 +107,19 @@
<artifactId>hutool-all</artifactId> <artifactId>hutool-all</artifactId>
<version>5.6.2</version> <version>5.6.2</version>
</dependency> </dependency>
<!-- TEST -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>RELEASE</version>
<scope>test</scope>
</dependency>
<!-- Spring-test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies> </dependencies>
<!-- 构建工具 --> <!-- 构建工具 -->

4
src/main/java/com/qs/cost/common/conf/MainServerProperties.java

@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
@Getter @Getter
@Setter @Setter
@Component @Component
@ConfigurationProperties(prefix = "server.timetable") @ConfigurationProperties(prefix = "server")
public class MainServerProperties { public class MainServerProperties {
private String host; private String host;
@ -22,4 +22,6 @@ public class MainServerProperties {
private String year; private String year;
private String u8url;
} }

7
src/main/java/com/qs/cost/common/dto/u8/U8RequestBo.java

@ -59,13 +59,16 @@ public class U8RequestBo {
/** /**
* 是否回调0-1- * 是否回调0-1-
*/ */
private Integer callbackState; private String callbackState;
/** /**
* 回调地址callbackState=1时不能为空 * 回调地址callbackState=1时不能为空
*/ */
private String callbackHost; private String callbackHost;
/**
* 立马运行默认false
*/
private Boolean immediatelyRun;
} }

13
src/main/java/com/qs/cost/common/utils/HttpUtil.java

@ -11,6 +11,7 @@ import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpRequestBase; import org.apache.http.client.methods.HttpRequestBase;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
@ -19,6 +20,7 @@ import org.apache.http.util.EntityUtils;
import java.io.IOException; import java.io.IOException;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Map; import java.util.Map;
@ -70,14 +72,11 @@ public class HttpUtil {
} }
/** post的URL的参数map请求 */ /** post的URL的参数map请求 */
public static HttpResult post(String url, Map<String, Object> params) { public static HttpResult post(String url, String json) {
HttpPost httpPost = new HttpPost(url); HttpPost httpPost = new HttpPost(url);
ArrayList<NameValuePair> pairs = covertParams2NVPS(params); httpPost.setHeader("Accept","application/json");
try { httpPost.setHeader("Content-Type","application/json");
httpPost.setEntity(new UrlEncodedFormEntity(pairs, UTF8)); httpPost.setEntity(new StringEntity(json, StandardCharsets.UTF_8));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return getHttpResult(httpPost); return getHttpResult(httpPost);
} }

2
src/main/java/com/qs/cost/module/controller/LzOrderController.java

@ -2,6 +2,7 @@ package com.qs.cost.module.controller;
import com.qs.cost.common.dto.R; import com.qs.cost.common.dto.R;
import com.qs.cost.common.dto.u8.U8CallbackVo; import com.qs.cost.common.dto.u8.U8CallbackVo;
import com.qs.cost.common.utils.JsonUtil;
import com.qs.cost.module.service.JiaJinService; import com.qs.cost.module.service.JiaJinService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
@ -22,6 +23,7 @@ public class LzOrderController {
@PostMapping("/callback") @PostMapping("/callback")
public R callback(@RequestBody U8CallbackVo requestVo){ public R callback(@RequestBody U8CallbackVo requestVo){
System.out.println(JsonUtil.objectToJson(requestVo));
jiaJinService.callback(requestVo); jiaJinService.callback(requestVo);
return R.ok(); return R.ok();
} }

61
src/main/java/com/qs/cost/module/domain/GetListEntity.java

@ -15,7 +15,6 @@ public class GetListEntity {
private List<OrderEntity> list; private List<OrderEntity> list;
private OtherEntity other;
@JsonProperty("Status") @JsonProperty("Status")
private Boolean status; private Boolean status;
@ -36,23 +35,39 @@ public class GetListEntity {
@Data @Data
public static class ItemEntity{ public static class ItemEntity{
@JsonProperty("ProductId")
private String productId;
@JsonProperty("ProductSkuId")
private String skuId;
@JsonProperty("ERPCode") @JsonProperty("ERPCode")
private String invCode; private String invCode;
@JsonProperty("ProductCode")
private String productCode;
@JsonProperty("ProductName")
private String productName;
//数量 //数量
@JsonProperty("Qty") @JsonProperty("Qty")
private Integer qty; private Integer qty;
//总支付金额 //总支付金额
@JsonProperty("SellingPrice") @JsonProperty("SellingPrice")
private BigDecimal saleAmount; private String saleAmount;
//销售单价 //销售单价
@JsonProperty("SellingPrice") @JsonProperty("TaxPrice")
private BigDecimal salePrice; private String salePrice;
@JsonProperty("TaxPercent") @JsonProperty("TaxPercent")
private BigDecimal taxRate; private String taxRate;
@JsonProperty("TaxIncluded")
private Boolean taxIncluded;
} }
@ -85,20 +100,48 @@ public class GetListEntity {
private Object items; private Object items;
@JsonProperty("Other")
private OtherEntity other;
} }
@Data @Data
public static class OtherEntity{ public static class OtherEntity{
/**
@JsonProperty("sales_class") * 客户编号
*/
@JsonProperty("Name")
private String name;
/**
* 客户编号
*/
@JsonProperty("Code")
private String customCode;
/**
* 销售部门编号
*/
@JsonProperty("SalesClass")
private String salesClass; private String salesClass;
@JsonProperty("sales_man") /**
* 业务员编号
*/
@JsonProperty("SalesMan")
private String salesMan; private String salesMan;
@JsonProperty("sales_type") /**
* 销售类型
*/
@JsonProperty("SalesType")
private String salesType; private String salesType;
/**
* 税率
*/
@JsonProperty("TaxPercent")
private String taxPercent;
} }
/** /**

5
src/main/java/com/qs/cost/module/domain/LzOrder.java

@ -35,6 +35,9 @@ public class LzOrder implements Serializable {
@Length(max = 20,message = "订单编号长度不能超过20字") @Length(max = 20,message = "订单编号长度不能超过20字")
private String orderNo; private String orderNo;
/** 客户编号 */
private String customCode;
/** 订单金额 */ /** 订单金额 */
@NotNull(message = "订单金额不能为空") @NotNull(message = "订单金额不能为空")
private BigDecimal orderAmount; private BigDecimal orderAmount;
@ -80,7 +83,7 @@ public class LzOrder implements Serializable {
/** 检查item状态:0-正常;1-存货编码缺失;2-数据异常 */ /** 检查item状态:0-正常;1-存货编码缺失;2-数据异常 */
private Integer checkStatus; private Integer checkStatus;
private Integer callBackStatus; private Integer callbackStatus;
private String items; private String items;

25
src/main/java/com/qs/cost/module/service/JiaJinService.java

@ -69,7 +69,8 @@ public class JiaJinService {
LzResponseLog responseLog = new LzResponseLog(); LzResponseLog responseLog = new LzResponseLog();
responseLog.setJson(json); responseLog.setJson(json);
responseLogService.save(responseLog); responseLogService.save(responseLog);
GetListEntity.OtherEntity otherEntity = getListEntity.getOther(); GetListEntity.OtherEntity otherEntity = new GetListEntity.OtherEntity();
//GetListEntity.OtherEntity otherEntity = getListEntity.getOther();
//解析请求json,并保存订单到数据库 //解析请求json,并保存订单到数据库
for (GetListEntity.OrderEntity orderEntity : getListEntity.getList()) { for (GetListEntity.OrderEntity orderEntity : getListEntity.getList()) {
LzOrder lzOrder = new LzOrder(); LzOrder lzOrder = new LzOrder();
@ -83,7 +84,7 @@ public class JiaJinService {
lzOrder.setSaleType(otherEntity.getSalesType()); lzOrder.setSaleType(otherEntity.getSalesType());
lzOrder.setSaleDept(otherEntity.getSalesClass()); lzOrder.setSaleDept(otherEntity.getSalesClass());
lzOrder.setSaleMan(otherEntity.getSalesMan()); lzOrder.setSaleMan(otherEntity.getSalesMan());
String itemJson = orderEntity.getItems().toString(); String itemJson = JsonUtil.objectToJson(orderEntity.getItems());
lzOrder.setItems(itemJson); lzOrder.setItems(itemJson);
lzOrder.setCheckStatus(0); lzOrder.setCheckStatus(0);
List<GetListEntity.ItemEntity> items = JsonUtil.jsonToList(itemJson,GetListEntity.ItemEntity.class); List<GetListEntity.ItemEntity> items = JsonUtil.jsonToList(itemJson,GetListEntity.ItemEntity.class);
@ -123,7 +124,6 @@ public class JiaJinService {
lqw.eq(LzOrder::getStatus,0); lqw.eq(LzOrder::getStatus,0);
lqw.eq(LzOrder::getCheckStatus,0); lqw.eq(LzOrder::getCheckStatus,0);
List<LzOrder> orders = lzOrderService.list(lqw); List<LzOrder> orders = lzOrderService.list(lqw);
//DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
Date now = new Date(); Date now = new Date();
for (LzOrder order : orders) { for (LzOrder order : orders) {
String host = mainServerProperties.getHost(); String host = mainServerProperties.getHost();
@ -131,19 +131,18 @@ public class JiaJinService {
String book = mainServerProperties.getBook(); String book = mainServerProperties.getBook();
//封装jsonBody //封装jsonBody
List<U8API4SaleOrder.OrderDetail> details = new ArrayList<>(); List<U8API4SaleOrder.OrderDetail> details = new ArrayList<>();
String itemJson = order.getItems(); String itemJson = order.getItems();
List<GetListEntity.ItemEntity> items = JsonUtil.jsonToList(itemJson,GetListEntity.ItemEntity.class); List<GetListEntity.ItemEntity> items = JsonUtil.jsonToList(itemJson,GetListEntity.ItemEntity.class);
BigDecimal rate = BigDecimal.ONE; BigDecimal rate = BigDecimal.ONE;
for (GetListEntity.ItemEntity item : items) { for (GetListEntity.ItemEntity item : items) {
U8API4SaleOrder.OrderDetail orderDetail = new U8API4SaleOrder.OrderDetail(); U8API4SaleOrder.OrderDetail orderDetail = new U8API4SaleOrder.OrderDetail();
//拿子项税率 //拿子项税率
rate = item.getTaxRate(); rate = new BigDecimal(item.getTaxRate());
orderDetail.setInvCode(item.getInvCode()); orderDetail.setInvCode(item.getInvCode());
orderDetail.setTaxRate(item.getTaxRate()); orderDetail.setTaxRate(new BigDecimal(item.getTaxRate()));
orderDetail.setQuantity(new Long(item.getQty())); orderDetail.setQuantity(new Long(item.getQty()));
orderDetail.setHasRatePrice(item.getSalePrice()); orderDetail.setHasRatePrice(new BigDecimal(item.getSalePrice()));
orderDetail.setHasRateSumPrice(item.getSaleAmount()); orderDetail.setHasRateSumPrice(new BigDecimal(item.getSaleAmount()));
orderDetail.setPreShipmentsDate(now); orderDetail.setPreShipmentsDate(now);
orderDetail.setPreFinishedDate(now); orderDetail.setPreFinishedDate(now);
} }
@ -153,8 +152,7 @@ public class JiaJinService {
.orderDate(DateUtil.localDateTimeToDate(order.getOrderCreateTime())) .orderDate(DateUtil.localDateTimeToDate(order.getOrderCreateTime()))
.bizType("普通销售") .bizType("普通销售")
.saleType("01") .saleType("01")
//TODO 客户编码未定 .cusCode(order.getCustomCode())
.cusCode("")
.currencyType("人民币") .currencyType("人民币")
.depCode(order.getSaleDept()) .depCode(order.getSaleDept())
.createUser(order.getSaleMan()) .createUser(order.getSaleMan())
@ -175,10 +173,11 @@ public class JiaJinService {
requestBo.setJsonBody(jsonBody); requestBo.setJsonBody(jsonBody);
requestBo.setKeyId(""); requestBo.setKeyId("");
requestBo.setSettingRetryTimes(2); requestBo.setSettingRetryTimes(2);
requestBo.setCallbackState(1); requestBo.setCallbackState("1");
requestBo.setCallbackHost( host + "/lzOrder/callback"); requestBo.setCallbackHost( host + "/lzOrder/callback");
order.setStatus(1); //TODO 方便测试 order.setStatus(1);
order.setUpdateTime(LocalDateTime.now()); order.setUpdateTime(LocalDateTime.now());
HttpUtil.post(mainServerProperties.getU8url(),JsonUtil.objectToJson(requestBo));
} }
lzOrderService.updateBatchById(orders); lzOrderService.updateBatchById(orders);
} }
@ -205,7 +204,7 @@ public class JiaJinService {
Map<String, Object> paramMap = new HashMap<>(10); Map<String, Object> paramMap = new HashMap<>(10);
paramMap.put("orderNos",orderNo); paramMap.put("orderNos",orderNo);
paramMap.put("sign",sign); paramMap.put("sign",sign);
HttpResult httpResult = HttpUtil.post(url,paramMap); HttpResult httpResult = HttpUtil.post(url,JsonUtil.objectToJson(paramMap));
if(httpResult.getCode()==200){ if(httpResult.getCode()==200){
if(httpResult.getData().contains("true")){ if(httpResult.getData().contains("true")){
lzOrder.setCheckStatus(1); lzOrder.setCheckStatus(1);

8
src/main/resources/application-dev.yml

@ -1,12 +1,14 @@
#服务配置 #服务配置
server: server:
port: 7701 port: 7101
#本服务访问根地址,用于读取 #本服务访问根地址,用于回调
host: '127.0.0.1:7001' host: 'http://127.0.0.1:7101'
#帐套 #帐套
book: 999 book: 999
#年份 #年份
year: 2020 year: 2020
#U8平台
u8url: http://127.0.0.1:7100/api/jobRequest
#SpringBoot相关 #SpringBoot相关
spring: spring:
#数据源 #数据源

94
src/test/java/boot/BootTest.java

File diff suppressed because one or more lines are too long

2
src/test/java/boot/PrintDemo.java

@ -18,7 +18,7 @@ public class PrintDemo {
public static void main(String[] args) { public static void main(String[] args) {
String date = "2020/04/25-2022/07/26"; String date = "2020/07/25-2022/07/26";
String page = "1"; String page = "1";
String pageSize = "10"; String pageSize = "10";
String params = "date="+date+"&page="+page+"&page_size="+pageSize; String params = "date="+date+"&page="+page+"&page_size="+pageSize;

36
src/test/java/boot/PrintDemo3.java

@ -0,0 +1,36 @@
package boot;
import com.qs.cost.common.dto.HttpResult;
import com.qs.cost.common.utils.HttpUtil;
import com.qs.cost.common.utils.JsonUtil;
import com.qs.cost.common.utils.SecureUtil;
import java.util.HashMap;
import java.util.Map;
/**
* @author YenHex
* @since 2021/12/1
*/
public class PrintDemo3 {
public static final String lzyunli = "lzyunli";
public static void main(String[] args) {
String params = "orderNos=123";
System.out.println(params);
String signParam = lzyunli + params + lzyunli;
System.out.println("加密前:"+signParam);
String sign = SecureUtil.md5(signParam);
String url = "http://wsapp6.lzyunli.com/index.php/upOrder";
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("orderNos","123");
paramMap.put("sign",sign);
HttpResult httpResult = HttpUtil.post(url,JsonUtil.objectToJson(paramMap));
System.out.println(httpResult.getData());
}
}
Loading…
Cancel
Save