From dcd2e9ad65580de56147956e718059f50f1691d2 Mon Sep 17 00:00:00 2001
From: skyouc <958836976@qq.com>
Date: 星期五, 30 一月 2026 08:36:12 +0800
Subject: [PATCH] no message
---
src/main/java/com/zy/api/controller/params/WorkTaskParams.java | 42 ++
src/main/java/com/zy/asrs/entity/param/CompleteParam.java | 7
src/main/java/com/zy/api/controller/params/ReceviceTaskParams.java | 46 ++
src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java | 233 +++++++++++++
src/main/java/com/zy/api/entity/dto/LocMastDto.java | 27 +
src/main/java/com/zy/asrs/entity/WrkMast.java | 3
src/main/java/com/zy/asrs/task/WorkMastScheduler.java | 45 ++
src/main/java/com/zy/asrs/controller/MobileController.java | 3
src/main/java/com/zy/api/service/WcsApiService.java | 71 ++++
src/main/java/com/zy/api/controller/WcsApiController.java | 83 ++++
src/main/java/com/zy/asrs/service/impl/BasContainerServiceImpl.java | 9
src/main/java/com/zy/common/constant/MesConstant.java | 14
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 102 ++---
src/main/java/com/zy/common/service/CommonService.java | 283 ----------------
src/main/java/com/zy/asrs/service/MobileService.java | 2
15 files changed, 637 insertions(+), 333 deletions(-)
diff --git a/src/main/java/com/zy/api/controller/WcsApiController.java b/src/main/java/com/zy/api/controller/WcsApiController.java
new file mode 100644
index 0000000..fd804c6
--- /dev/null
+++ b/src/main/java/com/zy/api/controller/WcsApiController.java
@@ -0,0 +1,83 @@
+package com.zy.api.controller;
+
+
+import com.core.annotations.ManagerAuth;
+import com.core.common.R;
+import com.zy.api.controller.params.ReceviceTaskParams;
+import com.zy.api.controller.params.WorkTaskParams;
+import com.zy.api.service.WcsApiService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+import java.util.Objects;
+
+@Api("WCS浜や簰鎺ュ彛")
+@RequestMapping("/wcs")
+@RestController
+public class WcsApiController {
+
+ @Autowired
+ private WcsApiService wcsApiService;
+
+
+ /**
+ * 鐛插彇搴綅淇℃伅
+ * @param params
+ * @return
+ */
+ @ManagerAuth
+ @ApiOperation("鍚屾搴撲綅淇℃伅")
+ @PostMapping("/sync/locs")
+ public R getAllLocs(@RequestBody Map<String, String> params) {
+ return wcsApiService.getLocs(params);
+ }
+
+
+ /**
+ * 鑾峰彇绔欑偣淇℃伅
+ * @param params
+ * @return
+ */
+ @ManagerAuth
+ @ApiOperation("鑾峰彇绔欑偣淇℃伅")
+ @PostMapping("sync/stations")
+ public R getAllStation(@RequestBody Map<String, String> params) {
+ return wcsApiService.getStations(params);
+ }
+
+ /**
+ * 涓嬪彂浠诲姟鑷砏CS
+ * @author Ryan
+ * @date 2026/1/10 13:57
+ * @param params
+ * @return com.core.common.R
+ */
+ @ManagerAuth
+ @ApiOperation("涓嬪彂浠诲姟鑷砏CS")
+ @PostMapping("/pub/wrks")
+ public R pubWrkToWcs(@RequestBody WorkTaskParams params) {
+ if (Objects.isNull(params)) {
+ return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ return wcsApiService.pubWrkToWcs(params);
+ }
+
+ @ManagerAuth
+ @ApiOperation("璁惧鎵ц鐘舵�佸洖鍐�")
+ @PostMapping("/openapi/report")
+ public R receviceTaskFromWcs(@RequestBody ReceviceTaskParams params) {
+ if (Objects.isNull(params)) {
+ return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ return wcsApiService.receviceTaskFromWcs(params);
+
+ }
+
+
+}
diff --git a/src/main/java/com/zy/api/controller/params/ReceviceTaskParams.java b/src/main/java/com/zy/api/controller/params/ReceviceTaskParams.java
new file mode 100644
index 0000000..c5349a6
--- /dev/null
+++ b/src/main/java/com/zy/api/controller/params/ReceviceTaskParams.java
@@ -0,0 +1,46 @@
+package com.zy.api.controller.params;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+@Data
+@Accessors(chain = true)
+@ApiModel(value = "ReceviceTaskParams", description = "绌跨嚎澧欏弬鏁�")
+public class ReceviceTaskParams implements Serializable {
+
+ @ApiModelProperty("鏈哄彴鍙�")
+ private String deviceNo;
+
+ @ApiModelProperty("娴佹按鍙�")
+ private Integer id;
+
+ @ApiModelProperty("閫氱煡绫诲瀷锛歵ask")
+ private String notifyType;
+
+ @ApiModelProperty("鍫嗗灈鏈哄彿")
+ private Integer device;
+
+ @ApiModelProperty("WCS浠诲姟鍙�")
+ private String taskNo;
+
+ @ApiModelProperty("WMS浠诲姟鍙�")
+ private String wrkNo;
+
+ @ApiModelProperty("娑堟伅绫诲瀷锛歵ask_complete銆乼ask_cancel")
+ private String msgType;
+
+ @ApiModelProperty("娑堟伅鎻忚堪")
+ private String msgDesc;
+
+ @ApiModelProperty("娑堟伅鏁版嵁")
+ private String data;
+
+ @ApiModelProperty("閲嶉噺")
+ private Double weight;
+
+}
diff --git a/src/main/java/com/zy/api/controller/params/WorkTaskParams.java b/src/main/java/com/zy/api/controller/params/WorkTaskParams.java
new file mode 100644
index 0000000..010893b
--- /dev/null
+++ b/src/main/java/com/zy/api/controller/params/WorkTaskParams.java
@@ -0,0 +1,42 @@
+package com.zy.api.controller.params;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+@Data
+@Accessors(chain = true)
+@ApiModel(value = "WorkTaskParams", description = "鎵ц浠诲姟鍙傛暟")
+public class WorkTaskParams implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("鍗忚浠诲姟缂栧彿(瀵瑰簲鍑哄簱浠诲姟鍙�)")
+ private String taskNo;
+
+ @ApiModelProperty("宸ヤ綔妗d换鍔″彿")
+ private String wrkNo;
+
+ @ApiModelProperty("搴撲綅缂栫爜")
+ private String locNo;
+
+ @ApiModelProperty("鏉$爜")
+ private String barcode;
+
+ @ApiModelProperty("浼樺厛绾�")
+ private Integer taskPri;
+
+ @ApiModelProperty("鍑哄簱绔欑偣")
+ private String staNo;
+
+ @ApiModelProperty("浣滀笟绫诲瀷锛宨n: 鍏ュ簱锛� out:鍑哄簱")
+ private String type;
+
+ @ApiModelProperty("鏄惁浣欐枡")
+ private Integer isSuplus;
+
+}
diff --git a/src/main/java/com/zy/api/entity/dto/LocMastDto.java b/src/main/java/com/zy/api/entity/dto/LocMastDto.java
new file mode 100644
index 0000000..a842c44
--- /dev/null
+++ b/src/main/java/com/zy/api/entity/dto/LocMastDto.java
@@ -0,0 +1,27 @@
+package com.zy.api.entity.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+@Data
+@Accessors(chain = true)
+@ApiModel(value = "LocMastDto", description = "搴撲綅淇℃伅")
+public class LocMastDto implements Serializable {
+
+ @ApiModelProperty("搴撲綅淇℃伅")
+ private String locNo;
+
+ private String locSts;
+
+ private String barcode;
+
+ private Integer row;
+
+ private Integer bay;
+
+ private Integer lev;
+}
diff --git a/src/main/java/com/zy/api/service/WcsApiService.java b/src/main/java/com/zy/api/service/WcsApiService.java
new file mode 100644
index 0000000..30c842c
--- /dev/null
+++ b/src/main/java/com/zy/api/service/WcsApiService.java
@@ -0,0 +1,71 @@
+package com.zy.api.service;
+
+import com.core.common.R;
+import com.zy.api.controller.params.ReceviceTaskParams;
+import com.zy.api.controller.params.WorkTaskParams;
+
+import java.util.Map;
+import java.util.Set;
+
+public interface WcsApiService {
+
+ /**
+ * 閿佸畾搴撲綅淇℃伅
+ * @author Ryan
+ * @date 2026/1/10 11:17
+ * @param params
+ * @return com.core.common.R
+ */
+ R lockLocs(ReceviceTaskParams params);
+
+// /**
+// * 鍥炲簱鎼繍鎸囦护
+// * @author Ryan
+// * @date 2026/1/10 13:08
+// * @param params
+// * @return com.core.common.R
+// */
+// R backLocs(WorkTaskParams params);
+
+ /**
+ * 涓嬪彂浠诲姟鑷砏CS
+ * @author Ryan
+ * @date 2026/1/10 13:57
+ * @param params
+ * @return com.core.common.R
+ */
+ R pubWrkToWcs(WorkTaskParams params);
+
+//
+// /**
+// * 閿佸畾鎴栭噴鏀惧簱浣�
+// * @author Ryan
+// * @date 2026/1/10 14:35
+// * @param locs
+// * @param type
+// */
+// void reportLockLocs(Set<String> locs, String type);
+
+ /**
+ * 鍫嗗灈鏈轰换鍔″畬鎴愮姸鎬佷笂鎶�
+ * @author Ryan
+ * @date 2026/1/10 16:29
+ * @param params
+ * @return com.core.common.R
+ */
+ R receviceTaskFromWcs(ReceviceTaskParams params);
+
+ /**
+ * 鐛插彇搴綅淇℃伅
+ * @param params
+ * @return
+ */
+ R getLocs(Map<String, String> params);
+
+ /**
+ * 鑾峰彇绔欑偣淇℃伅
+ * @param params
+ * @return
+ */
+ R getStations(Map<String, String> params);
+}
diff --git a/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java b/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
new file mode 100644
index 0000000..994112b
--- /dev/null
+++ b/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
@@ -0,0 +1,233 @@
+package com.zy.api.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.core.common.Cools;
+import com.core.common.R;
+import com.core.exception.CoolException;
+import com.zy.api.controller.params.ReceviceTaskParams;
+import com.zy.api.controller.params.WorkTaskParams;
+import com.zy.api.entity.dto.LocMastDto;
+import com.zy.api.service.WcsApiService;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.service.*;
+import com.zy.asrs.service.impl.LocDetlServiceImpl;
+import com.zy.asrs.service.impl.MatServiceImpl;
+import com.zy.asrs.service.impl.WrkDetlServiceImpl;
+import com.zy.common.constant.MesConstant;
+import com.zy.common.utils.HttpHandler;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.io.IOException;
+import java.util.*;
+import java.util.stream.Collectors;
+
+@Service
+public class WcsApiServiceImpl implements WcsApiService {
+
+ @Autowired
+ private LocMastService locMastService;
+ @Autowired
+ private WrkMastService wrkMastService;
+ @Autowired
+ private WorkService workService;
+ @Autowired
+ private WrkDetlService wrkDetlService;
+ @Autowired
+ private MatService matService;
+ @Autowired
+ private LocDetlService locDetlService;
+
+ /**
+ * 閫氱煡WCS閿佸畾搴撲綅锛屽強绂佹褰撳墠搴撲綅鐨勪竴鍒囨搷浣�
+ *
+ * @param params
+ * @return com.core.common.R
+ * @author Ryan
+ * @date 2026/1/10 11:18
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public R lockLocs(ReceviceTaskParams params) {
+// BasDevice basDevice = basDeviceService.selectOne(new EntityWrapper<BasDevice>()
+// .eq("status", 1)
+// .eq("dev_no", params.getDeviceNo()));
+// if (Objects.isNull(basDevice)) {
+// throw new CoolException("鏈哄彴淇℃伅涓嶅瓨鍦ㄦ垨宸茬鐢紒锛�");
+// }
+// List<LocAroundBind> binds = locAroundBindService.selectList(new EntityWrapper<LocAroundBind>().eq("dev_no", basDevice.getDevNo()));
+// if (Objects.isNull(binds) || binds.isEmpty()) {
+// throw new CoolException("鏈哄彴鏈粦瀹氬伐浣滅珯鍙帮紒锛�");
+// }
+// Set<String> locs = binds.stream().map(LocAroundBind::getBlocNo).collect(Collectors.toSet());
+//
+// reportLockLocs(locs, "lock");
+
+ return R.ok("涓婃姤鎴愬姛锛侊紒");
+ }
+
+// /**
+// * 浣欐枡鍥炲簱 锛堟惉杩愪綑鏂欏洖搴擄級
+// *
+// * @param params
+// * @return com.core.common.R
+// * @author Ryan
+// * @date 2026/1/10 13:19
+// */
+// @Override
+// @Transactional(rollbackFor = Exception.class)
+// public R backLocs(WorkTaskParams params) {
+// if (Objects.isNull(params.getWrkNo())) {
+// throw new CoolException("宸ヤ綔鍙蜂笉鑳戒负绌猴紒锛�");
+// }
+//// String wrkCode = params.getTaskNo();
+//// if (wrkCode.contains("-1")) {
+//// throw new CoolException("閰嶅浠诲姟缂栫爜閿欒锛岃妫�鏌ュ悗閲嶆柊涓婁紶锛侊紒");
+//// }
+// WrkMast mast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", params.getWrkNo()));
+// if (Objects.isNull(mast)) {
+// throw new CoolException("浠诲姟涓嶅瓨鍦紒锛�");
+// }
+//// if (!mast.getWrkSts().equals(103L)) {
+//// throw new CoolException("褰撳墠浠诲姟骞堕潪浣欐枡鍑哄簱浠诲姟锛侊紒");
+//// }
+//// if (params.getIsSuplus() == 1) {
+//// mast.setIsSuplus(1);
+//// }
+////
+//// if (!wrkMastService.updateById(mast)) {
+//// throw new CoolException("浠诲姟鐘舵�佹洿鏂板け璐ワ紒锛�");
+//// }
+// workService.backLocOperation(mast.getWrkNo() + "", mast.getAppeUser());
+//
+// return R.ok("鎺ユ敹鎴愬姛锛屾墽琛屽洖搴撲腑...");
+// }
+
+ /**
+ * 涓嬪彂浠诲姟鑷砏CS
+ *
+ * @param params
+ * @return com.core.common.R
+ * @author Ryan
+ * @date 2026/1/10 13:58
+ */
+ @Override
+ public R pubWrkToWcs(WorkTaskParams params) {
+ if (Objects.isNull(params.getTaskNo())) {
+ return R.error("浠诲姟鍙蜂笉鑳戒负绌猴紒锛�");
+ }
+ if (Objects.isNull(params.getBarcode())) {
+ return R.error("鎵樼洏鐮佷笉鑳戒负绌猴紒锛�");
+ }
+ if (Objects.isNull(params.getLocNo())) {
+ return R.error("鐩爣搴撲綅涓嶈兘涓虹┖锛侊紒");
+ }
+ String url = MesConstant.PUB_TASK_IN;
+ if (Objects.isNull(params.getType()) && params.getType().equals("out")) {
+ url = MesConstant.PUB_TASK_OUT;
+ }
+ String response;
+ try {
+ response = new HttpHandler.Builder()
+ .setUri(MesConstant.URL)
+ .setPath(url)
+ .setJson(JSON.toJSONString(params))
+ .build()
+ .doPost();
+ R result = JSON.parseObject(response, R.class);
+
+ if (result.get("code").equals("200")) {
+ //TODO 涓婃姤鏄惁鎴愬姛
+ }
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ return R.ok();
+ }
+ /**
+ * 鍫嗗灈鏈烘墽琛岀姸鎬佷笂鎶�
+ *
+ * @param params
+ * @return com.core.common.R
+ * @author Ryan
+ * @date 2026/1/10 16:30
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public R receviceTaskFromWcs(ReceviceTaskParams params) {
+ if (Objects.isNull(params.getWrkNo())) {
+ throw new CoolException("WMS浠诲姟鍙蜂笉鑳戒负绌猴紒锛�");
+ }
+ if (Objects.isNull(params.getNotifyType())) {
+ throw new CoolException("鍔ㄤ綔绫诲瀷涓嶈兘涓虹┖锛侊紒");
+ }
+ WrkMast mast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", params.getWrkNo()));
+ if (Objects.isNull(mast)) {
+ throw new CoolException("浠诲姟妗d笉瀛樺湪锛侊紒");
+ }
+ if (params.getNotifyType().equals("task")) {
+ //浠诲姟
+ if (params.getMsgType().equals("task_complete")) {
+ if (mast.getIoType() == 1) {
+ mast.setWrkSts(4L);
+ } else if (mast.getIoType() == 101) {
+ mast.setWrkSts(14L);
+ }
+ if (!wrkMastService.updateById(mast)) {
+ throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ }
+ } else if (params.getMsgType().equals("task_cancel")) {
+ //todo 鍙栨秷浠诲姟
+ }
+ }
+ return R.ok();
+ }
+
+ /**
+ * 鐛插彇搴綅淇℃伅
+ * @param params
+ * @return
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public R getLocs(Map<String, String> params) {
+ String url = MesConstant.SYN_LOCS;
+ String response;
+ try {
+ response = new HttpHandler.Builder()
+ .setUri(MesConstant.WCS_URL)
+ .setPath(url)
+ .setJson(JSON.toJSONString(params))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSONObject.parseObject(response);
+ if (jsonObject.get("code").equals(200)) {
+ List<LocMastDto> dtos = JSONArray.parseArray(jsonObject.get("data").toString(), LocMastDto.class);
+ dtos.forEach(e -> {
+ LocMast locMast = new LocMast();
+ BeanUtils.copyProperties(e, locMast);
+ locMast.setRow1(e.getRow());
+ locMast.setLev1(e.getLev());
+ locMast.setBay1(e.getBay());
+ System.out.println(JSONObject.toJSON(locMast));
+ if (!locMastService.insert(locMast)) {
+ throw new CoolException("搴撲綅淇濆瓨澶辫触锛侊紒");
+ }
+ });
+ }
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ return R.ok();
+ }
+
+ @Override
+ public R getStations(Map<String, String> params) {
+ return null;
+ }
+}
diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 4b3cb11..ae128b7 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -374,8 +374,7 @@
if (Objects.isNull(combParam)) {
return R.error("鍙傛暟涓嶈兘涓虹┖!!");
}
- mobileService.combInPub(combParam, 10031L);
- return R.ok("涓婃灦鎴愬姛");
+ return mobileService.combInPub(combParam, 10031L);
}
@RequestMapping("/pack/get/auth")
diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java
index 7018855..582c7b9 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMast.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -15,6 +15,7 @@
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
+import java.util.Objects;
@Data
@TableName("asr_wrk_mast")
@@ -391,8 +392,8 @@
}
}
-
public String getStaNo$(){
+ if (Objects.isNull(this.staNo) || this.staNo.equals("null")) {return null; }
BasDevpService service = SpringUtils.getBean(BasDevpService.class);
BasDevp basDevp = service.selectById(this.staNo);
if (!Cools.isEmpty(basDevp)){
diff --git a/src/main/java/com/zy/asrs/entity/param/CompleteParam.java b/src/main/java/com/zy/asrs/entity/param/CompleteParam.java
index 427e3e4..b98f007 100644
--- a/src/main/java/com/zy/asrs/entity/param/CompleteParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/CompleteParam.java
@@ -3,6 +3,7 @@
import lombok.Data;
import java.io.Serializable;
+import java.util.List;
@Data
public class CompleteParam implements Serializable {
@@ -12,7 +13,11 @@
// 搴撲綅瑙勬牸锛� 0:鏈煡, 1:浣庡簱浣�, 2:楂樺簱浣嶏級
private Short locType1;
- private String station;
+ //绔欓粸
+ private String sourceStaNo;
+
+ //鍙敤鎺�
+ private List<Integer> rowList;
private String carBarcode;
diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java
index 3d2864f..6cb47c8 100644
--- a/src/main/java/com/zy/asrs/service/MobileService.java
+++ b/src/main/java/com/zy/asrs/service/MobileService.java
@@ -147,7 +147,7 @@
* @author Ryan
* @date 2025/12/9 15:04
*/
- void combInPub(CompleteParam combParam, Long userId);
+ R combInPub(CompleteParam combParam, Long userId);
/**
* SO/EO 鍖虹粍鎵�
diff --git a/src/main/java/com/zy/asrs/service/impl/BasContainerServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasContainerServiceImpl.java
index 836d7fd..6b314c5 100644
--- a/src/main/java/com/zy/asrs/service/impl/BasContainerServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/BasContainerServiceImpl.java
@@ -10,7 +10,9 @@
import com.zy.asrs.entity.BasContainer;
import com.zy.asrs.service.BasContainerService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
-import org.apache.tika.utils.StringUtils;
+import org.apache.commons.codec.binary.StringUtils;
+import org.apache.poi.util.StringUtil;
+
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -58,7 +60,10 @@
prefix = "TC5";
basContainer.setMixMax(1.0);
}
- ruleCode = prefix + StringUtils.leftPad(i + "", length, "0");
+
+
+ String padded = String.format("%07d", Integer.parseInt(i + ""));
+ ruleCode = prefix + padded;//StringUtils.leftPad(i + "", length, "0");
basContainer.setType(container.getType())
.setCreateTime(new Date())
.setUpdateTime(new Date())
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 d998706..f8d4fbf 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -1760,53 +1760,44 @@
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public void combInPub(CompleteParam param, Long userId) {
+ public R combInPub(CompleteParam param, Long userId) {
if (Objects.isNull(param.getBarcode())) {
throw new CoolException("鎵樼洏鐮佷笉鑳戒负绌猴紒锛�");
}
- if (Objects.isNull(param.getStation())) {
+ if (Objects.isNull(param.getSourceStaNo())) {
throw new CoolException("绔欑偣涓嶈兘涓虹┖!!");
}
-// // TODO 淇敼缂撳瓨绔欑偣鐘舵�佸強鏁版嵁
-// Task task = taskService.selectOne(new EntityWrapper<Task>()
-// .eq("wrk_sts", 14L)
-// .eq("barcode", param.getCarBarcode()));
-// if (Objects.isNull(task)) {
-// throw new CoolException("鏁版嵁閿欒,浠诲姟涓嶅瓨鍦�!!");
-// }
-// List<TaskDetl> taskDetls = taskDetlService
-// .selectList(new EntityWrapper<TaskDetl>().eq("wrk_no", task.getWrkNo()));
-// if (Objects.isNull(taskDetls) || taskDetls.isEmpty()) {
-// throw new CoolException("鏁版嵁閿欒,浠诲姟鏄庣粏涓嶅瓨鍦�!!");
-// }
+ if (Objects.isNull(param.getLocType1())) {
+ param.setLocType1((short)1);
+ }
- BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>()
- .eq("dev_no", param.getStation()));
+
+ log.info("WCS浠诲姟鐢熸垚璇锋眰鍙傛暟锛�", JSONObject.toJSONString(param));
+
+
+ BasDevp station = basDevpService.selectOne(new EntityWrapper<BasDevp>()
+ .eq("dev_no", param.getSourceStaNo()));
if (Objects.isNull(station)) {
throw new CoolException("绔欑偣涓嶅瓨鍦�!!");
}
- station.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
- station.setBarcode("");
- if (!basStationService.updateById(station)) {
- throw new CoolException("绔欑偣鐘舵�佷慨鏀瑰け璐�!");
- }
- basStationDetlService.delete(new EntityWrapper<BasStationDetl>().eq("dev_no", station.getDevNo()));
-
-// // 浠诲姟瀹屾垚
-// task.setWrkSts(15L);
-//
-// if (!taskService.updateById(task)) {
-// throw new CoolException("AGV浠诲姟瀹屾垚澶辫触!!");
-// }
-
List<WaitPakin> waitPakins = waitPakinService
- .selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()));
+ .selectList(new EntityWrapper<WaitPakin>()
+ .eq("io_status" , "N")
+ .eq("zpallet", param.getBarcode()));
if (Objects.isNull(waitPakins) || waitPakins.isEmpty()) {
throw new CoolException("鏁版嵁閿欒,缁勬嫋妗e凡涓嶅瓨鍦�!!");
}
- generateCrnInTask(waitPakins, station, param.getLocType1(), userId);
+ WrkMast wrkMast = generateCrnInTask(waitPakins, station, param.getLocType1(), userId);
+
+ Map<String, Object> response = new HashMap<>();
+ response.put("taskNo", wrkMast.getWrkNo());
+ response.put("locNo", wrkMast.getLocNo());
+ response.put("taskPri", wrkMast.getIoPri());
+
+ return R.ok("浠诲姟鐢熸垚鎴愬姛").add(response);
+
}
/**
@@ -1946,18 +1937,18 @@
* @date 2025/12/9 13:54
*/
@Transactional(rollbackFor = Exception.class)
- public void generateCrnInTask(List<WaitPakin> waitPakins, BasStation station, Short locType, Long userId) {
+ public WrkMast generateCrnInTask(List<WaitPakin> waitPakins, BasDevp station, Short locType, Long userId) {
Date now = new Date();
- StationRela rela = stationRelaService.selectOne(new EntityWrapper<StationRela>()
- .eq("agv_sta", station.getDevNo())
- .orderAsc(Arrays.asList("crn_sta"))
- .last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"));
+// StationRela rela = stationRelaService.selectOne(new EntityWrapper<StationRela>()
+// .eq("agv_sta", station.getDevNo())
+// .orderAsc(Arrays.asList("crn_sta"))
+// .last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"));
+//
+// if (Objects.isNull(rela)) {
+// throw new CoolException("鏈粦瀹氫綔涓氱珯鐐�!!");
+// }
- if (Objects.isNull(rela)) {
- throw new CoolException("鏈粦瀹氫綔涓氱珯鐐�!!");
- }
-
- BasDevp sourceStaNo = basDevpService.checkSiteStatus(Integer.parseInt(rela.getCrnSta()), true);
+ BasDevp sourceStaNo = basDevpService.checkSiteStatus(station.getDevNo(), true);
sourceStaNo.setLocType1(locType);
LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
WaitPakin pakin = waitPakins.stream().findFirst().get();
@@ -1965,6 +1956,7 @@
WrkMast mast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", pakin.getZpallet()));
WrkMast wrkMast = new WrkMast();
+ String locNo;
if (!Objects.isNull(mast)) {
if (mast.getIoType().equals(TaskIOType.MERGE_OUT.type) || mast.getIoType().equals(TaskIOType.PICK_OUT.type) || mast.getIoType().equals(TaskIOType.CHECK_OUT.type)) {
int ioType = mast.getIoType() - 50;
@@ -1978,6 +1970,7 @@
if (!res) {
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
+ locNo = mast.getLocNo();
// 鏇存柊婧愮珯鐐逛俊鎭�
sourceStaNo.setWrkNo(mast.getWrkNo());
sourceStaNo.setModiTime(now);
@@ -1998,8 +1991,10 @@
} else {
throw new CoolException("鎵樼洏宸插瓨鍦ㄤ换鍔℃。锛侊紒");
}
+
} else {
StartupDto dto = commonService.getLocNo(1, sourceStaNo.getDevNo(), findLocNoAttributeVo, locTypeDto);
+
int workNo = dto.getWorkNo();
// 鐢熸垚宸ヤ綔妗�
wrkMast.setWrkNo(workNo);
@@ -2027,6 +2022,7 @@
if (!res) {
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
+ locNo = dto.getLocNo();
// 鏇存柊婧愮珯鐐逛俊鎭�
sourceStaNo.setWrkNo(workNo);
sourceStaNo.setModiTime(now);
@@ -2060,16 +2056,18 @@
});
-// // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y
-// Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
-// .eq("zpallet", pakin.getZpallet());
-// WaitPakin setParam = new WaitPakin();
-// setParam.setLocNo(dto.getLocNo());
-// setParam.setIoStatus("Y");
-// setParam.setModiTime(now);
-// if (!waitPakinService.update(setParam, wrapper)) {
-// throw new CoolException("鏇存柊閫氱煡妗eけ璐�");
-// }
+ // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y
+ Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
+ .eq("zpallet", pakin.getZpallet());
+ WaitPakin setParam = new WaitPakin();
+ setParam.setLocNo(locNo);
+ setParam.setIoStatus("Y");
+ setParam.setModiTime(now);
+ if (!waitPakinService.update(setParam, wrapper)) {
+ throw new CoolException("鏇存柊閫氱煡妗eけ璐�");
+ }
+
+ return wrkMast;
}
/**
diff --git a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
index 0d39e15..33112bc 100644
--- a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -1,5 +1,8 @@
package com.zy.asrs.task;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.zy.api.controller.params.WorkTaskParams;
+import com.zy.api.service.WcsApiService;
import com.zy.asrs.entity.Task;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.TaskService;
@@ -12,6 +15,8 @@
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
+import java.util.Arrays;
+import java.util.Collections;
import java.util.Date;
import java.util.List;
@@ -28,10 +33,12 @@
@Autowired
private WorkMastHandler workMastHandler;
@Autowired
+ private WcsApiService wcsApiService;
+ @Autowired
private TaskService taskService;
@Scheduled(cron = "0/3 * * * * ? ")
- private void execute(){
+ private void execute() {
List<WrkMast> wrkMasts = wrkMastService.selectToBeCompleteData();
if (wrkMasts.isEmpty()) {
return;
@@ -50,7 +57,7 @@
}
@Scheduled(cron = "0/3 * * * * ? ")
- private void executeTask(){
+ private void executeTask() {
List<Task> wrkMasts = taskService.selectToBeCompleteData();
if (wrkMasts.isEmpty()) {
return;
@@ -68,4 +75,38 @@
}
}
+
+ /**
+ * 浠诲姟鑷姩涓嬪彂
+ *
+ * @author Ryan
+ * @date 2026/1/10 14:42
+ */
+ @Scheduled(cron = "0/15 * * * * ? ")
+ private void autoPubTasks() {
+ List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("wrk_sts", Arrays.asList(1L, 11L)));
+ if (wrkMasts.isEmpty()) {
+ return;
+ }
+ Collections.shuffle(wrkMasts);
+ wrkMasts.forEach(wrkMast -> {
+ WorkTaskParams params = new WorkTaskParams();
+ if (wrkMast.getIoType().equals(1)) {
+ params.setType("in");
+ params.setTaskNo(wrkMast.getWrkNo() + "")
+ .setLocNo(wrkMast.getLocNo())
+ .setBarcode(wrkMast.getBarcode())
+ .setTaskPri(wrkMast.getIoPri().intValue());
+ } else {
+ params.setType("out")
+ .setTaskNo(wrkMast.getWrkNo() + "")
+ .setLocNo(wrkMast.getLocNo())
+ .setStaNo(wrkMast.getStaNo())
+ .setTaskPri(wrkMast.getIoPri().intValue());
+ wcsApiService.pubWrkToWcs(params);
+ }
+ });
+ }
+
+
}
diff --git a/src/main/java/com/zy/common/constant/MesConstant.java b/src/main/java/com/zy/common/constant/MesConstant.java
index 09762d3..04cb668 100644
--- a/src/main/java/com/zy/common/constant/MesConstant.java
+++ b/src/main/java/com/zy/common/constant/MesConstant.java
@@ -8,6 +8,10 @@
//灏忕郴缁熸帴鍙e湴鍧�
public static final String URL = "http://webservice.kopen.com.cn:1482/kc-api/api/wms/ ";
+ //WCS绯荤粺鎺ュ彛鍦板潃
+ public static final String WCS_URL = "http://192.168.238.244:9090/wcs";
+
+
//涓婃灦娲惧伐鍗曞弽棣�
public static final String IN_DISPATCH_RESULT = "getInDispatchResult";
//澶囪揣鎸囩ず娲惧伐鍗曞弽棣�
@@ -16,6 +20,16 @@
public static final String OUT_DETAILS_RESULT = "getOutDetailsResult";
+
+ /***鐢宠鍏ュ簱浠诲姟*/
+ public static final String PUB_TASK_IN = "/openapi/createInTask";
+
+ /***鐢宠鍑哄簱浠诲姟*/
+ public static final String PUB_TASK_OUT = "/openapi/createOutTask";
+
+ /***鍚屾搴綅淇℃伅*/
+ public static final String SYN_LOCS = "/openapi/getAllLocInformation";
+
/**
* token閫氳繃header浼犻�掔殑鍚嶇О
*/
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index e659ad1..8f8280f 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -25,6 +25,7 @@
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
/**
@@ -170,292 +171,31 @@
*/
@Transactional
public StartupDto getLocNoRun(Integer whsType, Integer staDescId, Integer sourceStaNo, FindLocNoAttributeVo findLocNoAttributeVo, Integer moveCrnNo, LocTypeDto locTypeDto, int times) {
-
+ staDescId = 1;
// 鍒濆鍖栧弬鏁�
int crnNo = 0; //鍫嗗灈鏈哄彿
int nearRow = 0; //鏈�娴呭簱浣嶆帓
- int curRow = 0; //鏈�娣卞簱浣嶆帓
- int rowCount = 0; //杞杞
LocMast locMast = null; // 鐩爣搴撲綅
- StartupDto startupDto = new StartupDto();
RowLastno rowLastno = rowLastnoService.selectById(whsType);
if (Cools.isEmpty(rowLastno)) {
throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�===>搴撲綅瑙勫垯鏈煡");
}
- RowLastnoType rowLastnoType = rowLastnoTypeService.selectById(rowLastno.getTypeId());
- if (Cools.isEmpty(rowLastnoType)) {
- throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�===銆嬪簱浣嶈鍒欑被鍨嬫湭鐭�");
- }
- int sRow = rowLastno.getsRow();
- int eRow = rowLastno.geteRow();
- int crnNumber = rowLastno.getCrnQty();
-
-
- // ===============>>>> 寮�濮嬫墽琛�
- curRow = rowLastno.getCurrentRow();
-
- if (!Cools.isEmpty(moveCrnNo) && moveCrnNo != 0) {
- crnNumber = moveCrnNo;
- if (times == 0) {
- curRow = moveCrnNo * 4 - 1;
- } else {
- curRow = moveCrnNo * 4 - 2;
- }
- }
-
- //姝ょ▼搴忕敤浜庝紭鍖栧爢鍨涙満寮傚父鏃剁殑杩愯鏃堕棿
- for (int i = times; i < crnNumber * 2; i++) {
- int[] locNecessaryParameters = Utils.LocNecessaryParameters(rowLastno, curRow, crnNumber);
- curRow = locNecessaryParameters[1];
- crnNo = locNecessaryParameters[2];
- if (basCrnpService.checkSiteError(crnNo, true)) {
- rowCount = locNecessaryParameters[0];
- nearRow = locNecessaryParameters[3];
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("row1", nearRow).eq("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue()));
- int crnCountO = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("crn_no", crnNo).le("io_type", 100));
- if (locMasts.size() - crnCountO <= 2) {
- log.error(crnNo + "鍙峰爢鍨涙満娌℃湁绌哄簱浣嶏紒锛侊紒 灏哄瑙勬牸锛� {}锛� 杞娆℃暟锛歿}", JSON.toJSONString(locTypeDto), times);
- nearRow = 0;
- times++;
- continue;
- }
- break;
- } else {
- times++;
- }
- }
- if (nearRow == 0) {
- throw new CoolException("鏃犲彲鐢ㄥ爢鍨涙満");
- }
-
- boolean signRule1 = false;
- boolean signRule2 = false;
-
-
- if (Utils.BooleanWhsTypeStaIoType(rowLastno)) {
- // 闈犺繎鎽嗘斁瑙勫垯 --- 鍚屽ぉ鍚岃鏍肩墿鏂� //鍒嗙鐗�
- if (!Cools.isEmpty(findLocNoAttributeVo.getMatnr()) && staDescId == 1) {
- signRule1 = true;
- }
- // 闈犺繎鎽嗘斁瑙勫垯 --- 鍚屽ぉ鍚岃鏍肩墿鏂� //浜掗�氱増
- if (!Cools.isEmpty(findLocNoAttributeVo.getMatnr()) && staDescId == 1) {
- signRule2 = true;
- }
-
- if (!Cools.isEmpty(findLocNoAttributeVo.getMatnr()) && (staDescId == 11 || staDescId == 111)) {
- signRule1 = true;
- }
- }
-
- if (signRule1) {
- if (nearRow != curRow) {
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("row1", nearRow).eq("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue()));
- for (LocMast locMast1 : locMasts) {
- //鑾峰彇宸烽亾
-// List<String> groupOutsideLocCrn = Utils.getGroupOutLocCrn(curRow,nearRow,locMast1.getLocNo(), curRow>nearRow);
-// LocMast locMastGro = locMastService.selectById(wrkMast.getLocNo());
- //鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娴呴潪绌哄簱浣�
- LocMast locMastF = locMastService.selectLocByLocStsPakInF(curRow, nearRow, locMast1, rowLastnoType.getType().longValue());
- if (!Cools.isEmpty(locMastF) && locMastF.getLocSts().equals("F")) {
- LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMastF.getLocNo()));
- if (!Cools.isEmpty(locDetl) && findLocNoAttributeVo.beSimilar(locDetl)) {
- //鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娣辩┖搴撲綅
- locMast = locMastService.selectLocByLocStsPakInO(curRow, nearRow, locMast1, rowLastnoType.getType().longValue());
- break;
- }
- }
- }
- }
- } else if (signRule2) {
- List<String> locNos = locDetlService.getSameDetlToday(findLocNoAttributeVo.getMatnr(), sRow, eRow);
- for (String locNo : locNos) {
- if (Utils.isShallowLoc(slaveProperties, locNo)) {
- continue;
- }
- String shallowLocNo = Utils.getShallowLoc(slaveProperties, locNo);
- // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣�
- LocMast shallowLoc = locMastService.selectById(shallowLocNo);
- if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) {
- if (VersionUtils.locMoveCheckLocTypeComplete(shallowLoc, locTypeDto)) {
- if (basCrnpService.checkSiteError(shallowLoc.getCrnNo(), true)) {
- locMast = shallowLoc;
- crnNo = locMast.getCrnNo();
- break;
- }
- }
- }
- }
- }
-
-// // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭 //鍒嗙鐗�
-// if (staDescId == 10 && Utils.BooleanWhsTypeStaIoType(whsType)) {
-// List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O"));
-// for (LocMast locMast1:locMasts){
-// if (VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) {
-// continue;
-// }
-// String shallowLoc = Utils.getDeepLoc(slaveProperties,locMast1.getLocNo());
-// LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no",shallowLoc));
-// if (!Cools.isEmpty(locMast2) && locMast2.getLocSts().equals("D")){
-// locMast = locMast1;
-// break;
-// }
-// }
-// }
-
- // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭 //浜掗�氱増
- if (staDescId == 10 && Utils.BooleanWhsTypeStaIoType(rowLastno)) {
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("loc_sts", "D").ge("row1", sRow).le("row1", eRow).eq("whs_type", rowLastnoType.getType().longValue()));
- if (!locMasts.isEmpty()) {
- for (LocMast loc : locMasts) {
- if (Utils.isShallowLoc(slaveProperties, loc.getLocNo())) {
- continue;
- }
- String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo());
- // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣�
- LocMast shallowLoc = locMastService.selectById(shallowLocNo);
- if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) {
- if (VersionUtils.locMoveCheckLocTypeComplete(shallowLoc, locTypeDto)) {
- if (basCrnpService.checkSiteError(shallowLoc.getCrnNo(), true)) {
- locMast = shallowLoc;
- crnNo = locMast.getCrnNo();
- break;
- }
- }
- }
- }
- }
- }
-
- Wrapper<StaDesc> wrapper = null;
- StaDesc staDesc = null;
- BasDevp staNo = null;
-
- if (Utils.BooleanWhsTypeSta(rowLastno, staDescId)) {
- // 鑾峰彇鐩爣绔�
- wrapper = new EntityWrapper<StaDesc>()
- .eq("type_no", staDescId)
- .eq("stn_no", sourceStaNo)
- .eq("crn_no", crnNo);
- staDesc = staDescService.selectOne(wrapper);
- if (Cools.isEmpty(staDesc)) {
- log.error("type_no={},stn_no={},crn_no={}", staDescId, sourceStaNo, crnNo);
-// throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
- crnNo = 0;
- } else {
- staNo = basDevpService.selectById(staDesc.getCrnStn());
- if (!staNo.getAutoing().equals("Y")) {
- log.error("鐩爣绔�" + staDesc.getCrnStn() + "涓嶅彲鐢�");
-// throw new CoolException("鐩爣绔�"+staDesc.getCrnStn()+"涓嶅彲鐢�");
- crnNo = 0;
- }
- startupDto.setStaNo(staNo.getDevNo());
- }
- // 鏇存柊搴撲綅鎺掑彿
- if (Cools.isEmpty(locMast)) {
- rowLastno.setCurrentRow(curRow);
- rowLastnoService.updateById(rowLastno);
- }
- }
-
- // 寮�濮嬫煡鎵惧簱浣� ==============================>>
-
- // 1.鎸夎鍒欐煡鎵惧簱浣�
- if (Cools.isEmpty(locMast) && crnNo != 0) {
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("row1", nearRow)
- .eq("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue())
- .orderBy("lev1", true).orderBy("bay1", true));
- for (LocMast locMast1 : locMasts) {
- if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) {
- continue;
- }
- if (Utils.BooleanWhsTypeStaIoType(rowLastno)) {
- String shallowLoc = Utils.getDeepLoc(slaveProperties, locMast1.getLocNo());
- LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("loc_no", shallowLoc).eq("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue()));
- if (!Cools.isEmpty(locMast2)) {
- locMast = locMast2;
- break;
- }
- } else {
- if (!Cools.isEmpty(locMast1)) {
- locMast = locMast1;
- break;
- }
- }
- }
-
- if (Cools.isEmpty(locMast) && Utils.BooleanWhsTypeStaIoType(rowLastno)) {
- for (LocMast locMast1 : locMasts) {
- if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) {
- continue;
- }
- if (Utils.BooleanWhsTypeStaIoType(rowLastno)) {
- String shallowLoc = Utils.getDeepLoc(slaveProperties, locMast1.getLocNo());
- LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("loc_no", shallowLoc).eq("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue()));
- if (!Cools.isEmpty(locMast2)) {
- locMast = locMast2;
- break;
- } else {
- locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("loc_no", shallowLoc).eq("loc_sts", "F").eq("whs_type", rowLastnoType.getType().longValue()));
- if (!Cools.isEmpty(locMast2)) {
- locMast = locMast1;
- break;
- } else {
- locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("loc_no", shallowLoc).eq("loc_sts", "D").eq("whs_type", rowLastnoType.getType().longValue()));
- if (!Cools.isEmpty(locMast2)) {
- locMast = locMast1;
- break;
- }
- }
- }
- } else {
- if (!Cools.isEmpty(locMast1)) {
- locMast = locMast1;
- break;
- }
- }
- }
- }
- }
-
- if (!Cools.isEmpty(locMast) && !basCrnpService.checkSiteError(crnNo, true)) {
- locMast = null;
- }
-
- // 閫掑綊鏌ヨ
- if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("O")) {
- // 褰撳墠宸烽亾鏃犵┖搴撲綅鏃讹紝閫掑綊璋冩暣鑷充笅涓�宸烽亾锛屾绱㈠叏閮ㄥ贩閬撴棤鏋滃悗锛岃烦鍑洪�掑綊
- if (times < rowCount * 2) {
- times = times + 1;
- return getLocNoRun(whsType, staDescId, sourceStaNo, findLocNoAttributeVo, moveCrnNo, locTypeDto, times);
- }
-// // 2.搴撲綅褰撳墠鎵�灞炲昂瀵告棤绌哄簱浣嶆椂锛岃皟鏁村昂瀵稿弬鏁帮紝鍚戜笂鍏煎妫�绱㈠簱浣�
-// if (locTypeDto.getLocType1() < 2) {
-// int i = locTypeDto.getLocType1() + 1;
-// locTypeDto.setLocType1((short)i);
-// return getLocNo(1, staDescId, sourceStaNo, matnr,batch,grade, locTypeDto, 0);
-// }
- log.error("绯荤粺娌℃湁绌哄簱浣嶏紒锛侊紒 灏哄瑙勬牸锛� {}锛� 杞娆℃暟锛歿}", JSON.toJSONString(locTypeDto), times);
- throw new CoolException("娌℃湁绌哄簱浣�");
- }
- String locNo = locMast.getLocNo();
+ StartupDto startupDto = new StartupDto();
+ locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+ .ne("row1", rowLastno.getsRow())
+ .le("row1", rowLastno.geteRow())
+ .eq("loc_sts", "O")
+ .orderAsc(Arrays.asList("row1", "bay1", "lev1")));
+// int crnCountO = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("crn_no", crnNo).le("io_type", 100));
// 鐢熸垚宸ヤ綔鍙�
int workNo = getWorkNo(0);
// 杩斿洖dto
startupDto.setWorkNo(workNo);
- startupDto.setCrnNo(crnNo);
+ startupDto.setCrnNo(locMast.getCrnNo());
startupDto.setSourceStaNo(sourceStaNo);
- startupDto.setLocNo(locNo);
+ startupDto.setLocNo(locMast.getLocNo());
return startupDto;
}
@@ -846,7 +586,6 @@
locMast = locMast2;
break;
}
-
}
}
--
Gitblit v1.9.1