From d7f1877225f3ce28466b291d8197516987e91d22 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期四, 30 五月 2024 15:39:47 +0800
Subject: [PATCH] erp接口开发完成
---
src/main/resources/mapper/OrderMapper.xml | 1
src/main/java/com/zy/asrs/entity/result/StockVo.java | 6
src/main/java/com/zy/asrs/controller/OpenController.java | 9
src/main/resources/mapper/LocDetlMapper.xml | 4
src/main/java/com/zy/common/constant/MesConstant.java | 4
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java | 251 ++++++++++++++++++++++++++---------------
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 65 +++-------
src/main/resources/application.yml | 2
8 files changed, 190 insertions(+), 152 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index a45b4e6..a3bf4d4 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -1,17 +1,18 @@
package com.zy.asrs.controller;
import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
import com.core.annotations.AppAuth;
import com.core.common.*;
import com.core.exception.CoolException;
-import com.zy.asrs.entity.param.*;
+import com.zy.asrs.entity.param.MatSyncParam;
+import com.zy.asrs.entity.param.OpenOrderCompleteParam;
+import com.zy.asrs.entity.param.OpenOrderPakinParam;
+import com.zy.asrs.entity.param.OpenOrderPakoutParam;
import com.zy.asrs.service.OpenService;
import com.zy.common.model.DetlDto;
import com.zy.common.web.BaseController;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
@@ -103,7 +104,7 @@
/**
* 搴撳瓨缁熻
*/
- @RequestMapping("/stock/default/v1")
+ @PostMapping("/stock/default/v1")
public R queryStock(@RequestHeader(required = false) String appkey,
HttpServletRequest request) {
auth(appkey, null, request);
diff --git a/src/main/java/com/zy/asrs/entity/result/StockVo.java b/src/main/java/com/zy/asrs/entity/result/StockVo.java
index b4d99ca..8114c7f 100644
--- a/src/main/java/com/zy/asrs/entity/result/StockVo.java
+++ b/src/main/java/com/zy/asrs/entity/result/StockVo.java
@@ -10,10 +10,12 @@
private String matnr;
+ private String maktx;
+
+ private String specs;
+
private String batch;
private Double count;
-
- private String memo;
}
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index f4ed538..e54969f 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -1,7 +1,5 @@
package com.zy.asrs.service.impl;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.common.DateUtils;
@@ -9,17 +7,17 @@
import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.*;
+import com.zy.asrs.entity.param.MatSyncParam;
+import com.zy.asrs.entity.param.OpenOrderPakinParam;
+import com.zy.asrs.entity.param.OpenOrderPakoutParam;
+import com.zy.asrs.entity.param.PackParam;
import com.zy.asrs.entity.result.InOutCountDto;
-import com.zy.asrs.entity.result.OpenOrderCompeteResult;
import com.zy.asrs.entity.result.StockVo;
import com.zy.asrs.mapper.TagMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.MatUtils;
-import com.zy.asrs.utils.Utils;
import com.zy.common.model.DetlDto;
import com.zy.common.utils.NodeUtils;
-import com.zy.common.utils.Synchro;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -485,49 +483,17 @@
// 鍒嗙被
Long tagId;
// 涓�绾у垎绫�
- if (!Cools.isEmpty(matParam.getGroupCode()) && !Cools.isEmpty(matParam.getGroupName())) {
- Tag priTag = tagService.selectByName(matParam.getGroupCode(), 2);
- if (priTag == null) {
- Tag top = tagService.getTop();
- NodeUtils nodeUtils = new NodeUtils();
- nodeUtils.executePath(top.getId());
- priTag = new Tag(
- null, // 缂栧彿
- matParam.getGroupCode(), // 鍚嶇О
- top.getId(), // 鐖剁骇
- top.getName(), // 鐖剁骇鍚嶇О
- nodeUtils.path.toString(), // 鍏宠仈璺緞
- nodeUtils.pathName.toString(), // 鍏宠仈璺緞鍚�
- 0, // 绫诲瀷
- null, // 璐熻矗浜�
- null, // 鍥剧墖
- null, // 绠�瑕佹弿杩�
- null, // 鏁伴噺
- 2, // 绛夌骇
- null, // 鎺掑簭
- 1, // 鐘舵��
- now, // 娣诲姞鏃堕棿
- null, // 娣诲姞浜哄憳
- now, // 淇敼鏃堕棿
- null, // 淇敼浜哄憳
- null // 澶囨敞
- );
- if (tagMapper.insert(priTag) == 0) {
- throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
- }
- }
+ if (!Cools.isEmpty(matParam.getGroupName())) {
// 浜岀骇鍒嗙被
Tag secTag = tagService.selectByName(matParam.getGroupName(), 3);
if (secTag == null) {
- NodeUtils nodeUtils = new NodeUtils();
- nodeUtils.executePath(priTag.getId());
secTag = new Tag(
null, // 缂栧彿
matParam.getGroupName(), // 鍚嶇О
- priTag.getId(), // 鐖剁骇
- priTag.getName(), // 鐖剁骇鍚嶇О
- nodeUtils.path.toString(), // 鍏宠仈璺緞
- nodeUtils.pathName.toString(), // 鍏宠仈璺緞鍚�
+ 10010L, // 鐖剁骇
+ "鍏ㄩ儴", // 鐖剁骇鍚嶇О
+ "10009,10010", // 鍏宠仈璺緞
+ "鍏ㄩ儴,鍏ㄩ儴", // 鍏宠仈璺緞鍚�
0, // 绫诲瀷
null, // 璐熻矗浜�
null, // 鍥剧墖
@@ -545,17 +511,20 @@
if (tagMapper.insert(secTag) == 0) {
throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
}
+ Tag tag = tagService.selectByName(matParam.getGroupName(), 3);
+ tagId = tag.getId();
+ } else {
+ tagId = secTag.getId();
}
- tagId = secTag.getId();
} else {
- tagId = tagService.getTop().getId();
+ throw new CoolException("鍟嗗搧鍒嗙被涓嶈兘涓虹┖");
+// tagId = tagService.getTop().getId();
}
mat.sync(matParam);
// mat.setMatnr(para);
// mat.setMaktx(param.getMaktx());
// mat.setSpecs(param.getSpecs());
// mat.setModel(param.getModel());
-
mat.setTagId(tagId);
mat.setStatus(1);
mat.setCreateTime(now);
@@ -566,7 +535,9 @@
log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr());
}
} else {
- mat.sync(param);
+// mat.sync(param);
+ mat.setMaktx(matParam.getMaktx());
+ mat.setSpecs(matParam.getSpecs());
if (!matService.update(mat, new EntityWrapper<Mat>().eq("matnr", matParam.getMatnr()))) {
throw new CoolException("鏇存柊宸插瓨鍦ㄥ晢鍝佷俊鎭け璐ワ紝璇疯仈绯荤鐞嗗憳");
}
diff --git a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
index 9e5475b..f045f22 100644
--- a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -1,9 +1,8 @@
package com.zy.asrs.task.handler;
import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
-import com.core.common.Cools;
-import com.core.common.DateUtils;
import com.core.exception.CoolException;
import com.zy.asrs.entity.DocType;
import com.zy.asrs.entity.Order;
@@ -15,17 +14,18 @@
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.common.constant.MesConstant;
-import com.zy.common.model.MesPakinParam;
-import com.zy.common.model.MesPakoutParam;
import com.zy.common.utils.HttpHandler;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.Date;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
/**
* Created by vincent on 2020/7/7
@@ -55,104 +55,165 @@
return SUCCESS;
}
List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
+
+ // 鑾峰彇璇锋眰澶�
+ Map<String, Object> headers = getHeaders();
+
+ // 鏋勯�犺姹備綋
+ String body = getBody(orderDetls, order);
+
// 鍏ュ簱瀹屾垚涓婃姤
- if (docType.getPakin() == 1) {
- JSONObject orderJson = new JSONObject();
- orderJson.put("orderNo",order.getOrderNo());
- String response = "";
- boolean success = false;
- try {
- response = new HttpHandler.Builder()
- .setUri(MesConstant.URL)
- .setPath(MesConstant.PAKIN_URL)
- .setJson(orderJson.toJSONString())
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- if (jsonObject.getInteger("code").equals(200)) {
- success = true;
- // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
- if (!orderService.updateSettle(order.getId(), 6L, null)) {
- throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
- }
- } else {
- log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL+MesConstant.PAKIN_URL, JSON.toJSONString(orderJson), response);
- throw new CoolException("涓婃姤mes绯荤粺澶辫触");
+ String response = "";
+ boolean success = false;
+ try {
+ response = new HttpHandler.Builder()
+ .setUri(MesConstant.URL)
+ .setPath(MesConstant.PAKIN_URL)
+ .setHeaders(headers)
+ .setJson(body)
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ JSONObject std_data = jsonObject.getJSONObject("std_data");
+ JSONObject execution = std_data.getJSONObject("execution");
+ String code = execution.getString("code");
+ JSONObject std_data1 = jsonObject.getJSONObject("parameter");
+ JSONObject execution1 = std_data1.getJSONObject("response_result");
+ String status = execution1.getString("Status");
+
+ if ("0".equals(code) && "0".equals(status)) {
+ success = true;
+ // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
+ if (!orderService.updateSettle(order.getId(), 6L, null)) {
+ throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
}
- } catch (Exception e) {
- log.error("fail", e);
+ } else {
+ log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL + MesConstant.PAKIN_URL, body, response);
+ throw new CoolException("涓婃姤mes绯荤粺澶辫触");
+ }
+ } catch (Exception e) {
+ log.error("fail", e);
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg(e.getMessage());
- } finally {
- try {
- // 淇濆瓨鎺ュ彛鏃ュ織
- apiLogService.save(
- "鍏ュ簱涓婃姤",
- MesConstant.URL + MesConstant.PAKIN_URL,
- null,
- "127.0.0.1",
- JSON.toJSONString(orderJson),
- response,
- success
- );
- } catch (Exception e) { log.error("", e); }
- }
- }
- // 鍑哄簱瀹屾垚涓婃姤
- if (docType.getPakout() == 1) {
- MesPakoutParam pakoutParam = new MesPakoutParam();
- pakoutParam.setTag(!order.getDocType$().equalsIgnoreCase("鎵嬪姩鍑哄簱鍗�"));
- pakoutParam.setPakoutTime(DateUtils.convert(order.getUpdateTime()));
- pakoutParam.setLgortFrom("5006");
- pakoutParam.setLgortTo("1111");
- if (!pakoutParam.isTag()) {
- pakoutParam.setKunnr("C1000");
- }
- pakoutParam.setOrderNo(order.getOrderNo());
- for (OrderDetl orderDetl : orderDetls) {
- String serial = Cools.isEmpty(orderDetl.getBatch()) ? "" : orderDetl.getBatch();
- pakoutParam.getList().add(new MesPakoutParam.Detl(orderDetl.getMatnr() + (Cools.isEmpty(serial) ? "" : "-" + serial), orderDetl.getAnfme()));
- }
- String response = "";
- boolean success = false;
+ return FAIL.setMsg(e.getMessage());
+ } finally {
try {
- response = new HttpHandler.Builder()
- .setUri(MesConstant.URL)
- .setPath(MesConstant.PAKOUT_URL)
- .setJson(JSON.toJSONString(pakoutParam))
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- if (jsonObject.getInteger("code").equals(200)) {
- success = true;
- // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
- if (!orderService.updateSettle(order.getId(), 6L, null)) {
- throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
- }
- } else {
- log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL+MesConstant.PAKOUT_URL, JSON.toJSONString(pakoutParam), response);
- throw new CoolException("涓婃姤mes绯荤粺澶辫触");
- }
+ // 淇濆瓨鎺ュ彛鏃ュ織
+ apiLogService.save(
+ docType.getPakin() == 1 ?"鍏ュ簱涓婃姤" : "鍑哄簱涓婃姤",
+ MesConstant.URL + MesConstant.PAKIN_URL,
+ null,
+ "127.0.0.1",
+ JSON.toJSONString(body),
+ response,
+ success
+ );
} catch (Exception e) {
- log.error("fail", e);
-// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg(e.getMessage());
- } finally {
- try {
- // 淇濆瓨鎺ュ彛鏃ュ織
- apiLogService.save(
- "鎴愬搧搴撳嚭搴撲笂鎶�",
- MesConstant.URL + MesConstant.PAKOUT_URL,
- null,
- "127.0.0.1",
- JSON.toJSONString(pakoutParam),
- response,
- success
- );
- } catch (Exception e) { log.error("", e); }
+ log.error("", e);
}
}
return SUCCESS;
}
+ private String getBody(List<OrderDetl> orderDetls, Order order) {
+
+ JSONObject orderJson = new JSONObject();
+ JSONObject orderJson1 = new JSONObject();
+ JSONObject orderJson2 = new JSONObject();
+ JSONObject orderJson3 = new JSONObject();
+
+ JSONArray jsonArray = new JSONArray();
+ for(OrderDetl orderDetl:orderDetls) {
+ Map<String,Object> map = new HashMap<>();
+ map.put("matnr",orderDetl.getMatnr());
+ map.put("anfme",orderDetl.getAnfme());
+ jsonArray.add(map);
+ }
+
+ orderJson3.put("orderNo",order.getOrderNo());
+ orderJson3.put("TypeKey",order.getDocType$());
+ orderJson3.put("matList",jsonArray);
+ orderJson2.put("importData",orderJson3);
+ orderJson1.put("parameter",orderJson2);
+ orderJson.put("std_data",orderJson1);
+ return orderJson.toJSONString();
+ }
+
+ Map<String, Object> getHeaders(){
+ JSONObject digiHost = new JSONObject();
+ digiHost.put("prod","XThirdParty");
+ digiHost.put("ver","1.0");
+ digiHost.put("ip","192.168.10.160");
+ digiHost.put("id","XWMS");
+ digiHost.put("timezone","+8");
+ digiHost.put("timestamp",new Date().getTime());
+ digiHost.put("acct","dcms");
+
+ JSONObject digiService = new JSONObject();
+ digiService.put("prod","E10");
+ digiService.put("name","XCommon.ImportData");
+ digiService.put("ip","192.168.10.160");
+ digiService.put("id","SW_TEST_External");
+
+ String key = digiHost.toJSONString() + digiService.toJSONString();
+ String keyMd5 = DigestUtils.md5Hex(key);
+
+
+ Map<String,Object> headers = new HashMap<>();
+ headers.put("digi-type","sync ");
+ headers.put("digi-protocol","raw");
+ headers.put("digi-host",digiHost.toJSONString());
+ headers.put("digi-service",digiService.toJSONString());
+ headers.put("digi-key",keyMd5);
+ headers.put("digi-datakey"," XCommon.ImportData");
+
+ return headers;
+ }
+
+ public static void main(String[] args) {
+
+ String msg = "{\n" +
+ " \"std_data\": {\n" +
+ " \"execution\": {\n" +
+ " \"code\": \"0\",\n" +
+ " \"sql_code\": \"\",\n" +
+ " \"description\": \"鎵ц鎴愬姛\",\n" +
+ " \"token_id\": \"e7b4b7d668ec41fa83f643eb1b322959\"\n" +
+ " },\n" +
+ " \"parameter\": {\n" +
+ " \"response_result\": {\n" +
+ " \"Status\": \"0\",\n" +
+ " \"Message\": \"鎿嶄綔鎴愬姛锛乗",\n" +
+ " \"DOC_NO\": \"\"\n" +
+ " }\n" +
+ " }\n" +
+ " }\n" +
+ "}";
+ JSONObject jsonObject = JSON.parseObject(msg);
+ JSONObject std_data = jsonObject.getJSONObject("std_data");
+ JSONObject execution = std_data.getJSONObject("execution");
+ System.out.println(jsonObject.get("std_data"));
+ System.out.println(execution.getString("code"));
+
+// JSONObject orderJson = new JSONObject();
+// JSONObject orderJson1 = new JSONObject();
+// JSONObject orderJson2 = new JSONObject();
+// JSONObject orderJson3 = new JSONObject();
+//
+// JSONArray jsonArray = new JSONArray();
+// Map<String,Object> map = new HashMap<>();
+// map.put("matnr","301080001");
+// map.put("anfme","23456");
+// JSONObject jsonObject = new JSONObject();
+// jsonObject.put("matnr","301080001");
+// jsonObject.put("anfme","23456");
+// jsonArray.add(map);
+//
+// orderJson3.put("orderNo","3600-201702010001");
+// orderJson3.put("TypeKey","PURCHASE_ARRIVAL");
+// orderJson3.put("matList",jsonArray);
+// orderJson2.put("importData",orderJson3);
+// orderJson1.put("parameter",orderJson2);
+// orderJson.put("std_data",orderJson1);
+// System.out.println(orderJson.toJSONString());
+ }
}
diff --git a/src/main/java/com/zy/common/constant/MesConstant.java b/src/main/java/com/zy/common/constant/MesConstant.java
index eb34e04..368f46e 100644
--- a/src/main/java/com/zy/common/constant/MesConstant.java
+++ b/src/main/java/com/zy/common/constant/MesConstant.java
@@ -5,11 +5,11 @@
*/
public class MesConstant {
- public static final String URL = "http://192.168.99.130:80";
+ public static final String URL = "http://192.186.5.235:9990";
public static final String PACK_DOWN_URL = "mes/api/zy/v1/packDown/sendList";
- public static final String PAKIN_URL = "mes/api/zy/v1/warehouse/sendList";
+ public static final String PAKIN_URL = "/CROSS/RESTful";
public static final String PAKOUT_URL = "wmsFinprd/api/zy/v1/packOut/sendList";
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 0ea675c..6bc75ce 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -53,7 +53,7 @@
#erp
erp:
- enable: false
+ enable: true
#License鐩稿叧閰嶇疆
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index 03b3a85..ffd2182 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -300,11 +300,13 @@
<select id="queryStockTotal" resultType="com.zy.asrs.entity.result.StockVo">
select
matnr,
+ maktx,
+ specs,
batch,
count(anfme) as count
from asr_loc_detl
where 1=1
- group by matnr,batch
+ group by matnr,maktx,specs,batch
</select>
<select id="sum" resultType="java.lang.Integer">
SELECT SUM(anfme) FROM asr_loc_detl
diff --git a/src/main/resources/mapper/OrderMapper.xml b/src/main/resources/mapper/OrderMapper.xml
index 68b3f59..50c9d9f 100644
--- a/src/main/resources/mapper/OrderMapper.xml
+++ b/src/main/resources/mapper/OrderMapper.xml
@@ -65,6 +65,7 @@
where 1=1
and settle = 4
and status = 1
+ and doc_type not in(18,19)
order by create_time asc
</select>
--
Gitblit v1.9.1