From 83c548d3dba59aaed9b52b5d413c6912a87d2efc Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期日, 16 六月 2024 15:50:14 +0800
Subject: [PATCH] #
---
zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/GenerateOrderMatParam.java | 12 ++
zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkLogHandler.java | 94 ++++++++++++++++++
zy-asrs-wms/src/main/resources/application.yml | 7 +
zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/service/impl/ApiServiceImpl.java | 4
zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/DetlDto.java | 7 +
zy-asrs-wms/src/main/webapp/static/js/order/order.js | 2
zy-asrs-openapi/src/main/java/com/zy/asrs/openapi/controller/ApiController.java | 4
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/OrderDetl.java | 12 +-
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java | 6 +
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/TestController.java | 136 +++++++++++++++++++++++++++
zy-asrs-common/src/main/java/com/zy/asrs/common/utils/Utils.java | 14 ++
11 files changed, 287 insertions(+), 11 deletions(-)
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/DetlDto.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/DetlDto.java
index d852ca0..d3e7a18 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/DetlDto.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/DetlDto.java
@@ -25,6 +25,13 @@
private String memo;
+ private String warehouse;//浠撳簱鍙�
+
+ private String origin;//鏉ユ簮鍗曞彿
+
+ private String originNo;//鏉ユ簮搴忓彿
+
+
public DetlDto() {
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/GenerateOrderMatParam.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/GenerateOrderMatParam.java
index 3ecb3ea..94e0b05 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/GenerateOrderMatParam.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/GenerateOrderMatParam.java
@@ -14,4 +14,16 @@
//鏁伴噺
private Double anfme;
+ //鍗曚綅
+ private String unit;
+
+ //浠撳簱鍙�
+ private String warehouse;
+
+ //鏉ユ簮鍗曞彿
+ private String origin;
+
+ //鏉ユ簮搴忓彿
+ private String originNo;
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/service/impl/ApiServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/service/impl/ApiServiceImpl.java
index 324e562..13b0042 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/service/impl/ApiServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/service/impl/ApiServiceImpl.java
@@ -99,6 +99,10 @@
orderDetl.sync(mat);
orderDetl.setBatch(matParam.getBatch());
orderDetl.setAnfme(matParam.getAnfme());
+ orderDetl.setUnit(matParam.getUnit());
+ orderDetl.setThreeCode(matParam.getWarehouse());//浠撳簱鍙�
+ orderDetl.setSupp(matParam.getOrigin());//鏉ユ簮鍗曞彿
+ orderDetl.setSuppCode(matParam.getOriginNo());//鏉ユ簮搴忓彿
orderDetl.setOrderId(order.getId());
orderDetl.setOrderNo(order.getOrderNo());
orderDetl.setCreateBy(9527L);
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/utils/Utils.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/utils/Utils.java
index a0f7a1e..184d87c 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/utils/Utils.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/utils/Utils.java
@@ -1,5 +1,7 @@
package com.zy.asrs.common.utils;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.serializer.SerializerFeature;
import com.zy.asrs.common.wms.service.LocDirectionService;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.SpringUtils;
@@ -7,6 +9,8 @@
import java.security.SecureRandom;
import java.text.DecimalFormat;
import java.util.ArrayList;
+import java.util.Base64;
+import java.util.LinkedHashMap;
import java.util.List;
/**
@@ -141,4 +145,14 @@
return result;
}
+ //蹇靛垵ERP鏁版嵁鍔犲瘑绠楁硶
+ public static String ncErpDataEncode(LinkedHashMap<String, Object> param) {
+ String jsonString = JSON.toJSONString(param, SerializerFeature.DisableCircularReferenceDetect);
+ jsonString += "Digi";
+
+ String baseCode = Base64.getEncoder().encodeToString(jsonString.getBytes());
+ String encode = baseCode.replace("/", "{-----------------------------}");
+ return encode;
+ }
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/OrderDetl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/OrderDetl.java
index 78cb906..b467ba5 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/OrderDetl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/OrderDetl.java
@@ -184,21 +184,21 @@
private Double volume;
/**
- * 涓夋柟缂栫爜
+ * 浠撳簱鍙�
*/
- @ApiModelProperty(value= "涓夋柟缂栫爜")
+ @ApiModelProperty(value= "浠撳簱鍙�")
private String threeCode;
/**
- * 渚涘簲鍟�
+ * 鏉ユ簮鍗曞彿
*/
- @ApiModelProperty(value= "渚涘簲鍟�")
+ @ApiModelProperty(value= "鏉ユ簮鍗曞彿")
private String supp;
/**
- * 渚涘簲鍟嗙紪鐮�
+ * 鏉ユ簮搴忓彿
*/
- @ApiModelProperty(value= "渚涘簲鍟嗙紪鐮�")
+ @ApiModelProperty(value= "鏉ユ簮搴忓彿")
private String suppCode;
/**
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java
index 97ad4f4..d512408 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java
@@ -124,6 +124,9 @@
}
DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
+ detlDto.setWarehouse(orderDetl.getThreeCode());//鏉ユ簮浠撳簱
+ detlDto.setOrigin(orderDetl.getSupp());//鏉ユ簮鍗曞彿
+ detlDto.setOriginNo(orderDetl.getSuppCode());//鏉ユ簮搴忓彿
if (DetlDto.has(detlDtos, detlDto)) {
DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
assert one != null;
@@ -144,6 +147,9 @@
waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮�
waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵��
waitPakin.setAnfme(detlDto.getAnfme()); // 鏁伴噺
+ waitPakin.setThreeCode(detlDto.getWarehouse()); // 浠撳簱
+ waitPakin.setSupp(detlDto.getOrigin()); // 鏉ユ簮鍗曞彿
+ waitPakin.setSuppCode(detlDto.getOriginNo()); // 鏉ユ簮搴忓彿
waitPakin.setStatus("Y"); // 鐘舵��
waitPakin.setAppeUser(userId);
waitPakin.setAppeTime(now);
diff --git a/zy-asrs-openapi/src/main/java/com/zy/asrs/openapi/controller/ApiController.java b/zy-asrs-openapi/src/main/java/com/zy/asrs/openapi/controller/ApiController.java
index da21b6e..4f0fd6c 100644
--- a/zy-asrs-openapi/src/main/java/com/zy/asrs/openapi/controller/ApiController.java
+++ b/zy-asrs-openapi/src/main/java/com/zy/asrs/openapi/controller/ApiController.java
@@ -188,6 +188,10 @@
mat.setMatnr(matParam.getMatnr());
mat.setBatch(matParam.getBatch());
mat.setAnfme(matParam.getCount());
+ mat.setUnit(matParam.getUnit());
+ mat.setWarehouse(matParam.getWarehouse());
+ mat.setOrigin(matParam.getOrigin());
+ mat.setOriginNo(matParam.getOriginNo());
mats.add(mat);
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/TestController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/TestController.java
new file mode 100644
index 0000000..03c6a78
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/TestController.java
@@ -0,0 +1,136 @@
+package com.zy.asrs.wms.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.asrs.common.sys.entity.OperateLog;
+import com.zy.asrs.common.sys.service.OperateLogService;
+import com.zy.asrs.common.utils.HttpHandler;
+import com.zy.asrs.common.utils.Utils;
+import com.zy.asrs.common.web.BaseController;
+import com.zy.asrs.common.wms.entity.Order;
+import com.zy.asrs.common.wms.entity.WrkDetl;
+import com.zy.asrs.common.wms.entity.WrkMast;
+import com.zy.asrs.common.wms.service.*;
+import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.framework.common.R;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+@RestController
+public class TestController extends BaseController {
+
+ @Autowired
+ private WrkMastService wrkMastService;
+ @Autowired
+ private WrkDetlService wrkDetlService;
+ @Autowired
+ private OrderService orderService;
+ @Autowired
+ private OperateLogService operateLogService;
+
+ @Value("${erp.url}")
+ private String ERP_URL;
+
+ @Value("${erp.report}")
+ private String ERP_REPORT;
+
+ @Value("${erp.login}")
+ private String ERP_LOGIN;
+
+ @GetMapping("/test")
+ public R test(@RequestParam Integer wrkNo) {
+ WrkMast wrkMast = wrkMastService.getOne(new LambdaQueryWrapper<WrkMast>().eq(WrkMast::getWrkNo, wrkNo));
+ Long hostId = wrkMast.getHostId();
+
+ List<WrkDetl> wrkDetls = wrkDetlService.list(new LambdaQueryWrapper<WrkDetl>().eq(WrkDetl::getWrkNo, wrkMast.getWrkNo()).eq(WrkDetl::getHostId, hostId));
+ // 鍖哄垎璁㈠崟浠诲姟
+ List<WrkDetl> wrkDetlsKeyOrder = new ArrayList<>();
+ if (!Cools.isEmpty(wrkDetls)) {
+ Iterator<WrkDetl> iterator = wrkDetls.iterator();
+ while (iterator.hasNext()) {
+ WrkDetl wrkDetl = iterator.next();
+ if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
+ wrkDetlsKeyOrder.add(wrkDetl);
+ iterator.remove();
+ }
+ }
+ }
+
+ if (wrkMast.getIoType() == 1 || wrkMast.getIoType() == 53 || wrkMast.getWrkSts() == 200) {
+ //涓婃姤蹇靛垵ERP 銆� 涓婃姤涓夋柟骞冲彴 銆�
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
+ String nowFormat = dateFormat.format(new Date());
+
+ ArrayList<LinkedHashMap<String, Object>> mats = new ArrayList<>();
+ String orderNo = "";
+ for (WrkDetl wrkDetl : wrkDetls) {
+ orderNo = wrkDetl.getOrderNo();
+ LinkedHashMap<String, Object> mat = new LinkedHashMap<>();
+ mat.put("GoodsCode", wrkDetl.getMatnr());
+ mat.put("Num", wrkDetl.getAnfme());
+ if (!Cools.isEmpty(wrkDetl.getBatch())) {
+ mat.put("BatchNo", wrkDetl.getBatch());
+ }
+ if (!Cools.isEmpty(wrkDetl.getThreeCode())) {
+ mat.put("DepotName", wrkDetl.getThreeCode());
+ }
+ if (!Cools.isEmpty(wrkDetl.getSupp())) {
+ mat.put("FromDanCode", wrkDetl.getSupp());
+ }
+ if (!Cools.isEmpty(wrkDetl.getSuppCode())) {
+ mat.put("FromNo", wrkDetl.getSuppCode());
+ }
+ mats.add(mat);
+ }
+ Order order = orderService.selectByNo(orderNo, hostId);
+ if (order != null) {
+ LinkedHashMap<String, Object> param = new LinkedHashMap<>();
+ param.put("Login", ERP_LOGIN);
+ param.put("DanType", order.getDocType$());
+ param.put("Date", nowFormat);
+ param.put("FromDanCode", orderNo);
+ param.put("Data", mats);
+
+ String response = null;
+ try {
+ response = new HttpHandler.Builder()
+ .setUri(ERP_URL)
+ .setPath(ERP_REPORT + Utils.ncErpDataEncode(param))
+ .build()
+ .doGet();
+ JSONObject jsonObject = JSON.parseObject(response);
+ JSONArray result = jsonObject.getJSONArray("result");
+ Object object = result.get(0);
+ JSONObject data = JSON.parseObject(object.toString());
+ if (data.getBoolean("State")) {
+ //涓婃姤鎴愬姛
+ } else {
+ //涓婃姤澶辫触
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ //璁板綍涓婃姤鏁版嵁
+ OperateLog operateLog = new OperateLog();
+ operateLog.setAction("涓婃姤ERP," + ERP_URL + ERP_REPORT);
+ operateLog.setRequest(Utils.ncErpDataEncode(param));
+ operateLog.setResponse(response);
+ operateLog.setCreateTime(new Date());
+ operateLog.setSystem("WMS");
+ operateLogService.save(operateLog);
+ }
+ }
+ }
+
+ return R.ok();
+ }
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkLogHandler.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkLogHandler.java
index 5a35d84..5ef3ebb 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkLogHandler.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkLogHandler.java
@@ -1,7 +1,15 @@
package com.zy.asrs.wms.task.handler;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.asrs.common.sys.entity.OperateLog;
+import com.zy.asrs.common.sys.service.OperateLogService;
+import com.zy.asrs.common.utils.HttpHandler;
+import com.zy.asrs.common.utils.Utils;
+import com.zy.asrs.common.wms.entity.Order;
import com.zy.asrs.common.wms.entity.WaitPakin;
import com.zy.asrs.common.wms.entity.WrkDetl;
import com.zy.asrs.common.wms.entity.WrkMast;
@@ -11,13 +19,13 @@
import com.zy.asrs.wms.task.core.ReturnT;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
+import java.text.SimpleDateFormat;
+import java.util.*;
/**
* Created by vincent on 2020/7/6
@@ -40,6 +48,17 @@
private WaitPakinLogService waitPakinLogService;
@Autowired
private OrderService orderService;
+ @Autowired
+ private OperateLogService operateLogService;
+
+ @Value("${erp.url}")
+ private String ERP_URL;
+
+ @Value("${erp.report}")
+ private String ERP_REPORT;
+
+ @Value("${erp.login}")
+ private String ERP_LOGIN;
// update asr_wrk_mast set inv_wh = 'Y', ove_mk = 'Y' where wrk_no =
@Transactional
@@ -99,6 +118,75 @@
}
}
+ if (wrkMast.getIoType() == 1 || wrkMast.getIoType() == 53 || wrkMast.getWrkSts() == 200) {
+ //涓婃姤蹇靛垵ERP 銆� 涓婃姤涓夋柟骞冲彴 銆�
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
+ String nowFormat = dateFormat.format(new Date());
+
+ ArrayList<LinkedHashMap<String, Object>> mats = new ArrayList<>();
+ String orderNo = "";
+ for (WrkDetl wrkDetl : wrkDetls) {
+ orderNo = wrkDetl.getOrderNo();
+ LinkedHashMap<String, Object> mat = new LinkedHashMap<>();
+ mat.put("GoodsCode", wrkDetl.getMatnr());
+ mat.put("Num", wrkDetl.getAnfme());
+ if (!Cools.isEmpty(wrkDetl.getBatch())) {
+ mat.put("BatchNo", wrkDetl.getBatch());
+ }
+ if (!Cools.isEmpty(wrkDetl.getThreeCode())) {
+ mat.put("DepotName", wrkDetl.getThreeCode());
+ }
+ if (!Cools.isEmpty(wrkDetl.getSupp())) {
+ mat.put("FromDanCode", wrkDetl.getSupp());
+ }
+ if (!Cools.isEmpty(wrkDetl.getSuppCode())) {
+ mat.put("FromNo", wrkDetl.getSuppCode());
+ }
+ mats.add(mat);
+ }
+ Order order = orderService.selectByNo(orderNo, hostId);
+ if (order != null) {
+ LinkedHashMap<String, Object> param = new LinkedHashMap<>();
+ param.put("Login", ERP_LOGIN);
+ param.put("DanType", order.getDocType$());
+ param.put("Date", nowFormat);
+ param.put("FromDanCode", orderNo);
+ param.put("Data", mats);
+
+ String response = null;
+ try {
+ response = new HttpHandler.Builder()
+ .setUri(ERP_URL)
+ .setPath(ERP_REPORT + Utils.ncErpDataEncode(param))
+ .build()
+ .doGet();
+ JSONObject jsonObject = JSON.parseObject(response);
+ JSONArray result = jsonObject.getJSONArray("result");
+ Object object = result.get(0);
+ JSONObject data = JSON.parseObject(object.toString());
+ if (data.getBoolean("State")) {
+ //涓婃姤鎴愬姛
+ } else {
+ //涓婃姤澶辫触
+ exceptionHandle("涓婃姤ERP澶辫触[workNo={0}]澶辫触", wrkMast.getWrkNo());
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ //寮傚父涓婃姤澶辫触
+ exceptionHandle("涓婃姤ERP寮傚父澶辫触[workNo={0}]澶辫触", wrkMast.getWrkNo());
+ } finally {
+ //璁板綍涓婃姤鏁版嵁
+ OperateLog operateLog = new OperateLog();
+ operateLog.setAction("涓婃姤ERP," + ERP_URL + ERP_REPORT);
+ operateLog.setRequest(Utils.ncErpDataEncode(param));
+ operateLog.setResponse(response);
+ operateLog.setCreateTime(new Date());
+ operateLog.setSystem("WMS");
+ operateLogService.save(operateLog);
+ }
+ }
+ }
+
// 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
if (!wrkMastLogService.saveToHistory(wrkMast.getId())) {
exceptionHandle("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={0}]澶辫触", wrkMast.getWrkNo());
diff --git a/zy-asrs-wms/src/main/resources/application.yml b/zy-asrs-wms/src/main/resources/application.yml
index 1b28073..4a1d019 100644
--- a/zy-asrs-wms/src/main/resources/application.yml
+++ b/zy-asrs-wms/src/main/resources/application.yml
@@ -54,4 +54,9 @@
publicAlias: publicCert
storePass: public_zhongyang_123456789
licensePath: license.lic
- publicKeysStorePath: publicCerts.keystore
\ No newline at end of file
+ publicKeysStorePath: publicCerts.keystore
+
+erp:
+ url: http://192.168.1.240:8080
+ login: DS
+ report: /datasnap/rest/TServerMethods1/YZAPI/
diff --git a/zy-asrs-wms/src/main/webapp/static/js/order/order.js b/zy-asrs-wms/src/main/webapp/static/js/order/order.js
index db68dae..ed18cb4 100644
--- a/zy-asrs-wms/src/main/webapp/static/js/order/order.js
+++ b/zy-asrs-wms/src/main/webapp/static/js/order/order.js
@@ -172,7 +172,7 @@
// },
// {field: 'inQty', title: '宸插叆搴撻噺'},
// {field: 'color', title: '棰滆壊'},
- {field: 'origin', title: '浠撳簱鍙�'}
+ {field: 'threeCode', title: '浠撳簱鍙�'}
]],
request: {
pageName: 'curr',
--
Gitblit v1.9.1