From 312e24f10492fdf99534946df068ba5b1a8331bd Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期一, 30 三月 2026 15:15:45 +0800
Subject: [PATCH] ERP单据对接
---
src/main/resources/mapper/OrderMapper.xml | 10
version/bak/jsjasrs_backup_2025_11_02_230001_4793338.bak | 0
src/main/webapp/views/apiLog/apiLog.html | 9
src/main/java/com/zy/asrs/controller/OpenController.java | 20 +
src/main/webapp/static/js/apiLog/apiLog.js | 20 +
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java | 49 +++
src/main/java/com/zy/asrs/entity/u8/U8ResultVo.java | 38 +++
/dev/null | 0
src/main/java/com/zy/asrs/entity/u8/ReportU8Vo.java | 160 ++++++++++++++
src/main/java/com/zy/asrs/service/impl/ApiLogServiceImpl.java | 24 ++
src/main/java/com/zy/common/config/AspectConfig.java | 2
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java | 19
src/main/java/com/zy/asrs/mapper/OrderMapper.java | 5
src/main/java/com/zy/asrs/task/AutoReportingScheduler.java | 6
src/main/webapp/views/operateLog/operateLog.html | 12
src/main/java/com/zy/asrs/service/ApiLogService.java | 2
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java | 242 +++++++++++++++++++++
17 files changed, 577 insertions(+), 41 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index e4019ca..4b7db9f 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -5,6 +5,8 @@
import com.core.common.*;
import com.core.exception.CoolException;
import com.zy.asrs.entity.param.*;
+import com.zy.asrs.entity.u8.ReportU8Vo;
+import com.zy.asrs.entity.u8.U8ResultVo;
import com.zy.asrs.service.OpenService;
import com.zy.common.model.DetlDto;
import com.zy.common.web.BaseController;
@@ -33,6 +35,24 @@
@Autowired
private OpenService openService;
+ @PostMapping("/purchasein_import")
+ @AppAuth(memo = "璁㈠崟涓婃姤娴嬭瘯鎺ュ彛")
+ public synchronized List<U8ResultVo> ts(@RequestHeader(required = false) String appkey,
+ @RequestBody(required = false) List<ReportU8Vo> param,
+ HttpServletRequest request){
+
+ List<U8ResultVo> u8ResultVos = new ArrayList<>();
+ for(ReportU8Vo reportU8Vo: param) {
+ U8ResultVo u8ResultVo = new U8ResultVo();
+ u8ResultVo.setResult("T");
+ u8ResultVo.setDescription("");
+ u8ResultVo.setReceiptNo(reportU8Vo.getCvouchcode());
+ u8ResultVo.setU8ReceiptNo("");
+ u8ResultVos.add(u8ResultVo);
+ }
+ return u8ResultVos;
+ }
+
@PostMapping("/order/matSync/default/v1")
@AppAuth(memo = "鍟嗗搧淇℃伅鍚屾")
public synchronized R syncMatInfo(@RequestHeader(required = false) String appkey,
diff --git a/src/main/java/com/zy/asrs/entity/u8/ReportU8Vo.java b/src/main/java/com/zy/asrs/entity/u8/ReportU8Vo.java
new file mode 100644
index 0000000..ac9fec8
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/u8/ReportU8Vo.java
@@ -0,0 +1,160 @@
+package com.zy.asrs.entity.u8;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author pang.jiabao
+ * @description 涓婃姤U8璇锋眰浣�
+ * @createDate 2026/3/27 14:02
+ */
+@Data
+public class ReportU8Vo {
+
+ /**
+ * 璐﹀鍙�
+ */
+ @JsonProperty("CACCID")
+ @JSONField(name = "CACCID")
+ private String caccid;
+
+ /**
+ * 鍗曞彿
+ */
+ @JsonProperty("CVOUCHCODE")
+ @JSONField(name = "CVOUCHCODE")
+ private String cvouchcode;
+
+ /**
+ * 鏃ユ湡锛堟牸寮�2015-01-01锛�
+ */
+ @JsonProperty("DDATE")
+ @JSONField(name = "DDATE")
+ private String ddate;
+
+ /**
+ * 鍏宠仈鍗曟嵁绫诲瀷
+ */
+ @JsonProperty("CGLTYPE")
+ @JSONField(name = "CGLTYPE")
+ private String cgltype;
+
+ /**
+ * 浠撳簱缂栫爜
+ */
+ @JsonProperty("CWHCODE")
+ @JSONField(name = "CWHCODE")
+ private String cwhcode;
+
+ /**
+ * 鍏ュ簱绫诲埆
+ */
+ @JsonProperty("CRDCODE")
+ @JSONField(name = "CRDCODE")
+ private String crdcode;
+
+ /**
+ * 鍒跺崟浜�
+ */
+ @JsonProperty("CMAKER")
+ @JSONField(name = "CMAKER")
+ private String cmaker;
+
+ /**
+ * 瀹℃牳浜�
+ */
+ @JsonProperty("CHANDLER")
+ @JSONField(name = "CHANDLER")
+ private String chandler;
+
+ /**
+ * 鏄庣粏鍒楄〃
+ */
+ @JsonProperty("DETAILList")
+ @JSONField(name = "DETAILList")
+ private List<Item> detailList;
+
+ @Data
+ public static class Item {
+
+ /**
+ * 瀛樿揣缂栫爜
+ */
+ @JsonProperty("CINVCODE")
+ @JSONField(name = "CINVCODE")
+ private String cinvcode;
+
+ /**
+ * 涓昏閲忓崟浣嶆暟閲忥紙绮惧害鍙朥8鍩虹璁剧疆鐨勬暟鎹簿搴︼級
+ */
+ @JsonProperty("IQUANTITY")
+ @JSONField(name = "IQUANTITY")
+ private Double iquantity;
+
+ /**
+ * 鎵瑰彿
+ */
+ @JsonProperty("CBATCH")
+ @JSONField(name = "CBATCH")
+ private String cbatch;
+
+ /**
+ * 閲囪喘鍗曞叧鑱旀槑缁咺D
+ */
+ @JsonProperty("AUTOID_PO")
+ @JSONField(name = "AUTOID_PO")
+ private String autoidPo;
+
+ /**
+ * 璁㈠崟鏄庣粏ID瀵瑰簲瀛楁鍚�
+ */
+ @JsonProperty("POAUTOIDCOL")
+ @JSONField(name = "POAUTOIDCOL")
+ private String poautoidcol;
+
+ /**
+ * 鍙戣揣鍗曞叧鑱旀槑缁咺D
+ */
+ @JsonProperty("AUTOID_SO")
+ @JSONField(name = "AUTOID_SO")
+ private String autoidSo;
+
+ /**
+ * 璁㈠崟鏄庣粏ID瀵瑰簲瀛楁鍚�
+ */
+ @JsonProperty("SOAUTOIDCOL")
+ @JSONField(name = "SOAUTOIDCOL")
+ private String soautoidcol;
+
+ /**
+ * 鐢熶骇璁㈠崟鍏宠仈鏄庣粏ID
+ */
+ @JsonProperty("AUTOID_MO")
+ @JSONField(name = "AUTOID_MO")
+ private String autoidMo;
+
+ /**
+ * 璁㈠崟鏄庣粏ID瀵瑰簲瀛楁鍚�
+ */
+ @JsonProperty("MOAUTOIDCOL")
+ @JSONField(name = "MOAUTOIDCOL")
+ private String moautoidcol;
+
+ /**
+ * 鎵�鏈夌被鍨嬪叧鑱旀槑缁咺D
+ */
+ @JsonProperty("AUTOID_ALL")
+ @JSONField(name = "AUTOID_ALL")
+ private String autoidAll;
+
+ /**
+ * 璁㈠崟鏄庣粏ID瀵瑰簲瀛楁鍚�
+ */
+ @JsonProperty("ALLCAUTOIDCOL")
+ @JSONField(name = "ALLCAUTOIDCOL")
+ private String allcautoidcol;
+ }
+}
diff --git a/src/main/java/com/zy/asrs/entity/u8/U8ResultVo.java b/src/main/java/com/zy/asrs/entity/u8/U8ResultVo.java
new file mode 100644
index 0000000..eaaf92b
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/u8/U8ResultVo.java
@@ -0,0 +1,38 @@
+package com.zy.asrs.entity.u8;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+/**
+ * @author pang.jiabao
+ * @description U8鍝嶅簲浣�
+ * @createDate 2026/3/27 13:59
+ */
+@Data
+public class U8ResultVo {
+
+ /**
+ * 鎴愬姛T锛屽け璐
+ */
+ @JsonProperty("Result")
+ private String result;
+
+ /**
+ * 澶辫触鍘熷洜
+ */
+ @JsonProperty("Description")
+ private String description;
+
+ /**
+ * 浼犲叆鐨勫崟鍙�
+ */
+ @JsonProperty("ReceiptNo")
+ private String receiptNo;
+
+ /**
+ * 鐢熸垚鍚嶶8鐨勫崟鍙�
+ */
+ @JsonProperty("U8ReceiptNo")
+ private String u8ReceiptNo;
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/OrderMapper.java b/src/main/java/com/zy/asrs/mapper/OrderMapper.java
index 5500ade..3d090c8 100644
--- a/src/main/java/com/zy/asrs/mapper/OrderMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OrderMapper.java
@@ -23,4 +23,9 @@
Order selectOrderMoveStatus();
Order selectOrderMoveStatusInitial();
+
+ /**
+ * 鏍规嵁璁㈠崟鍙锋壒閲忔洿鏂拌鍗曠姸鎬�
+ */
+ void batchUpdateSettleByOrderNos(List<String> successReceiptNos);
}
diff --git a/src/main/java/com/zy/asrs/service/ApiLogService.java b/src/main/java/com/zy/asrs/service/ApiLogService.java
index 43e45d5..142aa5e 100644
--- a/src/main/java/com/zy/asrs/service/ApiLogService.java
+++ b/src/main/java/com/zy/asrs/service/ApiLogService.java
@@ -7,6 +7,8 @@
void save(String namespace, String url, String appkey, String ip, String request, String response, boolean success);
+ void save(String namespace, String url, String appkey, String ip, String request, String response, boolean success, String error);
+
boolean clearWeekBefore();
}
diff --git a/src/main/java/com/zy/asrs/service/impl/ApiLogServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ApiLogServiceImpl.java
index 30a725f..08ead58 100644
--- a/src/main/java/com/zy/asrs/service/impl/ApiLogServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/ApiLogServiceImpl.java
@@ -45,6 +45,30 @@
}
@Override
+ public void save(String namespace, String url, String appkey, String ip, String request, String response, boolean success, String error) {
+ Date now = new Date();
+ ApiLog apiLog = new ApiLog(
+ String.valueOf(snowflakeIdWorker.nextId()), // 鏃ュ織缂栧彿
+ namespace, // 鍚嶇О绌洪棿
+ url, // 鎺ュ彛鍦板潃
+ appkey, // 骞冲彴瀵嗛挜
+ String.valueOf(now.getTime()), // 鏃堕棿鎴�
+ ip, // 瀹㈡埛绔疘P
+ request, // 璇锋眰鍐呭
+ response,
+ error, // 寮傚父鍐呭
+ success ? 1 : 0, // 缁撴灉
+ 1, // 鐘舵��
+ now, // 娣诲姞鏃堕棿
+ null, // 淇敼鏃堕棿
+ null // 澶囨敞
+ );
+ if (!this.insert(apiLog)) {
+ log.error("鎺ュ彛璋冪敤鏃ュ織淇濆瓨澶辫触锛�");
+ }
+ }
+
+ @Override
public boolean clearWeekBefore() {
return this.baseMapper.clearWeekBefore() > 0;
}
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
index e18d9aa..10ceedf 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -20,7 +20,6 @@
import java.util.ArrayList;
import java.util.List;
-import java.util.Objects;
@Slf4j
@Service("orderService")
@@ -98,15 +97,15 @@
}
}
//褰撹璁㈠崟鏄庣粏鏁伴噺==瀹屾垚鏁伴噺涓�>涓婃姤鏁伴噺锛屼笂鎶ョ姸鎬佷负 鍚� 鎴栬�� 鏄� 鏃堕兘鏀规垚绛夊緟涓婃姤锛屽畾鏃跺櫒杞绛夊緟涓婃姤杩涜涓婃姤
- for (OrderDetl orderDetl : orderDetls) {
- if (Objects.equals(orderDetl.getAnfme(), orderDetl.getQty())&&
- orderDetl.getQty()>(orderDetl.getUnits() == null ? 0 : orderDetl.getUnits())
- &&orderDetl.getInspect()<2) {
-
- orderDetl.setInspect(2);//绛夊緟涓婃姤
- orderDetlService.updateById(orderDetl);
- }
- }
+// for (OrderDetl orderDetl : orderDetls) {
+// if (Objects.equals(orderDetl.getAnfme(), orderDetl.getQty())&&
+// orderDetl.getQty()>(orderDetl.getUnits() == null ? 0 : orderDetl.getUnits())
+// &&orderDetl.getInspect()<2) {
+//
+// orderDetl.setInspect(2);//绛夊緟涓婃姤
+// orderDetlService.updateById(orderDetl);
+// }
+// }
if (complete) {
if (!this.updateSettle(order.getId(), 4L, null)) {
throw new CoolException("淇敼璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戠姸鎬佷负宸插畬鎴愬け璐�");
diff --git a/src/main/java/com/zy/asrs/task/AutoReportingScheduler.java b/src/main/java/com/zy/asrs/task/AutoReportingScheduler.java
index b122e8a..e3fa166 100644
--- a/src/main/java/com/zy/asrs/task/AutoReportingScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AutoReportingScheduler.java
@@ -8,8 +8,6 @@
import com.zy.system.entity.Config;
import com.zy.system.service.ConfigService;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@@ -34,8 +32,8 @@
private ConfigService configService;
// @Scheduled(cron = "0 0/10 * * * ? ")
- @Scheduled(cron = "0/10 * * * * ? ")
- @Async("orderThreadPool")
+// @Scheduled(cron = "0/10 * * * * ? ")
+// @Async("orderThreadPool")
void execute() {
Config config = configService.selectConfigByCode("AutoReportU8");
if (config != null && config.getStatus() == 1) {
diff --git a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
index 61004e9..ae32f65 100644
--- a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
+++ b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -4,16 +4,18 @@
import com.zy.asrs.entity.Order;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.OrderService;
-import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.OrderSyncHandler;
import com.zy.common.entity.Parameter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Component;
+import javax.annotation.Resource;
import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
* Created by vincent on 2020/7/7
@@ -38,17 +40,46 @@
}
}
+ @Resource
+ private ThreadPoolTaskExecutor orderThreadPool;
+
// @Scheduled(cron = "0/5 * * * * ? ")
- @Async("orderThreadPool")
- public void completeAndReport(){
+ // 10鍒嗛挓鎵ц涓�娆�
+ @Scheduled(cron = "0 0/10 * * * ?")
+ public void completeAndReport() {
String erpReport = Parameter.get().getErpReport();
if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
List<Order> orders = orderService.selectComplete();
- for (Order order : orders) {
- ReturnT<String> result = orderSyncHandler.start(order);
- if (!result.isSuccess()) {
- log.error("鍗曟嵁[orderNo={}]涓婃姤erp澶辫触", order.getOrderNo());
- }
+ if (orders.isEmpty()) {
+ return;
+ }
+ // 鎸夊崟鎹被鍨嬪垎缁�
+ Map<String, List<Order>> groupedOrders = orders.stream()
+ .collect(Collectors.groupingBy(order -> {
+ String type = order.getDocType$();
+ switch (type) {
+ case "閲囪喘璁㈠崟":
+ case "閲囪喘鍒拌揣鍗�":
+ case "濮斿璁㈠崟":
+ case "濮斿鍒拌揣鍗�":
+ case "鍒拌揣鍗�":
+ case "鏉ユ枡妫�楠屽崟":
+ return "閲囪喘鍏ュ簱";
+ case "閿�鍞彂璐у崟":
+ return "閿�鍞嚭搴�";
+ case "鐢熶骇璁㈠崟":
+ case "妫�楠屽崟":
+ return "浜ф垚鍝佸叆搴撳崟";
+ case "棰嗘枡鐢宠鍗�":
+ return "鏉愭枡鍑哄簱鍗�";
+ default:
+ return type;
+ }
+ }));
+ for (Map.Entry<String, List<Order>> map : groupedOrders.entrySet()) {
+ orderThreadPool.submit(() -> {
+ orderSyncHandler.startNew(map);
+ });
}
}
}
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 43b50b1..750920d 100644
--- a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -8,6 +8,9 @@
import com.zy.asrs.entity.DocType;
import com.zy.asrs.entity.Order;
import com.zy.asrs.entity.OrderDetl;
+import com.zy.asrs.entity.u8.ReportU8Vo;
+import com.zy.asrs.entity.u8.U8ResultVo;
+import com.zy.asrs.mapper.OrderMapper;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.DocTypeService;
import com.zy.asrs.service.OrderDetlService;
@@ -24,7 +27,10 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.util.List;
+import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
/**
* Created by vincent on 2020/7/7
@@ -43,6 +49,18 @@
private ApiLogService apiLogService;
@Autowired
private DocTypeService docTypeService;
+
+ private static final String baseUrl = "127.0.0.1:8081/jsjwms/open/asrs";
+ private static final Map<String, String> pathMap = new HashMap<String, String>() {{
+ put("閲囪喘鍏ュ簱", "/purchasein_import");
+ put("閿�鍞嚭搴�", "/saleout_import");
+ put("浜ф垚鍝佸叆搴撳崟", "/productin_import");
+ put("鏉愭枡鍑哄簱鍗�", "/materialout_import");
+ put("鍏朵粬鍏ュ簱鍗�", "/otherin_import");
+ put("鍏朵粬鍑哄簱鍗�", "/otherout_import");
+ }};
+ @Resource
+ private OrderMapper orderMapper;
@Transactional
public ReturnT<String> start(Order order) {
@@ -157,4 +175,226 @@
return SUCCESS;
}
+ public void startNew(Map.Entry<String, List<Order>> orderMap) {
+ String docName = orderMap.getKey();
+ List<Order> value = orderMap.getValue();
+ String path = pathMap.get(docName);
+ if (path == null) {
+ log.info("鍗曟嵁绫诲瀷涓嶅瓨鍦細{}", docName);
+ return;
+ }
+ // 鏋勯�犺姹備綋
+ List<ReportU8Vo> requestBody = getRequestBody(docName, value);
+ String requestJson = JSONObject.toJSONString(requestBody);
+ String response = "";
+ boolean success = false;
+ String errorMsg = null;
+ String url = baseUrl + path;
+ String nameSpaces = "鍗曟嵁涓婃姤";
+ try {
+ response = new HttpHandler.Builder()
+ .setUri(baseUrl)
+ .setPath(path)
+ .setJson(requestJson)
+ .build()
+ .doPost();
+ List<U8ResultVo> list = JSON.parseArray(response, U8ResultVo.class);
+ if (list != null && list.size() != 0) {
+ List<String> successReceiptNos = list.stream().filter(u8ResultVo -> "T".equals(u8ResultVo.getResult())).map(U8ResultVo::getReceiptNo).collect(Collectors.toList());
+ if (!successReceiptNos.isEmpty()) {
+ orderMapper.batchUpdateSettleByOrderNos(successReceiptNos);
+ }
+ log.info("鍗曟嵁涓婃姤鎴愬姛锛屽崟鎹紪鍙凤細{}", successReceiptNos);
+ success = true;
+ } else {
+ errorMsg = response;
+ log.error(nameSpaces + "璋冪敤澶栭儴鎺ュ彛澶辫触锛寀rl锛歿}锛宺equest锛歿}锛宺esponse锛歿}", url, requestJson, response);
+ }
+ } catch (Exception e) {
+ errorMsg = e.getMessage();
+ log.error(nameSpaces + "璋冪敤澶栭儴鎺ュ彛寮傚父锛寀rl锛歿}锛宺equest锛歿}锛宺esponse锛歿}", url, requestJson, response, e);
+ } finally {
+ try {
+ apiLogService.save(
+ nameSpaces,
+ url,
+ null,
+ "127.0.0.1",
+ requestJson,
+ response,
+ success,
+ errorMsg
+ );
+ } catch (Exception e) {
+ log.error(nameSpaces + "淇濆瓨鎺ュ彛鏃ュ織澶辫触", e);
+ }
+ }
+ }
+
+ private List<ReportU8Vo> getRequestBody(String docName, List<Order> value) {
+ List<ReportU8Vo> list = new ArrayList<>();
+ String now = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
+ switch (docName) {
+ case "閲囪喘鍏ュ簱":
+ for (Order order : value) {
+ ReportU8Vo reportU8Vo = new ReportU8Vo();
+ reportU8Vo.setCaccid("001");
+ reportU8Vo.setCvouchcode(order.getOrderNo());
+ reportU8Vo.setDdate(now);
+ reportU8Vo.setCgltype(order.getDocType$());
+ reportU8Vo.setCwhcode("103");
+ reportU8Vo.setCrdcode("101");
+ reportU8Vo.setCmaker(order.getCreateBy$());
+ reportU8Vo.setChandler(order.getUpdateBy$());
+ List<ReportU8Vo.Item> itemList = new ArrayList<>();
+ List<OrderDetl> orderDetlList = orderDetlService.selectByOrderId(order.getId());
+ String docType$ = order.getDocType$();
+ for (OrderDetl orderDetl : orderDetlList) {
+ ReportU8Vo.Item item = new ReportU8Vo.Item();
+ item.setCinvcode(orderDetl.getMatnr());
+ item.setIquantity(orderDetl.getQty());
+ item.setAutoidPo(orderDetl.getSku());
+ item.setPoautoidcol(docType$.equals("閲囪喘璁㈠崟") ? "ID" : docType$.equals("閲囪喘鍒拌揣鍗�") || docType$.equals("濮斿鍒拌揣鍗�") ? "Autoid" :
+ docType$.equals("濮斿璁㈠崟") ? "MODetailsID" : "");
+ item.setCbatch(orderDetl.getBatch());
+ itemList.add(item);
+ }
+ reportU8Vo.setDetailList(itemList);
+ list.add(reportU8Vo);
+ }
+ break;
+ case "閿�鍞嚭搴�":
+ for (Order order : value) {
+ ReportU8Vo reportU8Vo = new ReportU8Vo();
+ reportU8Vo.setCaccid("001");
+ reportU8Vo.setCvouchcode(order.getOrderNo());
+ reportU8Vo.setDdate(now);
+ reportU8Vo.setCgltype(order.getDocType$());
+ reportU8Vo.setCwhcode("101");
+ reportU8Vo.setCrdcode("201");
+ reportU8Vo.setCmaker(order.getCreateBy$());
+ reportU8Vo.setChandler(order.getUpdateBy$());
+ List<ReportU8Vo.Item> itemList = new ArrayList<>();
+ List<OrderDetl> orderDetlList = orderDetlService.selectByOrderId(order.getId());
+ String docType$ = order.getDocType$();
+ for (OrderDetl orderDetl : orderDetlList) {
+ ReportU8Vo.Item item = new ReportU8Vo.Item();
+ item.setCinvcode(orderDetl.getMatnr());
+ item.setIquantity(orderDetl.getQty());
+ item.setAutoidSo(orderDetl.getSku());
+ item.setSoautoidcol(docType$.equals("鍙戣揣鍗�") ? "IDLSID" : "");
+ item.setCbatch(orderDetl.getBatch());
+ itemList.add(item);
+ }
+ reportU8Vo.setDetailList(itemList);
+ list.add(reportU8Vo);
+ }
+ break;
+ case "浜ф垚鍝佸叆搴撳崟":
+ for (Order order : value) {
+ ReportU8Vo reportU8Vo = new ReportU8Vo();
+ reportU8Vo.setCaccid("001");
+ reportU8Vo.setCvouchcode(order.getOrderNo());
+ reportU8Vo.setDdate(now);
+ reportU8Vo.setCgltype(order.getDocType$());
+ reportU8Vo.setCwhcode("101");
+ reportU8Vo.setCrdcode("201");
+ reportU8Vo.setCmaker(order.getCreateBy$());
+ reportU8Vo.setChandler(order.getUpdateBy$());
+ List<ReportU8Vo.Item> itemList = new ArrayList<>();
+ List<OrderDetl> orderDetlList = orderDetlService.selectByOrderId(order.getId());
+ for (OrderDetl orderDetl : orderDetlList) {
+ ReportU8Vo.Item item = new ReportU8Vo.Item();
+ item.setCinvcode(orderDetl.getMatnr());
+ item.setIquantity(orderDetl.getQty());
+ item.setAutoidMo(orderDetl.getSku());
+ item.setMoautoidcol("MODID");
+ item.setCbatch(orderDetl.getBatch());
+ itemList.add(item);
+ }
+ reportU8Vo.setDetailList(itemList);
+ list.add(reportU8Vo);
+ }
+ break;
+ case "鏉愭枡鍑哄簱鍗�":
+ for (Order order : value) {
+ ReportU8Vo reportU8Vo = new ReportU8Vo();
+ reportU8Vo.setCaccid("001");
+ reportU8Vo.setCvouchcode(order.getOrderNo());
+ reportU8Vo.setDdate(now);
+ reportU8Vo.setCgltype(order.getDocType$());
+ reportU8Vo.setCwhcode("5");
+ reportU8Vo.setCrdcode("202");
+ reportU8Vo.setCmaker(order.getCreateBy$());
+ reportU8Vo.setChandler(order.getUpdateBy$());
+ List<ReportU8Vo.Item> itemList = new ArrayList<>();
+ List<OrderDetl> orderDetlList = orderDetlService.selectByOrderId(order.getId());
+ String docType$ = order.getDocType$();
+ for (OrderDetl orderDetl : orderDetlList) {
+ ReportU8Vo.Item item = new ReportU8Vo.Item();
+ item.setCinvcode(orderDetl.getMatnr());
+ item.setIquantity(orderDetl.getQty());
+ item.setAutoidAll(orderDetl.getSku());
+ item.setAllcautoidcol(docType$.equals("鐢熶骇璁㈠崟") ? "AllocateId" : docType$.equals("濮斿璁㈠崟") ? "MOMaterialsID" :
+ docType$.equals("棰嗘枡鐢宠鍗�") ? "AutoID" : "");
+ item.setCbatch(orderDetl.getBatch());
+ itemList.add(item);
+ }
+ reportU8Vo.setDetailList(itemList);
+ list.add(reportU8Vo);
+ }
+ break;
+ case "鍏朵粬鍏ュ簱鍗�":
+ for (Order order : value) {
+ ReportU8Vo reportU8Vo = new ReportU8Vo();
+ reportU8Vo.setCaccid("001");
+ reportU8Vo.setCvouchcode(order.getOrderNo());
+ reportU8Vo.setDdate(now);
+ reportU8Vo.setCgltype(order.getDocType$());
+ reportU8Vo.setCwhcode("109");
+ reportU8Vo.setCrdcode("199");
+ reportU8Vo.setCmaker(order.getCreateBy$());
+ reportU8Vo.setChandler(order.getUpdateBy$());
+ List<ReportU8Vo.Item> itemList = new ArrayList<>();
+ List<OrderDetl> orderDetlList = orderDetlService.selectByOrderId(order.getId());
+ for (OrderDetl orderDetl : orderDetlList) {
+ ReportU8Vo.Item item = new ReportU8Vo.Item();
+ item.setCinvcode(orderDetl.getMatnr());
+ item.setIquantity(orderDetl.getQty());
+ item.setCbatch(orderDetl.getBatch());
+ itemList.add(item);
+ }
+ reportU8Vo.setDetailList(itemList);
+ list.add(reportU8Vo);
+ }
+ break;
+ case "鍏朵粬鍑哄簱鍗�":
+ for (Order order : value) {
+ ReportU8Vo reportU8Vo = new ReportU8Vo();
+ reportU8Vo.setCaccid("001");
+ reportU8Vo.setCvouchcode(order.getOrderNo());
+ reportU8Vo.setDdate(now);
+ reportU8Vo.setCgltype(order.getDocType$());
+ reportU8Vo.setCwhcode("109");
+ reportU8Vo.setCrdcode("299");
+ reportU8Vo.setCmaker(order.getCreateBy$());
+ reportU8Vo.setChandler(order.getUpdateBy$());
+ List<ReportU8Vo.Item> itemList = new ArrayList<>();
+ List<OrderDetl> orderDetlList = orderDetlService.selectByOrderId(order.getId());
+ for (OrderDetl orderDetl : orderDetlList) {
+ ReportU8Vo.Item item = new ReportU8Vo.Item();
+ item.setCinvcode(orderDetl.getMatnr());
+ item.setIquantity(orderDetl.getQty());
+ item.setCbatch(orderDetl.getBatch());
+ itemList.add(item);
+ }
+ reportU8Vo.setDetailList(itemList);
+ list.add(reportU8Vo);
+ }
+ break;
+ default:
+ }
+ return list;
+ }
+
}
diff --git a/src/main/java/com/zy/common/config/AspectConfig.java b/src/main/java/com/zy/common/config/AspectConfig.java
index 780eb46..d6b58e2 100644
--- a/src/main/java/com/zy/common/config/AspectConfig.java
+++ b/src/main/java/com/zy/common/config/AspectConfig.java
@@ -89,7 +89,7 @@
private void saveLog(ProceedingJoinPoint joinPoint, HttpServletRequest request, Object result,String memo) {
Long userId = 9527L;
String token = request.getHeader("token");
- UserLogin userLogin = userLoginService.selectOne(new EntityWrapper<UserLogin>().eq("token", token).eq("system", "WMS"));
+ UserLogin userLogin = userLoginService.selectOne(new EntityWrapper<UserLogin>().eq("token", token));
if (userLogin != null) {
User user = userService.selectById(userLogin.getUserId());
if (user != null) {
diff --git a/src/main/resources/mapper/OrderMapper.xml b/src/main/resources/mapper/OrderMapper.xml
index 7e84fb4..98675b6 100644
--- a/src/main/resources/mapper/OrderMapper.xml
+++ b/src/main/resources/mapper/OrderMapper.xml
@@ -53,9 +53,17 @@
where 1=1
and id = #{orderId}
</update>
+ <update id="batchUpdateSettleByOrderNos">
+ update man_order
+ set settle = 6
+ where order_no in
+ <foreach collection="list" item="item" open="(" separator="," close=")">
+ #{item}
+ </foreach>
+ </update>
<select id="selectComplete" resultMap="BaseResultMap">
- select top 5 *
+ select top 100 *
from man_order
where 1=1
and settle = 4
diff --git "a/src/main/resources/\344\270\255\346\211\254WMS\347\263\273\347\273\237API\346\216\245\345\217\243.docx" "b/src/main/resources/\344\270\255\346\211\254WMS\347\263\273\347\273\237API\346\216\245\345\217\243.docx"
deleted file mode 100644
index a0028d5..0000000
--- "a/src/main/resources/\344\270\255\346\211\254WMS\347\263\273\347\273\237API\346\216\245\345\217\243.docx"
+++ /dev/null
Binary files differ
diff --git a/src/main/webapp/static/js/apiLog/apiLog.js b/src/main/webapp/static/js/apiLog/apiLog.js
index 1d24b5e..3c41126 100644
--- a/src/main/webapp/static/js/apiLog/apiLog.js
+++ b/src/main/webapp/static/js/apiLog/apiLog.js
@@ -21,8 +21,9 @@
cellMinWidth: 50,
height: 'full-120',
cols: [[
- {type: 'checkbox'}
- // ,{field: 'id', align: 'center',title: 'ID'}
+ // {type: 'checkbox'}
+ {field: 'id', align: 'center',title: 'ID', width: 100}
+ ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿', width: 160}
// ,{field: 'uuid', align: 'center',title: '鏃ュ織缂栧彿'}
,{field: 'namespace', align: 'center',title: '鍚嶇О绌洪棿'}
,{field: 'url', align: 'center',title: '琛ㄥ崟ID'}
@@ -31,14 +32,13 @@
,{field: 'clientIp', align: 'center',title: 'URL',hide: true}
,{field: 'request', align: 'center',title: '璇锋眰鍐呭'}
,{field: 'response', align: 'center',title: '鎿嶄綔鍐呭'}
- // ,{field: 'err', align: 'center',title: '寮傚父鍐呭'}
+ ,{field: 'err', align: 'center',title: '寮傚父鍐呭'}
,{field: 'result$', align: 'center',title: '缁撴灉', templet: '#resTpl', width: 80}
// ,{field: 'status$', align: 'center',title: '鐘舵��'}
- ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
// ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
,{field: 'memo', align: 'center',title: '澶囨敞', hide: true}
- ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width: 80}
+ // ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width: 80}
]],
request: {
pageName: 'curr',
@@ -244,6 +244,16 @@
}, 300);
}
layDateRender();
+ // 鏃堕棿閫夋嫨鍣�
+ layDate.render({
+ elem: '#createTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '.layui-laydate-range'
+ ,type: 'datetime'
+ ,range: true
+ });
});
diff --git a/src/main/webapp/views/apiLog/apiLog.html b/src/main/webapp/views/apiLog/apiLog.html
index e35b6a9..8f5bb00 100644
--- a/src/main/webapp/views/apiLog/apiLog.html
+++ b/src/main/webapp/views/apiLog/apiLog.html
@@ -29,6 +29,12 @@
<input class="layui-input" type="text" name="request" placeholder="璇疯緭鍏ワ紙璁㈠崟鍙锋垨鍝佸彿锛�" autocomplete="off">
</div>
</div>
+ <!-- 鏃ユ湡鑼冨洿 -->
+ <div class="layui-inline" style="width: 300px">
+ <div class="layui-input-inline">
+ <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
+ </div>
+ </div>
<div class="layui-inline"> 
<button class="layui-btn icon-btn" lay-filter="search" lay-submit>
<i class="layui-icon"></i>鎼滅储
@@ -47,7 +53,8 @@
<script type="text/html" id="toolbar">
<div class="layui-btn-container">
<!-- <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>-->
- <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>
+<!-- <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>-->
+ <button></button>
<button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">瀵煎嚭</button>
</div>
</script>
diff --git a/src/main/webapp/views/operateLog/operateLog.html b/src/main/webapp/views/operateLog/operateLog.html
index 827ece5..e0e6d91 100644
--- a/src/main/webapp/views/operateLog/operateLog.html
+++ b/src/main/webapp/views/operateLog/operateLog.html
@@ -16,18 +16,12 @@
<div id="search-box" class="layui-form layui-card-header">
<div class="layui-inline">
<div class="layui-input-inline">
- <input class="layui-input" type="text" name="id" placeholder="缂栧彿" autocomplete="off">
+ <input class="layui-input" type="text" name="action" placeholder="鍚嶇О绌洪棿" autocomplete="off">
</div>
</div>
<div class="layui-inline">
- <div class="layui-input-inline cool-auto-complete">
- <input id="userId" class="layui-input" name="user_id" type="text" placeholder="璇疯緭鍏�" autocomplete="off" style="display: none">
- <input id="userUsername" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="鐢ㄦ埛" onfocus=this.blur()>
- <div class="cool-auto-complete-window">
- <input class="cool-auto-complete-window-input" data-key="userQuery" onkeyup="autoLoad(this.getAttribute('data-key'))">
- <select class="cool-auto-complete-window-select" data-key="userQuerySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
- </select>
- </div>
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="request" placeholder="鎿嶄綔鍐呭" autocomplete="off">
</div>
</div>
<!-- 鏃ユ湡鑼冨洿 -->
diff --git a/version/bak/jsjasrs_backup_2025_11_02_230001_4793338.bak b/version/bak/jsjasrs_backup_2025_11_02_230001_4793338.bak
new file mode 100644
index 0000000..fab95c8
--- /dev/null
+++ b/version/bak/jsjasrs_backup_2025_11_02_230001_4793338.bak
Binary files differ
diff --git a/version/bak/lfdasrs b/version/bak/lfdasrs
deleted file mode 100644
index 1e823af..0000000
--- a/version/bak/lfdasrs
+++ /dev/null
Binary files differ
diff --git a/version/bak/lfdasrs_LogBackup_2023-02-02_17-03-48.bak b/version/bak/lfdasrs_LogBackup_2023-02-02_17-03-48.bak
deleted file mode 100644
index 4d3c8b1..0000000
--- a/version/bak/lfdasrs_LogBackup_2023-02-02_17-03-48.bak
+++ /dev/null
Binary files differ
diff --git "a/version/doc/WCS\344\270\216PLC\351\200\232\350\256\257\346\216\245\345\217\243\345\215\217\350\256\256V1.docx" "b/version/doc/WCS\344\270\216PLC\351\200\232\350\256\257\346\216\245\345\217\243\345\215\217\350\256\256V1.docx"
deleted file mode 100644
index 8a6c014..0000000
--- "a/version/doc/WCS\344\270\216PLC\351\200\232\350\256\257\346\216\245\345\217\243\345\215\217\350\256\256V1.docx"
+++ /dev/null
Binary files differ
diff --git "a/version/doc/\344\270\255\346\211\254WCS\344\270\216\345\240\206\345\236\233\346\234\272\351\200\232\350\256\257\345\215\217\350\256\25620220114.docx" "b/version/doc/\344\270\255\346\211\254WCS\344\270\216\345\240\206\345\236\233\346\234\272\351\200\232\350\256\257\345\215\217\350\256\25620220114.docx"
deleted file mode 100644
index 9eb9525..0000000
--- "a/version/doc/\344\270\255\346\211\254WCS\344\270\216\345\240\206\345\236\233\346\234\272\351\200\232\350\256\257\345\215\217\350\256\25620220114.docx"
+++ /dev/null
Binary files differ
diff --git "a/version/doc/\345\225\206\345\223\201\346\241\243\346\241\210Excel\345\257\274\345\205\245\346\250\241\346\235\277.xlsx" "b/version/doc/\345\225\206\345\223\201\346\241\243\346\241\210Excel\345\257\274\345\205\245\346\250\241\346\235\277.xlsx"
deleted file mode 100644
index 87db32a..0000000
--- "a/version/doc/\345\225\206\345\223\201\346\241\243\346\241\210Excel\345\257\274\345\205\245\346\250\241\346\235\277.xlsx"
+++ /dev/null
Binary files differ
diff --git "a/version/doc/\350\207\252\345\212\250\345\214\226\347\253\213\344\275\223\344\273\223\345\272\223ASRS\344\270\216ERP\345\257\271\346\216\245\345\215\217\350\256\256_20220625A.docx" "b/version/doc/\350\207\252\345\212\250\345\214\226\347\253\213\344\275\223\344\273\223\345\272\223ASRS\344\270\216ERP\345\257\271\346\216\245\345\215\217\350\256\256_20220625A.docx"
deleted file mode 100644
index cc991ee..0000000
--- "a/version/doc/\350\207\252\345\212\250\345\214\226\347\253\213\344\275\223\344\273\223\345\272\223ASRS\344\270\216ERP\345\257\271\346\216\245\345\215\217\350\256\256_20220625A.docx"
+++ /dev/null
Binary files differ
--
Gitblit v1.9.1