From 10e6a9a8adad2226f13a4e4704ca5b2ad5b9ef9a Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期日, 21 十二月 2025 18:49:59 +0800
Subject: [PATCH] 刀具库WMS功能完善
---
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 101 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index 61a8b77..a008dca 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -4,6 +4,7 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.plugins.Page;
import com.core.common.*;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
@@ -30,10 +31,12 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
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 javax.annotation.Resource;
+import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
@@ -123,6 +126,102 @@
@Resource
private RcsService rcsService;
+
+ @Override
+ @Transactional
+ public R emptyBoxOutbound(int count, Long userId) {
+ List<LocMast> locMastList = locMastService.selectList(new EntityWrapper<LocMast>().setSqlSelect("TOP " + count + " *").eq("loc_sts", "D").eq("frozen", 0).orderBy("lev1").orderBy("bay1").orderBy("row1"));
+ if (locMastList.size() < count) {
+ return R.parse("绌烘枡绠辨暟閲忎笉瓒�(鎴栧喕缁�)锛屽墿浣欐暟閲忥細" + locMastList.size());
+ }
+ for (LocMast locMast : locMastList) {
+ // 鑾峰彇宸ヤ綔鍙�
+ int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
+ Date now = new Date();
+ // 淇濆瓨宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(now);
+ wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱
+ wrkMast.setIoPri(10D);
+ wrkMast.setSourceStaNo("101"); // 婧愮珯
+ wrkMast.setStaNo("103"); // 鐩爣绔�
+ wrkMast.setCrnNo(locMast.getCrnNo());
+ wrkMast.setSourceLocNo(locMast.getLocNo()); // 婧愬簱浣�
+ wrkMast.setBarcode(locMast.getBarcode());
+ wrkMast.setFullPlt("N"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("Y"); // 绌烘澘
+ wrkMast.setLinkMis("N");
+ wrkMast.setAppeUser(userId);
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiUser(userId);
+ wrkMast.setModiTime(now);
+ wrkMastService.insert(wrkMast);
+
+ locMast.setLocSts("R");
+ locMast.setModiUser(userId);
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
+ }
+
+ }
+ return R.ok("鍑哄簱鎴愬姛");
+ }
+
+ @Value("${wcs-slave.url}")
+ private String WCS_URL;
+
+ @Override
+ public R inboundStart(int type) {
+// BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 103));
+// if (!basDevp.getAutoing().equals("Y") || !basDevp.getLoading().equals("Y")) {
+// return R.parse("绔欑偣103涓嶆槸鑷姩/鏈夌墿鐘舵��");
+// }
+
+ Map<String,Object> params = new HashMap<>();
+ params.put("siteId",103);
+ int wrkNo = type == 1 ? 9998 : 9997;
+ params.put("workNo",wrkNo);
+ params.put("staNo", 104);
+ params.put("pakMk","Y");
+ String response;
+ boolean success = false;
+ String message = "";
+ try {
+ HashMap<String, Object> headers = new HashMap<>();
+ headers.put("token","1");
+ response = new HttpHandler.Builder()
+ .setUri(WCS_URL)
+ .setPath("/site/detl/update")
+// .setHeaders(headers)
+ .setParams(params)
+ .build()
+ .doPost();
+ if (Cools.isEmpty(response)) {
+ log.error("鍏ュ簱鍚姩璋冪敤wcs缁欒緭閫佺嚎涓嬪懡浠ゅけ璐ワ紝杩斿洖鍊间负绌�");
+ } else {
+ JSONObject jsonObject = JSONObject.parseObject(response);
+ if(jsonObject.getInteger("code").equals(200)) {
+ success = true;
+ log.info("鍏ュ簱鍚姩璋冪敤wcs缁欒緭閫佺嚎涓嬪懡鎴愬姛,wrkNo:{}",wrkNo);
+ } else {
+ message = String.valueOf(jsonObject.getString("msg"));
+ log.error("鍏ュ簱鍚姩璋冪敤wcs缁欒緭閫佺嚎涓嬪懡浠ゅけ璐�:{}",message);
+ }
+ }
+ } catch (IOException e) {
+ log.error("鍏ュ簱鍚姩璋冪敤wcs缁欒緭閫佺嚎涓嬪懡浠ゅ紓甯�:{}",e.getMessage());
+ message = e.getMessage();
+ e.printStackTrace();
+ }
+
+ return success ? R.ok("涓嬪彂鎴愬姛") : R.parse(message);
+ }
+
@Override
@Transactional
public R djReturn(String djNo) {
@@ -140,7 +239,7 @@
TransTask transTask = JSONObject.parseObject(task.getMemo(), TransTask.class);
transTask.setTaskno(task.getTaskNo());
- transTask.setCurStationId(sourceStaNo);
+ transTask.setCurStationId(task.getSourceStaNo());
transTask.setNextStationId(task.getStaNo());
if(transTask.getTransType().equals("06")) {
transTask.setTransType("01");
@@ -156,7 +255,7 @@
// 涓嬪彂缁橰CS
RcsTaskSubmit rcsTaskSubmit = new RcsTaskSubmit();
// 妯℃澘鍚�
- rcsTaskSubmit.setTaskType("CS");
+ rcsTaskSubmit.setTaskType("DJ2");
rcsTaskSubmit.setRobotTaskCode(transTask.getTaskno());
rcsTaskSubmit.setInitPriority(10); //榛樿10
List<RcsTaskTargetRoute> targetRouteList = new ArrayList<>();
--
Gitblit v1.9.1