From a299fc89729094c6f0610be6439000347a160703 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期日, 27 四月 2025 08:51:17 +0800
Subject: [PATCH] #盘点上报页面功能按钮
---
src/main/java/com/zy/asrs/service/impl/CheckDetlServiceImpl.java | 123 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 123 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/CheckDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/CheckDetlServiceImpl.java
index b57ac9f..74680a8 100644
--- a/src/main/java/com/zy/asrs/service/impl/CheckDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/CheckDetlServiceImpl.java
@@ -1,12 +1,135 @@
package com.zy.asrs.service.impl;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.zy.asrs.entity.CheckDetl;
import com.zy.asrs.mapper.CheckDetlMapper;
+import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.CheckDetlService;
+import com.zy.asrs.task.kingdee.handler.LoginAuthenticationHandler;
+import com.zy.common.utils.HttpHandler;
+import javafx.print.Printer;
+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 java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Set;
@Service
+@Slf4j
public class CheckDetlServiceImpl extends ServiceImpl<CheckDetlMapper, CheckDetl> implements CheckDetlService {
+ @Value("${erp.address.URL}")
+ //绔彛
+ private String URL;
+ @Value("${erp.address.outaddressSubmit}")
+ //涓婃姤鍑哄叆搴撳湴鍧�
+ private String outaddressSubmit;
+ @Autowired
+ private CheckDetlService checkDetlService;
+ @Autowired
+ private ApiLogService apiLogService;
+ @Autowired
+ private LoginAuthenticationHandler loginAuthenticationHandler;
+
+
+ @Override
+ @Transactional
+ public void upload(List<CheckDetl> list) {
+ Date now = new Date();
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ // 鏋勫缓涓诲崟 JSON 鏁版嵁
+ JSONObject requestBody = new JSONObject();
+ requestBody.put("createTime", sdf.format(now));
+ // 鏋勫缓鐗╂枡鍒楄〃
+ JSONArray matList = new JSONArray();
+
+ for(CheckDetl checkDetl : list) {
+ JSONObject mat = new JSONObject();
+ mat.put("detailId", checkDetl.getDetailId());
+ mat.put("orderNo", checkDetl.getOrderNo());
+ mat.put("matnr", checkDetl.getMatnr());
+ mat.put("anfme", checkDetl.getAnfme());
+ matList.add(mat);
+ }
+ requestBody.put("data", matList);
+ // 鍙戦�� POST 璇锋眰
+ String response = "";
+ boolean success = false;
+ try {
+ HashMap<String, Object> headers = new HashMap<>();
+ // cookie
+ headers.put("Cookie", loginAuthenticationHandler.start().getContent());
+
+ response = new HttpHandler.Builder()
+ .setHeaders(headers)
+ .setUri(URL)
+ .setPath(outaddressSubmit) // 璁剧疆浣犵殑鎺ュ彛璺緞
+ .setJson(requestBody.toJSONString())
+ .build()
+ .doPost();
+
+ JSONObject data = JSON.parseObject(response);
+ Object isSuccess = findValueByKey(data, "IsSuccess");
+ String bool = isSuccess != null ? isSuccess.toString() : "false";
+
+ if ("true".equals(bool)) {
+ success = true;
+ }
+ } catch (Exception e) {
+ log.error("涓婃姤ERP澶辫触", e);
+ } finally {
+ try {
+ apiLogService.save(
+ "鐩樼偣涓婃姤",
+ URL + outaddressSubmit,
+ null,
+ "127.0.0.1",
+ requestBody.toJSONString(),
+ response,
+ success
+ );
+ } catch (Exception e) {
+ log.error("鏃ュ織淇濆瓨澶辫触", e);
+ }
+ }
+ if(success) {
+ for (CheckDetl entity : list){
+ checkDetlService.delete(new EntityWrapper<>(entity));
+ }
+ }
+ }
+
+ public static Object findValueByKey(JSONObject json, String key) {
+ Set<String> keySet = json.keySet();
+ for (String k : keySet) {
+ Object v = json.get(k);
+ if (k.equals(key)) {
+ return v;
+ } else if (v instanceof JSONArray) {
+ int size = ((JSONArray) v).size();
+ for (int i = 0; i <= size - 1; i++) {
+ Object result = findValueByKey((JSONObject) ((JSONArray) v).get(i), key);
+ if (result != null){
+ return result;
+ }
+ }
+ } else if (v instanceof JSONObject){
+ Object result = findValueByKey((JSONObject) v, key);
+ if (result != null){
+ return result;
+ }
+ }
+ }
+ return null;
+ }
}
\ No newline at end of file
--
Gitblit v1.9.1