This commit is contained in:
psh
2024-06-17 18:13:19 +08:00
parent 5f12dbf052
commit 56b83f9532
5 changed files with 102 additions and 132 deletions

View File

@@ -84,6 +84,11 @@ public class GHCMLTask extends AbstractTask {
param.put("vehicle_code", point.getVehicle_code());
param.put("vehicle_type", point.getVehicle_type());
param.put("create_mode", GeneralDefinition.AUTO_CREATION);
SchBaseVehiclematerialgroup groupInfo = vehiclematerialgroupService.getVehicleGroupInfo(
point.getVehicle_code(),
point.getVehicle_type(),
GroupBindMaterialStatusEnum.BOUND.getValue());
param.put("material_id", groupInfo.getMaterial_id());
task.apply(param);
});
}
@@ -103,7 +108,7 @@ public class GHCMLTask extends AbstractTask {
// 找终点
String requestParam = task.getRequest_param();
JSONObject jsonObject = JSONObject.parseObject(requestParam);
jsonObject.put("material_id", ObjectUtil.isNotEmpty(groupInfo)?groupInfo.getMaterial_id():null);
jsonObject.put("material_id", ObjectUtil.isNotEmpty(groupInfo) ? groupInfo.getMaterial_id() : null);
SchBasePoint point = findNextPoint(nextRegionStr, jsonObject);
if (ObjectUtil.isEmpty(point)) {
throw new BadRequestException("涂板线[" + task.getPoint_code1() + "]未找到所需点位!");
@@ -111,6 +116,7 @@ public class GHCMLTask extends AbstractTask {
// 设置组盘 - 需要的话由子类自行实现
task.setGroup_id(setGroupPlate(jsonObject));
// 设置等待点并修改创建成功状态
// task.setNext_wait_point(point.getPoint_code());
task.setPoint_code2(point.getPoint_code());
task.setTask_status(TaskStatus.CREATED.getCode());
task.setRemark("");
@@ -120,10 +126,15 @@ public class GHCMLTask extends AbstractTask {
PointUtils.setUpdateByAcs(point);
pointService.updateById(point);
//任务创建后锁住起点
startPoint.setIng_task_code(task.getTask_code());
pointService.updateById(startPoint);
}
/**
* 寻找终点等待点
*
* @param nextRegionStr: 只有一个区域
* @param jsonObject
* @return
@@ -136,10 +147,11 @@ public class GHCMLTask extends AbstractTask {
, jsonObject.getString("material_id"));
if (ObjectUtil.isNotEmpty(sameMaterialPoints)) {
// 找到相同物料。分配等待点。
SchBasePoint point = pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
SchBasePoint point = pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
.in(SchBasePoint::getRegion_code, nextRegionStr)
.eq(SchBasePoint::getRow_num, sameMaterialPoints.getRow_num())
.eq(SchBasePoint::getIs_used, true)
.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode())
.orderByAsc(SchBasePoint::getCol_num), false);
if (ObjectUtil.isNotEmpty(point)) {
return point;
@@ -237,6 +249,14 @@ public class GHCMLTask extends AbstractTask {
public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
// 获取参数
String startPoint = taskObj.getPoint_code1();
SchBasePoint startPointObj = pointService.getById(startPoint);
// 起点点解锁
if (ObjectUtil.isNotEmpty(startPointObj)) {
startPointObj.setIng_task_code("");
PointUtils.setUpdateByType(startPointObj, taskFinishedType);
pointService.updateById(startPointObj);
}
String endPoint = taskObj.getPoint_code2();
SchBasePoint endPointObj = pointService.getById(endPoint);
// 终点解锁
@@ -269,6 +289,7 @@ public class GHCMLTask extends AbstractTask {
/**
* 二次申请
*
* @param task_id: 任务标识
* @return
*/

View File

@@ -97,9 +97,11 @@ public class GHCQLTask extends AbstractTask {
SchBasePoint point = findStartPoint(startRegionStr, extGroupData);
if (ObjectUtil.isEmpty(point)) {
// 消息通知
noticeService.createNotice("固化室没有所需物料!", TASK_CONFIG_CODE + task.getPoint_code2(),
noticeService.createNotice("固化室没有所需物料,将该固化室改为无货状态!", TASK_CONFIG_CODE + task.getPoint_code2(),
NoticeTypeEnum.WARN.getCode());
throw new BadRequestException("固化室没有所需物料!");
SchBasePoint schBasePoint=pointService.getById(task.getPoint_code2().substring(0, task.getPoint_code2().length() - 1));
schBasePoint.setPoint_status(PointStatusEnum.EMPTY_POINT.getCode());
pointService.update(schBasePoint);
}
// 设置起点并修改创建成功状态
task.setPoint_code1(point.getPoint_code());

View File

@@ -17,82 +17,30 @@
p.*
FROM
`sch_base_point` p
WHERE p.region_code = 'GH' AND p.point_type = '3' AND p.point_status = '2'
WHERE p.region_code = 'GH' AND p.point_type = '3' AND p.point_status = '2' and (p.ing_task_code = '' OR p.ing_task_code IS NULL)
ORDER BY p.row_num, p.col_num
</select>
<select id="getZCSameMaterialPoint" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">
SELECT p.*
FROM `sch_base_point` p
LEFT JOIN sch_base_vehiclematerialgroup vg ON p.vehicle_code = vg.vehicle_code
AND p.vehicle_type = vg.vehicle_type AND vg.group_bind_material_status = '2'
WHERE p.region_code = #{regionCode}
AND p.point_status = '2'
AND vg.material_id = #{materialId}
AND p.col_num >
(SELECT MIN(p2.col_num)
FROM sch_base_point p2
WHERE p2.region_code = #{regionCode}
AND p2.row_num = p.row_num
AND p2.is_used = TRUE)
AND (SELECT COUNT(*)
FROM sch_base_point p3
WHERE p3.col_num <![CDATA[ < ]]> p.col_num
AND p3.region_code = #{regionCode}
AND p3.is_used = TRUE
AND p3.row_num = p.row_num
AND p3.point_status = '1') <![CDATA[ > ]]>
(SELECT COUNT(*)
FROM sch_base_task t
WHERE t.next_wait_point = (SELECT p4.point_code
FROM sch_base_point p4
WHERE p4.region_code = #{regionCode}
AND p4.is_used = TRUE
AND p4.row_num = p.row_num
ORDER BY p4.col_num
LIMIT 1
)
AND t.task_status IN ('1'
, '2'
, '3'
, '4'))
ORDER BY p.row_num, p.out_order_seq
LIMIT 1
FROM sch_base_point p
LEFT JOIN sch_base_vehiclematerialgroup vg
ON p.vehicle_code = vg.vehicle_code
AND p.vehicle_type = vg.vehicle_type
AND vg.group_bind_material_status = '2'
WHERE p.region_code = 'ZC'
AND p.point_status = '1'
AND p.is_used = TRUE
ORDER BY p.row_num, p.col_num
LIMIT 1;
</select>
<select id="getZCEmptyMaterialPoint" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">
SELECT p.*
FROM `sch_base_point` p
WHERE p.region_code = #{regionCode}
FROM sch_base_point p
WHERE p.region_code = 'ZC'
AND p.point_status = '1'
AND p.is_used = TRUE
AND (p.ing_task_code = '' OR p.ing_task_code IS NULL)
AND 0 = (SELECT COUNT(*)
FROM sch_base_point p1
WHERE p1.region_code = #{regionCode}
AND p1.is_used = TRUE
AND p1.row_num = p.row_num
AND (p1.point_status = '2' AND p1.ing_task_code IS NOT NULL AND p1.ing_task_code <![CDATA[ <> ]]> ''))
AND p.col_num = (SELECT MIN(p2.col_num)
FROM sch_base_point p2
WHERE p2.region_code = #{regionCode}
AND p2.is_used = TRUE
AND p2.row_num = p.row_num)
AND (SELECT COUNT(*)
FROM sch_base_point p3
WHERE p3.region_code = #{regionCode} AND p3.row_num = p.row_num AND p3.is_used)
<![CDATA[ > ]]> (SELECT COUNT(*)
FROM sch_base_task t
WHERE t.next_wait_point = p.point_code AND t.task_status IN ('1', '2', '3', '4'))
AND (
0 = (SELECT COUNT(*)
FROM sch_base_task t
WHERE t.next_wait_point = p.point_code AND t.task_status IN ('1', '2', '3', '4'))
OR
#{materialId} IN (SELECT vg.material_id
FROM sch_base_task t
LEFT JOIN sch_base_vehiclematerialgroup vg ON vg.vehicle_code = t.vehicle_code AND vg.vehicle_type = t.vehicle_type
AND vg.group_bind_material_status = '2'
WHERE t.next_wait_point = p.point_code AND t.task_status IN ('1', '2', '3', '4'))
)
ORDER BY p.row_num, p.out_order_seq
LIMIT 1
AND p.point_code like '%01-01%'
ORDER BY p.row_num, p.col_num
LIMIT 1;
</select>
</mapper>

View File

@@ -54,7 +54,7 @@ spring:
multi-statement-allow: true
redis:
#数据库索引
database: ${REDIS_DB:2}
database: ${REDIS_DB:5}
host: ${REDIS_HOST:10.44.101.19}
port: ${REDIS_PORT:6379}
password: ${REDIS_PWD:}
@@ -152,7 +152,7 @@ sa-token:
token-session-check-login: false
alone-redis:
# Redis数据库索引默认为0
database: 2
database: 5
# Redis服务器地址
host: 10.44.101.19
# Redis服务器连接端口