From ad5fef776eb9d66a0fcfc2ddf89698c5642e0eec Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期五, 06 三月 2026 08:36:24 +0800
Subject: [PATCH] 增加一个定时任务。如果拣货出库过程中,相同料箱号,存在(199 ,200)的任务 并且同时存在 101,196的任务 则101和196的任务会 自动变成199
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java | 614 ++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 399 insertions(+), 215 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
index e07d749..9368e62 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
@@ -7,6 +7,7 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.cfg.CoercionAction;
import com.fasterxml.jackson.databind.cfg.CoercionInputShape;
+import com.vincent.rsf.framework.common.Cools;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.api.config.RemotesInfoProperties;
@@ -22,7 +23,9 @@
import com.vincent.rsf.server.manager.enums.*;
import com.vincent.rsf.server.manager.entity.*;
import com.vincent.rsf.server.manager.service.*;
+import com.vincent.rsf.server.manager.service.impl.LocItemWorkingServiceImpl;
import com.vincent.rsf.server.manager.service.impl.LocServiceImpl;
+import com.vincent.rsf.server.manager.service.impl.WaveOrderRelaServiceImpl;
import com.vincent.rsf.server.system.constant.GlobalConfigCode;
import com.vincent.rsf.server.system.constant.SerialRuleCode;
import com.vincent.rsf.server.system.entity.Config;
@@ -94,12 +97,18 @@
private BasStationService basStationService;
@Autowired
private ReportMsgService reportMsgService;
+ @Autowired
+ private WaveOrderRelaService waveOrderRelaService;
+ @Autowired
+ private LocItemWorkingService locItemWorkingService;
+
/**
- * @param
- * @return
+ * 瀹屾垚鍏ュ簱锛屾洿鏂板簱浣嶆槑缁嗐�佺粍鎵樼姸鎬侊紝骞跺湪姝ょ粺涓�鎵ц 9.1 鍏�/鍑哄簱缁撴灉涓婃姤浜戜粨銆�
+ * 涓� RCS 鍥炶皟褰㈡垚闂幆锛歊CS 涓婃姤浠诲姟缁撴潫鍚庝粎灏嗕换鍔$姸鎬佺疆涓� COMPLETE_IN锛堣 WcsServiceImpl.receiveExMsg锛夛紝
+ * 鏈畾鏃朵换鍔℃壂鎻� COMPLETE_IN 骞舵墽琛� complateInTask锛堝簱浣嶃�佺粍鎵樸��9.1 涓婃姤浜戜粨锛夈��
+ *
* @author Ryan
- * @description 瀹屾垚鍏ュ簱锛屾洿鏂板簱瀛�
* @time 2025/4/2 12:37
*/
@Scheduled(cron = "0/3 * * * * ?")
@@ -114,10 +123,12 @@
}
/**
+ * 瀹屾垚鍑哄簱浠诲姟锛屾洿鏂板簱浣�/鍑哄簱鍗曪紝骞跺湪姝ょ粺涓�鎵ц 9.1 鍏�/鍑哄簱缁撴灉涓婃姤浜戜粨銆�
+ * 涓� RCS 鍥炶皟褰㈡垚闂幆锛歊CS 涓婃姤 END 鍚庝粎灏嗗嚭搴撲换鍔$姸鎬佺疆涓� COMPLETE_OUT锛堣 WcsServiceImpl.receiveExMsg锛夛紝
+ * 鏈畾鏃朵换鍔℃壂鎻� COMPLETE_OUT 骞舵墽琛� completeTask锛堟墸搴撲綅銆佹洿鏂板嚭搴撳崟銆�9.1 涓婃姤浜戜粨锛夈��
+ *
* @author Ryan
* @date 2025/5/20
- * @description: 瀹屾垚鍑哄簱浠诲姟锛屾洿鏂板簱瀛�
- * @version 1.0
*/
@Scheduled(cron = "0/5 * * * * ? ")
@Transactional(rollbackFor = Exception.class)
@@ -240,30 +251,112 @@
/**
* 闈炲厜鐢电珯鐐逛换鍔′笅鍙�
*/
- @Scheduled(cron = "0/5 * * * * ? ")
+ @Scheduled(cron = "0/35 * * * * ? ")
@Transactional(rollbackFor = Exception.class)
public void pubTaskToWcs() {
+ log.debug("瀹氭椂浠诲姟寮�濮嬫墽琛岋細浠诲姟涓嬪彂鍒癛CS");
Long loginUserId = SystemAuthUtils.getLoginUserId();
- List<Integer> list = Arrays.asList(TaskType.TASK_TYPE_IN.type, TaskType.TASK_TYPE_OUT.type, TaskType.TASK_TYPE_LOC_MOVE.type, TaskType.TASK_TYPE_EMPITY_IN.type
- , TaskType.TASK_TYPE_CHECK_IN.type, TaskType.TASK_TYPE_MERGE_IN.type, TaskType.TASK_TYPE_EMPITY_OUT.type, TaskType.TASK_TYPE_PICK_IN.type,
- TaskType.TASK_TYPE_PICK_AGAIN_OUT.type, TaskType.TASK_TYPE_CHECK_OUT.type, TaskType.TASK_TYPE_MERGE_OUT.type);
- List<Integer> integers = Arrays.asList(TaskStsType.GENERATE_IN.id, TaskStsType.GENERATE_OUT.id);
+ List<Integer> list = Arrays.asList(
+ TaskType.TASK_TYPE_LOC_MOVE.type
+ ,TaskType.TASK_TYPE_OUT.type
+ ,TaskType.TASK_TYPE_EMPITY_OUT.type
+ ,TaskType.TASK_TYPE_CHECK_OUT.type
+ ,TaskType.TASK_TYPE_MERGE_OUT.type
+ ,TaskType.TASK_TYPE_PICK_AGAIN_OUT.type
+ ,TaskType.TASK_TYPE_IN.type
+ ,TaskType.TASK_TYPE_EMPITY_IN.type
+ ,TaskType.TASK_TYPE_CHECK_IN.type
+ ,TaskType.TASK_TYPE_MERGE_IN.type
+ ,TaskType.TASK_TYPE_PICK_IN.type
+ );
+ List<Integer> integers = Arrays.asList(/*TaskStsType.GENERATE_IN.id,*/ TaskStsType.GENERATE_OUT.id);
List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
.in(Task::getTaskType, list)
- .in(Task::getTaskStatus, integers).last("limit 1")
+ .in(Task::getTaskStatus, integers)
.orderByDesc(Task::getSort));
- for (Task task : tasks) {
- /**绉诲簱涓嶅仛绔欑偣鎿嶄綔*/
- if (!task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
- BasStation station = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
- .eq(BasStation::getStationName,
- task.getTaskStatus().equals(TaskStsType.GENERATE_IN.id) ? task.getOrgSite() : task.getTargSite()));
- if (station.getType().equals(StationTypeEnum.STATION_TYPE_MUTI.type)) {
- continue;
- }
+ log.debug("鏌ヨ鍒板緟涓嬪彂浠诲姟鏁伴噺锛歿}", tasks.size());
+ if (tasks.isEmpty()) {
+ log.debug("娌℃湁寰呬笅鍙戠殑浠诲姟锛屽畾鏃朵换鍔$粨鏉�");
+ return;
+ }
+ Config config = configService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getFlag, GlobalConfigCode.AUTO_RUN_CHECK_ORDERS));
+ if (!Objects.isNull(config) && !Objects.isNull(config.getVal())) {
+ if (Boolean.parseBoolean(config.getVal())) {
+ log.info("閰嶇疆椤笰UTO_RUN_CHECK_ORDERS涓簍rue锛岃烦杩囦换鍔′笅鍙�");
+ return;
}
- /**涓嬪彂鏅�氱珯鐐逛换鍔★紝鎶ラ敊鍥炴粴锛屼笉鍐嶅線涓嬫墽琛�*/
- pubTaskToWcs(tasks);
+ }
+ // 鍚屾枡绠卞彿瑙勫垯锛氳嫢 101 浠诲姟鎵�鍦ㄦ枡绠卞彿涓嬪凡瀛樺湪 196/198/199/200 浠诲姟锛屽垯涓嶅悜 RCS 鍙戦�佽 101 浠诲姟锛�/api/open/bus/submit锛�
+ List<Integer> higherStatuses = Arrays.asList(TaskStsType.AWAIT.id, TaskStsType.COMPLETE_OUT.id, TaskStsType.WAVE_SEED.id, TaskStsType.UPDATED_OUT.id);
+ List<Task> higherTasks = taskService.list(new LambdaQueryWrapper<Task>()
+ .in(Task::getTaskStatus, higherStatuses)
+ .isNotNull(Task::getBarcode)
+ .ne(Task::getBarcode, ""));
+ Set<String> barcodesWithHigher = higherTasks.stream().map(Task::getBarcode).filter(StringUtils::isNotBlank).collect(Collectors.toSet());
+ final Set<String> skipBarcodes = barcodesWithHigher;
+ List<Task> toPublish = tasks.stream()
+ .filter(t -> {
+ if (TaskStsType.GENERATE_OUT.id.equals(t.getTaskStatus()) && StringUtils.isNotBlank(t.getBarcode()) && skipBarcodes.contains(t.getBarcode())) {
+ log.debug("鍚屾枡绠卞彿{}涓嬪凡瀛樺湪196/198/199/200浠诲姟锛岃烦杩�101浠诲姟涓嬪彂锛歵askId={}", t.getBarcode(), t.getId());
+ return false;
+ }
+ return true;
+ })
+ .collect(Collectors.toList());
+ if (toPublish.isEmpty()) {
+ log.debug("杩囨护鍚庢棤寰呬笅鍙戜换鍔★紝瀹氭椂浠诲姟缁撴潫");
+ return;
+ }
+ tasks = toPublish;
+// for (Task task : tasks) {
+// /**绉诲簱涓嶅仛绔欑偣鎿嶄綔*/
+// if (!task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
+// BasStation station = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
+// .eq(BasStation::getStationName,
+// task.getTaskStatus().equals(TaskStsType.GENERATE_IN.id) ? task.getOrgSite() : task.getTargSite()));
+// if (station.getType().equals(StationTypeEnum.STATION_TYPE_MUTI.type)) {
+// continue;
+// }
+// }
+// }
+ /**涓嬪彂鏅�氱珯鐐逛换鍔★紝鎶ラ敊鍥炴粴锛屼笉鍐嶅線涓嬫墽琛�*/
+ log.debug("寮�濮嬩笅鍙憑}涓换鍔″埌RCS", tasks.size());
+ taskService.pubTaskToWcs(tasks);
+ log.debug("瀹氭椂浠诲姟鎵ц瀹屾垚锛氫换鍔′笅鍙戝埌RCS");
+ }
+
+ /**
+ * 鎷h揣鍑哄簱鍚屾枡绠卞彿鐘舵�佸悓姝ワ細鐩稿悓鏂欑鍙蜂笅鑻ュ悓鏃跺瓨鍦�(199銆�200)浠诲姟涓�(101銆�196)浠诲姟锛屽垯灏� 101銆�196 鑷姩鏇存柊涓� 199銆�
+ * 鎵ц鍛ㄦ湡涓庝换鍔′笅鍙戜竴鑷达紝渚夸簬鍦ㄤ笅鍙戝墠瀹屾垚鐘舵�佸悓姝ャ��
+ */
+ @Scheduled(cron = "0/35 * * * * ? ")
+ @Transactional(rollbackFor = Exception.class)
+ public void syncBarcodeTaskStatusTo199() {
+ List<Integer> statuses = Arrays.asList(TaskStsType.GENERATE_OUT.id, TaskStsType.AWAIT.id, TaskStsType.WAVE_SEED.id, TaskStsType.UPDATED_OUT.id);
+ List<Task> candidates = taskService.list(new LambdaQueryWrapper<Task>()
+ .in(Task::getTaskStatus, statuses)
+ .isNotNull(Task::getBarcode)
+ .ne(Task::getBarcode, ""));
+ if (candidates.isEmpty()) return;
+ Map<String, Set<Integer>> statusByBarcode = new HashMap<>();
+ for (Task t : candidates) {
+ statusByBarcode.computeIfAbsent(t.getBarcode(), k -> new HashSet<>()).add(t.getTaskStatus());
+ }
+ List<Integer> to199 = Arrays.asList(TaskStsType.GENERATE_OUT.id, TaskStsType.AWAIT.id);
+ List<Integer> has199Or200 = Arrays.asList(TaskStsType.WAVE_SEED.id, TaskStsType.UPDATED_OUT.id);
+ for (Map.Entry<String, Set<Integer>> e : statusByBarcode.entrySet()) {
+ Set<Integer> set = e.getValue();
+ boolean hasHigh = set.stream().anyMatch(has199Or200::contains);
+ boolean hasLow = set.stream().anyMatch(to199::contains);
+ if (!hasHigh || !hasLow) continue;
+ String barcode = e.getKey();
+ boolean updated = taskService.update(new LambdaUpdateWrapper<Task>()
+ .eq(Task::getBarcode, barcode)
+ .in(Task::getTaskStatus, to199)
+ .set(Task::getTaskStatus, TaskStsType.WAVE_SEED.id));
+ if (updated) {
+ log.info("鍚屾枡绠卞彿{}涓嬪瓨鍦�199/200涓斿瓨鍦�101/196锛屽凡灏�101/196浠诲姟鑷姩鏇存柊涓�199", barcode);
+ }
}
}
@@ -330,7 +423,7 @@
}
/**涓嬪彂浠诲姟*/
try {
- pubTaskToWcs(tasks);
+ taskService.pubTaskToWcs(tasks);
} catch (Exception e) {
log.error("浠诲姟涓嬪彂澶辫触锛侊紒", e);
}
@@ -339,7 +432,7 @@
/**
* 姣忎簲绉掓牎楠屾繁搴撲綅鏄惁涓虹┖锛屽鏋滄祬搴撲綅鏈夎揣锛屽皢娴呭簱浣嶇Щ鑷虫繁搴撲綅
- *///TODO 鐢熸垚绉诲簱浠诲姟鍓嶏紝闇�瑕佹鏌ユ槸鍚︽湁浠诲姟鍓嶅線褰撳墠鎵樼洏
+ *///TODO 鐢熸垚绉诲簱浠诲姟鍓嶏紝闇�瑕佹鏌ユ槸鍚︽湁浠诲姟鍓嶅線褰撳墠鏂欑
// @Scheduled(cron = "0/35 * * * * ? ")
// @Transactional(rollbackFor = Exception.class)
// public void shallocToDeep() throws Exception {
@@ -365,162 +458,165 @@
*
* @param tasks
*/
- @Transactional(rollbackFor = Exception.class)
- public void pubTaskToWcs(List<Task> tasks) {
- WcsTaskParams taskParams = new WcsTaskParams();
- List<TaskItemParam> items = new ArrayList<>();
- tasks.forEach(task -> {
- TaskItemParam itemParam = new TaskItemParam();
- //浠诲姟绫诲瀷锛屼换鍔$紪鐮�
- itemParam.setTaskType(RcsTaskType.getTypeDesc(task.getTaskType()))
- .setSeqNum(task.getTaskCode());
- //涓诲弬鏁�
- taskParams.setBatch(task.getBarcode());
-
- BasStation station = null;
- if (!task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
- station = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, task.getTargSite()));
- if (Objects.isNull(station)) {
- throw new CoolException("绔欑偣涓嶅瓨鍦紒锛�");
- }
- }
-
- /**鍒ゆ柇鏄惁鍏夌數绔欑偣锛岄潪鍏夊簵绔欑偣闇�绠℃帶绔欑偣鐘舵��*/
- if (!Objects.isNull(station) && station.getType().equals(StationTypeEnum.STATION_TYPE_NORMAL.type)) {
- if (task.getTaskType() <= TaskType.TASK_TYPE_CHECK_IN.type && !task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
-// if (!station.getUseStatus().equals(LocStsType.LOC_STS_TYPE_F.type)) {
-// throw new CoolException( "褰撳墠绔欑偣涓嶆槸F.鍦ㄥ簱鐘舵�佺姸鎬侊紒锛�");
+// @Transactional(rollbackFor = Exception.class)
+// public void pubTaskToWcs(List<Task> tasks) {
+// WcsTaskParams taskParams = new WcsTaskParams();
+// List<TaskItemParam> items = new ArrayList<>();
+// tasks.forEach(task -> {
+// TaskItemParam itemParam = new TaskItemParam();
+// //浠诲姟绫诲瀷锛屼换鍔$紪鐮�
+// itemParam.setTaskType(RcsTaskType.getTypeDesc(task.getTaskType()))
+// .setSeqNum(task.getTaskCode());
+// //涓诲弬鏁�
+// taskParams.setBatch(task.getBarcode());
+//
+// BasStation station = null;
+// if (!task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
+// station = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, task.getTargSite()));
+// if (Objects.isNull(station)) {
+// throw new CoolException("绔欑偣涓嶅瓨鍦紒锛�");
// }
- station.setUseStatus(LocStsType.LOC_STS_TYPE_R.type);
- if (!basStationService.updateById(station)) {
- throw new CoolException("绔欑偣鐘舵�佹洿鏂板け璐ワ紒锛�");
- }
- } else if (task.getTaskType() >= TaskType.TASK_TYPE_OUT.type) {
- if (!station.getUseStatus().equals(LocStsType.LOC_STS_TYPE_O.type)) {
- throw new CoolException("鐩爣绔欑偣涓嶅O.绌洪棽鐘舵�侊紝鏃犳硶棰勭害鍑哄簱銆�");
- }
- station.setUseStatus(LocStsType.LOC_STS_TYPE_S.type);
- if (!basStationService.updateById(station)) {
- throw new CoolException("绔欑偣鐘舵�佹洿鏂板け璐ワ紒锛�");
- }
- }
- }
-
- /**绉诲簱鍙傛暟*/
- if (task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
- itemParam.setOriLoc(task.getOrgLoc()).setDestLoc(task.getTargLoc());
- } else if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type)
- || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_IN.type)
- || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_IN.type)) {
- /**鍏ㄦ澘鍏ュ簱鍙傛暟*/
- itemParam.setDestLoc(task.getTargLoc())
- .setOriSta(task.getOrgSite());
- } else if (task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type) || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_IN.type)) {
- /**鎷f枡/鐩樼偣鍏ュ簱鍙傛暟*/
- itemParam.setDestLoc(task.getTargLoc())
- .setOriSta(task.getTargSite());
- } else if (task.getTaskType().equals(TaskType.TASK_TYPE_OUT.type)
- || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type)
- || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_OUT.type)
- || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type)
- || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_OUT.type)) {
- /**鍑哄簱鍙傛暟*/
- itemParam.setOriLoc(task.getOrgLoc())
- .setDestSta(task.getTargSite());
- } else {
- /**绔欑偣闂寸Щ搴撳弬鏁�*/
- itemParam.setOriSta(task.getOrgSite()).setDestSta(task.getTargSite());
-
- BasStation curSta = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, task.getOrgSite()));
- if (Objects.isNull(curSta)) {
- throw new CoolException("绔欑偣涓嶅瓨鍦紒锛�");
- }
- if (curSta.getType().equals(StationTypeEnum.STATION_TYPE_NORMAL.type)) {
- if (!curSta.getUseStatus().equals(LocStsType.LOC_STS_TYPE_F.type)) {
- throw new CoolException("褰撳墠绔欑偣涓嶆槸F.鍦ㄥ簱鐘舵�侊紒锛�");
- }
- }
- if (station.getType().equals(StationTypeEnum.STATION_TYPE_NORMAL.type)) {
- if (!station.getUseStatus().equals(LocStsType.LOC_STS_TYPE_O.type)) {
- throw new CoolException("鐩爣绔欑偣涓嶆槸O.绌洪棽鐘舵�侊紒锛�");
- }
- }
- }
- items.add(itemParam);
- });
- taskParams.setTaskList(items);
- /**浠诲姟涓嬪彂鎺ュ彛*/
- String pubTakUrl = rcsApi.getHost() + ":" + rcsApi.getPort() + RcsConstant.pubTask;
- /**RCS鍩虹閰嶇疆閾炬帴*/
- log.info("浠诲姟涓嬪彂锛岃姹傚湴鍧�锛� {}锛� 璇锋眰鍙傛暟锛� {}", pubTakUrl, JSONObject.toJSONString(taskParams));
- HttpHeaders headers = new HttpHeaders();
- headers.add("Content-Type", "application/json");
- headers.add("api-version", "v2.0");
- HttpEntity httpEntity = new HttpEntity(taskParams, headers);
- ResponseEntity<String> exchange = restTemplate.exchange(pubTakUrl, HttpMethod.POST, httpEntity, String.class);
- log.info("浠诲姟涓嬪彂鍚庯紝鍝嶅簲缁撴灉锛� {}", exchange);
- if (Objects.isNull(exchange.getBody())) {
- throw new CoolException("浠诲姟涓嬪彂澶辫触锛侊紒");
- } else {
- try {
- ObjectMapper objectMapper = new ObjectMapper();
- objectMapper.coercionConfigDefaults()
- .setCoercion(CoercionInputShape.EmptyString, CoercionAction.AsEmpty);
- CommonResponse result = objectMapper.readValue(exchange.getBody(), CommonResponse.class);
- if (result.getCode() == 200) {
- tasks.forEach(task -> {
- BasStation curSta = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, task.getOrgSite()));
- if (Objects.isNull(curSta)) {
- throw new CoolException("绔欑偣涓嶅瓨鍦紒锛�");
- }
- if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type)
- || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_IN.type)
- || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type)
- || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_IN.type)
- || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_IN.type)
- || task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
- if (!taskService.update(new LambdaUpdateWrapper<Task>().eq(Task::getTaskCode, task.getTaskCode())
- .set(Task::getTaskStatus, TaskStsType.WCS_EXECUTE_IN.id))) {
- throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
- }
- /**鎺掗櫎绉诲簱鍔熻兘*/
- if (!task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
- /**濡傛灉鏄櫘閫氱珯鐐癸紝淇敼绔欑偣鐘舵�佷负鍑哄簱棰勭害*/
- if (curSta.getType().equals(StationTypeEnum.STATION_TYPE_NORMAL.type)) {
- curSta.setUseStatus(LocStsType.LOC_STS_TYPE_R.type);
- if (!basStationService.updateById(curSta)) {
- throw new CoolException("绔欑偣棰勭害澶辫触锛侊紒");
- }
- }
- }
- } else if (task.getTaskType().equals(TaskType.TASK_TYPE_OUT.type)
- || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type)
- || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_OUT.type)
- || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_OUT.type)
- || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type)) {
- if (!taskService.update(new LambdaUpdateWrapper<Task>().eq(Task::getTaskCode, task.getTaskCode())
- .set(Task::getTaskStatus, TaskStsType.WCS_EXECUTE_OUT.id))) {
- throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
- }
- /**濡傛灉鏄櫘閫氱珯鐐癸紝淇敼绔欑偣鐘舵�佷负鍏ュ簱棰勭害*/
- if (curSta.getType().equals(StationTypeEnum.STATION_TYPE_NORMAL.type)) {
- curSta.setUseStatus(LocStsType.LOC_STS_TYPE_S.type);
- if (!basStationService.updateById(curSta)) {
- throw new CoolException("绔欑偣棰勭害澶辫触锛侊紒");
- }
- }
- }
- });
- } else {
- throw new CoolException("浠诲姟涓嬪彂澶辫触锛侊紒");
- }
- } catch (JsonProcessingException e) {
- throw new CoolException(e.getMessage());
- }
- }
-
- }
-
+// }
+//
+// /**鍒ゆ柇鏄惁鍏夌數绔欑偣锛岄潪鍏夊簵绔欑偣闇�绠℃帶绔欑偣鐘舵��*/
+// if (!Objects.isNull(station) && station.getType().equals(StationTypeEnum.STATION_TYPE_NORMAL.type)) {
+// if (task.getTaskType() <= TaskType.TASK_TYPE_CHECK_IN.type && !task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
+// station.setUseStatus(LocStsType.LOC_STS_TYPE_R.type);
+// if (!basStationService.updateById(station)) {
+// throw new CoolException("绔欑偣鐘舵�佹洿鏂板け璐ワ紒锛�");
+// }
+// } else if (task.getTaskType() >= TaskType.TASK_TYPE_OUT.type) {
+// station.setUseStatus(LocStsType.LOC_STS_TYPE_S.type);
+// if (!basStationService.updateById(station)) {
+// throw new CoolException("绔欑偣鐘舵�佹洿鏂板け璐ワ紒锛�");
+// }
+// }
+// }
+//
+// /**绉诲簱鍙傛暟*/
+// if (task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
+// itemParam.setOriLoc(task.getOrgLoc()).setDestLoc(task.getTargLoc());
+// } else if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type)
+// || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_IN.type)
+// || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_IN.type)) {
+// /**鍏ㄦ澘鍏ュ簱鍙傛暟*/
+// itemParam.setDestLoc(task.getTargLoc())
+// .setOriSta(task.getOrgSite());
+// } else if (task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type) || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_IN.type)) {
+// /**鎷f枡/鐩樼偣鍏ュ簱鍙傛暟*/
+// itemParam.setDestLoc(task.getTargLoc())
+// .setOriSta(task.getTargSite());
+// } else if (task.getTaskType().equals(TaskType.TASK_TYPE_OUT.type)
+// || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type)
+// || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_OUT.type)
+// || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type)
+// || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_OUT.type)) {
+// /**鍑哄簱鍙傛暟*/
+// itemParam.setOriLoc(task.getOrgLoc())
+// .setDestSta(task.getTargSite());
+// } else {
+// /**绔欑偣闂寸Щ搴撳弬鏁�*/
+// itemParam.setOriSta(task.getOrgSite()).setDestSta(task.getTargSite());
+//
+// BasStation curSta = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, task.getOrgSite()));
+// if (Objects.isNull(curSta)) {
+// throw new CoolException("绔欑偣涓嶅瓨鍦紒锛�");
+// }
+// if (curSta.getType().equals(StationTypeEnum.STATION_TYPE_NORMAL.type)) {
+// if (!curSta.getUseStatus().equals(LocStsType.LOC_STS_TYPE_F.type)) {
+// throw new CoolException("褰撳墠绔欑偣涓嶆槸F.鍦ㄥ簱鐘舵�侊紒锛�");
+// }
+// }
+// if (station.getType().equals(StationTypeEnum.STATION_TYPE_NORMAL.type)) {
+// if (!station.getUseStatus().equals(LocStsType.LOC_STS_TYPE_O.type)) {
+// throw new CoolException("鐩爣绔欑偣涓嶆槸O.绌洪棽鐘舵�侊紒锛�");
+// }
+// }
+// }
+// items.add(itemParam);
+// });
+// taskParams.setTaskList(items);
+// /**浠诲姟涓嬪彂鎺ュ彛*/
+// String pubTakUrl = rcsApi.getHost() + ":" + rcsApi.getPort() + RcsConstant.pubTask;
+// /**RCS鍩虹閰嶇疆閾炬帴*/
+// log.info("浠诲姟涓嬪彂锛岃姹傚湴鍧�锛� {}锛� 璇锋眰鍙傛暟锛� {}", pubTakUrl, JSONObject.toJSONString(taskParams));
+// HttpHeaders headers = new HttpHeaders();
+// headers.add("Content-Type", "application/json");
+// headers.add("api-version", "v2.0");
+// HttpEntity httpEntity = new HttpEntity(taskParams, headers);
+// ResponseEntity<String> exchange = restTemplate.exchange(pubTakUrl, HttpMethod.POST, httpEntity, String.class);
+// log.info("浠诲姟涓嬪彂鍚庯紝鍝嶅簲缁撴灉锛� {}", exchange);
+// if (Objects.isNull(exchange.getBody())) {
+// throw new CoolException("浠诲姟涓嬪彂澶辫触锛侊紒");
+// } else {
+// try {
+// ObjectMapper objectMapper = new ObjectMapper();
+// objectMapper.coercionConfigDefaults()
+// .setCoercion(CoercionInputShape.EmptyString, CoercionAction.AsEmpty);
+// CommonResponse result = objectMapper.readValue(exchange.getBody(), CommonResponse.class);
+// if (result.getCode() == 200) {
+// tasks.forEach(task -> {
+//
+// if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type)
+// || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_IN.type)
+// || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type)
+// || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_IN.type)
+// || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_IN.type)
+// || task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
+//
+// BasStation curSta = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, task.getOrgSite()));
+// if (Objects.isNull(curSta)) {
+// throw new CoolException("绔欑偣涓嶅瓨鍦紒锛�");
+// }
+//
+// if (!taskService.update(new LambdaUpdateWrapper<Task>().eq(Task::getTaskCode, task.getTaskCode())
+// .set(Task::getTaskStatus, TaskStsType.WCS_EXECUTE_IN.id))) {
+// throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+// }
+// /**鎺掗櫎绉诲簱鍔熻兘*/
+// if (!task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
+// /**濡傛灉鏄櫘閫氱珯鐐癸紝淇敼绔欑偣鐘舵�佷负鍑哄簱棰勭害*/
+// if (curSta.getType().equals(StationTypeEnum.STATION_TYPE_NORMAL.type)) {
+// curSta.setUseStatus(LocStsType.LOC_STS_TYPE_R.type);
+// if (!basStationService.updateById(curSta)) {
+// throw new CoolException("绔欑偣棰勭害澶辫触锛侊紒");
+// }
+// }
+// }
+// } else if (task.getTaskType().equals(TaskType.TASK_TYPE_OUT.type)
+// || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type)
+// || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_OUT.type)
+// || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_OUT.type)
+// || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type)) {
+// BasStation curSta = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, task.getTargSite()));
+// if (Objects.isNull(curSta)) {
+// throw new CoolException("绔欑偣涓嶅瓨鍦紒锛�");
+// }
+//
+// if (!taskService.update(new LambdaUpdateWrapper<Task>().eq(Task::getTaskCode, task.getTaskCode())
+// .set(Task::getTaskStatus, TaskStsType.WCS_EXECUTE_OUT.id))) {
+// throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+// }
+// /**濡傛灉鏄櫘閫氱珯鐐癸紝淇敼绔欑偣鐘舵�佷负鍏ュ簱棰勭害*/
+// if (curSta.getType().equals(StationTypeEnum.STATION_TYPE_NORMAL.type)) {
+// curSta.setUseStatus(LocStsType.LOC_STS_TYPE_S.type);
+// if (!basStationService.updateById(curSta)) {
+// throw new CoolException("绔欑偣棰勭害澶辫触锛侊紒");
+// }
+// }
+// }
+// });
+// } else {
+// log.error(JSONObject.toJSONString(result));
+//// throw new CoolException("浠诲姟涓嬪彂澶辫触锛侊紒");
+// }
+// } catch (JsonProcessingException e) {
+// throw new CoolException(e.getMessage());
+// }
+// }
+//
+// }
+//
/**
* @param
@@ -529,7 +625,7 @@
* @description 宸插畬鎴愪换鍔″姞鍏ュ巻鍙叉。
* @time 2025/4/3 12:54
*/
- @Scheduled(cron = "0 0/01 * * * ? ")
+ @Scheduled(cron = "0/15 * * * * ? ")
@Transactional(rollbackFor = Exception.class)
public void taskLogUpdate() {
LambdaQueryWrapper<Task> queryWrapper = new LambdaQueryWrapper<Task>();
@@ -543,45 +639,129 @@
} else {
queryWrapper.in(Task::getTaskStatus, TaskStsType.UPDATED_IN.id, TaskStsType.UPDATED_OUT.id);
}
+ queryWrapper.last("ORDER BY RAND() LIMIT 1");
+
List<Task> tasks = taskService.list(queryWrapper);
if (tasks.isEmpty()) {
return;
}
tasks.forEach(task -> {
- TaskLog taskLog = new TaskLog();
- BeanUtils.copyProperties(task, taskLog);
- taskLog.setTaskId(task.getId()).setId(null);
- if (!taskLogService.save(taskLog)) {
- throw new CoolException("浠诲姟鍘嗗彶妗d繚瀛樺け璐ワ紒锛�");
- }
- List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId()));
- //鍏ュ簱鍗曟嵁鏄庣粏涓婃姤
- if (task.getTaskType() <= TaskType.TASK_TYPE_CHECK_IN.type) {
- for (TaskItem taskItem : taskItems) {
- if (Objects.isNull(taskItem.getOrderId())) {
- continue;
- }
- WkOrder order = asnOrderService.getById(taskItem.getOrderId());
- if (Objects.isNull(order)) {
- continue;
- }
- //鍏ュ簱鍗曚换鍔℃槑缁嗕笂鎶�
- WkOrderItem wkOrderItem = asnOrderItemService.getOne(new LambdaQueryWrapper<WkOrderItem>()
- .eq(WkOrderItem::getOrderId, order.getId())
- .eq(WkOrderItem::getFieldsIndex, taskItem.getFieldsIndex()));
- if (Objects.isNull(wkOrderItem)) {
- throw new CoolException("鏁版嵁閿欒锛屽崟鎹槑缁嗕笉瀛樺湪鎴栧凡瀹屾垚锛侊紒");
- }
- /**鍏ュ簱鍗曟槑缁嗕笂鎶�*/
- reportMsgService.reportOrderItem(wkOrderItem);
+ // 鍙鍑哄簱 200 鍋氬悓绠辩爜妫�鏌ワ細鍚岀鐮佷笅鑻ユ湁 101/196/198/199 绛夛紙鏈埌 200锛夊垯璺宠繃锛岀瓑鍏ㄩ儴 200 鎵嶄竴娆″鐞嗭紱鎷f枡鍏ュ簱 100 涓嶅彈褰卞搷
+ List<Task> toProcess = Collections.singletonList(task);
+ if (TaskStsType.UPDATED_OUT.id.equals(task.getTaskStatus()) && TaskType.TASK_TYPE_PICK_AGAIN_OUT.type.equals(task.getTaskType()) && StringUtils.isNotBlank(task.getBarcode())) {
+ long not200 = taskService.count(new LambdaQueryWrapper<Task>()
+ .eq(Task::getBarcode, task.getBarcode())
+ .ne(Task::getTaskStatus, TaskStsType.UPDATED_OUT.id));
+ if (not200 > 0) {
+ return; // 鍚岀鐮佸皻鏈� 101/196/198/199 绛夐潪 200 浠诲姟锛屼笉澶勭悊锛岀户缁瓑寰�
}
- } else if (task.getTaskType() >= TaskType.TASK_TYPE_OUT.type && task.getTaskType() <= TaskType.TASK_TYPE_EMPITY_OUT.type) {
+ // 鍚岀鐮佸凡鍏ㄩ儴 200锛氫竴娆℃�у鐞嗚绠辩爜涓嬫墍鏈� 200 鎷f枡鍑哄簱锛堝悎璁℃墸鍑忋�佹洿鏂板簱瀛樸�佺敓鎴愪竴寮犳嫞鏂欏叆搴撳崟銆佹洿鏂板簱浣嶇姸鎬侊級
+ List<Task> all200 = taskService.list(new LambdaQueryWrapper<Task>()
+ .eq(Task::getBarcode, task.getBarcode())
+ .eq(Task::getTaskType, TaskType.TASK_TYPE_PICK_AGAIN_OUT.type)
+ .eq(Task::getTaskStatus, TaskStsType.UPDATED_OUT.id)
+ .orderByAsc(Task::getId));
+ if (!all200.isEmpty()) {
+ taskService.processPickOutBarcodeAll200(all200);
+ toProcess = all200;
+ }
+ }
+ for (Task t : toProcess) {
+ TaskLog taskLog = new TaskLog();
+ BeanUtils.copyProperties(t, taskLog);
+ taskLog.setTaskId(t.getId()).setId(null);
+ if (!taskLogService.save(taskLog)) {
+ throw new CoolException("浠诲姟鍘嗗彶妗d繚瀛樺け璐ワ紒锛�");
+ }
+ List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, t.getId()));
+
+ // 涓婃姤ERP鏆傛椂娉ㄩ噴锛�/rsf-open-api/erp/report/order锛�
+ // if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type)) {
+ // for (TaskItem taskItem : taskItems) {
+ // if (Objects.isNull(taskItem.getOrderId())) {
+ // continue;
+ // }
+ // WkOrder order = asnOrderService.getById(taskItem.getOrderId());
+ // if (Objects.isNull(order)) {
+ // continue;
+ // }
+ // // 鍏ュ簱鍗曚换鍔℃槑缁嗕笂鎶ワ細浼樺厛鎸� orderItemId锛堝崟鎹槑缁咺D锛夋煡锛屽惁鍒欐寜 orderId+matnrId(+fieldsIndex) 鏌ワ紝纭繚鑳芥壘鍒板崟鎹槑缁�
+ // WkOrderItem wkOrderItem = null;
+ // if (taskItem.getOrderItemId() != null) {
+ // wkOrderItem = asnOrderItemService.getById(taskItem.getOrderItemId());
+ // }
+ // if (wkOrderItem == null) {
+ // LambdaQueryWrapper<WkOrderItem> qw = new LambdaQueryWrapper<WkOrderItem>()
+ // .eq(WkOrderItem::getOrderId, order.getId())
+ // .eq(WkOrderItem::getMatnrId, taskItem.getMatnrId());
+ // if (StringUtils.isNotBlank(taskItem.getFieldsIndex())) {
+ // qw.eq(WkOrderItem::getFieldsIndex, taskItem.getFieldsIndex());
+ // }
+ // wkOrderItem = asnOrderItemService.getOne(qw);
+ // }
+ // if (Objects.isNull(wkOrderItem)) {
+ // logger.warn("浠诲姟鍘嗗彶妗e鐞嗭細鍗曟嵁鏄庣粏涓嶅瓨鍦ㄦ垨宸插畬鎴愶紝璺宠繃涓婃姤 - taskId={}, orderId={}, orderItemId={}, matnrId={}, fieldsIndex={}", task.getId(), order.getId(), taskItem.getOrderItemId(), taskItem.getMatnrId(), taskItem.getFieldsIndex());
+ // continue;
+ // }
+ // /**鍏ュ簱鍗曟槑缁嗕笂鎶�*/
+ // reportMsgService.reportOrderItem(wkOrderItem);
+ // }
+ // } else
+ if (t.getTaskType().equals(TaskType.TASK_TYPE_IN.type)) {
+ // 鍏ュ簱绫诲瀷浠呰浆鍘嗗彶锛屼笉涓婃姤ERP锛堝凡娉ㄩ噴锛�
+ } else if ((t.getTaskType() >= TaskType.TASK_TYPE_OUT.type && t.getTaskType() <= TaskType.TASK_TYPE_EMPITY_OUT.type)
+ || t.getTaskType().equals(TaskType.TASK_TYPE_PICK_IN.type)) {
+ /**鍒ゆ柇鍗曟嵁鏄惁瀹屾垚锛氭尝娆′笅鍙戙�佹寜鍗曚笅鍙戯紙鐐瑰嚮涓嬪彂浠诲姟锛夊畬鎴愬悗鍧囧皢鍑哄簱鍗曠疆涓哄畬缁�*/
+ Set<Long> orderIdsToDone = new HashSet<>();
+ if (t.getResource() != null && t.getResource().equals(TaskResouceType.TASK_RESOUCE_WAVE_TYPE.val)) {
+ Set<Long> longSet = taskItems.stream()
+ .map(TaskItem::getSourceId)
+ .filter(Objects::nonNull)
+ .collect(Collectors.toSet());
+ if (!longSet.isEmpty()) {
+ List<WaveOrderRela> waveOrderRelas = waveOrderRelaService.list(new LambdaQueryWrapper<WaveOrderRela>()
+ .in(WaveOrderRela::getWaveId, longSet));
+ if (!Cools.isEmpty(waveOrderRelas)) {
+ orderIdsToDone.addAll(waveOrderRelas.stream().map(WaveOrderRela::getOrderId).collect(Collectors.toSet()));
+ }
+ }
+ } else if (t.getResource() != null && t.getResource().equals(TaskResouceType.TASK_RESOUCE_ORDER_TYPE.val)) {
+ // 鎸夊崟涓嬪彂锛氫换鍔℃槑缁� sourceId 涓哄嚭搴撳崟ID
+ Set<Long> ids = taskItems.stream()
+ .map(TaskItem::getSourceId)
+ .filter(Objects::nonNull)
+ .collect(Collectors.toSet());
+ orderIdsToDone.addAll(ids);
+ }
+ if (!orderIdsToDone.isEmpty()) {
+ List<WkOrder> wkOrders = asnOrderService.listByIds(orderIdsToDone);
+ if (!wkOrders.isEmpty()) {
+ Config allowChang = configService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getFlag, GlobalConfigCode.ALLOW_OVER_CHANGE));
+ wkOrders.forEach(order -> {
+ if (order.getAnfme() == null) return;
+ boolean canDone = Boolean.TRUE.equals(allowChang != null && Boolean.parseBoolean(allowChang.getVal()))
+ ? (order.getQty() != null && order.getAnfme().compareTo(order.getQty()) <= 0)
+ : (order.getQty() != null && order.getAnfme().compareTo(order.getQty()) == 0);
+ if (canDone) {
+ order.setExceStatus(AsnExceStatus.OUT_STOCK_STATUS_TASK_DONE.val);
+ if (order.getQty() == null || order.getQty().compareTo(0.0) == 0) {
+ order.setQty(order.getWorkQty() != null ? order.getWorkQty() : 0.0);
+ }
+ if (!asnOrderService.updateById(order)) {
+ logger.error("鍑哄簱鍗曟洿鏂扮姸鎬佸け璐ャ�傝鍗旾D锛歿}锛岃鍗曠紪鐮侊細{}", order.getId(), order.getCode());
+ }
+ }
+ });
+ }
+ }
+
//鍑哄簱鍗曚笂鎶CS淇敼搴撲綅鐘舵��
try {
- reportStationStatus(task);
+ reportStationStatus(t);
} catch (Exception e) {
- throw new CoolException(e.getMessage());
+ logger.error("浠诲姟{}涓婃姤RCS淇敼搴撲綅鐘舵�佸け璐ャ�備换鍔$紪鐮侊細{}", t.getId(), t.getTaskCode(), e);
+ // 涓嶆姏鍑哄紓甯革紝閬垮厤涓柇瀹氭椂浠诲姟
}
}
@@ -590,13 +770,16 @@
TaskItemLog itemLog = new TaskItemLog();
BeanUtils.copyProperties(item, itemLog);
itemLog.setId(null)
- .setTaskId(task.getId())
+ .setTaskId(t.getId())
.setLogId(taskLog.getId())
.setTaskItemId(item.getId());
itemLogs.add(itemLog);
}
- if (!taskService.removeById(task.getId())) {
+ locItemWorkingService.remove(new LambdaQueryWrapper<LocItemWorking>().eq(LocItemWorking::getTaskId, t.getId()));
+
+
+ if (!taskService.removeById(t.getId())) {
throw new CoolException("鍘熷浠诲姟鍒犻櫎澶辫触锛侊紒");
}
@@ -604,9 +787,11 @@
if (!taskItemLogService.saveBatch(itemLogs)) {
throw new CoolException("浠诲姟鏄庣粏鍘嗗彶妗d繚瀛樺け璐ワ紒锛�");
}
- if (!taskItemService.remove(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId()))) {
+ if (!taskItemService.remove(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, t.getId()))) {
throw new CoolException("鍘熷浠诲姟鏄庣粏鍒犻櫎澶辫触锛侊紒");
}
+ }
+
}
});
}
@@ -633,10 +818,9 @@
}
LocSiteParams locSiteParams = new LocSiteParams();
- locSiteParams.setStatus(LocStsType.getLocSts(LocStsType.LOC_STS_TYPE_O.type))
+ locSiteParams.setStatus(LocStsType.getRcsLocSts(LocStsType.LOC_STS_TYPE_O.type))
.setType("site")
.setCode(station.getStationName());
-
/**WMS鍩虹閰嶇疆閾炬帴*/
String rcsUrl = rcsApi.getHost() + ":" + rcsApi.getPort() + RcsConstant.REPORT_SITE_STATUS;
log.info("涓婃姤宸插畬鎴愯鍗曪細{}锛� 璇锋眰鍙傛暟锛� {}", rcsUrl, JSONObject.toJSONString(locSiteParams));
@@ -647,6 +831,7 @@
HttpEntity httpEntity = new HttpEntity(locSiteParams, headers);
ResponseEntity<String> exchange = restTemplate.exchange(rcsUrl, HttpMethod.POST, httpEntity, String.class);
log.info("涓婃姤宸插畬鎴愯鍗曪紝杩斿洖缁撴灉锛� {}", exchange);
+
if (Objects.isNull(exchange.getBody())) {
throw new CoolException("淇敼澶辫触锛侊紒");
} else {
@@ -659,7 +844,6 @@
throw new CoolException(e.getMessage());
}
}
-
}
}
--
Gitblit v1.9.1