diff --git a/youchain-system/src/main/java/com/youchain/businessdata/rest/PickController.java b/youchain-system/src/main/java/com/youchain/businessdata/rest/PickController.java index 76bbffe..9a7203b 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/rest/PickController.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/rest/PickController.java @@ -91,7 +91,6 @@ public class PickController { @ApiOperation("mes-工单回传") @AnonymousAccess public ResponseEntity returnPick(@Validated @RequestBody Long pickId) { - pickService.returnPick(pickId); return new ResponseEntity<>(ApiResult.success(OK.value(), "", ""), HttpStatus.OK); } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/PickService.java b/youchain-system/src/main/java/com/youchain/businessdata/service/PickService.java index 4e745bb..5c0abbf 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/PickService.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/PickService.java @@ -20,6 +20,7 @@ import com.youchain.RequestData.Yclbl; import com.youchain.basicdata.domain.Point; import com.youchain.businessdata.domain.Pick; import com.youchain.businessdata.domain.PickDetail; +import com.youchain.businessdata.domain.Task; import com.youchain.businessdata.service.dto.PickDto; import com.youchain.businessdata.service.dto.PickQueryCriteria; import org.springframework.data.domain.Pageable; @@ -118,23 +119,18 @@ public interface PickService { /** * 工单回传JSON * - * @param pickDetail 工单明细 + * @param task 工单明细 */ - JSONObject returnPickJson(PickDetail pickDetail); + JSONObject returnPickJson(Task task); - /** - * 工单回传 - * - * @param pickId 出库单 - */ - void returnPick(Long pickId); + void returnPickByTask(Task task); /** * 下发回传任务 * * @param url 地址 - * @param pickDetail 参数 + * @param task 参数 */ - void sendPick(String url, PickDetail pickDetail); + void sendPick(String url, Task task); } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/KMReServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/KMReServiceImpl.java index e335537..ea145b8 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/KMReServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/KMReServiceImpl.java @@ -784,6 +784,8 @@ public class KMReServiceImpl implements KMReService { List taskList = taskService.findTaskByCallAgvTask(agvTask.getId()); for (Task task : taskList) { inventoryService.deleteAll(new Long[]{task.getNewInvId()}); + //回传MES + pickService.returnPickByTask(task); } //点位占用 @@ -795,9 +797,12 @@ public class KMReServiceImpl implements KMReService { Pick pick = pickService.findByPickCode(agvTask.getLineSlotCode()); pickService.refreshPickStatus(pick); - //回传MES - pickService.returnPick(pick.getId()); + + //清空叫料点,等待下一次叫料 + pick.setCallPoint(null); + pick.setIsCall(false); + pickService.update(pick); } /** diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MesServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MesServiceImpl.java index 1d79555..d4c03e6 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MesServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MesServiceImpl.java @@ -136,7 +136,7 @@ public class MesServiceImpl implements MesService { if (pick.getCallPoint() == null || pick.getCallPoint().length() <= 0) { pick.setCallPoint(pointCode); } else { - pick.setCallPoint(pick.getCallPoint() + "," + pointCode); + return gdNo + ":" + itemCode + ":" + station + "工单已叫料,请稍等!"; } pick.setIsCall(true); pickRepository.save(pick); @@ -153,11 +153,10 @@ public class MesServiceImpl implements MesService { if (pick.getCallPoint() == null || pick.getCallPoint().length() <= 0) { pick.setCallPoint(pointCode); } else { - pick.setCallPoint(pick.getCallPoint() + "," + pointCode); + return gdNo + ":" + completeCode + ":" + station + "工单已叫料,请稍等!"; } pick.setIsCall(true); pickRepository.save(pick); - //taskService.callJlTask(pick); return "叫料成功!"; } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickServiceImpl.java index 0e2aee9..c4e2a15 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickServiceImpl.java @@ -169,33 +169,25 @@ public class PickServiceImpl implements PickService { } @Override - public JSONObject returnPickJson(PickDetail pickDetail) { + public JSONObject returnPickJson(Task task) { JSONObject jsonObject = new JSONObject(new LinkedHashMap<>()); //需求工位 - jsonObject.put("OpName", pickDetail.getPick().getStation()); + jsonObject.put("OpName", task.getPickDetail().getPick().getStation()); //工单号 - jsonObject.put("OrderCode", pickDetail.getPick().getGdCode()); + jsonObject.put("OrderCode", task.getPickDetail().getPick().getGdCode()); //物料编码 - String itemCode = pickDetail.getPropC3() == null ? pickDetail.getItem().getCode() : pickDetail.getPropC3(); + String itemCode = task.getPickDetail().getPropC3() == null ? task.getPickDetail().getItem().getCode() : task.getPickDetail().getPropC3(); jsonObject.put("MaterialCode", itemCode); //数量 - jsonObject.put("number", pickDetail.getPickedQty()== null ? 0 : pickDetail.getPickedQty().intValue()); + jsonObject.put("number", task.getMoveQty()== null ? 0 : task.getMoveQty().intValue()); //taskId - jsonObject.put("taskId", pickDetail.getPick().getTaskCode()); + jsonObject.put("taskId", task.getPickDetail().getPick().getTaskCode()); return jsonObject; } @Override - public void returnPick(Long pickId) { - Pick pick = pickRepository.getById(pickId); - List pickDetailList = pickDetailRepository.findByAllPickDetail(pickId); - for (PickDetail pickDetail : pickDetailList) { - if(pickDetail.getPickedQty()>0){ - sendPick(UrlApi.stock(), pickDetail); - } - - } - refreshPickReturn(pick); + public void returnPickByTask(Task task) { + sendPick(UrlApi.stock(), task); } public void refreshPickReturn(Pick pick) { @@ -213,42 +205,43 @@ public class PickServiceImpl implements PickService { } @Override - public void sendPick(String url, PickDetail pickDetail) { + public void sendPick(String url, Task task) { String message = null; String resultJson = null; Dict dict = dictRepository.findDictByName("OPEN"); + PickDetail pickDetail=task.getPickDetail(); if (dict == null) { pickDetail.setSourceId(1L); pickDetail.setSourceName("成功"); pickDetailRepository.save(pickDetail); //保存日志 - logService.saveLogInfo(returnPickJson(pickDetail), pickDetail.getPick().getCode(), UrlApi.stock(), resultJson, "工单回传", 200, "info"); + logService.saveLogInfo(returnPickJson(task), pickDetail.getPick().getCode(), UrlApi.stock(), resultJson, "工单回传", 200, "info"); return; } - resultJson = HttpPostUtil.sendPostReq(url, returnPickJson(pickDetail).toString()); + resultJson = HttpPostUtil.sendPostReq(url, returnPickJson(task).toString()); if (StringUtils.isEmpty(resultJson)) { message = "MES返回信息:接口调用失败"; - handleFailure(pickDetail, returnPickJson(pickDetail), resultJson, message); + handleFailure(pickDetail, returnPickJson(task), resultJson, message); return; } JSONObject resultObject = JSON.parseObject(resultJson); if (resultObject == null) { message = "MES返回信息:接口数据返回为空"; - handleFailure(pickDetail, returnPickJson(pickDetail), resultJson, message); + handleFailure(pickDetail, returnPickJson(task), resultJson, message); return; } String code = resultObject.getString("code"); message = resultObject.getString("message"); if (!"200".equals(code)) { - handleFailure(pickDetail, returnPickJson(pickDetail), resultJson, message); + handleFailure(pickDetail, returnPickJson(task), resultJson, message); return; } pickDetail.setSourceId(1L); pickDetail.setSourceName(resultJson); pickDetailRepository.save(pickDetail); //保存日志 - logService.saveLogInfo(returnPickJson(pickDetail), pickDetail.getPick().getCode(), UrlApi.stock(), resultJson, "工单回传", 200, "info"); + logService.saveLogInfo(returnPickJson(task), pickDetail.getPick().getCode(), UrlApi.stock(), resultJson, "工单回传", 200, "info"); } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java index ffe1979..e6bb724 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java @@ -285,6 +285,7 @@ public class TaskServiceImpl implements TaskService { List agvTasks = agvTaskService.findRepeat(task.getDstStockCode(), task.getDstPointCode(), endPoint.getCode()); if (agvTasks.isEmpty()) { //创建任务 + agvTask = agvTaskService.createAgvTask(BizStatus.CALL_PICK, task.getDstStock(), task.getDstPointCode(), endPoint.getCode(), "RACK_MOVE"); agvTask.setLineSlotCode(pick.getCode()); agvTaskService.update(agvTask); @@ -326,7 +327,7 @@ public class TaskServiceImpl implements TaskService { private String allocateInternal(Pick pick, PickDetail pickDetail, Item item, String boxAreaName, double quantity) { // 查询物料所在库区的库存 - String areaName = stockTypeToAreaMap.getValueByKey(item.getGoodType()); + String areaName = boxAreaName.equals(AreaNameDic.DJFBQ) ? AreaNameDic.DJQ : AreaNameDic.XJQ; List inventoryList = inventoryService.queryInventory(null, item.getCode(), null, areaName, item.getDept().getId()); if (inventoryList.isEmpty()) { if (isReplaceableMaterial(item.getCode())) { @@ -598,6 +599,8 @@ public class TaskServiceImpl implements TaskService { task.setMoveQty(task.getMoveQty() + moveQty); task.setDstStock(dstStock); task.setDstStockCode(dstStock.getCode()); + task.setDstPoint(dstStock.getPoint()); + task.setDstPointCode(dstStock.getPoint() == null ? null : dstStock.getPoint().getCode()); if (task.getPlanQty() - task.getMoveQty() == 0) { task.setTaskStatus(BizStatus.FINISH); } else {