diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/sync/DirectConnectController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/sync/DirectConnectController.java new file mode 100644 index 0000000..d041728 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/sync/DirectConnectController.java @@ -0,0 +1,135 @@ +package com.glxp.sale.admin.controller.sync; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; +import com.glxp.sale.admin.annotation.AuthRuleAnnotation; +import com.glxp.sale.admin.entity.sync.PostOrderRequest; +import com.glxp.sale.admin.http.UHttpClient; +import com.glxp.sale.admin.req.sync.OrderFilterRequest; +import com.glxp.sale.common.res.BaseResponse; +import com.glxp.sale.common.util.ResultVOUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpHeaders; +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.RestController; + +import java.util.HashMap; +import java.util.Map; + + +//直连UDI自助平台接口 + +@RestController +public class DirectConnectController { + + + @Value("${SPMS_IP}") + private String spmsUrl; + @Value("${API_KEY}") + private String apiKey; + @Value("${API_SECRET}") + private String apiSecret; + + public HttpHeaders getHeaders() { + HttpHeaders headers = new HttpHeaders(); + headers.add("Content-Type", "application/json"); + headers.add("api_key", apiKey); + headers.add("secret_key", apiSecret); + return headers; + } + + + //单据验收 + @PostMapping("/sps/review/download/order/finsih") + public BaseResponse reviewOrder(@RequestBody OrderFilterRequest orderFilterRequest) { + String result = UHttpClient.postJson(spmsUrl + "/spms/inout/order/check/updateStatus", orderFilterRequest, getHeaders()); + BaseResponse response = + JSONObject.parseObject(result, new TypeReference>() { + }); + return response; + } + + //获取未验收的单据 + @GetMapping("/sps/review/download/order") + public BaseResponse downloadOrder(OrderFilterRequest orderFilterRequest) { + Map paramMap = new HashMap<>(16); + if (StrUtil.isNotEmpty(orderFilterRequest.getWmsUserId())) { + paramMap.put("wmsUserId", orderFilterRequest.getWmsUserId()); + } + if (StrUtil.isNotEmpty(orderFilterRequest.getWmsUserName())) { + paramMap.put("wmsUserName", orderFilterRequest.getWmsUserName()); + } + paramMap.put("orderId", orderFilterRequest.getOrderId()); + paramMap.put("action", orderFilterRequest.getAction()); + String response = UHttpClient.mipsGetHead(spmsUrl + "/udiwms/inout/order/download", paramMap, getHeaders()); + try { + BaseResponse data = JSONObject.parseObject(response, new TypeReference() { + }); + return data; + } catch (Exception e) { + e.printStackTrace(); + return ResultVOUtils.error(500, "连接失败!"); + } + } + + //获取未验收的单据详情 + @GetMapping("/sps/review/download/orderDetail") + public BaseResponse downloadOrderDetail(OrderFilterRequest orderFilterRequest) { + Map paramMap = new HashMap<>(16); + if (StrUtil.isNotEmpty(orderFilterRequest.getWmsUserId())) { + paramMap.put("wmsUserId", orderFilterRequest.getWmsUserId()); + } + if (StrUtil.isNotEmpty(orderFilterRequest.getWmsUserName())) { + paramMap.put("wmsUserName", orderFilterRequest.getWmsUserName()); + } + paramMap.put("orderId", orderFilterRequest.getOrderId()); + + String response = UHttpClient.mipsGetHead(spmsUrl + "/warehouse/inout/order/detail", paramMap, getHeaders()); + try { + BaseResponse data = JSONObject.parseObject(response, new TypeReference() { + }); + return data; + } catch (Exception e) { + e.printStackTrace(); + return ResultVOUtils.error(500, "连接失败!"); + } + } + + + //获取未验收的单据条码 + @GetMapping("/sps/review/download/codes") + public BaseResponse downloadCodes(OrderFilterRequest orderFilterRequest) { + Map paramMap = new HashMap<>(16); + if (StrUtil.isNotEmpty(orderFilterRequest.getWmsUserId())) { + paramMap.put("wmsUserId", orderFilterRequest.getWmsUserId()); + } + if (StrUtil.isNotEmpty(orderFilterRequest.getWmsUserName())) { + paramMap.put("wmsUserName", orderFilterRequest.getWmsUserName()); + } + paramMap.put("orderId", orderFilterRequest.getOrderId()); + String response = UHttpClient.mipsGetHead(spmsUrl + "/spms/inout/dlcode/findByOrderId", paramMap, getHeaders()); + try { + BaseResponse data = JSONObject.parseObject(response, new TypeReference() { + }); + return data; + } catch (Exception e) { + e.printStackTrace(); + return ResultVOUtils.error(500, "连接失败!"); + } + } + + //手持终端单据提交 + @PostMapping("/sps/pda/upload/orders") + public BaseResponse uploadOrder(@RequestBody PostOrderRequest postOrderRequest) { + String result = UHttpClient.postJson(spmsUrl + "/warehouse/inout/postOrders", postOrderRequest, getHeaders()); + BaseResponse response = + JSONObject.parseObject(result, new TypeReference>() { + }); + return response; + } + + +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/sync/SpsSyncDataController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/sync/SpsSyncDataController.java index 02973d6..602b41f 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/sync/SpsSyncDataController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/sync/SpsSyncDataController.java @@ -42,6 +42,12 @@ public class SpsSyncDataController { return filePath; } + @GetMapping("sps/sync/connect/test") + public BaseResponse connectTest(SpsSyncDataRequest spsSyncDataRequest) { + return ResultVOUtils.success("连接成功"); + } + + @GetMapping("sps/sync/basic") public BaseResponse getProductInfo(SpsSyncDataRequest spsSyncDataRequest) { SpsSyncDataResponse spsSyncDataResponse = (SpsSyncDataResponse) redisUtil.get(spsSyncDataRequest.getId() + ""); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/info/CompanyProductRelevanceEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/info/CompanyProductRelevanceEntity.java index 862742b..86e0783 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/info/CompanyProductRelevanceEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/info/CompanyProductRelevanceEntity.java @@ -22,4 +22,5 @@ public class CompanyProductRelevanceEntity { private String genKeyFk; private Integer gid; private String unitFk; + private String price; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/info/WarehouseBussinessTypeEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/info/WarehouseBussinessTypeEntity.java new file mode 100644 index 0000000..bc2901c --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/info/WarehouseBussinessTypeEntity.java @@ -0,0 +1,29 @@ +package com.glxp.sale.admin.entity.info; + +import lombok.Data; + +/** + * 仓库字典-单据类型关联表 + */ +@Data +public class WarehouseBussinessTypeEntity { + /** + * id + */ + private Integer id; + + /** + * 仓位码 + */ + private String code; + + /** + * 业务类型 + */ + private String action; + + /** + * 业务名称 + */ + private String name; +} \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/info/WarehouseUserEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/info/WarehouseUserEntity.java new file mode 100644 index 0000000..d48dcc1 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/info/WarehouseUserEntity.java @@ -0,0 +1,37 @@ +package com.glxp.sale.admin.entity.info; + +import lombok.Data; + +/** + * 仓库字典-用户关联表 + */ +@Data +public class WarehouseUserEntity { + /** + * id + */ + private Integer id; + + /** + * 仓位码 + */ + private String code; + + /** + * 用户id + */ + private Long userid; + + /** + * 用户名/登录账号 + */ + private String username; + + /** + * 是否是仓库主管 + */ + private boolean isDirector; + + private String employeeName; + +} \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/PostOrderRequest.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/PostOrderRequest.java index 4fb0247..7960644 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/PostOrderRequest.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/PostOrderRequest.java @@ -10,6 +10,11 @@ public class PostOrderRequest { int submitType;//0:提交,1:保存 String oldOrderId;//保存再编辑后再保存或提交,根据旧id删除旧数据。 private String customerId; + private Integer userId; + + private String wmsUserId; + private String wmsUserName; + public List getPostOrder() { return postOrders; @@ -40,6 +45,8 @@ public class PostOrderRequest { List codes; private String billType; private String orderId; + private boolean outChangeEnable; + private boolean preCheck; public String getStockIdFk() { return stockIdFk; @@ -82,6 +89,22 @@ public class PostOrderRequest { public void setCodes(List codes) { this.codes = codes; } + + public boolean isOutChangeEnable() { + return outChangeEnable; + } + + public void setOutChangeEnable(boolean outChangeEnable) { + this.outChangeEnable = outChangeEnable; + } + + public boolean isPreCheck() { + return preCheck; + } + + public void setPreCheck(boolean preCheck) { + this.preCheck = preCheck; + } } } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ThrInvWarehouseEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ThrInvWarehouseEntity.java index 58d69ee..3db7407 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ThrInvWarehouseEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ThrInvWarehouseEntity.java @@ -21,12 +21,16 @@ public class ThrInvWarehouseEntity { private String remark; /** - * 仓库等级 - */ + * 仓库等级 + */ private Integer level; /** - * 父级仓库编码 - */ + * 父级仓库编码 + */ private String pcode; + /** + * 第三方系统标识 + */ + private String thirdSysFk; } \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ThrProductsEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ThrProductsEntity.java index 414b813..c777115 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ThrProductsEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ThrProductsEntity.java @@ -27,6 +27,7 @@ public class ThrProductsEntity { private Date updateTime; private String supName; private boolean isChecked; + private String price; //添加字段 private String model; //型号 diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/UdiInfoEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/UdiInfoEntity.java index 7e185a3..97773c1 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/UdiInfoEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/UdiInfoEntity.java @@ -1,5 +1,6 @@ package com.glxp.sale.admin.entity.sync; +import cn.hutool.core.util.StrUtil; import lombok.Data; @Data @@ -42,8 +43,8 @@ public class UdiInfoEntity { private String scbssfbhscrq; private String scbssfbhsxrq; private String cpms; + private String originUuid; - private Integer gid; //本地生成信息 private String batchNo; private String produceDate; @@ -57,10 +58,11 @@ public class UdiInfoEntity { private String relId;//关联ID主键 private Integer status; private String supId; - - private Boolean isCheck; private String genKeyFk; - private String originUuid; + private Boolean isCheck; + private boolean allowNoBatch; + private boolean allowNoExpire; + private boolean allowNoProduct; public Integer getId() { return id; @@ -401,4 +403,18 @@ public class UdiInfoEntity { public void setProductType(Integer productType) { this.productType = productType; } + + + public static UdiInfoEntity initUdiInfoEntity(UdiInfoEntity udiInfoEntity) { + if (StrUtil.isNotEmpty(udiInfoEntity.getScbssfbhph()) && "否".equals(udiInfoEntity.getScbssfbhph())) { + udiInfoEntity.setAllowNoBatch(true); + } + if (StrUtil.isNotEmpty(udiInfoEntity.getScbssfbhscrq()) && "否".equals(udiInfoEntity.getScbssfbhscrq())) { + udiInfoEntity.setAllowNoProduct(true); + } + if (StrUtil.isNotEmpty(udiInfoEntity.getScbssfbhsxrq()) && "否".equals(udiInfoEntity.getScbssfbhsxrq())) { + udiInfoEntity.setAllowNoExpire(true); + } + return udiInfoEntity; + } } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/UdiRelevanceEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/UdiRelevanceEntity.java index 7d9ae95..8d957d7 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/UdiRelevanceEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/UdiRelevanceEntity.java @@ -36,8 +36,7 @@ public class UdiRelevanceEntity { private String originUuid; - private boolean allowNoBatch; - + private String price; public Integer getLockStatus() { if (lockStatus == null) diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/WarehouseEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/WarehouseEntity.java index b2b0106..1197047 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/WarehouseEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/WarehouseEntity.java @@ -24,6 +24,7 @@ public class WarehouseEntity { private String customerId; private String nameCode; + private Integer sCount; private String supId;//供应商ID private String supName; private String invStorageCode; @@ -39,7 +40,7 @@ public class WarehouseEntity { if (supId == null) { return null; - } else if (supId.equals("")) + }else if(supId.equals("")) return null; return supId; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/http/UHttpClient.java b/api-admin/src/main/java/com/glxp/sale/admin/http/UHttpClient.java index 6d60980..0b12ea7 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/http/UHttpClient.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/http/UHttpClient.java @@ -1,5 +1,6 @@ package com.glxp.sale.admin.http; +import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -59,7 +60,7 @@ public class UHttpClient { factory.setConnectTimeout(600000); factory.setReadTimeout(600000); RestTemplate restTemplate = new RestTemplate(factory); - String json = JSONObject.toJSON(object).toString(); + String json = JSONUtil.toJsonStr(object); logger.info(url + "\n" + json); HttpEntity httpEntity = new HttpEntity<>(json, headers); String response = restTemplate.postForObject(url, httpEntity, String.class); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/req/sync/OrderFilterRequest.java b/api-admin/src/main/java/com/glxp/sale/admin/req/sync/OrderFilterRequest.java index d0f2093..1048ff1 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/req/sync/OrderFilterRequest.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/req/sync/OrderFilterRequest.java @@ -24,4 +24,8 @@ public class OrderFilterRequest extends ListPageRequest { private String customerId; private String fromCorpId; private String orderId;//业务单据ID,手持终端上传上来的 + private String userName; + private String userId; + private String wmsUserId; + private String wmsUserName; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncDataResponse.java b/api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncDataResponse.java index 625d8ce..a437abf 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncDataResponse.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncDataResponse.java @@ -1,6 +1,9 @@ package com.glxp.sale.admin.res.sync; +import com.glxp.sale.admin.entity.auth.AuthAdmin; import com.glxp.sale.admin.entity.info.CompanyProductRelevanceEntity; +import com.glxp.sale.admin.entity.info.WarehouseBussinessTypeEntity; +import com.glxp.sale.admin.entity.info.WarehouseUserEntity; import com.glxp.sale.admin.entity.sync.*; import lombok.Data; @@ -19,4 +22,9 @@ public class SpsSyncDataResponse { List thrOrderEntities; List companyProductRelevanceEntities; List udiRelevanceEntities; + + + List warehouseBussinessTypeEntities; + List warehouseUserEntities; + List authAdminList; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/thread/DlAllDataService.java b/api-admin/src/main/java/com/glxp/sale/admin/thread/DlAllDataService.java index c1b3d15..af59774 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/thread/DlAllDataService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/thread/DlAllDataService.java @@ -84,7 +84,8 @@ public class DlAllDataService { || CollUtil.isNotEmpty(syncOrderResponse.getThrOrderEntities()) || CollUtil.isNotEmpty(syncOrderResponse.getThrProductsEntities()) || CollUtil.isNotEmpty(syncOrderResponse.getUdiInfoEntities()) - || CollUtil.isNotEmpty(syncOrderResponse.getUdiRelevanceEntities())) + || CollUtil.isNotEmpty(syncOrderResponse.getUdiRelevanceEntities()) + || CollUtil.isNotEmpty(syncOrderResponse.getAuthAdminList())) ) { if (downstream.getParamValue().equals("1")) { String key = "BaseAllData" + System.currentTimeMillis(); @@ -347,7 +348,7 @@ public class DlAllDataService { spSyncUdiResponse.setProductInfoEntityList(mProductInfoEntities); - if(CollUtil.isNotEmpty(spSyncUdiResponse.getProductInfoEntityList()) || CollUtil.isNotEmpty(spSyncUdiResponse.getUdiCompanyEntities())){ + if (CollUtil.isNotEmpty(spSyncUdiResponse.getProductInfoEntityList()) || CollUtil.isNotEmpty(spSyncUdiResponse.getUdiCompanyEntities())) { String key = "UdiPrdoucts" + System.currentTimeMillis(); String datas = JSON.toJSON(spSyncUdiResponse).toString(); if (downstream.getParamValue().equals("1")) { diff --git a/pom.xml b/pom.xml index 6413afd..5f1b1b9 100644 --- a/pom.xml +++ b/pom.xml @@ -36,6 +36,7 @@ ${version} + com.alibaba