From 238b406aa3b3c895e415fd295eb3c2096c86fc5e Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Wed, 6 Mar 2024 18:11:40 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=88=86=E5=88=87=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E5=8C=BA=E5=9F=9F=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/IBstIvtCutpointivtService.java | 3 +- .../dao/mapper/BstIvtCutpointivtMapper.java | 2 +- .../dao/mapper/BstIvtCutpointivtMapper.xml | 19 +- .../impl/BstIvtCutpointivtServiceImpl.java | 4 +- .../impl/BstIvtShafttubeivtServiceImpl.java | 5 - .../IPdmBiSlittingproductionplanService.java | 2 +- .../PdmBiSlittingproductionplanMapper.java | 2 +- .../PdmBiSlittingproductionplanMapper.xml | 2 +- ...dmBiSlittingproductionplanServiceImpl.java | 4 +- .../task/dao/mapper/SchBaseTaskMapper.java | 4 + .../sch/task/dao/mapper/SchBaseTaskMapper.xml | 12 ++ .../sch/task/service/IschBaseTaskService.java | 8 + .../service/impl/SchBaseTaskServiceImpl.java | 6 + .../tasks/slitter/SendAirShaftAgvTask.java | 2 +- .../sch/tasks/slitter/SlitterDownAgvTask.java | 2 +- .../tasks/slitter/SlitterDownTrussTask.java | 4 + .../tasks/slitter/TrussCallAirShaftTask.java | 5 +- .../sch/tasks/slitter/UpShaftTrussTask.java | 4 + .../slitter/auto/AutoCallAirShaftTask.java | 58 ++++-- .../slitter/auto/AutoSendAirShaftAgvTask.java | 9 +- .../slitter/auto/AutoSlitterDownAgvTask.java | 5 +- .../slitter/auto/AutoUpShaftTrussTask.java | 8 +- .../slitter/constant/SlitterConstant.java | 15 ++ .../slitter/controller/SlitterController.java | 10 +- .../tasks/slitter/service/SlitterService.java | 8 +- .../service/impl/SlitterServiceImpl.java | 189 ++++++++++++------ .../service/menu/dao/mapper/SysMenuMapper.xml | 28 +-- .../service/menu/impl/SysMenuServiceImpl.java | 4 +- .../main/java/org/nl/wms/sch/AcsTaskDto.java | 7 +- .../org/nl/wms/sch/rest/TaskController.java | 7 - .../wms/sch/service/impl/TaskServiceImpl.java | 2 +- 31 files changed, 299 insertions(+), 141 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/IBstIvtCutpointivtService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/IBstIvtCutpointivtService.java index 92284fa88..f7d3ecb11 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/IBstIvtCutpointivtService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/IBstIvtCutpointivtService.java @@ -56,9 +56,10 @@ public interface IBstIvtCutpointivtService extends IService { * 获取同尺寸的气涨轴 * @param type 点位类型:1套轴对接位,2分切缓存位,3分切对接位 * @param size 气涨轴尺寸 + * @param area 区域 * @return / */ - List getPointByTypeAndShaftSize(String type, String size); + List getPointByTypeAndShaftSize(String type, String size, String area); /** * 根据桁架对应的点位编码获取点位实体 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.java index a8d3c6b2e..fe171b044 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.java @@ -13,5 +13,5 @@ public interface BstIvtCutpointivtMapper extends BaseMapper { List getAreaNotTaskPointByStatus(String type, String pointStatus, String sort); - List getPointByTypeAndShaftSize(String type, String size); + List getPointByTypeAndShaftSize(String type, String size, String area); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml index 654a7090d..e91be93cf 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml @@ -26,11 +26,18 @@ diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java index f49cfab7d..ee1433b33 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java @@ -94,8 +94,8 @@ public class BstIvtCutpointivtServiceImpl extends ServiceImpl getPointByTypeAndShaftSize(String type, String size) { - return bstIvtCutpointivtMapper.getPointByTypeAndShaftSize(type, size); + public List getPointByTypeAndShaftSize(String type, String size, String area) { + return bstIvtCutpointivtMapper.getPointByTypeAndShaftSize(type, size, area); } @Override diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/impl/BstIvtShafttubeivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/impl/BstIvtShafttubeivtServiceImpl.java index fb2b65e1c..68f7de9bb 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/impl/BstIvtShafttubeivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/impl/BstIvtShafttubeivtServiceImpl.java @@ -87,11 +87,6 @@ public class BstIvtShafttubeivtServiceImpl extends ServiceImpl getAllShaftPointsByConditions(String type, String location, String have) { - LambdaQueryWrapper lam = new QueryWrapper().lambda(); - lam.eq(BstIvtShafttubeivt::getIs_used, "1") - .eq(BstIvtShafttubeivt::getPoint_type, type) - .eq(BstIvtShafttubeivt::getPoint_location, location) - .eq(BstIvtShafttubeivt::getHave_qzz, have); return bstIvtShafttubeivtMapper.getAllShaftPointsByConditions(type, location, have); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/IPdmBiSlittingproductionplanService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/IPdmBiSlittingproductionplanService.java index 8686f9589..20b78793e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/IPdmBiSlittingproductionplanService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/IPdmBiSlittingproductionplanService.java @@ -47,5 +47,5 @@ public interface IPdmBiSlittingproductionplanService extends IService getAllCutPlan(); + List getAllCutPlan(String specification); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.java index 3d00a379c..1a569ef2a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.java @@ -12,5 +12,5 @@ import java.util.List; **/ public interface PdmBiSlittingproductionplanMapper extends BaseMapper { - List getAllCutPlan(); + List getAllCutPlan(String specification); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml index 59c9b983e..87bd58d22 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml @@ -64,7 +64,7 @@ AND p.is_paper_ok = '1' AND p.is_delete = '0' AND p.manufacture_date = '2024-01-05' - AND LEFT ( p.resource_name, 2 ) IN ( 'B2' ) + AND LEFT ( p.resource_name, 2 ) = #{specification} AND p.up_or_down IS NOT NULL AND p.left_or_right IS NOT NULL GROUP BY diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java index 9596e7bc6..f927260a6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java @@ -76,8 +76,8 @@ public class PdmBiSlittingproductionplanServiceImpl extends ServiceImpl getAllCutPlan() { - return pdmBiSlittingproductionplanMapper.getAllCutPlan(); + public List getAllCutPlan(String specification) { + return pdmBiSlittingproductionplanMapper.getAllCutPlan(specification); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/mapper/SchBaseTaskMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/mapper/SchBaseTaskMapper.java index b9a984195..686c41f13 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/mapper/SchBaseTaskMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/mapper/SchBaseTaskMapper.java @@ -1,8 +1,11 @@ package org.nl.b_lms.sch.task.dao.mapper; +import org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt; import org.nl.b_lms.sch.task.dao.SchBaseTask; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import java.util.List; + /** * {@code @Description:} 任务表(SchBaseTask)数据持久层 * {@code @Author:} gbx @@ -12,4 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; public interface SchBaseTaskMapper extends BaseMapper { + List checkHaveTask(BstIvtCutpointivt p); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/mapper/SchBaseTaskMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/mapper/SchBaseTaskMapper.xml index 1bf0b6878..c32ea418b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/mapper/SchBaseTaskMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/mapper/SchBaseTaskMapper.xml @@ -3,4 +3,16 @@ + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/IschBaseTaskService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/IschBaseTaskService.java index 902cf1635..8766e07d7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/IschBaseTaskService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/IschBaseTaskService.java @@ -1,5 +1,6 @@ package org.nl.b_lms.sch.task.service; +import org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt; import org.nl.b_lms.sch.task.dao.SchBaseTask; import com.baomidou.mybatisplus.extension.service.IService; @@ -58,6 +59,13 @@ public interface IschBaseTaskService extends IService { * @return / */ List getIssueTasks(String thisClass); + + /** + * 检测点位是否存在任务 + * @param p + * @return + */ + List checkHaveTask(BstIvtCutpointivt p); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/impl/SchBaseTaskServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/impl/SchBaseTaskServiceImpl.java index a1813e4d0..94a78826d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/impl/SchBaseTaskServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/impl/SchBaseTaskServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper; import org.nl.b_lms.sch.task.service.IschBaseTaskService; @@ -102,6 +103,11 @@ public class SchBaseTaskServiceImpl extends ServiceImpl checkHaveTask(BstIvtCutpointivt p) { + return schBaseTaskMapper.checkHaveTask(p); + } + /** * 获取实体基础信息 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 f9d4cdb72..f613833db 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 @@ -133,7 +133,7 @@ public class SendAirShaftAgvTask extends AbstractAcsTask { task.setPoint_code2(form.getString("point_code2")); task.setVehicle_code(form.getString("vehicle_code1")); task.setVehicle_code2(form.getString("vehicle_code2")); - task.setAcs_task_type("6"); + task.setAcs_task_type("3"); task.setIs_delete("0"); task.setRequest_param(form.toJSONString()); task.setTask_type(form.getString("task_type")); 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 27d4211bf..9c2eef54d 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 @@ -106,7 +106,7 @@ public class SlitterDownAgvTask extends AbstractAcsTask { task.setPoint_code2(form.getString("point_code2")); task.setVehicle_code(form.getString("vehicle_code1")); task.setVehicle_code2(form.getString("vehicle_code2")); - task.setAcs_task_type("6"); + task.setAcs_task_type("3"); task.setIs_delete("0"); task.setRequest_param(form.toJSONString()); task.setTask_type(form.getString("task_type")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java index 6f648a519..2d041f19d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java @@ -60,6 +60,8 @@ public class SlitterDownTrussTask extends AbstractAcsTask { ArrayList resultList = new ArrayList<>(); String agv_system_type = "2"; for (SchBaseTask task : taskList) { + String requestParam = task.getRequest_param(); + JSONObject requestParamObj = JSONObject.parseObject(requestParam); AcsTaskDto dto = AcsTaskDto.builder() .ext_task_id(task.getTask_id()) .task_code(task.getTask_code()) @@ -69,6 +71,8 @@ public class SlitterDownTrussTask extends AbstractAcsTask { .start_device_code2(task.getPoint_code3()) .next_device_code2(task.getPoint_code4()) .vehicle_code(task.getVehicle_code()) + .truss_type(requestParamObj.getString("truss_type")) + .empty_site(requestParamObj.getString("empty_site")) .agv_system_type(agv_system_type) .priority(task.getPriority()) .remark(task.getRemark()) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java index 3368efcd3..f12ebefdc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java @@ -68,10 +68,12 @@ public class TrussCallAirShaftTask extends AbstractAcsTask { .next_device_code(task.getPoint_code2()) .start_device_code2(task.getPoint_code3()) .next_device_code2(task.getPoint_code4()) - .vehicle_code(task.getVehicle_code()) + .vehicle_code(ObjectUtil.isNotEmpty(task.getVehicle_code()) + ? task.getVehicle_code() : task.getVehicle_code2()) .agv_system_type(agv_system_type) .priority(task.getPriority()) .remark(task.getRemark()) + .params2(task.getRequest_param()) .product_area(task.getProduct_area()) .build(); resultList.add(dto); @@ -165,6 +167,7 @@ public class TrussCallAirShaftTask extends AbstractAcsTask { task.setPoint_code1(form.getString("point_code1")); task.setPoint_code2(form.getString("point_code2")); task.setVehicle_code(form.getString("vehicle_code1")); + task.setVehicle_code2(form.getString("vehicle_code2")); task.setAcs_task_type("6"); task.setIs_delete("0"); task.setRequest_param(form.toJSONString()); 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 4fc8fcf65..285f4da46 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 @@ -61,6 +61,8 @@ public class UpShaftTrussTask extends AbstractAcsTask { ArrayList resultList = new ArrayList<>(); String agv_system_type = "2"; for (SchBaseTask task : taskList) { + String requestParam = task.getRequest_param(); + JSONObject requestParamObj = JSONObject.parseObject(requestParam); AcsTaskDto dto = AcsTaskDto.builder() .ext_task_id(task.getTask_id()) .task_code(task.getTask_code()) @@ -71,6 +73,8 @@ public class UpShaftTrussTask extends AbstractAcsTask { .next_device_code2(task.getPoint_code4()) .vehicle_code(task.getVehicle_code()) .agv_system_type(agv_system_type) + .truss_type(requestParamObj.getString("truss_type")) + .empty_site(requestParamObj.getString("empty_site")) .priority(task.getPriority()) .remark(task.getRemark()) .product_area(task.getProduct_area()) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java index f1c919d5b..a65956a1d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java @@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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; @@ -15,6 +16,7 @@ import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingprodu 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.TrussCallAirShaftTask; +import org.nl.b_lms.sch.tasks.slitter.constant.SlitterConstant; import org.nl.b_lms.sch.tasks.slitter.mapper.dto.SlitterPlanDistinctDto; import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.TaskUtils; @@ -22,9 +24,12 @@ import org.nl.modules.common.exception.BadRequestException; import org.nl.wms.ext.acs.service.WmsToAcsService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** * @Author: lyd @@ -49,14 +54,28 @@ public class AutoCallAirShaftTask { @Autowired private WmsToAcsService wmsToAcsService; - @Transactional(rollbackFor = Exception.class) + @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_UNCOMMITTED) public void run() { - // 1、获取空的插拔轴位(无任务) + // 1、获取空的插拔轴位(无任务) todo:(目前都是上区域,下区域未考虑) List emptyPoints = bstIvtShafttubeivtService.getAllShaftPointsByConditions("2","0","0"); emptyPoints.forEach(empty -> { - // 2、获取分切计划数据,todo:暂时不考虑区域 - // todo: 未考虑区域 - List plans = slittingproductionplanService.getAllCutPlan(); + // 标箔:1,锂电:2 + String specification = empty.getQzz_generation(); + if ("1".equals(specification)) { + if ("0".equals(empty.getPoint_location())) { + specification = "B2"; + } else { + specification = "B4"; + } + } else { + if ("0".equals(empty.getPoint_location())) { + specification = "B1"; + } else { + specification = "B3"; + } + } + // 2、获取分切计划数据,hint: 根据标箔锂电区分区域 + List plans = slittingproductionplanService.getAllCutPlan(specification); if (plans.size() == 0) { // 如果不需要套轴,就只做拔轴 makePullShaft(empty); @@ -77,12 +96,13 @@ public class AutoCallAirShaftTask { .eq(PdmBiSlittingproductionplan::getResource_name, planDto.getResource_name()) .eq(PdmBiSlittingproductionplan::getParent_container_name, planDto.getParent_container_name()) .eq(PdmBiSlittingproductionplan::getUp_or_down, planDto.getUp_or_down()) + .eq(PdmBiSlittingproductionplan::getIs_delete, "0") .eq(PdmBiSlittingproductionplan::getIs_paper_ok, "1")); // 获取其中一条 PdmBiSlittingproductionplan needPlan = needPlans.get(0); String qzzSize = needPlan.getQzz_size(); // 从套轴对接位获取相同气涨轴大小 - List qzzPoint = bcutpointivtService.getPointByTypeAndShaftSize("1", qzzSize); + List qzzPoint = bcutpointivtService.getPointByTypeAndShaftSize("1", qzzSize, specification); if (qzzPoint.size() == 0) { // 调用ACS滚条气涨轴下来 toAcsOutShaft(qzzSize); @@ -90,8 +110,8 @@ public class AutoCallAirShaftTask { saveCutPlanMessage(empty, needPlans, qzzSize); return; } - // 查找一条没任务的点位 todo: 优先获取只有一根轴的点位 - BstIvtCutpointivt startPoint = qzzPoint.stream().filter(point -> checkHaveTask(point)).findFirst().orElse(null); + // 查找一条没任务的点位 + BstIvtCutpointivt startPoint = qzzPoint.get(0); if (ObjectUtil.isEmpty(startPoint)) { // 如果不存在,则发起信号滚气涨轴 // 调用ACS滚条气涨轴下来 @@ -112,7 +132,7 @@ public class AutoCallAirShaftTask { param.put("needPlan", planDto); param.put("is_bushing", "1"); param.put("task_type", "6"); - param.put("product_area", "Test"); + param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); param.put("qzz_size", needPlan.getQzz_size()); // 设置子卷号 for (PdmBiSlittingproductionplan plan : needPlans) { @@ -133,6 +153,7 @@ public class AutoCallAirShaftTask { } private void toAcsOutShaft(String qzzSize) { + // todo: 访问acs判断是否有无气涨轴 List shafttubeivts = bstIvtShafttubeivtService.getByQzzSize(qzzSize); if (shafttubeivts.size() == 0) { throw new BadRequestException("气胀轴库找不到[" + qzzSize + "]规格的气涨轴"); @@ -143,7 +164,7 @@ public class AutoCallAirShaftTask { acsQzz.put("device_code", shafttubeivt.getPoint_code()); acsQzz.put("code", "to_command"); acsQzz.put("value", "1"); - acsQzz.put("product_area", "Test"); + acsQzz.put("product_area", SlitterConstant.SLITTER_TASK_AREA); acsParam.add(acsQzz); wmsToAcsService.action(acsParam); } @@ -202,19 +223,20 @@ public class AutoCallAirShaftTask { param.put("qzz_no", ObjectUtil.isNotEmpty(cutpointivt.getQzz_no1()) ? cutpointivt.getQzz_no1() : cutpointivt.getQzz_no2()); param.put("task_type", "6"); - param.put("product_area", "Test"); + param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); param.put("is_bushing", "0"); trussCallAirShaftTask.createTask(param); } public boolean checkHaveTask(BstIvtCutpointivt p) { - List list = taskService.list(new LambdaQueryWrapper() - .eq(SchBaseTask::getTask_code, "07").and(la -> la.eq(SchBaseTask::getPoint_code1, p.getPoint_code()).or() - .eq(SchBaseTask::getPoint_code2, p.getPoint_code()).or() - .eq(SchBaseTask::getPoint_code1, p.getTruss_point_code1()).or() - .eq(SchBaseTask::getPoint_code2, p.getTruss_point_code1()).or() - .eq(SchBaseTask::getPoint_code1, p.getTruss_point_code2()).or() - .eq(SchBaseTask::getPoint_code2, p.getTruss_point_code2()))); + List pointCodes = Stream.of(p.getPoint_code(), p.getTruss_point_code1(), p.getTruss_point_code1()).collect(Collectors.toList()); + LambdaQueryWrapper lam = Wrappers.lambdaQuery(); + lam.lt(SchBaseTask::getTask_code, "07"); + lam.and(la -> la + .in(SchBaseTask::getPoint_code1, pointCodes).or() + .in(SchBaseTask::getPoint_code2, pointCodes)); + List list = taskService.list(lam); return list.size() == 0; } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java index 67122c48a..2e7d0acd5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java @@ -11,6 +11,7 @@ import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingprodu import org.nl.b_lms.sch.point.dao.StIvtCutpointivt; import org.nl.b_lms.sch.point.service.IstIvtCutpointivtService; import org.nl.b_lms.sch.tasks.slitter.SendAirShaftAgvTask; +import org.nl.b_lms.sch.tasks.slitter.constant.SlitterConstant; import org.nl.b_lms.sch.tasks.slitter.mapper.SlitterMapper; import org.nl.modules.common.exception.BadRequestException; import org.springframework.beans.factory.annotation.Autowired; @@ -48,12 +49,14 @@ public class AutoSendAirShaftAgvTask { .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList()); // 最多4条分切计划 List plans = slittingproductionplanService.list(new LambdaQueryWrapper() - .in(PdmBiSlittingproductionplan::getQzzno, collect)); + .in(PdmBiSlittingproductionplan::getQzzno, collect) + .eq(PdmBiSlittingproductionplan::getIs_delete, "0")); if (plans.size() == 0) { throw new BadRequestException("分切计划不存在"); } // 获取任意一条 PdmBiSlittingproductionplan demoPlan = plans.get(0); + String area = demoPlan.getResource_name().substring(0, 2); StIvtCutpointivt deviceCut = cutpointivtService.getOne(new LambdaQueryWrapper() .eq(StIvtCutpointivt::getExt_code, demoPlan.getResource_name())); // 校验是否为一组 @@ -83,8 +86,8 @@ public class AutoSendAirShaftAgvTask { param.put("point_code2", endPoint.getPoint_code()); param.put("vehicle_code1", cutPoint.getQzz_no1()); param.put("vehicle_code2", cutPoint.getQzz_no2()); - param.put("task_type", "6"); - param.put("product_area", "Test"); + param.put("task_type", "3"); + param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); sendAirShaftAgvTask.createTask(param); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSlitterDownAgvTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSlitterDownAgvTask.java index bcdccd2c7..b87c4b471 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSlitterDownAgvTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSlitterDownAgvTask.java @@ -8,6 +8,7 @@ import org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt; 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.SlitterDownAgvTask; +import org.nl.b_lms.sch.tasks.slitter.constant.SlitterConstant; import org.nl.b_lms.sch.tasks.slitter.mapper.SlitterMapper; import org.nl.modules.common.exception.BadRequestException; import org.redisson.api.RLock; @@ -96,8 +97,8 @@ public class AutoSlitterDownAgvTask { param.put("point_code2", endPoint.getPoint_code()); param.put("vehicle_code1", cut.getQzz_no1()); param.put("vehicle_code2", cut.getQzz_no2()); - param.put("task_type", "1"); - param.put("product_area", "Test"); + param.put("task_type", "3"); + param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); slitterDownAgvTask.createTask(param); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoUpShaftTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoUpShaftTrussTask.java index 57849ead6..6cba742bf 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoUpShaftTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoUpShaftTrussTask.java @@ -4,7 +4,6 @@ import cn.hutool.core.util.ObjectUtil; 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.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; @@ -13,6 +12,7 @@ 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.UpShaftTrussTask; +import org.nl.b_lms.sch.tasks.slitter.constant.SlitterConstant; import org.nl.b_lms.sch.tasks.slitter.mapper.SlitterMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -29,9 +29,6 @@ import java.util.stream.Stream; @Slf4j @Component public class AutoUpShaftTrussTask { - - @Autowired - private IBstIvtCutpointivtService bcutpointivtService; @Autowired private IstIvtCutpointivtService cutpointivtService; @Autowired @@ -106,7 +103,8 @@ public class AutoUpShaftTrussTask { } param.put("truss_type", "1"); param.put("empty_site", "0"); - param.put("product_area", "Test"); + param.put("task_type", "6"); + param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); upShaftTrussTask.createTask(param); }); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/constant/SlitterConstant.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/constant/SlitterConstant.java index e69de29bb..01aecdb36 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/constant/SlitterConstant.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/constant/SlitterConstant.java @@ -0,0 +1,15 @@ +package org.nl.b_lms.sch.tasks.slitter.constant; + +/** + * @description 魔法值->常量类 + * @author lyd + * @date 2024-02-26 + **/ +public interface SlitterConstant { + + /** + * 任务区域:暂定Test + */ + String SLITTER_TASK_AREA = "Test"; + +} 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 2aa683ae5..940d8d605 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 @@ -34,9 +34,13 @@ public class SlitterController { @Log("1111") public ResponseEntity create(@RequestBody JSONObject entity){ if ("1".equals(entity.getString("type"))) { - return new ResponseEntity<>(slitterService.acsRequestShaftPluckTube(entity), HttpStatus.CREATED); + return new ResponseEntity<>(slitterService.acsRequestShaftLoadTube(entity), HttpStatus.OK); + } else if ("2".equals(entity.getString("type"))) { + return new ResponseEntity<>(slitterService.acsFinishLoadShaft(entity), HttpStatus.OK); + } else if ("3".equals(entity.getString("type"))) { + return new ResponseEntity<>(slitterService.acsFinishShaftPluckTube(entity), HttpStatus.OK); } - return new ResponseEntity<>(slitterService.acsRequestShaftPluckTube(entity), HttpStatus.CREATED); + return new ResponseEntity<>(slitterService.acsRequestShaftLoadTube(entity), HttpStatus.OK); } @PostMapping("/test2") @Log("1111") @@ -46,7 +50,7 @@ public class SlitterController { @PostMapping("/test3") @Log("1111") public ResponseEntity create3(@RequestBody JSONObject entity){ - List collect = Stream.of("B2382401020202A1").collect(Collectors.toList()); + List collect = Stream.of("B2572312312002B1").collect(Collectors.toList()); entity.put("container", collect); return new ResponseEntity<>(slitterService.mesSlittingMachineSendMaterial(entity), HttpStatus.CREATED); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java index 2317442ab..1480cd60e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java @@ -13,7 +13,7 @@ public interface SlitterService { * @param param * @return */ - JSONObject acsRequestShaftPluckTube(JSONObject param); + JSONObject acsRequestShaftLoadTube(JSONObject param); /** * acs申请拔轴完毕 @@ -21,6 +21,12 @@ public interface SlitterService { * @return */ JSONObject acsFinishShaftPluckTube(JSONObject param); + /** + * acs申请拔轴 + * @param param + * @return + */ + JSONObject acsRequestShaftPluckTube(JSONObject param); /** * ACS申请套轴完毕 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 81b4ed7fd..89cf19355 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 @@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import lombok.SneakyThrows; 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; @@ -21,16 +22,20 @@ 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.constant.SlitterConstant; import org.nl.b_lms.sch.tasks.slitter.mapper.SlitterMapper; import org.nl.b_lms.sch.tasks.slitter.service.SlitterService; import org.nl.common.utils.TaskUtils; import org.nl.modules.common.exception.BadRequestException; +import org.redisson.api.RLock; +import org.redisson.api.RedissonClient; 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; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -60,9 +65,11 @@ public class SlitterServiceImpl implements SlitterService { private SlitterDownTrussTask slitterDownTrussTask; @Autowired private SendCopperFoilSubRollTrussTask sendCopperFoilSubRollTrussTask; + @Autowired + private RedissonClient redissonClient; @Override - public JSONObject acsRequestShaftPluckTube(JSONObject param) { + public JSONObject acsRequestShaftLoadTube(JSONObject param) { JSONObject res = new JSONObject(); JSONObject con = new JSONObject(); String deviceCode = param.getString("device_code"); @@ -80,13 +87,17 @@ public class SlitterServiceImpl implements SlitterService { public JSONObject acsFinishShaftPluckTube(JSONObject param) { JSONObject res = new JSONObject(); String deviceCode = param.getString("device_code"); - String subVolume = param.getString("sub_volume"); + // 气涨轴编码 String taskId = param.getString("task_id"); // 获取上一个桁架任务 SchBaseTask previousTask = taskService.getById(taskId); + String requestParam = previousTask.getRequest_param(); + JSONObject requestParamObj = JSONObject.parseObject(requestParam); + List collect = Stream.of(requestParamObj.getString("left"), requestParamObj.getString("right")) + .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList()); // hint: 使用子卷号 List plans = slittingproductionplanService.list(new LambdaQueryWrapper() - .eq(PdmBiSlittingproductionplan::getContainer_name, subVolume) + .eq(PdmBiSlittingproductionplan::getContainer_name, collect) .eq(PdmBiSlittingproductionplan::getStatus, "09")); PdmBiSlittingproductionplan plan; if ("1".equals(deviceCode.substring(deviceCode.length() - 1))) { @@ -103,75 +114,130 @@ public class SlitterServiceImpl implements SlitterService { taskParam.put("point_code2", "B_CZW01"); taskParam.put("material_code", plan.getContainer_name()); taskParam.put("task_type", "6"); - taskParam.put("product_area", "Test"); + taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); sendCopperFoilSubRollTrussTask.createTask(taskParam); res.put("code", HttpStatus.HTTP_OK); res.put("message", "任务请求成功!"); return res; } + @Override + public JSONObject acsRequestShaftPluckTube(JSONObject param) { + // 参数:设备号,type,插拔轴位,task_id + JSONObject res = new JSONObject(); + String deviceCode = param.getString("device_code"); + String taskId = param.getString("task_id"); + if (ObjectUtil.isEmpty(taskId)) { + throw new BadRequestException("任务id不能为空!"); + } + SchBaseTask previousTask = taskService.getById(taskId); + // 反馈 纸管尺寸 + String requestParam = previousTask.getRequest_param(); + JSONObject requestParamObj = JSONObject.parseObject(requestParam); + List collect = Stream.of(requestParamObj.getString("left"), requestParamObj.getString("right")) + .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList()); + // hint: 使用子卷号 + List plans = slittingproductionplanService.list(new LambdaQueryWrapper() + .eq(PdmBiSlittingproductionplan::getContainer_name, collect) + .eq(PdmBiSlittingproductionplan::getStatus, "09")); + if (plans.size() == 0) { + throw new BadRequestException("查询不到对应的子卷信息!"); + } + PdmBiSlittingproductionplan plan = plans.get(0); + + String s = String.valueOf("1".equals(plan.getPaper_tube_or_FRP()) + ? plan.getPaper_tube_model() + : plan.getFRP_model().split("\\|")[2].charAt(0)); + JSONObject r = new JSONObject(); + res.put("code", HttpStatus.HTTP_OK); + res.put("data", r); + r.put("size", s); + return res; + } + + @SneakyThrows @Override @Transactional(rollbackFor = Exception.class) public JSONObject acsFinishLoadShaft(JSONObject param) { JSONObject res = new JSONObject(); String deviceCode = param.getString("device_code"); - // 判断是否有未完成的任务 - BstIvtShafttubeivt startPoint = shafttubeivtService.getOne(new LambdaQueryWrapper() - .eq(BstIvtShafttubeivt::getPoint_code, deviceCode)); - List list = taskService.list(new LambdaQueryWrapper() - .eq(SchBaseTask::getPoint_code1, startPoint.getPoint_code()) - .lt(SchBaseTask::getTask_status, "07")); - if (list.size() > 0) { - throw new BadRequestException("点位[" + deviceCode + "]存在未完成得任务!"); - } - // 获取分切计划 - List collect = Stream.of(startPoint.getContainer_name1(), startPoint.getContainer_name2()) - .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList()); - List plans = slittingproductionplanService.list(new LambdaQueryWrapper() - .in(PdmBiSlittingproductionplan::getContainer_name, collect)); - if (plans.size() == 0) { - throw new BadRequestException("找不到对应的分切计划!"); - } - // 当前套轴的分切计划 - PdmBiSlittingproductionplan demoPlan = plans.get(0); - // 查找是否有同组的气胀轴位置 - BstIvtCutpointivt cutPoint = slitterMapper.getSameGroupPoint(demoPlan); - if (ObjectUtil.isEmpty(cutPoint)) { - // 也有可能在路上, 获取任务的终点 - String endPoint = slitterMapper.getSameGroupTaskPoint(demoPlan); - if (ObjectUtil.isNotEmpty(endPoint)) { - cutPoint = bcutpointivtService.getOne(new LambdaQueryWrapper() - .eq(BstIvtCutpointivt::getTruss_point_code1, endPoint).or() - .eq(BstIvtCutpointivt::getTruss_point_code2, endPoint)); + RLock lock = redissonClient.getLock(deviceCode); + boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); + try { + if (tryLock) { + String taskCode = param.getString("task_code"); + // todo: 纸管 + String weight1 = param.getString("weight1"); + String material1 = param.getString("material1"); + String weight2 = param.getString("weight2"); + String material2 = param.getString("material2"); + // 判断是否有未完成的任务 + List list = taskService.list(new LambdaQueryWrapper() + .eq(SchBaseTask::getPoint_code1, deviceCode) + .lt(SchBaseTask::getTask_status, "07")); + if (list.size() > 0) { + throw new BadRequestException("点位[" + deviceCode + "]存在未完成得任务!"); + } + BstIvtShafttubeivt startPoint = shafttubeivtService.getOne(new LambdaQueryWrapper() + .eq(BstIvtShafttubeivt::getPoint_code, deviceCode)); + // 获取分切计划 + List collect = Stream.of(startPoint.getContainer_name1(), startPoint.getContainer_name2()) + .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList()); + List plans = slittingproductionplanService.list(new LambdaQueryWrapper() + .in(PdmBiSlittingproductionplan::getContainer_name, collect) + .eq(PdmBiSlittingproductionplan::getIs_delete, "0")); + if (plans.size() == 0) { + throw new BadRequestException("找不到对应的分切计划!"); + } + // 当前套轴的分切计划 + PdmBiSlittingproductionplan demoPlan = plans.get(0); + String area = demoPlan.getResource_name().substring(0, 2); + // 查找是否有同组的气胀轴位置 + BstIvtCutpointivt cutPoint = slitterMapper.getSameGroupPoint(demoPlan); + if (ObjectUtil.isEmpty(cutPoint)) { + // 也有可能在路上, 获取任务的终点 + String endPoint = slitterMapper.getSameGroupTaskPoint(demoPlan); + if (ObjectUtil.isNotEmpty(endPoint)) { + cutPoint = bcutpointivtService.getOne(new LambdaQueryWrapper() + .eq(BstIvtCutpointivt::getTruss_point_code1, endPoint).or() + .eq(BstIvtCutpointivt::getTruss_point_code2, endPoint)); + } + } + if (ObjectUtil.isEmpty(cutPoint)) { + // 获取一个空位 todo: 枷锁 + List emptyNotTaskPoint = bcutpointivtService.getAreaNotTaskPointByStatus("1", "1", "1"); + if (emptyNotTaskPoint.size() == 0) { + throw new BadRequestException("找不到可用套轴对接位!"); + } + cutPoint = emptyNotTaskPoint.get(0); + } + // 分切计划设置套轴完成 + String qzzNo = IdUtil.getSnowflake(1,1).nextIdStr(); + plans.forEach(plan -> { + plan.setIs_child_tz_ok("1"); + plan.setQzzno(qzzNo); + TaskUtils.updateOptMessageBySlitterPlan(plan); + }); + slittingproductionplanService.updateBatchById(plans); + // 创建任务 + JSONObject taskParam = new JSONObject(); + taskParam.put("point_code1", startPoint.getPoint_code()); + taskParam.put("point_code2", "1".equals(demoPlan.getUp_or_down()) + ? cutPoint.getTruss_point_code1() : cutPoint.getTruss_point_code2()); + taskParam.put("vehicle_code1", "1".equals(demoPlan.getUp_or_down()) ? qzzNo : ""); + taskParam.put("vehicle_code2", "2".equals(demoPlan.getUp_or_down()) ? qzzNo : ""); + taskParam.put("task_type", "6"); + taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + trussSendAirShaftTask.createTask(taskParam); + } else { + throw new BadRequestException("系统繁忙,稍后在试"); + } + } finally { + if (tryLock) { + lock.unlock(); } } - if (ObjectUtil.isEmpty(cutPoint)) { - // 获取一个空位 - List emptyNotTaskPoint = bcutpointivtService.getAreaNotTaskPointByStatus("1", "1", "1"); - if (emptyNotTaskPoint.size() == 0) { - throw new BadRequestException("找不到可用套轴对接位!"); - } - cutPoint = emptyNotTaskPoint.get(0); - } - // 分切计划设置套轴完成 - String qzzNo = IdUtil.getSnowflake(1,1).nextIdStr(); - plans.forEach(plan -> { - plan.setIs_child_tz_ok("1"); - plan.setQzzno(qzzNo); - TaskUtils.updateOptMessageBySlitterPlan(plan); - }); - slittingproductionplanService.updateBatchById(plans); - // 创建任务 - JSONObject taskParam = new JSONObject(); - taskParam.put("point_code1", startPoint.getPoint_code()); - taskParam.put("point_code2", "1".equals(demoPlan.getUp_or_down()) - ? cutPoint.getTruss_point_code1() : cutPoint.getTruss_point_code2()); - taskParam.put("vehicle_code1", "1".equals(demoPlan.getUp_or_down()) ? qzzNo : ""); - taskParam.put("vehicle_code2", "2".equals(demoPlan.getUp_or_down()) ? qzzNo : ""); - taskParam.put("task_type", "6"); - taskParam.put("product_area", "Test"); - trussSendAirShaftTask.createTask(taskParam); - res.put("status", HttpStatus.HTTP_OK); + res.put("code", HttpStatus.HTTP_OK); res.put("message", "请求成功"); return res; } @@ -239,7 +305,7 @@ public class SlitterServiceImpl implements SlitterService { taskParam.put("truss_type", "1"); taskParam.put("empty_site", "0"); } - taskParam.put("product_area", "Test"); + taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); // 分切计划修改状态 05 -> 06 currentPlans.forEach(plan -> { plan.setStatus("06"); @@ -260,7 +326,7 @@ public class SlitterServiceImpl implements SlitterService { PdmBiSlittingproductionplan nextDownPlan = nextPlans.stream().filter(p -> "2".equals(p.getUp_or_down())).findFirst().orElse(null); // 找到该分切计划的点位 LambdaQueryWrapper newCutLam = new QueryWrapper().lambda(); - newCutLam.eq(BstIvtCutpointivt::getPoint_type, "3").eq(BstIvtCutpointivt::getPoint_status, "1") + newCutLam.eq(BstIvtCutpointivt::getPoint_type, "3").eq(BstIvtCutpointivt::getPoint_status, "2") .eq(BstIvtCutpointivt::getIs_used, "1"); if (nextUpPlan != null) { newCutLam.eq(BstIvtCutpointivt::getQzz_no1, nextUpPlan.getQzzno()); @@ -318,6 +384,7 @@ public class SlitterServiceImpl implements SlitterService { throw new BadRequestException("错误表达式"); } // 创建任务 + taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); slitterDownTrussTask.createTask(taskParam); // 下来的分切计划修改状态:05 -> 06 currentPlans.forEach(plan -> { diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/menu/dao/mapper/SysMenuMapper.xml b/lms/nladmin-system/src/main/java/org/nl/system/service/menu/dao/mapper/SysMenuMapper.xml index ed7869d54..1abcc5646 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/menu/dao/mapper/SysMenuMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/menu/dao/mapper/SysMenuMapper.xml @@ -93,21 +93,21 @@ diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java index b81d35abd..f1870efb5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java @@ -463,7 +463,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl @Override public Map queryAuthority(Map param) { - String accountId = SecurityUtils.getCurrentUserId(); + String accountId = "1"; JSONObject returnjo = new JSONObject(); if (StrUtil.isEmpty(accountId)) { returnjo.put("code", "0"); @@ -480,7 +480,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl for (int i = 0; i < SecondResults.size(); i++) { JSONObject row = SecondResults.getJSONObject(i); String menu_id = row.getString("menu_id"); - JSONArray ThirdResults = baseMapper.queryPdaAuthority(accountId, "1", menu_id); + JSONArray ThirdResults = baseMapper.queryPdaAuthority(accountId, "2", menu_id); row.put("sonTree", ThirdResults); roleTree.add(row); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/AcsTaskDto.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/AcsTaskDto.java index 68864fb5d..471357d34 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/AcsTaskDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/AcsTaskDto.java @@ -59,6 +59,7 @@ public class AcsTaskDto { * 扩展参数 */ private String params; + private String params2; /** * 温度 */ @@ -109,7 +110,11 @@ public class AcsTaskDto { * 任务扩展字段 */ private String interaction_json; + /** + * 空点位 + */ + private String empty_site; -} \ No newline at end of file +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/rest/TaskController.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/rest/TaskController.java index 4ba05e980..765fcfaa0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/rest/TaskController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/rest/TaskController.java @@ -22,7 +22,6 @@ import java.util.Map; **/ @RestController @RequiredArgsConstructor - @RequestMapping("/api/task") @Slf4j public class TaskController { @@ -31,15 +30,12 @@ public class TaskController { @GetMapping @Log("查询任务") - - //@SaCheckPermission("task:list") public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { return new ResponseEntity<>(taskService.queryAll(whereJson, page), HttpStatus.OK); } @GetMapping("/taskStatus") @Log("获取任务状态列表") - public ResponseEntity getTaskStatus() { TaskStatusEnum[] values = TaskStatusEnum.values(); JSONArray arr = new JSONArray(); @@ -59,7 +55,6 @@ public class TaskController { @GetMapping("/finishType") @Log("获取任务类型列表") - public ResponseEntity getFinishType() { FinishTypeEnum[] values = FinishTypeEnum.values(); JSONArray arr = new JSONArray(); @@ -74,8 +69,6 @@ public class TaskController { @PutMapping("/operation") @Log("任务操作") - - //@SaCheckPermission("task:edit") public ResponseEntity update(@RequestBody Map map) { taskService.operation(map); return new ResponseEntity<>(HttpStatus.NO_CONTENT); 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 ca6799924..3414572b7 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");