From 1c4c580c21a8f721c85f8725ee5f2e699228b40e Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期二, 27 二月 2024 16:52:45 +0800
Subject: [PATCH] #
---
src/main/resources/mapper/RowLastnoMapper.xml | 5 +
src/main/java/com/zy/asrs/utils/Utils.java | 120 +++++++++++++++++------
src/main/java/com/zy/common/web/WcsController.java | 60 ++++++++++++
src/main/java/com/zy/asrs/entity/RowLastno.java | 74 ++++++++++++++
4 files changed, 226 insertions(+), 33 deletions(-)
diff --git a/src/main/java/com/zy/asrs/entity/RowLastno.java b/src/main/java/com/zy/asrs/entity/RowLastno.java
index 292294b..5414062 100644
--- a/src/main/java/com/zy/asrs/entity/RowLastno.java
+++ b/src/main/java/com/zy/asrs/entity/RowLastno.java
@@ -100,6 +100,41 @@
@TableField("limint_loc")
private Integer limintLoc;
+ /**
+ * 璧峰鍫嗗灈鏈哄彿
+ */
+ @ApiModelProperty(value= "璧峰鎺掑彿")
+ @TableField("s_crn_no")
+ private Integer sCrnNo;
+
+ /**
+ * 缁堟鍫嗗灈鏈哄彿
+ */
+ @ApiModelProperty(value= "缁堟鎺掑彿")
+ @TableField("e_crn_no")
+ private Integer eCrnNo;
+
+ /**
+ * 鏍囪绫诲埆锛堟槸鍚﹁緭閫佺嚎浜掗�氾級
+ */
+ @ApiModelProperty(value= "鏍囪绫诲埆")
+ @TableField("sign_type")
+ private Integer signType;
+
+ /**
+ * 鏄惁鍚敤鍏跺畠鏍囪绫诲埆 0:鍏抽棴 1锛氭墦寮�
+ */
+ @ApiModelProperty(value= "鏄惁鍚敤鍏跺畠鏍囪绫诲埆")
+ @TableField("sign_type_other")
+ private Integer signTypeOther;
+
+ /**
+ * 鍏跺畠鏍囪绫诲埆锛堟槸鍚﹁緭閫佺嚎浜掗�氾級
+ */
+ @ApiModelProperty(value= "鍏跺畠鏍囪绫诲埆")
+ @TableField("sign_type_other_boolean")
+ private String signTypeOtherBoolean;
+
public RowLastno() {}
public RowLastno(String wrkMk,Integer currentRow,Integer sRow,Integer eRow,Integer crnQty,String memo,Long modiUser,Date modiTime,Long appeUser,Date appeTime,Integer limintLoc) {
@@ -258,5 +293,44 @@
this.limintLoc = limintLoc;
}
+ public Integer getsCrnNo() {
+ return sCrnNo;
+ }
+
+ public void setsCrnNo(Integer sCrnNo) {
+ this.sCrnNo = sCrnNo;
+ }
+
+ public Integer geteCrnNo() {
+ return eCrnNo;
+ }
+
+ public void seteCrnNo(Integer eCrnNo) {
+ this.eCrnNo = eCrnNo;
+ }
+
+ public Integer getSignType() {
+ return signType;
+ }
+
+ public void setSignType(Integer signType) {
+ this.signType = signType;
+ }
+
+ public Integer getSignTypeOther() {
+ return signTypeOther;
+ }
+
+ public void setSignTypeOther(Integer signTypeOther) {
+ this.signTypeOther = signTypeOther;
+ }
+
+ public String getSignTypeOtherBoolean() {
+ return signTypeOtherBoolean;
+ }
+
+ public void setSignTypeOtherBoolean(String signTypeOtherBoolean) {
+ this.signTypeOtherBoolean = signTypeOtherBoolean;
+ }
}
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 2adeca1..6f8e8ce 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -2,10 +2,14 @@
import com.core.common.Arith;
import com.core.common.Cools;
+import com.core.common.SpringUtils;
import com.core.exception.CoolException;
import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.RowLastno;
+import com.zy.asrs.service.RowLastnoService;
import com.zy.common.model.LocDetlDto;
import com.zy.common.properties.SlaveProperties;
+import com.zy.system.service.UserService;
import java.text.DecimalFormat;
import java.util.ArrayList;
@@ -227,6 +231,13 @@
case 130:
case 125:
return 5;
+ case 204:
+ case 273:
+ case 274:
+ case 275:
+ case 230:
+ case 225:
+ return 2;
default:
return 0;
}
@@ -274,12 +285,12 @@
switch (whsType){
case 1://缁忓吀鍙屼几搴撲綅
return LocNecessaryParametersDoubleExtension(whsType, curRow, crnNumber); //宸插畬鍠�
-// case 2://缁忓吀鍗曚几搴撲綅
-// return LocNecessaryParametersDoubleExtension1(whsType, curRow, crnNumber); //鏈畬鍠�
+ case 2://缁忓吀鍗曚几搴撲綅
+ return LocNecessaryParametersDoubleExtension2(whsType, curRow, crnNumber); //鏈畬鍠�
// case 3://缁忓吀鍗曞弻浼稿簱浣� 宸﹀崟鍙冲弻
-// return LocNecessaryParametersDoubleExtension2(whsType, curRow, crnNumber); //鏈畬鍠�
-// case 4://缁忓吀鍗曞弻浼稿簱浣� 宸﹀弻鍙冲崟
// return LocNecessaryParametersDoubleExtension3(whsType, curRow, crnNumber); //鏈畬鍠�
+// case 4://缁忓吀鍗曞弻浼稿簱浣� 宸﹀弻鍙冲崟
+// return LocNecessaryParametersDoubleExtension4(whsType, curRow, crnNumber); //鏈畬鍠�
case 5://鍙屽伐浣嶅崟浼稿簱浣�
return LocNecessaryParametersDoubleExtension5(whsType, curRow, crnNumber); //鏈畬鍠�
default:
@@ -289,6 +300,61 @@
//缁忓吀鍙屼几搴撲綅
public static int[] LocNecessaryParametersDoubleExtension(Integer whsType, Integer curRow, Integer crnNumber) {
+ int[] necessaryParameters = new int[]{0, 0, 0, 0};
+ RowLastnoService rowLastnoService = SpringUtils.getBean(RowLastnoService.class);
+ RowLastno rowLastno = rowLastnoService.selectById(whsType);
+ Integer sRow = rowLastno.getsRow();
+ Integer sCrnNo = rowLastno.getsCrnNo();
+ if (BooleanWhsTypeSta(whsType)) {
+ necessaryParameters[0] = crnNumber; // 杞娆℃暟
+ //婊℃澘姝e父鍏ュ簱
+ if (curRow.equals(crnNumber * 4 + sRow - 1)) {
+ necessaryParameters[1] = sRow; //curRow 鏈�娣卞簱浣嶆帓
+ necessaryParameters[2] = sCrnNo; //crnNo 鍫嗗灈鏈哄彿
+ necessaryParameters[3] = sRow+1; //nearRow 鏈�娴呭簱浣嶆帓
+ } else if (curRow.equals(crnNumber * 4 - 3 + sRow - 1)) {
+ necessaryParameters[1] = sRow+3; //curRow 鏈�娣卞簱浣嶆帓
+ necessaryParameters[2] = sCrnNo; //crnNo 鍫嗗灈鏈哄彿
+ necessaryParameters[3] = sRow+2; //nearRow 鏈�娴呭簱浣嶆帓
+ } else {
+ curRow = curRow + 4;
+ if (curRow < sRow || curRow > (crnNumber * 4 + sRow - 1)) {
+ throw new CoolException("搴撲綅鎺掑彿寮傚父锛氭帓鍙凤細" + curRow);
+ }
+ if ((curRow - sRow) % 4 == 0) {
+ necessaryParameters[1] = curRow; //curRow 鏈�娣卞簱浣嶆帓
+ necessaryParameters[2] = (curRow - sRow + 2) / 4 + sCrnNo - 1; //crnNo 鍫嗗灈鏈哄彿
+ necessaryParameters[3] = curRow + 1; //nearRow 鏈�娴呭簱浣嶆帓
+ } else if ((curRow - sRow + 1) % 4 == 0) {
+ necessaryParameters[1] = curRow; //curRow 鏈�娣卞簱浣嶆帓
+ necessaryParameters[2] = (curRow - sRow + 1) / 4 + sCrnNo - 1; //crnNo 鍫嗗灈鏈哄彿
+ necessaryParameters[3] = curRow - 1; //nearRow 鏈�娴呭簱浣嶆帓
+ } else {
+ throw new CoolException("搴撲綅鎺掑彿寮傚父锛氭帓鍙凤細" + curRow);
+ }
+ }
+ }
+ return necessaryParameters;
+ }
+
+ //缁忓吀鍙屼几搴撲綅绉诲簱
+ public static int[] LocNecessaryParametersMove(Integer whsType, Integer curRow, Integer moveCrnNo) {
+ int[] necessaryParameters = new int[]{0, 0, 0, 0};
+ necessaryParameters[0] = 2; // 杞娆℃暟
+ if (curRow.equals(moveCrnNo*4-2)){
+ necessaryParameters[1] = curRow+2; //curRow 鏈�娣卞簱浣嶆帓
+ necessaryParameters[2] = moveCrnNo; //crnNo 鍫嗗灈鏈哄彿
+ necessaryParameters[3] = curRow+1; //nearRow 鏈�娴呭簱浣嶆帓
+ }else {
+ necessaryParameters[1] = curRow-2; //curRow 鏈�娣卞簱浣嶆帓
+ necessaryParameters[2] = moveCrnNo; //crnNo 鍫嗗灈鏈哄彿
+ necessaryParameters[3] = curRow-1; //nearRow 鏈�娴呭簱浣嶆帓
+ }
+ return necessaryParameters;
+ }
+
+ //缁忓吀鍗曚几搴撲綅
+ public static int[] LocNecessaryParametersDoubleExtension2(Integer whsType, Integer curRow, Integer crnNumber) {
int[] necessaryParameters = new int[]{0, 0, 0, 0};
if (BooleanWhsTypeSta(whsType)) {
necessaryParameters[0] = crnNumber; // 杞娆℃暟
@@ -322,48 +388,36 @@
return necessaryParameters;
}
- //缁忓吀鍙屼几搴撲綅绉诲簱
- public static int[] LocNecessaryParametersMove(Integer whsType, Integer curRow, Integer moveCrnNo) {
- int[] necessaryParameters = new int[]{0, 0, 0, 0};
- necessaryParameters[0] = 2; // 杞娆℃暟
- if (curRow.equals(moveCrnNo*4-2)){
- necessaryParameters[1] = curRow+2; //curRow 鏈�娣卞簱浣嶆帓
- necessaryParameters[2] = moveCrnNo; //crnNo 鍫嗗灈鏈哄彿
- necessaryParameters[3] = curRow+1; //nearRow 鏈�娴呭簱浣嶆帓
- }else {
- necessaryParameters[1] = curRow-2; //curRow 鏈�娣卞簱浣嶆帓
- necessaryParameters[2] = moveCrnNo; //crnNo 鍫嗗灈鏈哄彿
- necessaryParameters[3] = curRow-1; //nearRow 鏈�娴呭簱浣嶆帓
- }
- return necessaryParameters;
- }
-
//鍙屽伐浣嶅崟浼稿簱浣�
public static int[] LocNecessaryParametersDoubleExtension5(Integer whsType, Integer curRow, Integer crnNumber) {
int[] necessaryParameters = new int[]{0, 0, 0, 0};
+ RowLastnoService rowLastnoService = SpringUtils.getBean(RowLastnoService.class);
+ RowLastno rowLastno = rowLastnoService.selectById(whsType);
+ Integer sRow = rowLastno.getsRow();
+ Integer sCrnNo = rowLastno.getsCrnNo();
if (BooleanWhsTypeSta(whsType)) {
necessaryParameters[0] = crnNumber; // 杞娆℃暟
//婊℃澘姝e父鍏ュ簱
- if (curRow.equals(crnNumber * 4)) {
- necessaryParameters[1] = 1; //curRow 鏈�娣卞簱浣嶆帓
- necessaryParameters[2] = 1; //crnNo 鍫嗗灈鏈哄彿
- necessaryParameters[3] = 2; //nearRow 鏈�娴呭簱浣嶆帓
- } else if (curRow.equals(crnNumber * 4 - 3)) {
- necessaryParameters[1] = 4; //curRow 鏈�娣卞簱浣嶆帓
- necessaryParameters[2] = 1; //crnNo 鍫嗗灈鏈哄彿
- necessaryParameters[3] = 3; //nearRow 鏈�娴呭簱浣嶆帓
+ if (curRow.equals(crnNumber * 4 + sRow - 1)) {
+ necessaryParameters[1] = sRow; //curRow 鏈�娣卞簱浣嶆帓
+ necessaryParameters[2] = sCrnNo; //crnNo 鍫嗗灈鏈哄彿
+ necessaryParameters[3] = sRow+1; //nearRow 鏈�娴呭簱浣嶆帓
+ } else if (curRow.equals(crnNumber * 4 - 3 + sRow - 1)) {
+ necessaryParameters[1] = sRow+3; //curRow 鏈�娣卞簱浣嶆帓
+ necessaryParameters[2] = sCrnNo; //crnNo 鍫嗗灈鏈哄彿
+ necessaryParameters[3] = sRow+2; //nearRow 鏈�娴呭簱浣嶆帓
} else {
curRow = curRow + 4;
- if (curRow < 1 || curRow > (crnNumber * 4)) {
+ if (curRow < sRow || curRow > (crnNumber * 4 + sRow - 1)) {
throw new CoolException("搴撲綅鎺掑彿寮傚父锛氭帓鍙凤細" + curRow);
}
- if ((curRow - 1) % 4 == 0) {
+ if ((curRow - sRow) % 4 == 0) {
necessaryParameters[1] = curRow; //curRow 鏈�娣卞簱浣嶆帓
- necessaryParameters[2] = (curRow + 3) / 4; //crnNo 鍫嗗灈鏈哄彿
+ necessaryParameters[2] = (curRow - sRow + 2) / 4 + sCrnNo - 1; //crnNo 鍫嗗灈鏈哄彿
necessaryParameters[3] = curRow + 1; //nearRow 鏈�娴呭簱浣嶆帓
- } else if (curRow % 4 == 0) {
+ } else if ((curRow - sRow + 1) % 4 == 0) {
necessaryParameters[1] = curRow; //curRow 鏈�娣卞簱浣嶆帓
- necessaryParameters[2] = curRow / 4; //crnNo 鍫嗗灈鏈哄彿
+ necessaryParameters[2] = (curRow - sRow + 1) / 4 + sCrnNo - 1; //crnNo 鍫嗗灈鏈哄彿
necessaryParameters[3] = curRow - 1; //nearRow 鏈�娴呭簱浣嶆帓
} else {
throw new CoolException("搴撲綅鎺掑彿寮傚父锛氭帓鍙凤細" + curRow);
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 97186ca..c58df7d 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -171,6 +171,66 @@
return R.ok().add(dto);
}
+ /*
+ * 鍙屽伐浣嶅崟浼稿爢鍨涙満锛屽垵濮嬩笉鍒嗛厤搴撲綅
+ * */
+ @PostMapping("/pakin/pair/station/large/loc/v1")
+ @ResponseBody
+ public synchronized R getLocNoPairLarge(@RequestBody SearchLocParam param) {
+ log.info("鏀跺埌WCS鍏ュ簱鎺ュ彛璇锋眰====>>鍏ュ弬:{}", param);
+ if (Cools.isEmpty(param.getIoType())) {
+ return R.error("鍏ュ嚭搴撶被鍨嬩笉鑳戒负绌�");
+ }
+ if (Cools.isEmpty(param.getSourceStaNo())) {
+ return R.error("婧愮珯缂栧彿涓嶈兘涓虹┖");
+ }
+ List<WaitPakin> waitPakins = null;
+ if (param.getIoType() == 1) {
+ if (Cools.isEmpty(param.getBarcode())) {
+ return R.error("鏉$爜涓嶈兘涓虹┖");
+ }
+ waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()));
+ if (Cools.isEmpty(waitPakins)) {
+ WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode());
+ if (wrkMast != null && wrkMast.getIoType() == 103) {
+ return R.parse(CodeRes.PICK_600);
+ }
+ return R.parse(CodeRes.NO_COMB_700);
+ }
+ int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
+ int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode()));
+ if (countLoc > 0 || countWrk > 0) {
+ return R.error(CodeRes.EXIST_500);
+ }
+ }
+ if (Cools.isEmpty(param.getLocType1())){
+ return R.error("楂樹綆妫�娴嬩俊鍙蜂笉鑳戒负绌�");
+ }
+
+ // 婧愮珯鐐圭姸鎬佹娴�
+ BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getSourceStaNo(), true);
+ sourceStaNo.setLocType1(param.getLocType1());
+ LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
+
+ StartupDto dto = null;
+ switch (param.getIoType()) {
+ case 1://婊℃墭鐩樺叆搴�
+ assert waitPakins != null;
+ dto = startupFullPutStorePairSingle(param.getSourceStaNo(), param.getBarcode(), locTypeDto, waitPakins);
+ break;
+ case 10://绌烘墭鐩樺叆搴�
+ dto = emptyPlateInPairSingle(param.getSourceStaNo(), locTypeDto, param.getBarcode());
+ break;
+// case 201://鑷姩琛ョ┖鏉夸换鍔�
+// dto = emptyPlateIn201(param.getSourceStaNo(), locTypeDto, param.getBarcode());
+// break;
+ default:
+ break;
+ }
+ log.info("WCS鍏ュ簱鎺ュ彛杩斿弬:{},鎵樼洏鐮�:{}", dto, param.getBarcode());
+ return R.ok().add(dto);
+ }
+
@PostMapping("/pakin2/loc/v1")
@ResponseBody
@Transactional
diff --git a/src/main/resources/mapper/RowLastnoMapper.xml b/src/main/resources/mapper/RowLastnoMapper.xml
index fd58a60..18c3461 100644
--- a/src/main/resources/mapper/RowLastnoMapper.xml
+++ b/src/main/resources/mapper/RowLastnoMapper.xml
@@ -16,6 +16,11 @@
<result column="appe_user" property="appeUser" />
<result column="appe_time" property="appeTime" />
<result column="limint_loc" property="limintLoc" />
+ <result column="s_crn_no" property="sCrnNo" />
+ <result column="e_crn_no" property="eCrnNo" />
+ <result column="sign_type" property="signType" />
+ <result column="sign_type_other" property="signTypeOther" />
+ <result column="sign_type_other_boolean" property="signTypeOtherBoolean" />
</resultMap>
--
Gitblit v1.9.1