From bf4d837e39f4b3e3c639e27b917ea70c1ef97bc7 Mon Sep 17 00:00:00 2001 From: "HUOJIN\\92525" Date: Sun, 16 Feb 2025 18:20:44 +0800 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E5=88=86=E7=BF=BB=E5=8C=85=E6=8B=A3?= =?UTF-8?q?=E8=B4=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../youchain/appupdate/inputJson/FbPick.java | 3 ++ .../appupdate/rest/BydAppController.java | 2 +- .../appupdate/service/BydAppService.java | 2 +- .../service/impl/BydAppServiceImpl.java | 13 ++++--- .../youchain/businessdata/domain/Pick.java | 7 ++-- .../youchain/businessdata/domain/Task.java | 6 ++- .../repository/TaskRepository.java | 4 +- .../businessdata/service/dto/PickDto.java | 2 +- .../service/impl/KMReServiceImpl.java | 7 +--- .../service/impl/MesServiceImpl.java | 29 +++++++------- .../service/impl/PickServiceImpl.java | 10 +++-- .../service/impl/TaskServiceImpl.java | 39 +++++++++++++------ .../modules/quartz/task/pickTask.java | 11 ++++-- .../java/com/youchain/utils/BizStatus.java | 1 - 14 files changed, 83 insertions(+), 53 deletions(-) diff --git a/youchain-system/src/main/java/com/youchain/appupdate/inputJson/FbPick.java b/youchain-system/src/main/java/com/youchain/appupdate/inputJson/FbPick.java index eff1c58..f9030df 100644 --- a/youchain-system/src/main/java/com/youchain/appupdate/inputJson/FbPick.java +++ b/youchain-system/src/main/java/com/youchain/appupdate/inputJson/FbPick.java @@ -22,4 +22,7 @@ public class FbPick { @ApiModelProperty(value = "目标托盘") String dstStockCode; + + @ApiModelProperty(value = "实拣数量") + Double moveQty; } diff --git a/youchain-system/src/main/java/com/youchain/appupdate/rest/BydAppController.java b/youchain-system/src/main/java/com/youchain/appupdate/rest/BydAppController.java index ff7d451..438aa4f 100644 --- a/youchain-system/src/main/java/com/youchain/appupdate/rest/BydAppController.java +++ b/youchain-system/src/main/java/com/youchain/appupdate/rest/BydAppController.java @@ -73,7 +73,7 @@ public class BydAppController { Long taskId = fbPick.getTaskId();//任务id String orderNumber = fbPick.getDstOrderNumber();//箱号 String dstStockCode = fbPick.getDstStockCode();//目标托盘 - bydAppService.fbPicking(taskId, orderNumber, dstStockCode); + bydAppService.fbPicking(taskId, orderNumber, dstStockCode,fbPick.getMoveQty()); return successResponse("拣货成功", null); } catch (Exception e) { return badRequest("拣货失败:" + e.getMessage()); diff --git a/youchain-system/src/main/java/com/youchain/appupdate/service/BydAppService.java b/youchain-system/src/main/java/com/youchain/appupdate/service/BydAppService.java index a4f271d..fc437b3 100644 --- a/youchain-system/src/main/java/com/youchain/appupdate/service/BydAppService.java +++ b/youchain-system/src/main/java/com/youchain/appupdate/service/BydAppService.java @@ -35,7 +35,7 @@ public interface BydAppService { * @param orderNumber 箱号 * @param dstStockCode 目标托盘 */ - void fbPicking(Long taskId, String orderNumber, String dstStockCode); + void fbPicking(Long taskId, String orderNumber, String dstStockCode ,Double moveQty); /** * 解绑容器 diff --git a/youchain-system/src/main/java/com/youchain/appupdate/service/impl/BydAppServiceImpl.java b/youchain-system/src/main/java/com/youchain/appupdate/service/impl/BydAppServiceImpl.java index 11a3ae6..1707b57 100644 --- a/youchain-system/src/main/java/com/youchain/appupdate/service/impl/BydAppServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/appupdate/service/impl/BydAppServiceImpl.java @@ -194,15 +194,15 @@ public class BydAppServiceImpl implements BydAppService { returnTaskVo.setItemName(task.getItem().getName()); returnTaskVo.setSrcPointCode(task.getSrcPointCode()); returnTaskVo.setDstPointCode(task.getDstPointCode()); - returnTaskVo.setPlanQty(task.getPlanQty()); + returnTaskVo.setPlanQty(task.getPlanQty()-task.getMoveQty()); return returnTaskVo; } @Override @Transactional(rollbackFor = Exception.class) - public void fbPicking(Long taskId, String orderNumber, String dstStockCode) { + public void fbPicking(Long taskId, String orderNumber, String dstStockCode,Double moveQty) { //验证任务 - Task task = validateTask(taskId, orderNumber); + Task task = validateTask(taskId, orderNumber,moveQty); //工单 Pick pick = task.getPickDetail().getPick(); @@ -211,7 +211,7 @@ public class BydAppServiceImpl implements BydAppService { Stock dstStock = validatedstStock(task, pick, dstStockCode); //库存移位 - taskService.moveInventory(task, dstStock, task.getPlanQty()); + taskService.moveInventory(task, dstStock, moveQty); //刷新出库单状态 pickService.refreshPickStatus(task.getPickDetail().getPick()); @@ -392,11 +392,14 @@ public class BydAppServiceImpl implements BydAppService { * @param taskId 任务Id * @param orderNumber 箱号 */ - private Task validateTask(Long taskId, String orderNumber) { + private Task validateTask(Long taskId, String orderNumber,Double moveQty) { Task task = taskService.findById(taskId); if (task == null) { throw new BadRequestException("未找到相应任务记录!"); } + if(moveQty>task.getPlanQty()-task.getMoveQty()){ + throw new BadRequestException("实际拣货数量不能大于待拣货数量!"); + } if (orderNumber.equals(task.getItemKey().getOrderNumber())) { return task; } else { diff --git a/youchain-system/src/main/java/com/youchain/businessdata/domain/Pick.java b/youchain-system/src/main/java/com/youchain/businessdata/domain/Pick.java index ba11bea..fbe9144 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/domain/Pick.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/domain/Pick.java @@ -28,6 +28,7 @@ import javax.persistence.*; import javax.validation.constraints.*; import java.io.Serializable; import java.util.List; +import java.util.Set; /** * @author huojin @@ -80,10 +81,10 @@ public class Pick extends BaseEntity implements Serializable { @ApiModelProperty(value = "备料点位") private Point point; - @OneToOne - @JoinColumn(name = "`call_point_id`") + + @Column(name = "`call_point_id`") @ApiModelProperty(value = "叫料点位") - private Point callPoint; + private String callPoint; @Column(name = "`is_call`") @ApiModelProperty(value = "是否叫料") diff --git a/youchain-system/src/main/java/com/youchain/businessdata/domain/Task.java b/youchain-system/src/main/java/com/youchain/businessdata/domain/Task.java index 688a8b7..e20d949 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/domain/Task.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/domain/Task.java @@ -149,9 +149,13 @@ public class Task extends BaseEntity implements Serializable { private String putCode; @Column(name = "inv_id") - @ApiModelProperty(value = "库存ID") + @ApiModelProperty(value = "原库存ID") private Long invId; + @Column(name = "new_inv_id") + @ApiModelProperty(value = "新库存ID") + private Long newInvId; + @OneToOne @JoinColumn(name = "dept_id") @ApiModelProperty(value = "仓库ID") diff --git a/youchain-system/src/main/java/com/youchain/businessdata/repository/TaskRepository.java b/youchain-system/src/main/java/com/youchain/businessdata/repository/TaskRepository.java index 4bd8570..40d62e6 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/repository/TaskRepository.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/repository/TaskRepository.java @@ -51,7 +51,7 @@ public interface TaskRepository extends JpaRepository, JpaSpecificat * * @param pickId 出库单ID */ - @Query("from Task t where t.pickDetail.pick.id =:pickId and t.planQty > t.moveQty") + @Query("from Task t where t.pickDetail.pick.id =:pickId and t.planQty > t.moveQty and t.agvTask.id is null") List findByPickNotAllTask(Long pickId); /** @@ -59,7 +59,7 @@ public interface TaskRepository extends JpaRepository, JpaSpecificat * * @param pickId 出库单ID */ - @Query("from Task t where t.pickDetail.pick.id =:pickId and t.planQty = t.moveQty") + @Query("from Task t where t.pickDetail.pick.id =:pickId and t.planQty - t.moveQty>0 ") List findByPickAllTask(Long pickId); /** diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickDto.java b/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickDto.java index 7a585ac..41cd8c2 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickDto.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickDto.java @@ -82,7 +82,7 @@ public class PickDto implements Serializable { /** * 叫点位 */ - private Point callPoint; + private String callPoint; /** * 单据类型 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 498d5a1..95cc250 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 @@ -653,7 +653,7 @@ public class KMReServiceImpl implements KMReService { List taskList = taskService.findTaskByCallAgvTask(agvTask.getId()); for (Task task : taskList) { - inventoryService.deleteAll(new Long[]{task.getInvId()}); + inventoryService.deleteAll(new Long[]{task.getNewInvId()}); } //点位占用 @@ -663,10 +663,7 @@ public class KMReServiceImpl implements KMReService { stockService.usedStock(stock, endPoint, BaseStatus.USED); Pick pick = pickService.findByPickCode(agvTask.getLineSlotCode()); - if (pick != null) { - pick.setStatus(BizStatus.CLOSE); - pickService.update(pick); - } + pickService.refreshPickStatus(pick); //回传MES pickService.returnPick(pick.getId()); 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 7490bd9..0054046 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 @@ -82,7 +82,7 @@ public class MesServiceImpl implements MesService { : null; Item item = itemRepository.findByCode(itemCode); if (item == null) { - item = itemService.createItem(itemDate.getItemCode(), itemDate.getItemName(), itemDate.getItemQty(), BizStatus.XJ); + item = itemService.createItem(itemCode, itemDate.getItemName(), itemDate.getItemQty(), BizStatus.XJ); } else { item.setGoodType(BizStatus.XJ); item.setExtendD1(itemDate.getItemQty()); @@ -112,7 +112,7 @@ public class MesServiceImpl implements MesService { item.setExtendD1(itemDate.getItemQty()); itemRepository.save(item); } - PickDetail pickDetail = createPickDetail(pick, item, BaseStatus.GD_TYPE_DP, itemDate.getItemQty(), null,splitItemCode); + PickDetail pickDetail = createPickDetail(pick, item, BaseStatus.GD_TYPE_DP, itemDate.getItemQty(), null, splitItemCode); createPickDetails.add(pickDetail); }); @@ -134,7 +134,7 @@ public class MesServiceImpl implements MesService { if (pick == null) { throw new BadRequestException(gdNo + ":" + itemCode + ":" + station + "工单不存在,叫料失败!"); } - if (BizStatus.OPEN.equals(pick.getStatus()) || BizStatus.ASSIGN.equals(pick.getStatus())) { + if (BizStatus.OPEN.equals(pick.getStatus())) { throw new BadRequestException(gdNo + "工单未备料完成,叫料失败!"); } @@ -143,12 +143,12 @@ public class MesServiceImpl implements MesService { throw new BadRequestException(pointCode + "点位不存在或已失效!"); } - if (pick.getIsCall()) { - throw new BadRequestException(gdNo + "工单已叫料,请勿重复叫料!"); - } - pick.setIsCall(true); - pick.setCallPoint(point); + if (pick.getCallPoint()==null || pick.getCallPoint().length()<=0) { + pick.setCallPoint(pointCode); + }else if(!pointCode.equals(pick.getCallPoint())){ + pick.setCallPoint(pick.getCallPoint()+","+pointCode); + } pickRepository.save(pick); taskService.callEmptyStock(point); @@ -162,7 +162,7 @@ public class MesServiceImpl implements MesService { throw new BadRequestException(gdNo + ":" + completeCode + ":" + station + "工单不存在,叫料失败!"); } - if (BizStatus.OPEN.equals(pick.getStatus()) || BizStatus.ASSIGN.equals(pick.getStatus())) { + if (BizStatus.OPEN.equals(pick.getStatus())) { throw new BadRequestException(gdNo + "工单未备料完成,叫料失败!"); } @@ -171,11 +171,14 @@ public class MesServiceImpl implements MesService { throw new BadRequestException(pointCode + "点位不存在或已失效!"); } - if (pick.getIsCall()) { - throw new BadRequestException(gdNo + "工单已叫料,请勿重复叫料!"); - } + pick.setIsCall(true); - pick.setCallPoint(point); + if (pick.getCallPoint()==null || pick.getCallPoint().length()<=0) { + pick.setCallPoint(pointCode); + }else if(!pointCode.equals(pick.getCallPoint())){ + pick.setCallPoint(pick.getCallPoint()+","+pointCode); + } + pickRepository.save(pick); taskService.callEmptyStock(point); } 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 aa44161..0e2aee9 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 @@ -133,7 +133,6 @@ public class PickServiceImpl implements PickService { @Override - @Transactional(rollbackFor = Exception.class) public void refreshPickStatus(Pick pick) { // 查询出库单的所有明细 List allocatePickDetailList = pickDetailService.findByAllPickDetail(pick.getId()); @@ -154,7 +153,7 @@ public class PickServiceImpl implements PickService { String status = pick.getStatus(); // 更新状态 - if (orderQty - allocatedQty > 0 && allocatedQty != 0) { + if (orderQty - allocatedQty > 0 && allocatedQty != 0 && pickedQty == 0) { status = BizStatus.ASSIGN; } else if (orderQty == allocatedQty && pickedQty == 0) { status = BizStatus.ALLOCATE; @@ -180,7 +179,7 @@ public class PickServiceImpl implements PickService { String itemCode = pickDetail.getPropC3() == null ? pickDetail.getItem().getCode() : pickDetail.getPropC3(); jsonObject.put("MaterialCode", itemCode); //数量 - jsonObject.put("number", pickDetail.getOrderQty() == null ? 0 : pickDetail.getOrderQty().intValue()); + jsonObject.put("number", pickDetail.getPickedQty()== null ? 0 : pickDetail.getPickedQty().intValue()); //taskId jsonObject.put("taskId", pickDetail.getPick().getTaskCode()); return jsonObject; @@ -191,7 +190,10 @@ public class PickServiceImpl implements PickService { Pick pick = pickRepository.getById(pickId); List pickDetailList = pickDetailRepository.findByAllPickDetail(pickId); for (PickDetail pickDetail : pickDetailList) { - sendPick(UrlApi.stock(), pickDetail); + if(pickDetail.getPickedQty()>0){ + sendPick(UrlApi.stock(), pickDetail); + } + } refreshPickReturn(pick); } 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 21d18c8..115ce49 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 @@ -24,6 +24,7 @@ import com.youchain.businessdata.domain.*; import com.youchain.businessdata.repository.*; import com.youchain.businessdata.service.*; import com.youchain.exception.BadRequestException; +import com.youchain.modules.system.domain.Dept; import com.youchain.service.LogService; import com.youchain.utils.*; import lombok.RequiredArgsConstructor; @@ -199,11 +200,13 @@ public class TaskServiceImpl implements TaskService { //查询出待分配的pickDetail List pickDetails = pickDetailService.findByPickDetailNoAllocate(pick.getId()); for (PickDetail pickDetail : pickDetails) { - msgList.add(this.allocate(pickDetail.getId(), pickDetail.getOrderQty(), endPoint)); + synchronized (pickDetail.getId()) { + msgList.add(this.allocate(pickDetail.getId(), pickDetail.getOrderQty() - pickDetail.getAllocatedQty(), endPoint)); + } } /* 更新出库单状态*/ - synchronized (pick) { + synchronized (pick.getId()) { pickService.refreshPickStatus(pick); if (BizStatus.ALLOCATE.equals(pick.getStatus()) || BizStatus.ASSIGN.equals(pick.getStatus())) { @@ -258,9 +261,10 @@ public class TaskServiceImpl implements TaskService { task.setTaskStatus(agvTask.getStatus()); taskRepository.save(task); } - /*更新出库单状态*/ + + /*更新出库单状态*//* pick.setStatus(BizStatus.PICKUP); - pickService.update(pick); + pickService.update(pick);*/ } @@ -302,7 +306,7 @@ public class TaskServiceImpl implements TaskService { @Transactional(rollbackFor = Exception.class) public void callJlTask(Pick pick) { if (pick.getStock() == null) { - throw new BadRequestException(pick.getGdCode() + "请翻包拣货!"); + throw new BadRequestException(pick.getGdCode() + "工单未翻包拣货!"); } if (pick.getCallPoint() == null) { throw new BadRequestException(pick.getGdCode() + "工单没有叫料请求!"); @@ -311,12 +315,17 @@ public class TaskServiceImpl implements TaskService { Point srcPoint = pick.getStock().getPoint(); //终点 - Point endPoint = pick.getCallPoint(); + String[] points = pick.getCallPoint().split(","); + String endPointCode = points[points.length - 1]; + Point endPoint = pointService.queryPoint(endPointCode, null, null, null); //容器 Stock stock = pick.getStock(); //创建任务 + if (!agvTaskService.findByEndSlotCode(endPoint.getCode(), BizStatus.CALL_PICK, "RACK_MOVE")) { + throw new BadRequestException(endPoint.getCode() + "点位有任务,请稍后再试!"); + } AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.CALL_PICK, stock, srcPoint.getCode(), endPoint.getCode(), "RACK_MOVE"); agvTask.setLineSlotCode(pick.getCode()); agvTaskService.update(agvTask); @@ -367,7 +376,7 @@ public class TaskServiceImpl implements TaskService { Set tps = new HashSet<>(); for (Inventory inv : inventoryList) { //判断托盘是否有任务 - synchronized (inv) { + synchronized (inv.getId()) { if (this.existsByStock(pick.getCode(), inv.getStockCode()) >= 1) { tps.add(inv.getStockCode()); continue; @@ -394,7 +403,8 @@ public class TaskServiceImpl implements TaskService { pickDetailService.update(pickDetail); //生成Task任务 - this.createTask(item, allocateQty, inv.getItemKey(), null, BizStatus.PICK, pickDetail, inv.getId(), inv.getStock(), startPoint, endPoint, null); + Task task = this.createTask(item, allocateQty, inv.getItemKey(), null, BizStatus.PICK, pickDetail, inv.getId(), inv.getStock(), startPoint, endPoint, null); + System.out.println(task.getId()); } } @@ -560,6 +570,8 @@ public class TaskServiceImpl implements TaskService { public void moveInventory(Task task, Stock dstStock, double moveQty) { //将占用数量移位,原库存回库内 Inventory inventory = inventoryService.findById(task.getInvId()); + ItemKey itemKey = inventory.getItemKey(); + Dept dept = inventory.getDept(); synchronized (inventory) { inventory.setQueuedQty(inventory.getQueuedQty() - moveQty); inventory.setQuantity(inventory.getQuantity() - moveQty); @@ -572,14 +584,17 @@ public class TaskServiceImpl implements TaskService { } //生成新库存 - Inventory newInventory = inventoryService.createInventory(inventory.getItemKey(), dstStock.getPoint(), dstStock, inventory.getDept(), moveQty); + Inventory newInventory = inventoryService.createInventory(itemKey, dstStock.getPoint(), dstStock, dept, moveQty); //更新Task - task.setInvId(newInventory.getId()); - task.setMoveQty(moveQty); - task.setTaskStatus(BizStatus.FINISH); + task.setInvId(inventory.getId()); + task.setNewInvId(newInventory.getId()); + task.setMoveQty(task.getMoveQty() + moveQty); task.setDstStock(dstStock); task.setDstStockCode(dstStock.getCode()); + if (task.getPlanQty() - task.getMoveQty() == 0) { + task.setTaskStatus(BizStatus.FINISH); + } taskRepository.save(task); PickDetail pickDetail = task.getPickDetail(); diff --git a/youchain-system/src/main/java/com/youchain/modules/quartz/task/pickTask.java b/youchain-system/src/main/java/com/youchain/modules/quartz/task/pickTask.java index 5039c9b..47ea704 100644 --- a/youchain-system/src/main/java/com/youchain/modules/quartz/task/pickTask.java +++ b/youchain-system/src/main/java/com/youchain/modules/quartz/task/pickTask.java @@ -1,7 +1,9 @@ package com.youchain.modules.quartz.task; import com.youchain.basicdata.domain.Point; +import com.youchain.basicdata.domain.Stock; import com.youchain.basicdata.service.PointService; +import com.youchain.basicdata.service.StockService; import com.youchain.businessdata.domain.AgvTask; import com.youchain.businessdata.domain.Pick; import com.youchain.businessdata.domain.Task; @@ -28,7 +30,7 @@ import java.util.*; public class pickTask { @Autowired - public PointService pointService; + public StockService stockService; @Autowired public PickService pickService; @@ -77,7 +79,7 @@ public class pickTask { */ public void callJlTask() { /*查询拣货完成完成的出库单*/ - List statuses = Arrays.asList(BizStatus.PICK_ALL); + List statuses = Arrays.asList(BizStatus.PICKUP,BizStatus.PICK_ALL); List pickList = pickService.findByPickStatus(statuses, true); if (pickList.isEmpty()) { throw new BadRequestException("无拣货完成的出库单或出库单未叫料!"); @@ -97,8 +99,9 @@ public class pickTask { } for (AgvTask agvTask : agvTaskList) { if (BizStatus.PICK.equals(agvTask.getType())) { - Point point = pointService.validatePoint(agvTask.getEndSlotCode()); - if(BaseStatus.FREE.equalsIgnoreCase(point.getStatus())){ + //目标点没有托盘继续下发下一个任务 + Stock stock= stockService.findByPointCode(agvTask.getEndSlotCode()); + if(stock==null){ kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskCcJson(agvTask)); } } else { diff --git a/youchain-system/src/main/java/com/youchain/utils/BizStatus.java b/youchain-system/src/main/java/com/youchain/utils/BizStatus.java index 1000b6f..b04b4b6 100644 --- a/youchain-system/src/main/java/com/youchain/utils/BizStatus.java +++ b/youchain-system/src/main/java/com/youchain/utils/BizStatus.java @@ -91,7 +91,6 @@ public interface BizStatus { */ String FINISH = "FINISH"; - /** * 任务类型-原材料入库 */