fix: 分切业务区域校验
This commit is contained in:
@@ -56,9 +56,10 @@ public interface IBstIvtCutpointivtService extends IService<BstIvtCutpointivt> {
|
||||
* 获取同尺寸的气涨轴
|
||||
* @param type 点位类型:1套轴对接位,2分切缓存位,3分切对接位
|
||||
* @param size 气涨轴尺寸
|
||||
* @param area 区域
|
||||
* @return /
|
||||
*/
|
||||
List<BstIvtCutpointivt> getPointByTypeAndShaftSize(String type, String size);
|
||||
List<BstIvtCutpointivt> getPointByTypeAndShaftSize(String type, String size, String area);
|
||||
|
||||
/**
|
||||
* 根据桁架对应的点位编码获取点位实体
|
||||
|
||||
@@ -13,5 +13,5 @@ public interface BstIvtCutpointivtMapper extends BaseMapper<BstIvtCutpointivt> {
|
||||
|
||||
List<BstIvtCutpointivt> getAreaNotTaskPointByStatus(String type, String pointStatus, String sort);
|
||||
|
||||
List<BstIvtCutpointivt> getPointByTypeAndShaftSize(String type, String size);
|
||||
List<BstIvtCutpointivt> getPointByTypeAndShaftSize(String type, String size, String area);
|
||||
}
|
||||
|
||||
@@ -26,11 +26,18 @@
|
||||
</select>
|
||||
<select id="getPointByTypeAndShaftSize"
|
||||
resultType="org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt">
|
||||
SELECT
|
||||
bc.*
|
||||
FROM
|
||||
`bst_ivt_cutpointivt` bc
|
||||
LEFT JOIN pdm_bi_slittingproductionplan pp ON pp.qzzno = bc.qzz_no1 OR pp.qzzno = bc.qzz_no2
|
||||
WHERE bc.point_type = #{type} AND pp.qzz_size = #{size} AND bc.is_used = '1' AND bc.point_status = '3'
|
||||
SELECT bc.*
|
||||
FROM `bst_ivt_cutpointivt` bc
|
||||
LEFT JOIN pdm_bi_slittingproductionplan pp ON pp.qzzno = bc.qzz_no1
|
||||
OR pp.qzzno = bc.qzz_no2
|
||||
WHERE bc.point_type = #{type}
|
||||
AND pp.qzz_size = #{size}
|
||||
AND LEFT(p.resource_name, 2) = #{area}
|
||||
AND bc.is_used = '1'
|
||||
AND bc.point_status = '3'
|
||||
AND 0 = (SELECT COUNT(*)
|
||||
FROM sch_base_task t
|
||||
WHERE t.task_status <![CDATA[ < ]]> '07'
|
||||
AND (t.point_code1 = bc.truss_point_code1 OR t.point_code1 = bc.truss_point_code2))
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -94,8 +94,8 @@ public class BstIvtCutpointivtServiceImpl extends ServiceImpl<BstIvtCutpointivtM
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BstIvtCutpointivt> getPointByTypeAndShaftSize(String type, String size) {
|
||||
return bstIvtCutpointivtMapper.getPointByTypeAndShaftSize(type, size);
|
||||
public List<BstIvtCutpointivt> getPointByTypeAndShaftSize(String type, String size, String area) {
|
||||
return bstIvtCutpointivtMapper.getPointByTypeAndShaftSize(type, size, area);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -87,11 +87,6 @@ public class BstIvtShafttubeivtServiceImpl extends ServiceImpl<BstIvtShafttubeiv
|
||||
|
||||
@Override
|
||||
public List<BstIvtShafttubeivt> getAllShaftPointsByConditions(String type, String location, String have) {
|
||||
LambdaQueryWrapper<BstIvtShafttubeivt> lam = new QueryWrapper<BstIvtShafttubeivt>().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);
|
||||
}
|
||||
|
||||
|
||||
@@ -47,5 +47,5 @@ public interface IPdmBiSlittingproductionplanService extends IService<PdmBiSlitt
|
||||
* 获取可用的分切计划
|
||||
* @return /
|
||||
*/
|
||||
List<SlitterPlanDistinctDto> getAllCutPlan();
|
||||
List<SlitterPlanDistinctDto> getAllCutPlan(String specification);
|
||||
}
|
||||
|
||||
@@ -12,5 +12,5 @@ import java.util.List;
|
||||
**/
|
||||
public interface PdmBiSlittingproductionplanMapper extends BaseMapper<PdmBiSlittingproductionplan> {
|
||||
|
||||
List<SlitterPlanDistinctDto> getAllCutPlan();
|
||||
List<SlitterPlanDistinctDto> getAllCutPlan(String specification);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -76,8 +76,8 @@ public class PdmBiSlittingproductionplanServiceImpl extends ServiceImpl<PdmBiSli
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SlitterPlanDistinctDto> getAllCutPlan() {
|
||||
return pdmBiSlittingproductionplanMapper.getAllCutPlan();
|
||||
public List<SlitterPlanDistinctDto> getAllCutPlan(String specification) {
|
||||
return pdmBiSlittingproductionplanMapper.getAllCutPlan(specification);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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<SchBaseTask> {
|
||||
|
||||
|
||||
List<SchBaseTask> checkHaveTask(BstIvtCutpointivt p);
|
||||
}
|
||||
|
||||
@@ -3,4 +3,16 @@
|
||||
<mapper namespace="org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper">
|
||||
|
||||
|
||||
<select id="checkHaveTask" resultType="org.nl.b_lms.sch.task.dao.SchBaseTask">
|
||||
SELECT *
|
||||
FROM sch_base_task
|
||||
WHERE task_code <![CDATA[ < ]]> '07'
|
||||
AND ( point_code1 = #{point_code}
|
||||
OR point_code2 = #{point_code}
|
||||
OR point_code1 = #{truss_point_code1}
|
||||
OR point_code2 = #{truss_point_code1}
|
||||
OR point_code1 = #{truss_point_code2}
|
||||
OR point_code2 = #{truss_point_code2}
|
||||
)
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -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<SchBaseTask> {
|
||||
* @return /
|
||||
*/
|
||||
List<SchBaseTask> getIssueTasks(String thisClass);
|
||||
|
||||
/**
|
||||
* 检测点位是否存在任务
|
||||
* @param p
|
||||
* @return
|
||||
*/
|
||||
List<SchBaseTask> checkHaveTask(BstIvtCutpointivt p);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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<SchBaseTaskMapper, SchBa
|
||||
return schBaseTaskMapper.selectList(lam);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SchBaseTask> checkHaveTask(BstIvtCutpointivt p) {
|
||||
return schBaseTaskMapper.checkHaveTask(p);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取实体基础信息
|
||||
|
||||
@@ -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"));
|
||||
|
||||
@@ -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"));
|
||||
|
||||
@@ -60,6 +60,8 @@ public class SlitterDownTrussTask extends AbstractAcsTask {
|
||||
ArrayList<AcsTaskDto> 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())
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -61,6 +61,8 @@ public class UpShaftTrussTask extends AbstractAcsTask {
|
||||
ArrayList<AcsTaskDto> 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())
|
||||
|
||||
@@ -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<BstIvtShafttubeivt> emptyPoints = bstIvtShafttubeivtService.getAllShaftPointsByConditions("2","0","0");
|
||||
emptyPoints.forEach(empty -> {
|
||||
// 2、获取分切计划数据,todo:暂时不考虑区域
|
||||
// todo: 未考虑区域
|
||||
List<SlitterPlanDistinctDto> 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<SlitterPlanDistinctDto> 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<BstIvtCutpointivt> qzzPoint = bcutpointivtService.getPointByTypeAndShaftSize("1", qzzSize);
|
||||
List<BstIvtCutpointivt> 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<BstIvtShafttubeivt> 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<SchBaseTask> list = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.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<String> pointCodes = Stream.of(p.getPoint_code(), p.getTruss_point_code1(), p.getTruss_point_code1()).collect(Collectors.toList());
|
||||
LambdaQueryWrapper<SchBaseTask> 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<SchBaseTask> list = taskService.list(lam);
|
||||
return list.size() == 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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<PdmBiSlittingproductionplan> plans = slittingproductionplanService.list(new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
|
||||
.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<StIvtCutpointivt>()
|
||||
.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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
|
||||
}
|
||||
|
||||
@@ -34,9 +34,13 @@ public class SlitterController {
|
||||
@Log("1111")
|
||||
public ResponseEntity<Object> 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<Object> create3(@RequestBody JSONObject entity){
|
||||
List<String> collect = Stream.of("B2382401020202A1").collect(Collectors.toList());
|
||||
List<String> collect = Stream.of("B2572312312002B1").collect(Collectors.toList());
|
||||
entity.put("container", collect);
|
||||
return new ResponseEntity<>(slitterService.mesSlittingMachineSendMaterial(entity), HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@@ -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申请套轴完毕
|
||||
|
||||
@@ -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<String> collect = Stream.of(requestParamObj.getString("left"), requestParamObj.getString("right"))
|
||||
.filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList());
|
||||
// hint: 使用子卷号
|
||||
List<PdmBiSlittingproductionplan> plans = slittingproductionplanService.list(new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
|
||||
.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<String> collect = Stream.of(requestParamObj.getString("left"), requestParamObj.getString("right"))
|
||||
.filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList());
|
||||
// hint: 使用子卷号
|
||||
List<PdmBiSlittingproductionplan> plans = slittingproductionplanService.list(new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
|
||||
.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<BstIvtShafttubeivt>()
|
||||
.eq(BstIvtShafttubeivt::getPoint_code, deviceCode));
|
||||
List<SchBaseTask> list = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.eq(SchBaseTask::getPoint_code1, startPoint.getPoint_code())
|
||||
.lt(SchBaseTask::getTask_status, "07"));
|
||||
if (list.size() > 0) {
|
||||
throw new BadRequestException("点位[" + deviceCode + "]存在未完成得任务!");
|
||||
}
|
||||
// 获取分切计划
|
||||
List<String> collect = Stream.of(startPoint.getContainer_name1(), startPoint.getContainer_name2())
|
||||
.filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList());
|
||||
List<PdmBiSlittingproductionplan> plans = slittingproductionplanService.list(new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
|
||||
.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<BstIvtCutpointivt>()
|
||||
.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<SchBaseTask> list = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.eq(SchBaseTask::getPoint_code1, deviceCode)
|
||||
.lt(SchBaseTask::getTask_status, "07"));
|
||||
if (list.size() > 0) {
|
||||
throw new BadRequestException("点位[" + deviceCode + "]存在未完成得任务!");
|
||||
}
|
||||
BstIvtShafttubeivt startPoint = shafttubeivtService.getOne(new LambdaQueryWrapper<BstIvtShafttubeivt>()
|
||||
.eq(BstIvtShafttubeivt::getPoint_code, deviceCode));
|
||||
// 获取分切计划
|
||||
List<String> collect = Stream.of(startPoint.getContainer_name1(), startPoint.getContainer_name2())
|
||||
.filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList());
|
||||
List<PdmBiSlittingproductionplan> plans = slittingproductionplanService.list(new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
|
||||
.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<BstIvtCutpointivt>()
|
||||
.eq(BstIvtCutpointivt::getTruss_point_code1, endPoint).or()
|
||||
.eq(BstIvtCutpointivt::getTruss_point_code2, endPoint));
|
||||
}
|
||||
}
|
||||
if (ObjectUtil.isEmpty(cutPoint)) {
|
||||
// 获取一个空位 todo: 枷锁
|
||||
List<BstIvtCutpointivt> 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<BstIvtCutpointivt> 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<BstIvtCutpointivt> newCutLam = new QueryWrapper<BstIvtCutpointivt>().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 -> {
|
||||
|
||||
@@ -93,21 +93,21 @@
|
||||
</select>
|
||||
<select id="queryPdaAuthority" resultType="com.alibaba.fastjson.JSONObject">
|
||||
SELECT
|
||||
max( sys_user.user_id )as accountId,
|
||||
max( sys_user.username ) as username,
|
||||
max( sys_roles_menus.menu_id ) as menu_id,
|
||||
max( sys_menu.component ) as component,
|
||||
max( sys_menu.path ) as path,
|
||||
max( sys_menu.`name` ) as name
|
||||
max( sys_user.user_id ) AS accountId,
|
||||
max( sys_user.username ) AS username,
|
||||
max( sys_roles_menus.menu_id ) AS menu_id,
|
||||
max( sys_menu.component ) AS component,
|
||||
max( sys_menu.path ) AS path,
|
||||
max( sys_menu.component_name ) AS component_name
|
||||
FROM
|
||||
sys_user AS sys_user
|
||||
LEFT JOIN sys_users_roles AS sys_users_roles ON sys_users_roles.user_id = sys_user.user_id
|
||||
LEFT JOIN sys_role AS sys_role ON sys_role.role_id = sys_users_roles.role_id
|
||||
LEFT JOIN sys_roles_menus AS sys_roles_menus ON sys_roles_menus.role_id = sys_role.role_id
|
||||
LEFT JOIN sys_menu AS sys_menu ON sys_menu.menu_id = sys_roles_menus.menu_id
|
||||
sys_user sys_user
|
||||
LEFT JOIN sys_users_roles sys_users_roles ON sys_users_roles.user_id = sys_user.user_id
|
||||
LEFT JOIN sys_role sys_role ON sys_role.role_id = sys_users_roles.role_id
|
||||
LEFT JOIN sys_roles_menus sys_roles_menus ON sys_roles_menus.role_id = sys_role.role_id
|
||||
LEFT JOIN sys_menu sys_menu ON sys_menu.menu_id = sys_roles_menus.menu_id
|
||||
WHERE
|
||||
sys_menu.path LIKE 'RF%'
|
||||
and sys_menu.is_pc='0'
|
||||
sys_menu.component_name LIKE 'RF%'
|
||||
and sys_menu.is_pc = '0'
|
||||
AND sys_menu.hidden = 0
|
||||
<if test="accountId != null">
|
||||
AND sys_user.user_id = #{accountId}
|
||||
@@ -123,7 +123,7 @@
|
||||
sys_menu.title,
|
||||
sys_menu.component,
|
||||
sys_menu.path,
|
||||
sys_menu.NAME,
|
||||
sys_menu.component_name,
|
||||
sys_menu.menu_sort
|
||||
ORDER BY sys_menu.menu_sort
|
||||
</select>
|
||||
|
||||
@@ -463,7 +463,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||
|
||||
@Override
|
||||
public Map<String, Object> queryAuthority(Map<String, String> 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<SysMenuMapper, SysMenu> 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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<Object> query(@RequestParam Map whereJson, Pageable page) {
|
||||
return new ResponseEntity<>(taskService.queryAll(whereJson, page), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/taskStatus")
|
||||
@Log("获取任务状态列表")
|
||||
|
||||
public ResponseEntity<Object> getTaskStatus() {
|
||||
TaskStatusEnum[] values = TaskStatusEnum.values();
|
||||
JSONArray arr = new JSONArray();
|
||||
@@ -59,7 +55,6 @@ public class TaskController {
|
||||
|
||||
@GetMapping("/finishType")
|
||||
@Log("获取任务类型列表")
|
||||
|
||||
public ResponseEntity<Object> getFinishType() {
|
||||
FinishTypeEnum[] values = FinishTypeEnum.values();
|
||||
JSONArray arr = new JSONArray();
|
||||
@@ -74,8 +69,6 @@ public class TaskController {
|
||||
|
||||
@PutMapping("/operation")
|
||||
@Log("任务操作")
|
||||
|
||||
//@SaCheckPermission("task:edit")
|
||||
public ResponseEntity<Object> update(@RequestBody Map<String, Object> map) {
|
||||
taskService.operation(map);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
|
||||
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user