From d0226747665355acecd5b4f2b5c0beb020586729 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期五, 17 一月 2025 15:37:32 +0800 Subject: [PATCH] # 23. PDA拣货单据,勾选或点击确认按钮后,完成当前单据 (已完成) 24. PDA出库成功后,界面数据重置,避免重复操作 (已修复) 25. PDA接口请求,添加一个Loading遮档 (已修复) 27. 非平库单据,在平库可做入库操作 (已修复) 28. 平库已组拖数据,组拖完成后依然可组拖 (已修复) 29. 平库入库后,订单明细没有添加(已修复) 30. 平库入库后,单据类型没有修改(已修复) 31. 没有绑定播种位,不能进行播种,前后端都需加判定(已修复) 33. 平库入库未修改入库已完成数量(已修复) 34. cacheSite缓存站点逻辑需重新梳理,入库生成波次时(已完成) 35. PDA添加发货确认,默认全选 (已修复) 36. 大屏获取任务时,是由容器到达的拖盘码确认通知 (已修复) 37. 拣货单序号不显示 问题修复 (已修复) 42. pda发货确认,添加不同颜色区分是否全部完成拣货,绿色全部拣货完成,红色完成部分拣货(已修复) 43. CTU入库完成后,订单明细没有删除,执行中数量清空(已修复) 44. 平库入库完成后,历史档明细完成数量没有更新 (已修复) 45. PDA料号不显示 (已修复) 46. 发货完成后,波次管理数据未加入历史档 (已修复) --- zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java | 106 +++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 79 insertions(+), 27 deletions(-) diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java index b3f6d2a..9d767e8 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java @@ -10,9 +10,9 @@ import com.zy.asrs.wms.apis.wcs.entity.request.*; import com.zy.asrs.wms.apis.wcs.entity.response.CommonReponse; import com.zy.asrs.wms.apis.wcs.services.WcsApiService; -import com.zy.asrs.wms.asrs.entity.Task; -import com.zy.asrs.wms.asrs.entity.TaskDetl; -import com.zy.asrs.wms.asrs.entity.WaveSeed; +import com.zy.asrs.wms.asrs.entity.*; +import com.zy.asrs.wms.asrs.entity.enums.CacheSiteStatusType; +import com.zy.asrs.wms.asrs.entity.enums.OrderPickStatus; import com.zy.asrs.wms.asrs.entity.enums.TaskStsType; import com.zy.asrs.wms.asrs.service.*; import io.jsonwebtoken.lang.Collections; @@ -28,6 +28,8 @@ import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestTemplate; +import java.math.BigDecimal; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.Objects; @@ -45,12 +47,20 @@ private TaskService taskService; @Autowired private TaskDetlService taskDetlService; - + @Autowired + private CacheSiteService cacheSiteService; + @Autowired + private OrderService orderService; + @Autowired + private OrderDetlService orderDetlService; @Autowired private WaveSeedService waveSeedService; @Autowired private RestTemplate restTemplate; + + @Autowired + private PlatformService platformService; /** @@ -77,7 +87,8 @@ //DONE 鏍规嵁ESS杩斿洖鐨勫鍣ㄧ紪鐮佷慨鏀逛换鍔℃。涓殑杈撻�佺嚎璧峰浣嶇疆鑺傜偣锛屽強浠诲姟妗e鍣ㄥ埌杈剧姸鎬� taskService.update(new LambdaUpdateWrapper<Task>() .set(Task::getTaskSts, TaskStsType.WCS_CONTAINER_RECEIVE.id) - .set(Task::getOriginLoc, arrivedParam.getSlotCode()) + //杈撻�佺嚎鑺傜偣缂栫爜锛屼笉鏄簮搴撲綅 +// .set(Task::getOriginLoc, arrivedParam.getSlotCode()) .eq(Task::getBarcode, arrivedParam.getContainerCode())); } else { //瀹瑰櫒鍒拌揪鏃舵洿鏂颁换鍔$姸鎬佷负锛氬叆搴撳畬鎴愶紝瀹氭椂浠诲姟鏍规嵁鐘舵�佺爜鏇存柊搴撳瓨 @@ -91,6 +102,9 @@ .set(Task::getTaskSts, TaskStsType.WAVE_SEED.id) .set(Task::getOriginLoc, arrivedParam.getSlotCode()) .eq(Task::getBarcode, arrivedParam.getContainerCode())); + if (!update) { + throw new CoolException("瀹瑰櫒鍒拌揪浠诲姟鏇存柊澶辫触锛侊紒"); + } } @@ -272,9 +286,12 @@ @Override public R rfidCallback(RfidSingalRequest request) { - - return null; + } + + @Override + public R getPlatforms() { + return R.ok(platformService.list(new LambdaQueryWrapper<>())); } /** @@ -292,39 +309,74 @@ MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); //榛樿娴佸姩 boolean converyor = false; - //鍒ゆ柇鏄惁杩樻湁鐗╂枡鏈嫞 - + //鍒ゆ柇褰撳墠浠诲姟鏄惁杩樻湁鐗╂枡鏈嫞 if (!checked(orderNo, taskNo)) { //璋冪敤涓夋柟鎺ュ彛,闂伅涓嶅仛鎿嶄綔 - // 璁剧疆璇锋眰鍙傛暟 params.add("params", JSONObject.toJSONString(slapParam)); log.info("璇锋眰鍦板潃锛歿}锛岃姹傚弬鏁帮細{}", SystemProperties.SLAP_LIGHT, JSONObject.toJSONString(slapParam)); - } else { - //璋冪敤涓夋柟鎺ュ彛,鏉ョ伅閫氱煡瀹瑰櫒娴佸姩锛� 浼犵伃鐏弬鏁� + //璋冪敤涓夋柟鎺ュ彛,鐏伅閫氱煡瀹瑰櫒娴佸姩锛� 浼犵伃鐏弬鏁� + //todo 鍒ゆ柇褰撳墠璁㈠崟鏄惁瀹屾垚锛屽畬鎴愮伃鐏紝鏈畬鎴愪繚鎸佹嫞璐х姸鎬佷寒鐏� + Order one = orderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, orderNo)); + if (Objects.isNull(one)) { + throw new CoolException("褰撳墠璁㈠崟鏄庣粏涓嶅瓨鍦紒锛�"); + } +// //鑾峰彇鎾宸插畬鎴愮殑璁㈠崟鏄庣粏 +// List<OrderDetl> detlList = orderDetls.stream().filter(detl -> { +// return detl.getPickStatus() == OrderPickStatus.ORDER_PICK_STATUS_DONE.val; +// }).collect(Collectors.toList()); + + //鍒ゆ柇鏁伴噺鏄惁涓庤鍗曟槑缁嗙殑闇�姹傞噺鐩稿悓锛岀浉鍚屽垯璁㈠崟瀹屾垚 + if (one.getPickStatus() == OrderPickStatus.ORDER_PICK_STATUS_DONE.val) { + //鎾瀹屾垚锛岄噴鏀剧粦瀹氱珯鐐� + List<CacheSite> cacheSites = cacheSiteService.list(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getOrderNo, orderNo)); + for (CacheSite cacheSite : cacheSites) { + if (!cacheSite.getSiteStatus().equals(CacheSiteStatusType.O.id)) { + cacheSite.setSiteStatus(CacheSiteStatusType.O.id); + cacheSite.setOrderId(null); + cacheSite.setBarcode(null); + cacheSite.setOrderNo(null); + cacheSite.setPlatformId(null); + cacheSite.setPlatformNo(null); + cacheSite.setUpdateTime(new Date()); + if (!cacheSiteService.updateById(cacheSite)) { + throw new CoolException("鎾绔欑偣鏇存柊澶辫触"); + } + } + } + } + converyor = true; params.add("params", JSONObject.toJSONString(slapParam)); log.info("璇锋眰鍦板潃锛歿}锛岃姹傚弬鏁帮細{}", SystemProperties.SLAP_LIGHT, JSONObject.toJSONString(slapParam)); } - HttpHeaders headers = new HttpHeaders(); - headers.add("Content-Type", "application/json"); - HttpEntity httpEntity = new HttpEntity<>(params, headers); - // 璇锋眰 - ResponseEntity<CommonReponse> exchange = restTemplate.exchange(SystemProperties.CONVEYOR_START, HttpMethod.POST, httpEntity, CommonReponse.class); - log.info("涓嬪彂娴佸姩閫氱煡 杩斿洖缁撴灉锛歿}", exchange); - if (exchange.getBody() == null) { - throw new CoolException("涓嬪彂娴佸姩閫氱煡澶辫触锛侊紒"); - } else { - CommonReponse response = exchange.getBody(); - if (response.getCode() == 0) { - if (!converyor) { - //* 2. 瀹瑰櫒娴佸姩鍒ゆ柇锛屽鏋滄枡绠辨病鏈夌墿鏂� code浼�200锛� 鏈夌墿鏂欎紶100 鎵ц鍥炲簱浠诲姟,淇敼浠诲姟鐘舵�佷负 璋冪敤containerConveryor锛坱askNo锛夋柟娉� - containerConveryor(request.get("taskNo").toString()); - } + if (converyor) { + Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskNo, request.get("taskNo"))); + if (Objects.isNull(task)) { + throw new CoolException("浠诲姟涓嶅瓨鍦紒锛�"); } + containerConveryor(task.getBarcode()); } + +// HttpHeaders headers = new HttpHeaders(); +// headers.add("Content-Type", "application/json"); +// HttpEntity httpEntity = new HttpEntity<>(params, headers); +// // 璇锋眰 +// ResponseEntity<CommonReponse> exchange = restTemplate.exchange(SystemProperties.CONVEYOR_START, HttpMethod.POST, httpEntity, CommonReponse.class); +// log.info("涓嬪彂娴佸姩閫氱煡 杩斿洖缁撴灉锛歿}", exchange); +// if (exchange.getBody() == null) { +// throw new CoolException("涓嬪彂娴佸姩閫氱煡澶辫触锛侊紒"); +// } else { +// CommonReponse response = exchange.getBody(); +// if (response.getCode() == 0) { +// if (!converyor) { +// //* 2. 瀹瑰櫒娴佸姩鍒ゆ柇锛屽鏋滄枡绠辨病鏈夌墿鏂� code浼�200锛� 鏈夌墿鏂欎紶100 鎵ц鍥炲簱浠诲姟,淇敼浠诲姟鐘舵�佷负 璋冪敤containerConveryor锛坱askNo锛夋柟娉� +// containerConveryor(request.get("taskNo").toString()); +// } +// } +// } } /** -- Gitblit v1.9.1