diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/BakingPdaServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/BakingPdaServiceImpl.java index df21025af..0f05718f5 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/BakingPdaServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/BakingPdaServiceImpl.java @@ -16,6 +16,7 @@ import org.nl.wms.sch.point.service.dao.SchBasePoint; import org.nl.wms.sch.task.service.ISchBaseTaskService; import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition; +import org.nl.wms.sch.task_manage.tasks.hot.InHotCachingTrussTask; import org.nl.wms.sch.task_manage.tasks.hot.InHotTrussTask; import org.nl.wms.util.PointUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -43,9 +44,13 @@ public class BakingPdaServiceImpl implements BakingPdaService { private InHotTrussTask inHotTrussTask; @Autowired private ISchBaseTaskService taskService; + @Autowired + private InHotCachingTrussTask inHotCachingTrussTask; @Override + @Transactional(rollbackFor = Exception.class) public JSONObject bakingQuality(JSONObject param) { log.info("手持操作烘烤质检:{}", param); + // update: 需要改成送到对应的暂存点位上 // param: point_code,quality(1: 合格,0: 不合格) String quality = param.getString("quality"); String pointCode = param.getString("point_code"); @@ -67,6 +72,16 @@ public class BakingPdaServiceImpl implements BakingPdaService { } PointUtils.setUpdateByPC(hotZcPoint); pointService.updateById(hotZcPoint); + // 创建桁架任务 + JSONObject taskParam = new JSONObject(); + taskParam.put("config_code", "InHotCachingTrussTask"); + taskParam.put("device_code", pointCode); + taskParam.put("create_mode", GeneralDefinition.PDA_CREATION); + // 标记一下这里的任务只是单纯送空 + taskParam.put("is_flag", quality); + taskParam.put("order_code", hotZcPoint.getMaterial_code()); + taskParam.put("workorder_id", hotZcPoint.getSource_id()); + inHotCachingTrussTask.apply(taskParam); JSONObject result = new JSONObject(); result.put("message", "操作成功!"); return result; diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/InHotCachingTrussTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/InHotCachingTrussTask.java new file mode 100644 index 000000000..713e0707f --- /dev/null +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/InHotCachingTrussTask.java @@ -0,0 +1,103 @@ +package org.nl.wms.sch.task_manage.tasks.hot; + +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.exception.BadRequestException; +import org.nl.wms.sch.point.service.ISchBasePointService; +import org.nl.wms.sch.point.service.dao.SchBasePoint; +import org.nl.wms.sch.task.service.ISchBaseTaskService; +import org.nl.wms.sch.task.service.dao.SchBaseTask; +import org.nl.wms.sch.task_manage.AbstractTask; +import org.nl.wms.sch.task_manage.TaskStatus; +import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition; +import org.nl.wms.sch.task_manage.core.enums.TaskFinishedTypeEnum; +import org.nl.wms.util.PointUtils; +import org.nl.wms.util.TaskUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +import static org.nl.wms.sch.task_manage.core.constant.RegionConstant.REGION_A1_HXZC; +import static org.nl.wms.util.TaskUtils.checkTaskOptionStatus; +import static org.nl.wms.util.TaskUtils.setUpdateByPC; + +/** + * 进烘箱暂存位桁架任务 + * @Author: lyd + * @Date: 2024/9/6 + */ +@Slf4j +@Component(value = "InHotCachingTrussTask") +public class InHotCachingTrussTask extends AbstractTask { + private final String THIS_CLASS = InHotCachingTrussTask.class.getName(); + @Autowired + private ISchBaseTaskService taskService; + @Autowired + private ISchBasePointService pointService; + @Override + public void create() throws BadRequestException { + + } + + @Override + public void createCompletion(SchBaseTask task) { + JSONObject requestObj = JSONObject.parseObject(task.getRequest_param()); + String isFlag = requestObj.getString("is_flag"); + List hotCacheList; + if (GeneralDefinition.YES.equals(isFlag)) { + // 质检合格 送到烘烤完毕区 + hotCacheList = pointService.getHotNotTaskPoint("A1", REGION_A1_HXZC, + "4", "1"); + } else { + // 质检不合格 送到待烘烤区 + hotCacheList = pointService.getHotNotTaskPoint("A1", REGION_A1_HXZC, + "2", "1"); + } + if (hotCacheList.size() == 0) { + throw new BadRequestException("烘箱暂存区暂无位置!"); + } + SchBasePoint hotCache = hotCacheList.get(0); + task.setPoint_code2(hotCache.getPoint_code()); + // 保存任务参数 + task.setHandle_class(THIS_CLASS); + task.setTask_status(TaskStatus.START_AND_POINT.getCode()); + setUpdateByPC(task); + taskService.save(task); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + checkTaskOptionStatus(taskObj); + JSONObject requestObj = JSONObject.parseObject(taskObj.getRequest_param()); + SchBasePoint startPoint = pointService.getById(taskObj.getPoint_code1()); + SchBasePoint endPoint = pointService.getById(taskObj.getPoint_code2()); + // 起点恢复 + PointUtils.clearPoint(startPoint, taskFinishedType); + // 合格就是带分切,不合格则是待烘烤 + endPoint.setPoint_status(GeneralDefinition.YES.equals(requestObj.getString("is_flag")) + ? "4" : "2"); + endPoint.setMaterial_code(requestObj.getString("order_code")); + endPoint.setSource_id(requestObj.getString("workorder_id")); + PointUtils.setUpdateByType(endPoint, taskFinishedType); + pointService.updateById(endPoint); + // 完成 + taskObj.setTask_status(TaskStatus.FINISHED.getCode()); + taskObj.setFinished_type(taskFinishedType.getCode()); + TaskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); + } + + @Override + public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + checkTaskOptionStatus(taskObj); + // 取消 + taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + taskObj.setRemark(GeneralDefinition.TASK_CANCEL); + taskObj.setFinished_type(taskFinishedType.getCode()); + TaskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); + } +}