From dbfbc8f19dc5751b6dec442aff24463f1084a3d9 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期日, 21 九月 2025 15:54:02 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java | 3
src/main/java/com/zy/asrs/mapper/BasCrnpMapper.java | 4 +
src/main/java/com/zy/asrs/task/handler/OutWorkHandler.java | 46 ++++----------
src/main/java/com/zy/asrs/service/impl/BasCrnpServiceImpl.java | 8 ++
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 9 --
src/main/java/com/zy/asrs/mapper/LocMastMapper.java | 4
src/main/java/com/zy/asrs/service/BasCrnpService.java | 4 +
src/main/resources/mapper/BasCrnpMapper.xml | 4 +
src/main/java/com/zy/common/service/CommonService.java | 96 +++++++++++++++++++------------
9 files changed, 97 insertions(+), 81 deletions(-)
diff --git a/src/main/java/com/zy/asrs/mapper/BasCrnpMapper.java b/src/main/java/com/zy/asrs/mapper/BasCrnpMapper.java
index baffc35..defc1ff 100644
--- a/src/main/java/com/zy/asrs/mapper/BasCrnpMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/BasCrnpMapper.java
@@ -5,8 +5,12 @@
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
+import java.util.List;
+
@Mapper
@Repository
public interface BasCrnpMapper extends BaseMapper<BasCrnp> {
+ List<Integer> getLevList();
+
}
diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index 33877cc..bd3aa02 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -15,8 +15,8 @@
LocMast queryFreeLocMast(@Param("row") Integer row, @Param("locType1") Short locType1);
- @Select("select loc_no from asr_loc_mast where 1=1 and loc_sts = 'O' and crn_no = #{crnNo}")
- List<String> queryGroupEmptyStock(Integer crnNo);
+ @Select("select loc_no from asr_loc_mast where 1=1 and loc_sts = 'O' and lev1 = #{lev}")
+ List<String> queryGroupEmptyStock(Integer lev);
@Select("select count(*) as count from asr_loc_mast where 1=1 and loc_sts = 'O' and loc_type1 = #{locType1} and crn_no = #{crnNo}")
Integer selectEmptyLocCount(@Param("locType1") Short locType1, @Param("crnNo") Integer crnNo);
diff --git a/src/main/java/com/zy/asrs/service/BasCrnpService.java b/src/main/java/com/zy/asrs/service/BasCrnpService.java
index 10c3feb..3f83864 100644
--- a/src/main/java/com/zy/asrs/service/BasCrnpService.java
+++ b/src/main/java/com/zy/asrs/service/BasCrnpService.java
@@ -3,10 +3,14 @@
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.BasCrnp;
+import java.util.List;
+
public interface BasCrnpService extends IService<BasCrnp> {
BasCrnp checkSiteStatus(Integer crnId);
boolean checkSiteError(Integer crnNo, boolean pakin);
+ List<Integer> getLevList();
+
}
diff --git a/src/main/java/com/zy/asrs/service/impl/BasCrnpServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasCrnpServiceImpl.java
index 7b36b86..da7d3e4 100644
--- a/src/main/java/com/zy/asrs/service/impl/BasCrnpServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/BasCrnpServiceImpl.java
@@ -4,7 +4,6 @@
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.BasCrnp;
-import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.mapper.BasCrnpMapper;
import com.zy.asrs.service.BasCrnpService;
import com.zy.asrs.service.BasDevpService;
@@ -12,6 +11,8 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+
+import java.util.List;
@Slf4j
@Service("basCrnpService")
@@ -122,4 +123,9 @@
return true;
}
+
+ @Override
+ public List<Integer> getLevList() {
+ return this.baseMapper.getLevList();
+ }
}
diff --git a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
index ae76556..54306de 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -7,6 +7,7 @@
import com.zy.asrs.mapper.LocMastMapper;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.RowLastnoService;
+import com.zy.asrs.utils.Utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -32,7 +33,7 @@
if (Cools.isEmpty(sourceStock)) {
return null;
}
- return this.baseMapper.queryGroupEmptyStock(sourceStock.getCrnNo());
+ return this.baseMapper.queryGroupEmptyStock(Utils.getLev(sourceLocNo));
}
@Override
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index 0c1fc9d..2208239 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -222,10 +222,6 @@
}
Integer outSta = staNo.getDevNo();
- //2鍙峰爢鍨涙満鍏ㄦ澘鍑哄簱绔欐寚瀹氫负204绔欙紝鎷f枡绔欐寚瀹氫负202
-// if(locMast.getCrnNo()==2){
-// outSta = ioType == 101 ? 204 : 202;
-// }
// 鑾峰彇璺緞
StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta);
@@ -237,7 +233,7 @@
wrkMast.setIoTime(now);
wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
- wrkMast.setIoPri(10.0+locMast.getLocAttribute()); // 浼樺厛绾�
+ wrkMast.setIoPri(10D); // 浼樺厛绾�
wrkMast.setCrnNo(locMast.getCrnNo());
wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
@@ -537,9 +533,6 @@
LocMast loc = locMastService.selectById(locNo);
if (Cools.isEmpty(loc)){
throw new CoolException("鏈壘鍒板簱浣�");
- }
- if (!sourceLoc.getCrnNo().equals(loc.getCrnNo())) {
- throw new CoolException("绉昏浆搴撲綅灞炰簬涓嶅悓鍫嗗灈鏈�");
}
Date now = new Date();
// 鑾峰彇宸ヤ綔鍙�
diff --git a/src/main/java/com/zy/asrs/task/handler/OutWorkHandler.java b/src/main/java/com/zy/asrs/task/handler/OutWorkHandler.java
index 06dd5f1..81b5825 100644
--- a/src/main/java/com/zy/asrs/task/handler/OutWorkHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/OutWorkHandler.java
@@ -2,14 +2,9 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.entity.param.CarryParam;
import com.zy.asrs.service.ApiLogService;
-import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WrkMastService;
-import com.zy.asrs.service.impl.LocMastServiceImpl;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.common.utils.HttpHandler;
@@ -19,17 +14,13 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.util.ArrayList;
import java.util.HashMap;
-import java.util.List;
@Slf4j
@Service
@Transactional
public class OutWorkHandler extends AbstractHandler<String> {
- @Autowired
- private LocMastService locMastService;
@Autowired
private ApiLogService apiLogService;
@Value("${wcs.address.URL}")
@@ -41,29 +32,18 @@
public synchronized ReturnT<String> start(WrkMast wrkMast) {
- //浼樺厛绾�
- LocMast locMast=locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getSourceLocNo()));
- int Priority = locMast.getLocAttribute() == null ? 0 : locMast.getLocAttribute();
-
HashMap<String, Object> map = new HashMap<>();
- CarryParam carryParam = new CarryParam();
- carryParam.setBoxNo(wrkMast.getBarcode());//鎵樼洏鐮�
- carryParam.setTaskNo(wrkMast.getWrkNo()+"");//浠诲姟鍙�
- carryParam.setStereoscopicTaskType(2);//2.鍑哄簱
- carryParam.setPriority(10+Priority);//浼樺厛绾�
- carryParam.setOriginalRowNo(locMast.getRow1());//婧愬簱浣嶆帓
- carryParam.setOriginalColumnNo(locMast.getBay1());//婧愬簱浣嶅垪
- carryParam.setOriginalFloorNo(locMast.getLev1());//婧愬簱浣嶅眰
- carryParam.setStartPoint(wrkMast.getStaNo()+""+locMast.getLev1());//婧愮珯
- carryParam.setTerminalNo(wrkMast.getStaNo()+"");//鐩爣绔�
- List<CarryParam> carryParamList=new ArrayList<>();
- carryParamList.add(carryParam);
- map.put("TaskList",carryParamList);
+ map.put("taskNo", wrkMast.getWrkNo());
+ map.put("taskPriority", 10);
+ map.put("taskType", wrkMast.getIoType() == 11 ? 3 : 2);
+ map.put("startPoint", wrkMast.getSourceLocNo());
+ map.put("targetPoint", wrkMast.getLocNo());
+ map.put("barcode", wrkMast.getBarcode());
String response ="";
- Boolean bool =false;
+ boolean bool =false;
try {
- log.info("wms娲惧彂浠诲姟缁檞cs鍑哄簱={}", map);
+ log.info("wms娲惧彂浠诲姟缁檞cs鍑哄簱={}", JSON.toJSONString(map));
response = new HttpHandler.Builder()
// .setHeaders(headParam)
.setUri(addrs)
@@ -72,15 +52,17 @@
.build()
.doPost();
JSONObject jsonObject = JSON.parseObject(response);
- if(jsonObject.get("Code").equals("1")){
+ if(jsonObject.getInteger("code") == 200){
wrkMast.setWrkSts(12L);
wrkMastService.updateById(wrkMast);
bool = true;
+ }else {
+ log.error("wms娲惧彂浠诲姟缁檞cs鍑哄簱澶辫触{},杩斿洖鍊�={}", JSON.toJSONString(wrkMast), response);
}
} catch (Exception e) {
- log.error("wcs娲惧彂浠诲姟缁橰CS鍑哄簱澶辫触{},杩斿洖鍊�={}", wrkMast, response);
+ log.error("wms娲惧彂浠诲姟缁檞cs鍑哄簱澶辫触{},杩斿洖鍊�={}", JSON.toJSONString(wrkMast), response);
} finally {
- apiLogService.save("wcs娲惧彂浠诲姟缁橰CS鍑哄簱"
+ apiLogService.save("wms娲惧彂浠诲姟缁檞cs鍑哄簱"
, addrs + outboundTaskSend
, null
, "127.0.0.1"
@@ -89,7 +71,7 @@
, bool
);
}
- return SUCCESS;
+ return SUCCESS;
}
}
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index c3ccb4a..fa5eb7c 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -16,6 +16,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.Collections;
import java.util.List;
/**
@@ -188,30 +189,41 @@
if(targetLocMast == null) {
//鐩歌繎鐗╂枡鍖归厤澶辫触锛屾悳绱㈠彲鐢ㄧ┖搴撲綅缁�
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("loc_sts", "O")
- .orderBy("lev1", true)
- .orderBy("bay1", true));
- for (LocMast locMast : locMasts) {
- String locNo = locMast.getLocNo();
- //鑾峰彇閫氶亾缁�
- List<Integer> locRowGroupDesc = Utils.getLocRowGroupDesc(slaveProperties, Utils.getRow(locNo));
- boolean flag = true;
- for (Integer row : locRowGroupDesc) {
- String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
- LocMast deepLoc = locMastService.selectById(deepLocNo);
- if (!deepLoc.getLocSts().equals("O")) {
- flag = false;
+ //鑾峰彇璁惧妤煎眰
+ List<Integer> levList = basCrnpService.getLevList();
+ Collections.shuffle(levList);
+
+ for (Integer lev : levList) {
+ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+ .eq("loc_sts", "O")
+ .eq("lev1", lev)
+ .orderBy("bay1", true));
+ for (LocMast locMast : locMasts) {
+ String locNo = locMast.getLocNo();
+ //鑾峰彇閫氶亾缁�
+ List<Integer> locRowGroupDesc = Utils.getLocRowGroupDesc(slaveProperties, Utils.getRow(locNo));
+
+ boolean flag = true;
+ for (Integer row : locRowGroupDesc) {
+ String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
+ LocMast deepLoc = locMastService.selectById(deepLocNo);
+ if (!deepLoc.getLocSts().equals("O")) {
+ flag = false;
+ break;
+ }
+ }
+
+ if (flag) {
+ Integer firstRow = locRowGroupDesc.get(0);
+ String deepLocNo = Utils.getLocNo(firstRow, Utils.getBay(locNo), Utils.getLev(locNo));
+ LocMast deepLoc = locMastService.selectById(deepLocNo);
+ targetLocMast = deepLoc;
break;
}
}
- if (flag) {
- Integer firstRow = locRowGroupDesc.get(0);
- String deepLocNo = Utils.getLocNo(firstRow, Utils.getBay(locNo), Utils.getLev(locNo));
- LocMast deepLoc = locMastService.selectById(deepLocNo);
- targetLocMast = deepLoc;
+ if (targetLocMast != null) {
break;
}
}
@@ -246,32 +258,42 @@
}
if(targetLocMast == null) {
- //鐩歌繎鐗╂枡鍖归厤澶辫触锛屾悳绱㈠彲鐢ㄧ┖搴撲綅缁�
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("loc_sts", "O")
- .orderBy("lev1", true)
- .orderBy("bay1", true));
- for (LocMast locMast : locMasts) {
- String locNo = locMast.getLocNo();
- //鑾峰彇閫氶亾缁�
- List<Integer> locRowGroupDesc = Utils.getLocRowGroupDesc(slaveProperties, Utils.getRow(locNo));
- boolean flag = true;
- for (Integer row : locRowGroupDesc) {
- String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
- LocMast deepLoc = locMastService.selectById(deepLocNo);
- if (!deepLoc.getLocSts().equals("O")) {
- flag = false;
+ //鑾峰彇璁惧妤煎眰
+ List<Integer> levList = basCrnpService.getLevList();
+ Collections.shuffle(levList);
+
+ for (Integer lev : levList) {
+ //鐩歌繎鐗╂枡鍖归厤澶辫触锛屾悳绱㈠彲鐢ㄧ┖搴撲綅缁�
+ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+ .eq("loc_sts", "O")
+ .eq("lev1", lev)
+ .orderBy("bay1", true));
+ for (LocMast locMast : locMasts) {
+ String locNo = locMast.getLocNo();
+ //鑾峰彇閫氶亾缁�
+ List<Integer> locRowGroupDesc = Utils.getLocRowGroupDesc(slaveProperties, Utils.getRow(locNo));
+
+ boolean flag = true;
+ for (Integer row : locRowGroupDesc) {
+ String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
+ LocMast deepLoc = locMastService.selectById(deepLocNo);
+ if (!deepLoc.getLocSts().equals("O")) {
+ flag = false;
+ break;
+ }
+ }
+
+ if (flag) {
+ targetLocMast = locMast;
break;
}
}
- if (flag) {
- targetLocMast = locMast;
+ if (targetLocMast != null) {
break;
}
}
-
}
return targetLocMast;
}
diff --git a/src/main/resources/mapper/BasCrnpMapper.xml b/src/main/resources/mapper/BasCrnpMapper.xml
index 00b15b5..85ba664 100644
--- a/src/main/resources/mapper/BasCrnpMapper.xml
+++ b/src/main/resources/mapper/BasCrnpMapper.xml
@@ -29,4 +29,8 @@
<result column="lev1" property="lev1" />
</resultMap>
+ <select id="getLevList" resultType="integer">
+ select DISTINCT lev1 from asr_bas_crnp
+ </select>
+
</mapper>
--
Gitblit v1.9.1