From 9d831229b5a8c238ce55f4ee8de7433c56cbe3a8 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期五, 14 十一月 2025 08:30:35 +0800
Subject: [PATCH] *
---
src/main/webapp/static/js/locDetl/locDetl.js | 29 +++++++++
src/main/webapp/views/locDetl/locDetl.html | 1
src/main/java/com/zy/asrs/controller/LocDetlController.java | 64 +++++++++++++++++++--
src/main/java/com/zy/asrs/entity/param/OrderMesXGHYParam.java | 81 +++++++++++++++++++++++++++
4 files changed, 168 insertions(+), 7 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/LocDetlController.java b/src/main/java/com/zy/asrs/controller/LocDetlController.java
index 49ad3aa..87c2902 100644
--- a/src/main/java/com/zy/asrs/controller/LocDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -9,14 +9,10 @@
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.annotations.ManagerAuth;
-import com.core.common.BaseRes;
-import com.core.common.Cools;
-import com.core.common.DateUtils;
-import com.core.common.R;
-import com.zy.asrs.entity.LocDetl;
-import com.zy.asrs.entity.ManLocDetl;
-import com.zy.asrs.entity.Mat;
+import com.core.common.*;
+import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.OrderInspectionRollParam;
+import com.zy.asrs.entity.param.OrderMesXGHYParam;
import com.zy.asrs.entity.param.QualityGroupListParam;
import com.zy.asrs.entity.result.OrderPakoutDetailVo;
import com.zy.asrs.mapper.LocDetlMapper;
@@ -47,11 +43,18 @@
private MatService matService;
@Autowired
private ApiLogService apiLogService;
+ @Autowired
+ private SnowflakeIdWorker snowflakeIdWorker;
@Value("${srXghyMes.qualityFinishedCheckoutUrl}")
private String qualityFinishedCheckoutUrl;
@Value("${srXghyMes.qualityFinishedCheckout}")
private String qualityFinishedCheckout;
+
+ @Value("${srXghyMes.productInventoryUrl}")
+ private String productInventoryUrl;
+ @Value("${srXghyMes.productInventory}")
+ private String productInventory;
@RequestMapping(value = "/locDetl/update")
public R update1() {
@@ -385,4 +388,51 @@
return R.error("涓婃姤澶辫触").add("涓婃姤澶辫触");
}
+ @RequestMapping(value = "/synchronize/mes/locDetl/report/auth")
+ @ManagerAuth(memo = "鍚屾搴撳瓨鑷矼ES")
+ public R synchronizeLocDetlMes() {
+ List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>());
+ if (locDetlList.isEmpty()) {
+ return R.error("搴撳瓨涓虹┖锛侊紒锛�");
+ }
+
+ OrderMesXGHYParam orderMesXGHYParam = new OrderMesXGHYParam(locDetlList,"in","鎴愬搧鍏ュ簱");
+ orderMesXGHYParam.setBarcode(String.valueOf(snowflakeIdWorker.nextId()));
+ orderMesXGHYParam.setPalletizingNo(1);
+
+
+ String response = "";
+ boolean success = false;
+ try {
+ response = new HttpHandler.Builder()
+ .setUri(productInventoryUrl)
+ .setPath(productInventory)
+ .setJson(JSON.toJSONString(orderMesXGHYParam))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.getBoolean("state")) {
+ success = true;
+ } else {
+ return R.error("鍚屾搴撳瓨鑷矼ES");
+ }
+ } catch (Exception e) {
+ return R.error("鍚屾搴撳瓨鑷矼ES"+e.getMessage());
+ } finally {
+ try {
+ // 淇濆瓨鎺ュ彛鏃ュ織
+ apiLogService.save(
+ "鍚屾搴撳瓨鑷矼ES",
+ productInventoryUrl+"/"+productInventory,
+ null,
+ "127.0.0.1",
+ JSON.toJSONString(orderMesXGHYParam),
+ response,
+ success
+ );
+ } catch (Exception e) { }
+ }
+ return R.error("涓婃姤澶辫触").add("涓婃姤澶辫触");
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/entity/param/OrderMesXGHYParam.java b/src/main/java/com/zy/asrs/entity/param/OrderMesXGHYParam.java
index 24bf2cc..272613f 100644
--- a/src/main/java/com/zy/asrs/entity/param/OrderMesXGHYParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/OrderMesXGHYParam.java
@@ -1,6 +1,7 @@
package com.zy.asrs.entity.param;
import com.core.common.DateUtils;
+import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.WrkDetl;
import lombok.Data;
@@ -76,6 +77,16 @@
this.orderSerialNumber = sampleWrkDetl.getOrderNo();
}
+ public Roll(LocDetl sampleLocDetl) {
+ this.boxNo = sampleLocDetl.getBatch();
+ this.rollNo = sampleLocDetl.getModel();
+ this.specs = sampleLocDetl.getMatnr();
+ this.length = sampleLocDetl.getPrice().toString();
+ this.splices = sampleLocDetl.getSpecs();
+ this.netWeight = sampleLocDetl.getWeight().toString();
+ this.grossWeight = sampleLocDetl.getVolume().toString();
+ }
+
@Override
public String toString() {
return String.format(
@@ -170,6 +181,76 @@
this.matList = boxList;
}
+ public OrderMesXGHYParam(List<LocDetl> locDetls, String outOrIn,String stockType) {
+ // 鎸塨atch瀛楁鍒嗙粍锛屾瘡涓猙atch瀵瑰簲涓�涓狟ox
+ Map<String, List<LocDetl>> batchGroup = locDetls.stream()
+ .collect(Collectors.groupingBy(LocDetl::getBatch));
+
+ List<OrderMesXGHYParam.Box> boxList = new ArrayList<>();
+
+ // 澶勭悊姣忎釜batch鍒嗙粍
+ for (Map.Entry<String, List<LocDetl>> entry : batchGroup.entrySet()) {
+ String batch = entry.getKey();
+ List<LocDetl> batchWrkDetls = entry.getValue();
+
+ // 鍒涘缓Box瀵硅薄
+ OrderMesXGHYParam.Box box = new OrderMesXGHYParam.Box();
+ box.setBoxNo(batch); // batch瀵瑰簲boxNo
+ box.setOutOrIn(outOrIn); // batch瀵瑰簲boxNo
+
+ // 鎸塵odel瀛楁鍒嗙粍锛屾瘡涓猰odel瀵瑰簲涓�涓猺oll
+ Map<String, List<LocDetl>> modelGroup = batchWrkDetls.stream()
+ .collect(Collectors.groupingBy(LocDetl::getModel));
+
+ List<OrderMesXGHYParam.Box.Roll> rollList = new ArrayList<>();
+ String wideInWidth = null;
+ String thickness = null;
+ String boxPos = null;
+ String boxType = null;
+ String packageGroupNo = null; //鍖呰缁勫彿锛堝緪宸ユ病鏈夛紝鍙湁绠卞彿鍗峰彿涓�瀵逛竴锛� //null
+
+ // 澶勭悊姣忎釜model鍒嗙粍
+ for (Map.Entry<String, List<LocDetl>> modelEntry : modelGroup.entrySet()) {
+ List<LocDetl> modelWrkDetls = modelEntry.getValue();
+
+ LocDetl sampleWrkDetl = modelWrkDetls.get(0);
+ String matnr = sampleWrkDetl.getMatnr();
+
+ String[] firstSplit = matnr.split("渭m脳");
+ if (firstSplit.length == 2) {
+ thickness = firstSplit[0]; // 5.2
+ String[] secondSplit = firstSplit[1].split("mm");
+ if (secondSplit.length > 0) {
+ wideInWidth = secondSplit[0]; // 834.1
+ } else {
+ continue;
+ }
+ } else {
+ continue;
+ }
+ boxPos = sampleWrkDetl.getOrigin();
+ boxType = sampleWrkDetl.getBrand$();
+ stockType = sampleWrkDetl.getManu();
+ packageGroupNo = sampleWrkDetl.getDeadTime();
+ OrderMesXGHYParam.Box.Roll roll = new OrderMesXGHYParam.Box.Roll(sampleWrkDetl);
+
+ rollList.add(roll);
+ }
+ box.setWideInWidth(wideInWidth);
+ box.setThickness(thickness);
+ box.setBoxPos(boxPos);
+ box.setBoxType(boxType);
+ box.setStockType(stockType);
+ box.setPackageGroupNo(packageGroupNo);
+
+ box.setRolls(rollList);
+ boxList.add(box);
+ }
+
+ // 璁剧疆鍒颁富瀵硅薄涓�
+ this.matList = boxList;
+ }
+
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
diff --git a/src/main/webapp/static/js/locDetl/locDetl.js b/src/main/webapp/static/js/locDetl/locDetl.js
index 3697125..26c9c1f 100644
--- a/src/main/webapp/static/js/locDetl/locDetl.js
+++ b/src/main/webapp/static/js/locDetl/locDetl.js
@@ -470,6 +470,35 @@
})
}
+ // 鍚屾搴撳瓨鑷矼ES
+ form.on('submit(synchronize)', function (data) {
+ layer.confirm('纭鍚慚ES鍚屾搴撳瓨锛�', {
+ shade: .1,
+ skin: 'layui-layer-admin'
+ }, function (i) {
+ $.ajax({
+ url: baseUrl + "/synchronize/mes/locDetl/report/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll('loading');
+ if (res.code === 200){
+ if (insTbCount === 0) {
+ insTb.reload({page: {curr: 1}});
+ } else {
+ $(".layui-laypage-btn")[0].click();
+ }
+ layer.msg(res.msg, {icon: 1});
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ });
+ });
+
// 澶嶉�夋浜嬩欢
form.on('checkbox(detailCheckbox)', function (data) {
var el = data.elem;
diff --git a/src/main/webapp/views/locDetl/locDetl.html b/src/main/webapp/views/locDetl/locDetl.html
index 72e2ca2..e30e676 100644
--- a/src/main/webapp/views/locDetl/locDetl.html
+++ b/src/main/webapp/views/locDetl/locDetl.html
@@ -60,6 +60,7 @@
<div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block">
<button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
<button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>
+ <button id="unreason" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="synchronize">鍚屾搴撳瓨鑷矼ES</button>
<!-- <button id="unreason" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="unreason">鏌ョ湅寮傚父鏁版嵁</button>-->
</div>
--
Gitblit v1.9.1