fix: 分切业务
This commit is contained in:
@@ -31,6 +31,6 @@
|
||||
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.shaft_size = #{size} AND bc.is_used = '1' AND bc.point_status = '3'
|
||||
WHERE bc.point_type = #{type} AND pp.qzz_size = #{size} AND bc.is_used = '1' AND bc.point_status = '3'
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -11,4 +11,5 @@ import java.util.List;
|
||||
**/
|
||||
public interface BstIvtShafttubeivtMapper extends BaseMapper<BstIvtShafttubeivt> {
|
||||
|
||||
List<BstIvtShafttubeivt> getAllShaftPointsByConditions(String type, String location, String have);
|
||||
}
|
||||
|
||||
@@ -2,4 +2,15 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.mapper.BstIvtShafttubeivtMapper">
|
||||
|
||||
<select id="getAllShaftPointsByConditions"
|
||||
resultType="org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.BstIvtShafttubeivt">
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
`bst_ivt_shafttubeivt` bst
|
||||
WHERE bst.point_type = #{type} AND bst.point_location = #{location} AND bst.have_qzz = #{have} AND bst.is_used = '1'
|
||||
AND 0 = (
|
||||
SELECT COUNT(*) FROM sch_base_task t WHERE t.task_status <![CDATA[ < ]]> '07' AND t.point_code2 = bst.point_code
|
||||
)
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -92,7 +92,7 @@ public class BstIvtShafttubeivtServiceImpl extends ServiceImpl<BstIvtShafttubeiv
|
||||
.eq(BstIvtShafttubeivt::getPoint_type, type)
|
||||
.eq(BstIvtShafttubeivt::getPoint_location, location)
|
||||
.eq(BstIvtShafttubeivt::getHave_qzz, have);
|
||||
return bstIvtShafttubeivtMapper.selectList(lam);
|
||||
return bstIvtShafttubeivtMapper.getAllShaftPointsByConditions(type, location, have);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -4,24 +4,84 @@
|
||||
|
||||
<select id="getAllCutPlan"
|
||||
resultType="org.nl.b_lms.sch.tasks.slitter.mapper.dto.SlitterPlanDistinctDto">
|
||||
SELECT p.resource_name, p.parent_container_name, p.split_group, p.up_or_down, COALESCE(count_table.num, 0) AS num
|
||||
FROM `pdm_bi_slittingproductionplan` p
|
||||
SELECT
|
||||
p.resource_name,
|
||||
p.parent_container_name,
|
||||
p.split_group,
|
||||
p.up_or_down,
|
||||
COALESCE ( count_table.num, 0 ) num,
|
||||
COALESCE ( ct1.cn, 0 ) AS cn,
|
||||
COALESCE ( ct2.cnn, 0 ) AS cnn
|
||||
FROM
|
||||
`pdm_bi_slittingproductionplan` p
|
||||
LEFT JOIN (
|
||||
SELECT pp.resource_name, COUNT(*) AS num
|
||||
FROM pdm_bi_slittingproductionplan pp
|
||||
WHERE pp.qzzno IN (SELECT IF(LENGTH(bc.qzz_no1)>0,bc.qzz_no1,bc.qzz_no2) FROM bst_ivt_cutpointivt bc)
|
||||
AND pp.`status` <![CDATA[ < ]]> '09' AND pp.is_child_tz_ok = '1'
|
||||
GROUP BY pp.resource_name ) AS count_table
|
||||
ON p.resource_name = count_table.resource_name
|
||||
WHERE p.`status` = '01'
|
||||
SELECT
|
||||
pp.resource_name,
|
||||
COUNT(*) AS num
|
||||
FROM
|
||||
pdm_bi_slittingproductionplan pp
|
||||
WHERE
|
||||
pp.qzzno IN ( SELECT IF ( LENGTH( bc.qzz_no1 )> 0, bc.qzz_no1, bc.qzz_no2 ) FROM bst_ivt_cutpointivt bc )
|
||||
AND pp.`status` <![CDATA[ < ]]> '09'
|
||||
AND pp.is_child_tz_ok = '1'
|
||||
GROUP BY pp.resource_name
|
||||
) AS count_table ON p.resource_name = count_table.resource_name
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
pp.resource_name,
|
||||
COUNT(*) AS cn
|
||||
FROM
|
||||
pdm_bi_slittingproductionplan pp
|
||||
WHERE
|
||||
pp.qzzno IN ( SELECT IF ( LENGTH( tc.up_qzzno )> 0, tc.up_qzzno, tc.down_qzzno ) FROM st_ivt_cutpointivt tc )
|
||||
AND pp.`status` = '05'
|
||||
GROUP BY pp.resource_name
|
||||
) AS ct1 ON p.resource_name = ct1.resource_name
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
pp.resource_name,
|
||||
pp.parent_container_name,
|
||||
pp.split_group,
|
||||
pp.up_or_down,
|
||||
COUNT(*) AS cnn
|
||||
FROM
|
||||
pdm_bi_slittingproductionplan pp
|
||||
WHERE
|
||||
pp.`status` = '01'
|
||||
AND pp.is_child_tz_ok = '1'
|
||||
GROUP BY
|
||||
pp.resource_name,
|
||||
pp.parent_container_name,
|
||||
pp.split_group,
|
||||
pp.up_or_down
|
||||
) AS ct2 ON p.resource_name = ct2.resource_name
|
||||
AND p.parent_container_name = ct2.parent_container_name
|
||||
AND p.split_group = ct2.split_group
|
||||
AND p.up_or_down <![CDATA[ <> ]]> ct2.up_or_down
|
||||
WHERE
|
||||
p.`status` = '01'
|
||||
AND p.is_child_tz_ok = '0'
|
||||
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 ) IN ( 'B2' )
|
||||
AND p.up_or_down IS NOT NULL
|
||||
AND p.left_or_right IS NOT NULL
|
||||
GROUP BY p.resource_name, p.parent_container_name, p.split_group, p.up_or_down, num
|
||||
ORDER BY num, p.resource_name, p.parent_container_name, p.split_group, p.up_or_down
|
||||
GROUP BY
|
||||
p.resource_name,
|
||||
p.parent_container_name,
|
||||
p.split_group,
|
||||
p.up_or_down,
|
||||
num,
|
||||
cn,
|
||||
cnn
|
||||
ORDER BY
|
||||
cnn DESC,
|
||||
num,
|
||||
cn,
|
||||
p.resource_name,
|
||||
p.parent_container_name,
|
||||
p.split_group,
|
||||
p.up_or_down
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
package org.nl.b_lms.sch.point.dao;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
|
||||
/**
|
||||
@@ -22,13 +21,12 @@ import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||
public class StIvtCutpointivt extends Model<StIvtCutpointivt> {
|
||||
|
||||
private static final long serialVersionUID = -7739291296662381393L;
|
||||
//@TableId(value = "id", type = IdType.NONE)
|
||||
|
||||
|
||||
/**
|
||||
* 库存记录标识
|
||||
*/
|
||||
private Long ivt_id;
|
||||
@TableId(value = "ivt_id", type = IdType.NONE)
|
||||
private String ivt_id;
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -90,7 +90,7 @@ public class SendAirShaftAgvTask extends AbstractAcsTask {
|
||||
BstIvtCutpointivt startPointObj = bcutpointivtService.getPintByAgvCode(startPoint, false);
|
||||
String endPoint = task.getPoint_code2();
|
||||
BstIvtCutpointivt endPointObj = bcutpointivtService.getPintByAgvCode(endPoint, false);
|
||||
TaskUtils.pointExchangeResources(startPointObj, endPointObj, "3");
|
||||
TaskUtils.pointExchangeResources(startPointObj, endPointObj, "2");
|
||||
bcutpointivtService.updateById(startPointObj);
|
||||
bcutpointivtService.updateById(endPointObj);
|
||||
// 分切计划状态修改02->03
|
||||
@@ -98,9 +98,7 @@ public class SendAirShaftAgvTask extends AbstractAcsTask {
|
||||
.filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList());
|
||||
PdmBiSlittingproductionplan p = new PdmBiSlittingproductionplan();
|
||||
p.setStatus("03");
|
||||
p.setUpdate_optid("3");
|
||||
p.setUpdate_optname("ACS");
|
||||
p.setUpdate_time(DateUtil.now());
|
||||
TaskUtils.updateOptMessageBySlitterPlan(p);
|
||||
slittingproductionplanService.update(p, new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
|
||||
.in(PdmBiSlittingproductionplan::getQzzno, collect));
|
||||
}
|
||||
@@ -127,6 +125,7 @@ public class SendAirShaftAgvTask 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());
|
||||
@@ -149,12 +148,10 @@ public class SendAirShaftAgvTask extends AbstractAcsTask {
|
||||
.filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList());
|
||||
PdmBiSlittingproductionplan p = new PdmBiSlittingproductionplan();
|
||||
p.setStatus("02");
|
||||
p.setUpdate_optid("3");
|
||||
p.setUpdate_optname("ACS");
|
||||
p.setUpdate_time(DateUtil.now());
|
||||
TaskUtils.updateOptMessageBySlitterPlan(p);
|
||||
slittingproductionplanService.update(p, new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
|
||||
.in(PdmBiSlittingproductionplan::getQzzno, collect));
|
||||
this.immediateNotifyAcs(null);
|
||||
// this.immediateNotifyAcs(null);
|
||||
return task.getTask_id();
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.common.utils.TaskUtils;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.sch.AcsTaskDto;
|
||||
@@ -99,9 +100,7 @@ public class SlitterDownTrussTask extends AbstractAcsTask {
|
||||
// 下来的分切计划状态:06 -> 09
|
||||
PdmBiSlittingproductionplan p = new PdmBiSlittingproductionplan();
|
||||
p.setStatus("09");
|
||||
p.setUpdate_optid("3");
|
||||
p.setUpdate_optname("ACS");
|
||||
p.setUpdate_time(DateUtil.now());
|
||||
TaskUtils.updateOptMessageBySlitterPlan(p);
|
||||
List<String> downQzzNos = Stream.of(tmpUpQzzNo, tmpDownQzzNo)
|
||||
.filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList());
|
||||
slittingproductionplanService.update(p, new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
|
||||
@@ -110,8 +109,10 @@ public class SlitterDownTrussTask extends AbstractAcsTask {
|
||||
p.setStatus("05");
|
||||
List<String> upQzzNos = Stream.of(point2.getQzz_no1(), point2.getQzz_no2())
|
||||
.filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList());
|
||||
slittingproductionplanService.update(p, new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
|
||||
.in(PdmBiSlittingproductionplan::getQzzno, upQzzNos));
|
||||
if (upQzzNos.size() > 0) {
|
||||
slittingproductionplanService.update(p, new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
|
||||
.in(PdmBiSlittingproductionplan::getQzzno, upQzzNos));
|
||||
}
|
||||
// 点位数据更新
|
||||
point1.setUp_qzzno(point2.getQzz_no1());
|
||||
point1.setDown_qzzno(point2.getQzz_no2());
|
||||
@@ -121,9 +122,7 @@ public class SlitterDownTrussTask extends AbstractAcsTask {
|
||||
point2.setQzz_no1(tmpUpQzzNo);
|
||||
point2.setQzz_no2(tmpDownQzzNo);
|
||||
point2.setPoint_status("3");
|
||||
point2.setUpdate_optid("3");
|
||||
point2.setUpdate_optname("ACS");
|
||||
point2.setUpdate_time(DateUtil.now());
|
||||
TaskUtils.updateOptMessageByBCutPoint(point2);
|
||||
cutpointivtService.updateById(point1);
|
||||
bcutpointivtService.updateById(point2);
|
||||
}
|
||||
@@ -148,7 +147,10 @@ public class SlitterDownTrussTask extends AbstractAcsTask {
|
||||
task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
|
||||
task.setPoint_code1(form.getString("point_code1"));
|
||||
task.setPoint_code2(form.getString("point_code2"));
|
||||
task.setPoint_code3(form.getString("point_code3"));
|
||||
task.setPoint_code4(form.getString("point_code4"));
|
||||
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());
|
||||
@@ -166,7 +168,7 @@ public class SlitterDownTrussTask extends AbstractAcsTask {
|
||||
task.setPriority(priority_jo.getString("value"));
|
||||
}
|
||||
taskService.save(task);
|
||||
this.immediateNotifyAcs(null);
|
||||
// this.immediateNotifyAcs(null);
|
||||
return task.getTask_id();
|
||||
}
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.sch.tasks.slitter.mapper.dto.SlitterPlanDistinctDto;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.common.utils.TaskUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
@@ -134,17 +135,13 @@ public class TrussCallAirShaftTask extends AbstractAcsTask {
|
||||
}
|
||||
endPointObj.setHave_qzz("1");
|
||||
endPointObj.setQzz_size(extGroupData.getString("qzz_size"));
|
||||
endPointObj.setUpdate_optid("3");
|
||||
endPointObj.setUpdate_optname("ACS");
|
||||
endPointObj.setUpdate_time(DateUtil.now());
|
||||
TaskUtils.updateOptMessageByBShaftPoint(endPointObj);
|
||||
shafttubeivtService.updateById(endPointObj);
|
||||
// 起点清空
|
||||
startPointObj.setQzz_no1("");
|
||||
startPointObj.setQzz_no2("");
|
||||
startPointObj.setPoint_status("1");
|
||||
startPointObj.setUpdate_optid("3");
|
||||
startPointObj.setUpdate_optname("ACS");
|
||||
startPointObj.setUpdate_time(DateUtil.now());
|
||||
TaskUtils.updateOptMessageByBCutPoint(startPointObj);
|
||||
bcutpointivtService.updateById(startPointObj);
|
||||
|
||||
}
|
||||
@@ -185,7 +182,7 @@ public class TrussCallAirShaftTask extends AbstractAcsTask {
|
||||
task.setPriority(priority_jo.getString("value"));
|
||||
}
|
||||
taskService.save(task);
|
||||
this.immediateNotifyAcs(null);
|
||||
// this.immediateNotifyAcs(null);
|
||||
return task.getTask_id();
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.common.utils.TaskUtils;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.sch.AcsTaskDto;
|
||||
@@ -95,12 +96,10 @@ public class TrussSendAirShaftTask extends AbstractAcsTask {
|
||||
endPointObj.setQzz_no1(task.getVehicle_code());
|
||||
} else {
|
||||
// 下轴
|
||||
endPointObj.setQzz_no2(task.getVehicle_code());
|
||||
endPointObj.setQzz_no2(task.getVehicle_code2());
|
||||
}
|
||||
endPointObj.setPoint_status("2");
|
||||
endPointObj.setUpdate_optid("3");
|
||||
endPointObj.setUpdate_optname("ACS");
|
||||
endPointObj.setUpdate_time(DateUtil.now());
|
||||
TaskUtils.updateOptMessageByBCutPoint(endPointObj);
|
||||
bcutpointivtService.updateById(endPointObj);
|
||||
// 起点清空
|
||||
startPointObj.setQzz_size("");
|
||||
@@ -111,9 +110,7 @@ public class TrussSendAirShaftTask extends AbstractAcsTask {
|
||||
startPointObj.setContainer_name1("");
|
||||
startPointObj.setContainer_name2("");
|
||||
startPointObj.setHave_qzz("0");
|
||||
startPointObj.setUpdate_optid("3");
|
||||
startPointObj.setUpdate_optname("ACS");
|
||||
startPointObj.setUpdate_time(DateUtil.now());
|
||||
TaskUtils.updateOptMessageByBShaftPoint(startPointObj);
|
||||
shafttubeivtService.updateById(startPointObj);
|
||||
}
|
||||
// 取消
|
||||
@@ -121,7 +118,7 @@ public class TrussSendAirShaftTask extends AbstractAcsTask {
|
||||
task.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||
// todo: 是否需要回退分切计划套轴完成?
|
||||
}
|
||||
task.setUpdate_time(DateUtil.now());
|
||||
TaskUtils.updateOptMessageByTask(task);
|
||||
taskService.updateById(task);
|
||||
}
|
||||
|
||||
@@ -136,7 +133,8 @@ public class TrussSendAirShaftTask extends AbstractAcsTask {
|
||||
task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
|
||||
task.setPoint_code1(form.getString("point_code1"));
|
||||
task.setPoint_code2(form.getString("point_code2"));
|
||||
task.setVehicle_code(form.getString("vehicle_code"));
|
||||
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());
|
||||
@@ -154,7 +152,7 @@ public class TrussSendAirShaftTask extends AbstractAcsTask {
|
||||
task.setPriority(priority_jo.getString("value"));
|
||||
}
|
||||
taskService.save(task);
|
||||
this.immediateNotifyAcs(null);
|
||||
// this.immediateNotifyAcs(null);
|
||||
return task.getTask_id();
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.common.utils.TaskUtils;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.sch.AcsTaskDto;
|
||||
@@ -80,6 +81,7 @@ public class UpShaftTrussTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||
SchBaseTask task = taskService.getById(taskObj.getString("task_id"));
|
||||
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
|
||||
@@ -98,25 +100,21 @@ public class UpShaftTrussTask extends AbstractAcsTask {
|
||||
// 交换数据
|
||||
point2.setUp_qzzno(point1.getQzz_no1());
|
||||
point2.setDown_qzzno(point1.getQzz_no2());
|
||||
point2.setUpdate_optid(3L);
|
||||
point2.setUpdate_optname("ACS");
|
||||
point2.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId()));
|
||||
point2.setUpdate_optname(SecurityUtils.getCurrentUsername());
|
||||
point2.setUpdate_time(DateUtil.now());
|
||||
cutpointivtService.updateById(point2);
|
||||
point1.setQzz_no1("");
|
||||
point1.setQzz_no2("");
|
||||
point1.setPoint_status("1");
|
||||
point1.setUpdate_optid("3");
|
||||
point1.setUpdate_optname("ACS");
|
||||
point1.setUpdate_time(DateUtil.now());
|
||||
TaskUtils.updateOptMessageByBCutPoint(point1);
|
||||
bcutpointivtService.updateById(point1);
|
||||
// 分切计划修改状态04->05
|
||||
List<String> collect = Stream.of(task.getVehicle_code(), task.getVehicle_code2())
|
||||
.filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList());
|
||||
PdmBiSlittingproductionplan p = new PdmBiSlittingproductionplan();
|
||||
p.setStatus("05");
|
||||
p.setUpdate_optid("3");
|
||||
p.setUpdate_optname("ACS");
|
||||
p.setUpdate_time(DateUtil.now());
|
||||
TaskUtils.updateOptMessageBySlitterPlan(p);
|
||||
slittingproductionplanService.update(p, new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
|
||||
.in(PdmBiSlittingproductionplan::getQzzno, collect));
|
||||
}
|
||||
@@ -124,7 +122,7 @@ public class UpShaftTrussTask extends AbstractAcsTask {
|
||||
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||
task.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||
}
|
||||
task.setUpdate_time(DateUtil.now());
|
||||
TaskUtils.updateOptMessageByTask(task);
|
||||
taskService.updateById(task);
|
||||
}
|
||||
|
||||
@@ -140,7 +138,10 @@ public class UpShaftTrussTask extends AbstractAcsTask {
|
||||
task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
|
||||
task.setPoint_code1(form.getString("point_code1"));
|
||||
task.setPoint_code2(form.getString("point_code2"));
|
||||
task.setPoint_code3(form.getString("point_code3"));
|
||||
task.setPoint_code4(form.getString("point_code4"));
|
||||
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());
|
||||
@@ -163,12 +164,10 @@ public class UpShaftTrussTask extends AbstractAcsTask {
|
||||
.filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList());
|
||||
PdmBiSlittingproductionplan p = new PdmBiSlittingproductionplan();
|
||||
p.setStatus("04");
|
||||
p.setUpdate_optid("3");
|
||||
p.setUpdate_optname("ACS");
|
||||
p.setUpdate_time(DateUtil.now());
|
||||
TaskUtils.updateOptMessageBySlitterPlan(p);
|
||||
slittingproductionplanService.update(p, new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
|
||||
.in(PdmBiSlittingproductionplan::getQzzno, collect));
|
||||
this.immediateNotifyAcs(null);
|
||||
// this.immediateNotifyAcs(null);
|
||||
return task.getTask_id();
|
||||
}
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ public class AutoCallAirShaftTask {
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void run() {
|
||||
// 1、获取空的插拔轴位
|
||||
// 1、获取空的插拔轴位(无任务)
|
||||
List<BstIvtShafttubeivt> emptyPoints = bstIvtShafttubeivtService.getAllShaftPointsByConditions("2","0","0");
|
||||
emptyPoints.forEach(empty -> {
|
||||
// 2、获取分切计划数据,todo:暂时不考虑区域
|
||||
@@ -127,7 +127,7 @@ public class AutoCallAirShaftTask {
|
||||
});
|
||||
}
|
||||
|
||||
private static void saveCutPlanMessage(BstIvtShafttubeivt empty, List<PdmBiSlittingproductionplan> needPlans, String qzzSize) {
|
||||
private void saveCutPlanMessage(BstIvtShafttubeivt empty, List<PdmBiSlittingproductionplan> needPlans, String qzzSize) {
|
||||
empty.setHave_qzz("1");
|
||||
empty.setQzz_size(qzzSize);
|
||||
empty.setUpdate_optid(SecurityUtils.getCurrentUserId());
|
||||
@@ -156,6 +156,14 @@ public class AutoCallAirShaftTask {
|
||||
empty.setContainer_name2(plan.getContainer_name());
|
||||
}
|
||||
}
|
||||
bstIvtShafttubeivtService.updateById(empty);
|
||||
// 分切计划
|
||||
// 将分切计划is_paper_ok 1 -> 2
|
||||
needPlans.forEach(p -> {
|
||||
p.setIs_paper_ok("2");
|
||||
TaskUtils.updateOptMessageBySlitterPlan(p);
|
||||
});
|
||||
slittingproductionplanService.updateBatchById(needPlans);
|
||||
}
|
||||
|
||||
private void makePullShaft(BstIvtShafttubeivt empty) {
|
||||
|
||||
@@ -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.mapper.SlitterMapper;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -35,6 +36,8 @@ public class AutoSendAirShaftAgvTask {
|
||||
private IPdmBiSlittingproductionplanService slittingproductionplanService;
|
||||
@Autowired
|
||||
private SendAirShaftAgvTask sendAirShaftAgvTask;
|
||||
@Autowired
|
||||
private SlitterMapper slitterMapper;
|
||||
|
||||
public void run() {
|
||||
// 获取套轴对接位有气涨轴没任务的点位
|
||||
@@ -67,12 +70,8 @@ public class AutoSendAirShaftAgvTask {
|
||||
}
|
||||
}
|
||||
// 如果两个气涨轴编码则表示一组满了
|
||||
// 查找分切对接的空位 todo: (校验任务)
|
||||
List<BstIvtCutpointivt> emptyPoint = bcutpointivtService.list(new LambdaQueryWrapper<BstIvtCutpointivt>()
|
||||
.eq(BstIvtCutpointivt::getPoint_type, "3")
|
||||
.eq(BstIvtCutpointivt::getPoint_status, "1")
|
||||
.eq(BstIvtCutpointivt::getIs_used, "1")
|
||||
.last("ORDER BY ABS(sort_seq - " + deviceCut.getSort_seq() + ")"));
|
||||
// 查找分切对接没任务的空位
|
||||
List<BstIvtCutpointivt> emptyPoint = slitterMapper.getEmptyCutPointNotTask(deviceCut.getSort_seq());
|
||||
if (emptyPoint.size() == 0) {
|
||||
log.warn("找不到对应的位置!");
|
||||
return;
|
||||
|
||||
@@ -52,16 +52,6 @@ public class AutoSlitterDownAgvTask {
|
||||
// 获取满轴数据 todo: 先不考虑区域,后期添加
|
||||
List<BstIvtCutpointivt> cutPointIvts = slitterMapper.getAreaFullVolume();
|
||||
cutPointIvts.forEach(cut -> {
|
||||
// 校验任务
|
||||
List<String> collect = Stream.of(cut.getPoint_code(), cut.getTruss_point_code1(), cut.getTruss_point_code2())
|
||||
.collect(Collectors.toList());
|
||||
List<SchBaseTask> list = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.le(SchBaseTask::getTask_status, "07")
|
||||
.in(SchBaseTask::getPoint_code1, collect).in(SchBaseTask::getPoint_code2, collect)
|
||||
.in(SchBaseTask::getPoint_code3, collect).in(SchBaseTask::getPoint_code4, collect));
|
||||
if (list.size() > 0) {
|
||||
return;
|
||||
}
|
||||
// cut是起点
|
||||
// 1、先去对应的套轴对接位,没有气涨轴(空位),没有任务的点位
|
||||
List<BstIvtCutpointivt> areaEmptyNotTaskPoint = cutpointivtService.getAreaNotTaskPointByStatus("1", "1", "2");
|
||||
|
||||
@@ -13,9 +13,9 @@ 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.mapper.SlitterMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -40,6 +40,8 @@ public class AutoUpShaftTrussTask {
|
||||
private UpShaftTrussTask upShaftTrussTask;
|
||||
@Autowired
|
||||
private IschBaseTaskService taskService;
|
||||
@Autowired
|
||||
private SlitterMapper slitterMapper;
|
||||
|
||||
public void run() {
|
||||
// 获取没有气涨轴的分切机点位
|
||||
@@ -51,17 +53,25 @@ public class AutoUpShaftTrussTask {
|
||||
// 校验任务
|
||||
List<String> collect = Stream.of(device.getUp_point_code(), device.getDown_point_code()).collect(Collectors.toList());
|
||||
List<SchBaseTask> list = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.le(SchBaseTask::getTask_status, "07")
|
||||
.lt(SchBaseTask::getTask_status, "07")
|
||||
.in(SchBaseTask::getPoint_code1, collect).in(SchBaseTask::getPoint_code2, collect)
|
||||
.in(SchBaseTask::getPoint_code3, collect).in(SchBaseTask::getPoint_code4, collect));
|
||||
if (list.size() > 0) {
|
||||
return;
|
||||
}
|
||||
// 获取备好轴的对接点位
|
||||
List<BstIvtCutpointivt> cutPointList = slitterMapper.getReadyShaftPoint(device.getExt_code());
|
||||
if (cutPointList.size() == 0) {
|
||||
log.warn("分切机【" + device.getExt_code() + "】未找到套好纸管的气涨轴");
|
||||
// 下个分切机
|
||||
return;
|
||||
}
|
||||
BstIvtCutpointivt newCutPoint = cutPointList.get(0);
|
||||
// 获取当前分切机的下一组分切计划(最多四条分切计划)
|
||||
List<String> qzzNos = Stream.of(newCutPoint.getQzz_no1(), newCutPoint.getQzz_no2())
|
||||
.filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList());
|
||||
List<PdmBiSlittingproductionplan> nextPlans = slittingproductionplanService.list(new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
|
||||
.eq(PdmBiSlittingproductionplan::getResource_name, device.getExt_code())
|
||||
.eq(PdmBiSlittingproductionplan::getStatus, "03")
|
||||
.eq(PdmBiSlittingproductionplan::getIs_delete, "0"));
|
||||
.in(PdmBiSlittingproductionplan::getQzzno, qzzNos));
|
||||
if (nextPlans.size() == 0) {
|
||||
log.warn("分切机【" + device.getExt_code() + "】未找到套好轴的分切计划");
|
||||
// 下个分切机
|
||||
@@ -71,17 +81,6 @@ public class AutoUpShaftTrussTask {
|
||||
// 筛选上下轴各一条
|
||||
PdmBiSlittingproductionplan nextUpPlan = nextPlans.stream().filter(p -> "1".equals(p.getUp_or_down())).findFirst().orElse(null);
|
||||
PdmBiSlittingproductionplan nextDownPlan = nextPlans.stream().filter(p -> "2".equals(p.getUp_or_down())).findFirst().orElse(null);
|
||||
LambdaQueryWrapper<BstIvtCutpointivt> lam = new LambdaQueryWrapper<>();
|
||||
lam.eq(BstIvtCutpointivt::getPoint_type, "3")
|
||||
.eq(BstIvtCutpointivt::getPoint_status, "2")
|
||||
.eq(BstIvtCutpointivt::getIs_used, "1");
|
||||
if (ObjectUtil.isNotEmpty(nextUpPlan)) {
|
||||
lam.eq(BstIvtCutpointivt::getQzz_no1, nextUpPlan.getQzzno());
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(nextDownPlan)) {
|
||||
lam.eq(BstIvtCutpointivt::getQzz_no2, nextDownPlan.getQzzno());
|
||||
}
|
||||
BstIvtCutpointivt newCutPoint = bcutpointivtService.getOne(lam, false);
|
||||
// 查找对应的分切对接位
|
||||
if (ObjectUtil.isNotEmpty(nextUpPlan) && ObjectUtil.isNotEmpty(nextDownPlan)) {
|
||||
// 双轴任务
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
package org.nl.b_lms.sch.tasks.slitter.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.b_lms.sch.tasks.slitter.service.SlitterService;
|
||||
import org.nl.modules.logging.annotation.Log;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Description:
|
||||
* @Date: 2024/2/29
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@SaIgnore
|
||||
@RequestMapping("/api/wms/apply")
|
||||
public class SlitterController {
|
||||
@Autowired
|
||||
private SlitterService slitterService;
|
||||
|
||||
@PostMapping("/test1")
|
||||
@Log("1111")
|
||||
public ResponseEntity<Object> create(@RequestBody JSONObject entity){
|
||||
return new ResponseEntity<>(slitterService.acsRequestShaftPluckTube(entity), HttpStatus.CREATED);
|
||||
}
|
||||
@PostMapping("/test2")
|
||||
@Log("1111")
|
||||
public ResponseEntity<Object> create2(@RequestBody JSONObject entity){
|
||||
return new ResponseEntity<>(slitterService.acsFinishLoadShaft(entity), HttpStatus.CREATED);
|
||||
}
|
||||
@PostMapping("/test3")
|
||||
@Log("1111")
|
||||
public ResponseEntity<Object> create3(@RequestBody JSONObject entity){
|
||||
List<String> collect = Stream.of("B2382401020202A1").collect(Collectors.toList());
|
||||
entity.put("container", collect);
|
||||
return new ResponseEntity<>(slitterService.mesSlittingMachineSendMaterial(entity), HttpStatus.CREATED);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.nl.b_lms.sch.tasks.slitter.mapper;
|
||||
import org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt;
|
||||
import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -31,4 +32,18 @@ public interface SlitterMapper {
|
||||
* @return /
|
||||
*/
|
||||
List<BstIvtCutpointivt> getAreaFullVolume();
|
||||
|
||||
/**
|
||||
* 获取分切机下料位没任务的点位
|
||||
* @param sortSeq
|
||||
* @return
|
||||
*/
|
||||
List<BstIvtCutpointivt> getEmptyCutPointNotTask(BigDecimal sortSeq);
|
||||
|
||||
/**
|
||||
* 获取分切机下一组分切计划对应的点位
|
||||
* @param extCode
|
||||
* @return
|
||||
*/
|
||||
List<BstIvtCutpointivt> getReadyShaftPoint(String extCode);
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
LEFT JOIN pdm_bi_slittingproductionplan p ON p.qzzno = bct.qzz_no1 OR p.qzzno = bct.qzz_no2
|
||||
WHERE bct.point_status = '2' AND p.parent_container_name = #{parent_container_name} AND p.split_group = #{split_group}
|
||||
AND (bct.qzz_no1 IS NULL OR bct.qzz_no1 = '' OR bct.qzz_no2 IS NULL OR bct.qzz_no2 = '')
|
||||
LIMIT 1
|
||||
</select>
|
||||
<select id="getSameGroupTaskPoint" resultType="java.lang.String">
|
||||
SELECT t.point_code2
|
||||
@@ -20,11 +21,47 @@
|
||||
AND p.parent_container_name = #{parent_container_name} AND p.split_group = #{split_group}
|
||||
</select>
|
||||
<select id="getAreaFullVolume" resultType="org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt">
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
`bst_ivt_cutpointivt` bct
|
||||
WHERE bct.point_type IN ('2', '3') AND bct.point_status = '3'
|
||||
SELECT bct.*
|
||||
FROM `bst_ivt_cutpointivt` bct
|
||||
WHERE bct.point_type IN ('2', '3')
|
||||
AND bct.point_status = '3'
|
||||
AND 0 = (SELECT COUNT(*)
|
||||
FROM sch_base_task t
|
||||
WHERE t.task_status <![CDATA[ < ]]> '07'
|
||||
AND (
|
||||
t.point_code1 = bct.point_code
|
||||
OR t.point_code1 = bct.truss_point_code1
|
||||
OR t.point_code1 = bct.truss_point_code1
|
||||
OR t.point_code3 = bct.point_code
|
||||
OR t.point_code3 = bct.truss_point_code1
|
||||
OR t.point_code3 = bct.truss_point_code1
|
||||
))
|
||||
ORDER BY bct.point_type DESC
|
||||
|
||||
</select>
|
||||
<select id="getEmptyCutPointNotTask"
|
||||
resultType="org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt">
|
||||
SELECT
|
||||
bcp.*
|
||||
FROM
|
||||
`bst_ivt_cutpointivt` bcp
|
||||
WHERE bcp.point_type = '3' AND bcp.point_status = '1' AND bcp.is_used = '1'
|
||||
AND 0 = (
|
||||
SELECT COUNT(*) FROM sch_base_task t
|
||||
WHERE t.task_status <![CDATA[ < ]]> '07' AND (t.point_code2 = bcp.point_code OR t.point_code2 = bcp.truss_point_code1
|
||||
OR t.point_code4 = bcp.truss_point_code1 OR t.point_code2 = bcp.truss_point_code2 OR t.point_code4 = bcp.truss_point_code2)
|
||||
)
|
||||
ORDER BY ABS(bcp.sort_seq - #{sortSeq})
|
||||
</select>
|
||||
<select id="getReadyShaftPoint"
|
||||
resultType="org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt">
|
||||
SELECT
|
||||
bsp.*
|
||||
FROM
|
||||
`bst_ivt_cutpointivt` bsp
|
||||
LEFT JOIN pdm_bi_slittingproductionplan p ON p.is_delete = '0' AND p.`status` = '03' AND (p.qzzno = bsp.qzz_no1 OR p.qzzno = bsp.qzz_no2)
|
||||
WHERE bsp.point_type = '3' AND bsp.point_status = '2' AND p.workorder_id IS NOT NULL
|
||||
AND p.resource_name = #{extCode}
|
||||
ORDER BY bsp.update_time
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -8,6 +8,13 @@ import com.alibaba.fastjson.JSONObject;
|
||||
* @date 2024-02-26
|
||||
**/
|
||||
public interface SlitterService {
|
||||
/**
|
||||
* acs申请套轴
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
JSONObject acsRequestShaftPluckTube(JSONObject param);
|
||||
|
||||
/**
|
||||
* acs申请拔轴完毕
|
||||
* @param param
|
||||
|
||||
@@ -28,6 +28,7 @@ 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.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
@@ -57,6 +58,20 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
@Autowired
|
||||
private SlitterDownTrussTask slitterDownTrussTask;
|
||||
|
||||
@Override
|
||||
public JSONObject acsRequestShaftPluckTube(JSONObject param) {
|
||||
JSONObject res = new JSONObject();
|
||||
JSONObject con = new JSONObject();
|
||||
String deviceCode = param.getString("device_code");
|
||||
BstIvtShafttubeivt point = shafttubeivtService.getByPointCode(deviceCode, false);
|
||||
res.put("code", HttpStatus.HTTP_OK);
|
||||
res.put("device_code", deviceCode);
|
||||
res.put("data", con);
|
||||
con.put("left", point.getTube_code1());
|
||||
con.put("right", point.getTube_code2());
|
||||
return res;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject acsFinishShaftPluckTube(JSONObject param) {
|
||||
JSONObject res = new JSONObject();
|
||||
@@ -96,9 +111,15 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
public JSONObject acsFinishLoadShaft(JSONObject param) {
|
||||
JSONObject res = new JSONObject();
|
||||
String deviceCode = param.getString("device_code");
|
||||
// todo: 判断是否有未完成的任务
|
||||
// 判断是否有未完成的任务
|
||||
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());
|
||||
@@ -133,17 +154,16 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
plans.forEach(plan -> {
|
||||
plan.setIs_child_tz_ok("1");
|
||||
plan.setQzzno(qzzNo);
|
||||
plan.setUpdate_optid("3");
|
||||
plan.setUpdate_optname("ACS");
|
||||
plan.setUpdate_time(DateUtil.now());
|
||||
TaskUtils.updateOptMessageBySlitterPlan(plan);
|
||||
});
|
||||
slittingproductionplanService.updateBatchById(plans);
|
||||
// 创建任务
|
||||
JSONObject taskParam = new JSONObject();
|
||||
taskParam.put("point_code1", startPoint.getPoint_code());
|
||||
taskParam.put("point_code2", ObjectUtil.isEmpty(cutPoint.getTruss_point_code1())
|
||||
taskParam.put("point_code2", "1".equals(demoPlan.getUp_or_down())
|
||||
? cutPoint.getTruss_point_code1() : cutPoint.getTruss_point_code2());
|
||||
taskParam.put("vehicle_code", qzzNo);
|
||||
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);
|
||||
@@ -166,7 +186,11 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
}
|
||||
// 获取分切计划,最多4个需要出站的任务
|
||||
List<PdmBiSlittingproductionplan> currentPlans = slittingproductionplanService.list(new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
|
||||
.in(PdmBiSlittingproductionplan::getContainer_name, containerList));
|
||||
.in(PdmBiSlittingproductionplan::getContainer_name, containerList)
|
||||
.eq(PdmBiSlittingproductionplan::getStatus, "05"));
|
||||
if (currentPlans.size() == 0) {
|
||||
throw new BadRequestException("当前子卷已经出卷或者不存在!");
|
||||
}
|
||||
// 获取上轴分切计划和下轴分切计划,各一条
|
||||
PdmBiSlittingproductionplan currentUpPlan = currentPlans.stream().filter(p -> "1".equals(p.getUp_or_down())).findFirst().orElse(null);
|
||||
PdmBiSlittingproductionplan currentDownPlan = currentPlans.stream().filter(p -> "2".equals(p.getUp_or_down())).findFirst().orElse(null);
|
||||
@@ -187,12 +211,8 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
JSONObject taskParam = new JSONObject();
|
||||
if (timePlans.size() == 0) {
|
||||
// 如果没有下一组分切计划,就只做下卷任务(判断下单/下双)
|
||||
// 获取分切对接位没任务的空位置 todo: 校验任务未作
|
||||
List<BstIvtCutpointivt> emptyPoints = bcutpointivtService.list(new LambdaQueryWrapper<BstIvtCutpointivt>()
|
||||
.eq(BstIvtCutpointivt::getPoint_type, "3")
|
||||
.eq(BstIvtCutpointivt::getPoint_status, "1")
|
||||
.eq(BstIvtCutpointivt::getIs_used, "1")
|
||||
.last("ORDER BY ABS(sort_seq - " + device.getSort_seq() + ")"));
|
||||
// 获取分切对接位没任务的空位置
|
||||
List<BstIvtCutpointivt> emptyPoints = slitterMapper.getEmptyCutPointNotTask(device.getSort_seq());
|
||||
if (emptyPoints.size() == 0) {
|
||||
throw new BadRequestException("分切机【" + device.getExt_code() + "】找不到对应的对接位!");
|
||||
}
|
||||
@@ -219,10 +239,10 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
// 分切计划修改状态 05 -> 06
|
||||
currentPlans.forEach(plan -> {
|
||||
plan.setStatus("06");
|
||||
plan.setUpdate_optid("3");
|
||||
plan.setUpdate_optname("ACS");
|
||||
plan.setUpdate_time(DateUtil.now());
|
||||
TaskUtils.updateOptMessageBySlitterPlan(plan);
|
||||
});
|
||||
// 创建任务
|
||||
slitterDownTrussTask.createTask(taskParam);
|
||||
slittingproductionplanService.updateBatchById(currentPlans);
|
||||
return res;
|
||||
}
|
||||
@@ -234,7 +254,7 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
// 筛选上下轴各一条
|
||||
PdmBiSlittingproductionplan nextUpPlan = nextPlans.stream().filter(p -> "1".equals(p.getUp_or_down())).findFirst().orElse(null);
|
||||
PdmBiSlittingproductionplan nextDownPlan = nextPlans.stream().filter(p -> "2".equals(p.getUp_or_down())).findFirst().orElse(null);
|
||||
// 找到该分切计划的点位 todo: 应该校验没任务
|
||||
// 找到该分切计划的点位
|
||||
LambdaQueryWrapper<BstIvtCutpointivt> newCutLam = new QueryWrapper<BstIvtCutpointivt>().lambda();
|
||||
newCutLam.eq(BstIvtCutpointivt::getPoint_type, "3").eq(BstIvtCutpointivt::getPoint_status, "1")
|
||||
.eq(BstIvtCutpointivt::getIs_used, "1");
|
||||
@@ -298,19 +318,18 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
// 下来的分切计划修改状态:05 -> 06
|
||||
currentPlans.forEach(plan -> {
|
||||
plan.setStatus("06");
|
||||
plan.setUpdate_optid("3");
|
||||
plan.setUpdate_optname("ACS");
|
||||
plan.setUpdate_time(DateUtil.now());
|
||||
TaskUtils.updateOptMessageBySlitterPlan(plan);
|
||||
});
|
||||
slittingproductionplanService.updateBatchById(currentPlans);
|
||||
// slittingproductionplanService.updateBatchById(currentPlans);
|
||||
// 上去的分切计划修改状态:03 -> 04
|
||||
nextPlans.forEach(plan -> {
|
||||
plan.setStatus("04");
|
||||
plan.setUpdate_optid("3");
|
||||
plan.setUpdate_optname("ACS");
|
||||
plan.setUpdate_time(DateUtil.now());
|
||||
TaskUtils.updateOptMessageBySlitterPlan(plan);
|
||||
});
|
||||
slittingproductionplanService.updateBatchById(nextPlans);
|
||||
List<PdmBiSlittingproductionplan> mergedList = new ArrayList<>();
|
||||
mergedList.addAll(currentPlans);
|
||||
mergedList.addAll(nextPlans);
|
||||
slittingproductionplanService.updateBatchById(mergedList);
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt;
|
||||
import org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.BstIvtShafttubeivt;
|
||||
import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
|
||||
@@ -22,18 +23,21 @@ public class TaskUtils {
|
||||
* @param status 目标状态
|
||||
*/
|
||||
public static void pointExchangeResources(BstIvtCutpointivt source, BstIvtCutpointivt target, String status) {
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String currentUsername = SecurityUtils.getCurrentUsername();
|
||||
String now = DateUtil.now();
|
||||
target.setQzz_no1(source.getQzz_no1());
|
||||
target.setQzz_no2(source.getQzz_no2());
|
||||
target.setPoint_status(status);
|
||||
target.setUpdate_optid("3");
|
||||
target.setUpdate_optname("ACS");
|
||||
target.setUpdate_time(DateUtil.now());
|
||||
target.setUpdate_optid(currentUserId);
|
||||
target.setUpdate_optname(currentUsername);
|
||||
target.setUpdate_time(now);
|
||||
source.setQzz_no1("");
|
||||
source.setQzz_no2("");
|
||||
source.setPoint_status("1");
|
||||
source.setUpdate_optid("3");
|
||||
source.setUpdate_optname("ACS");
|
||||
source.setUpdate_time(DateUtil.now());
|
||||
source.setUpdate_optid(currentUserId);
|
||||
source.setUpdate_optname(currentUsername);
|
||||
source.setUpdate_time(now);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -78,4 +82,24 @@ public class TaskUtils {
|
||||
task.setUpdate_optname(SecurityUtils.getCurrentUsername());
|
||||
task.setUpdate_time(DateUtil.now());
|
||||
}
|
||||
|
||||
/**
|
||||
* 赋值任务的修改时间、人等信息
|
||||
* @param point 任务
|
||||
*/
|
||||
public static void updateOptMessageByBCutPoint(BstIvtCutpointivt point) {
|
||||
point.setUpdate_optid(SecurityUtils.getCurrentUserId());
|
||||
point.setUpdate_optname(SecurityUtils.getCurrentUsername());
|
||||
point.setUpdate_time(DateUtil.now());
|
||||
}
|
||||
|
||||
/**
|
||||
* 赋值任务的修改时间、人等信息
|
||||
* @param point 任务
|
||||
*/
|
||||
public static void updateOptMessageByBShaftPoint(BstIvtShafttubeivt point) {
|
||||
point.setUpdate_optid(SecurityUtils.getCurrentUserId());
|
||||
point.setUpdate_optname(SecurityUtils.getCurrentUsername());
|
||||
point.setUpdate_time(DateUtil.now());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.modules.wql.util.WqlUtil;
|
||||
import org.nl.wms.basedata.master.service.ClassstandardService;
|
||||
import org.nl.wms.basedata.master.service.dto.ClassstandardDto;
|
||||
@@ -98,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");
|
||||
@@ -139,8 +140,7 @@ public class TaskServiceImpl implements TaskService {
|
||||
String processing_class = taskObj.getString("handle_class");
|
||||
String message = "";
|
||||
try {
|
||||
Class<?> clz = Class.forName(processing_class);
|
||||
Object obj = clz.newInstance();
|
||||
Object obj = SpringContextHolder.getBean(Class.forName(processing_class));
|
||||
// 调用每个任务类的method_name()强制结束方法
|
||||
Method m = obj.getClass().getMethod(method_name, String.class);
|
||||
JSONObject result = (JSONObject) m.invoke(obj, task_id);
|
||||
|
||||
Reference in New Issue
Block a user