diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendAirShaftAgvTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendAirShaftAgvTask.java index d1ce97043..f9d4cdb72 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendAirShaftAgvTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendAirShaftAgvTask.java @@ -106,7 +106,14 @@ public class SendAirShaftAgvTask extends AbstractAcsTask { // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { task.setTask_status(TaskStatusEnum.FINISHED.getCode()); - // todo: 分切计划是否需要回退 + // 分切计划是否需要回退 状态 02->01 + List collect = Stream.of(task.getVehicle_code(), task.getVehicle_code2()) + .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList()); + PdmBiSlittingproductionplan p = new PdmBiSlittingproductionplan(); + p.setStatus("01"); + TaskUtils.updateOptMessageBySlitterPlan(p); + slittingproductionplanService.update(p, new LambdaQueryWrapper() + .in(PdmBiSlittingproductionplan::getQzzno, collect)); } task.setUpdate_time(DateUtil.now()); taskService.updateById(task); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendCopperFoilSubRollTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendCopperFoilSubRollTrussTask.java index 350f067c2..90f886f80 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendCopperFoilSubRollTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendCopperFoilSubRollTrussTask.java @@ -1,45 +1,140 @@ package org.nl.b_lms.sch.tasks.slitter; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.bst.ivt.cutpointivt.service.IBstIvtCutpointivtService; +import org.nl.b_lms.bst.ivt.shafttubeivt.service.IBstIvtShafttubeivtService; +import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService; +import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.nl.b_lms.sch.task.service.IschBaseTaskService; +import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; +import org.nl.common.utils.SecurityUtils; +import org.nl.common.utils.TaskUtils; +import org.nl.modules.wql.WQL; +import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; +import org.nl.wms.sch.manage.TaskStatusEnum; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; /** * @Author: lyd - * @Description: 送铜箔子卷任务 ???? + * @Description: acs请求拔轴完毕的送铜箔子卷任务 * @Date: 2024/2/1 */ -@Deprecated @Slf4j @Service public class SendCopperFoilSubRollTrussTask extends AbstractAcsTask { + private final String THIS_CLASS = SendCopperFoilSubRollTrussTask.class.getName(); + @Autowired + private IschBaseTaskService taskService; + @Autowired + private IPdmBiSlittingproductionplanService slittingproductionplanService; + @Autowired + private IBstIvtCutpointivtService bcutpointivtService; + @Autowired + private IBstIvtShafttubeivtService shafttubeivtService; @Override public List addTask() { - return null; + /* + * 下发给ACS时需要特殊处理 + */ + List taskList = taskService.getIssueTasks(THIS_CLASS); + + ArrayList resultList = new ArrayList<>(); + String agv_system_type = "2"; + for (SchBaseTask task : taskList) { + AcsTaskDto dto = AcsTaskDto.builder() + .ext_task_id(task.getTask_id()) + .task_code(task.getTask_code()) + .task_type(task.getAcs_task_type()) + .start_device_code(task.getPoint_code1()) + .next_device_code(task.getPoint_code2()) + .start_device_code2(task.getPoint_code3()) + .next_device_code2(task.getPoint_code4()) + .vehicle_code(task.getVehicle_code()) + .agv_system_type(agv_system_type) + .priority(task.getPriority()) + .remark(task.getRemark()) + .product_area(task.getProduct_area()) + .build(); + resultList.add(dto); + } + return resultList; } @Override public void updateTaskStatus(JSONObject taskObj, String status) { - + SchBaseTask task = taskService.getById(taskObj.getString("task_id")); + if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { + // 更新任务状态为执行中 + task.setTask_status(TaskStatusEnum.EXECUTING.getCode()); + } + if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + task.setTask_status(TaskStatusEnum.FINISHED.getCode()); + } + // 取消 + if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { + task.setTask_status(TaskStatusEnum.FINISHED.getCode()); + } + TaskUtils.updateOptMessageByTask(task); + taskService.updateById(task); } @Override public String createTask(JSONObject form) { - return null; + String currentUserId = SecurityUtils.getCurrentUserId(); + String currentUsername = SecurityUtils.getCurrentUsername(); + + SchBaseTask task = new SchBaseTask(); + task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); + task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + task.setPoint_code1(form.getString("point_code1")); + task.setPoint_code2(form.getString("point_code2")); + task.setMaterial_code(form.getString("material_code")); + task.setAcs_task_type("6"); + task.setIs_delete("0"); + task.setRequest_param(form.toJSONString()); + task.setTask_type(form.getString("task_type")); + task.setProduct_area(form.getString("product_area")); + task.setCreate_id(currentUserId); + task.setCreate_name(currentUsername); + task.setCreate_time(DateUtil.now()); + task.setHandle_class(THIS_CLASS); + //根据类型获取对应的任务优先级 + JSONObject priority_jo = WQL.getWO("PDA_COOLIN").addParam("flag", "3").addParam("task_type", task.getTask_type()).process().uniqueResult(0); + if (ObjectUtil.isEmpty(priority_jo)) { + task.setPriority("1"); + } else { + task.setPriority(priority_jo.getString("value")); + } + taskService.save(task); +// this.immediateNotifyAcs(null); + return task.getTask_id(); } @Override + @Transactional(rollbackFor = Exception.class) public void forceFinish(String task_id) { - + JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); + this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode()); } + @Override public void cancel(String task_id) { - + JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); + this.updateTaskStatus(taskObj, "0"); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownAgvTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownAgvTask.java index 2d7113f4b..27d4211bf 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownAgvTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownAgvTask.java @@ -88,7 +88,6 @@ public class SlitterDownAgvTask extends AbstractAcsTask { // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { task.setTask_status(TaskStatusEnum.FINISHED.getCode()); - // todo: 分切计划是否需要回退 } task.setUpdate_time(DateUtil.now()); taskService.updateById(task); @@ -124,7 +123,7 @@ public class SlitterDownAgvTask extends AbstractAcsTask { task.setPriority(priority_jo.getString("value")); } taskService.save(task); - this.immediateNotifyAcs(null); +// this.immediateNotifyAcs(null); return task.getTask_id(); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussSendAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussSendAirShaftTask.java index 51cf0222a..b5ee3834b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussSendAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussSendAirShaftTask.java @@ -5,12 +5,14 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.extern.slf4j.Slf4j; import org.nl.b_lms.bst.ivt.cutpointivt.service.IBstIvtCutpointivtService; import org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt; import org.nl.b_lms.bst.ivt.shafttubeivt.service.IBstIvtShafttubeivtService; import org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.BstIvtShafttubeivt; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService; +import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; @@ -27,6 +29,8 @@ import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** * @Author: lyd @@ -116,7 +120,14 @@ public class TrussSendAirShaftTask extends AbstractAcsTask { // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { task.setTask_status(TaskStatusEnum.FINISHED.getCode()); - // todo: 是否需要回退分切计划套轴完成? + // 是否需要回退分切计划套轴完成 + List collect = Stream.of(task.getVehicle_code(), task.getVehicle_code2()) + .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList()); + PdmBiSlittingproductionplan p = new PdmBiSlittingproductionplan(); + p.setIs_child_tz_ok("0"); + TaskUtils.updateOptMessageBySlitterPlan(p); + slittingproductionplanService.update(p, new LambdaQueryWrapper() + .in(PdmBiSlittingproductionplan::getQzzno, collect)); } TaskUtils.updateOptMessageByTask(task); taskService.updateById(task); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/UpShaftTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/UpShaftTrussTask.java index 900363ff1..4fc8fcf65 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/UpShaftTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/UpShaftTrussTask.java @@ -121,6 +121,15 @@ public class UpShaftTrussTask extends AbstractAcsTask { // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { task.setTask_status(TaskStatusEnum.FINISHED.getCode()); + + // 分切计划修改状态回退03 + List collect = Stream.of(task.getVehicle_code(), task.getVehicle_code2()) + .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList()); + PdmBiSlittingproductionplan p = new PdmBiSlittingproductionplan(); + p.setStatus("03"); + TaskUtils.updateOptMessageBySlitterPlan(p); + slittingproductionplanService.update(p, new LambdaQueryWrapper() + .in(PdmBiSlittingproductionplan::getQzzno, collect)); } TaskUtils.updateOptMessageByTask(task); taskService.updateById(task); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java index 618fb6616..aacebc0b7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java @@ -47,4 +47,9 @@ public class SlitterController { entity.put("container", collect); return new ResponseEntity<>(slitterService.mesSlittingMachineSendMaterial(entity), HttpStatus.CREATED); } + @PostMapping("/test4") + @Log("1111") + public ResponseEntity create4(@RequestBody JSONObject entity){ + return new ResponseEntity<>(slitterService.acsFinishShaftPluckTube(entity), HttpStatus.CREATED); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index c983a37ba..22df92157 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -18,6 +18,7 @@ import org.nl.b_lms.sch.point.dao.StIvtCutpointivt; import org.nl.b_lms.sch.point.service.IstIvtCutpointivtService; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; +import org.nl.b_lms.sch.tasks.slitter.SendCopperFoilSubRollTrussTask; import org.nl.b_lms.sch.tasks.slitter.SlitterDownTrussTask; import org.nl.b_lms.sch.tasks.slitter.TrussSendAirShaftTask; import org.nl.b_lms.sch.tasks.slitter.mapper.SlitterMapper; @@ -57,6 +58,8 @@ public class SlitterServiceImpl implements SlitterService { private TrussSendAirShaftTask trussSendAirShaftTask; @Autowired private SlitterDownTrussTask slitterDownTrussTask; + @Autowired + private SendCopperFoilSubRollTrussTask sendCopperFoilSubRollTrussTask; @Override public JSONObject acsRequestShaftPluckTube(JSONObject param) { @@ -82,7 +85,8 @@ public class SlitterServiceImpl implements SlitterService { SchBaseTask previousTask = taskService.getById(taskId); // hint: 使用子卷号 List plans = slittingproductionplanService.list(new LambdaQueryWrapper() - .eq(PdmBiSlittingproductionplan::getContainer_name, subVolume)); + .eq(PdmBiSlittingproductionplan::getContainer_name, subVolume) + .eq(PdmBiSlittingproductionplan::getStatus, "09")); PdmBiSlittingproductionplan plan; if ("1".equals(deviceCode.substring(deviceCode.length() - 1))) { plan = plans.stream().filter(p -> "1".equals(p.getLeft_or_right())).findFirst().orElse(null); @@ -97,10 +101,9 @@ public class SlitterServiceImpl implements SlitterService { taskParam.put("point_code1", deviceCode); taskParam.put("point_code2", "B_CZW01"); taskParam.put("material_code", plan.getContainer_name()); - taskParam.put("vehicle_code", plan.getQzzno()); - taskParam.put("task_type", "未定义"); - taskParam.put("product_area", "未定义"); -// sendCopperFoilSubRollTrussTask.createTask(taskParam); + taskParam.put("task_type", "6"); + taskParam.put("product_area", "Test"); + sendCopperFoilSubRollTrussTask.createTask(taskParam); res.put("code", HttpStatus.HTTP_OK); res.put("message", "任务请求成功!"); return res; diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java index 3414572b7..ca6799924 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java @@ -99,7 +99,7 @@ public class TaskServiceImpl implements TaskService { UserAreaServiceImpl userAreaService = new UserAreaServiceImpl(); String in_area_id = userAreaService.getInArea(); if (ObjectUtil.isNotEmpty(in_area_id)) { -// map.put("in_area_id", in_area_id); + map.put("in_area_id", in_area_id); } JSONObject json = WQL.getWO("QSCH_TASK_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "update_time desc"); JSONArray content = json.getJSONArray("content");