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

@@ -1142,6 +1142,7 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
@Override @Override
public void cancelNOSendAgv(String id) throws Exception { public void cancelNOSendAgv(String id) throws Exception {
// flag= true时取消指令 // flag= true时取消指令
boolean flag = false;
InstructionDto entity = this.findById(id); InstructionDto entity = this.findById(id);
if (entity == null) { if (entity == null) {
throw new BadRequestException("被删除或无权限,操作失败!"); throw new BadRequestException("被删除或无权限,操作失败!");
@@ -1150,7 +1151,6 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
if (StrUtil.isEmpty(entity.getRoute_plan_code())) { if (StrUtil.isEmpty(entity.getRoute_plan_code())) {
entity.setRoute_plan_code(task.getRoute_plan_code()); entity.setRoute_plan_code(task.getRoute_plan_code());
} }
String currentUsername = SecurityUtils.getCurrentUsername(); String currentUsername = SecurityUtils.getCurrentUsername();
String now = DateUtil.now(); String now = DateUtil.now();
entity.setUpdate_time(now); entity.setUpdate_time(now);
@@ -1159,7 +1159,6 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
// WQLObject wo = WQLObject.getWQLObject("acs_instruction"); // WQLObject wo = WQLObject.getWQLObject("acs_instruction");
// JSONObject json = (JSONObject) JSONObject.toJSON(entity); // JSONObject json = (JSONObject) JSONObject.toJSON(entity);
// wo.update(json); // wo.update(json);
InstructionMybatis ins = ConvertUtil.convert(entity, InstructionMybatis.class); InstructionMybatis ins = ConvertUtil.convert(entity, InstructionMybatis.class);
instructionMapper.updateById(ins); instructionMapper.updateById(ins);
DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class);
@@ -1195,8 +1194,8 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
log.debug("地址对应设备未找到"); log.debug("地址对应设备未找到");
return; return;
} }
removeByCodeFromCache(entity.getInstruction_code()); removeByCodeFromCache(entity.getInstruction_code());
taskService.cancel(entity.getTask_id());
} }
@Override @Override

View File

@@ -84,6 +84,11 @@ public class GHCMLTask extends AbstractTask {
param.put("vehicle_code", point.getVehicle_code()); param.put("vehicle_code", point.getVehicle_code());
param.put("vehicle_type", point.getVehicle_type()); param.put("vehicle_type", point.getVehicle_type());
param.put("create_mode", GeneralDefinition.AUTO_CREATION); 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); task.apply(param);
}); });
} }
@@ -111,6 +116,7 @@ public class GHCMLTask extends AbstractTask {
// 设置组盘 - 需要的话由子类自行实现 // 设置组盘 - 需要的话由子类自行实现
task.setGroup_id(setGroupPlate(jsonObject)); task.setGroup_id(setGroupPlate(jsonObject));
// 设置等待点并修改创建成功状态 // 设置等待点并修改创建成功状态
// task.setNext_wait_point(point.getPoint_code());
task.setPoint_code2(point.getPoint_code()); task.setPoint_code2(point.getPoint_code());
task.setTask_status(TaskStatus.CREATED.getCode()); task.setTask_status(TaskStatus.CREATED.getCode());
task.setRemark(""); task.setRemark("");
@@ -120,10 +126,15 @@ public class GHCMLTask extends AbstractTask {
PointUtils.setUpdateByAcs(point); PointUtils.setUpdateByAcs(point);
pointService.updateById(point); pointService.updateById(point);
//任务创建后锁住起点
startPoint.setIng_task_code(task.getTask_code());
pointService.updateById(startPoint);
} }
/** /**
* 寻找终点等待点 * 寻找终点等待点
*
* @param nextRegionStr: 只有一个区域 * @param nextRegionStr: 只有一个区域
* @param jsonObject * @param jsonObject
* @return * @return
@@ -140,6 +151,7 @@ public class GHCMLTask extends AbstractTask {
.in(SchBasePoint::getRegion_code, nextRegionStr) .in(SchBasePoint::getRegion_code, nextRegionStr)
.eq(SchBasePoint::getRow_num, sameMaterialPoints.getRow_num()) .eq(SchBasePoint::getRow_num, sameMaterialPoints.getRow_num())
.eq(SchBasePoint::getIs_used, true) .eq(SchBasePoint::getIs_used, true)
.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode())
.orderByAsc(SchBasePoint::getCol_num), false); .orderByAsc(SchBasePoint::getCol_num), false);
if (ObjectUtil.isNotEmpty(point)) { if (ObjectUtil.isNotEmpty(point)) {
return point; return point;
@@ -237,6 +249,14 @@ public class GHCMLTask extends AbstractTask {
public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { 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(); String endPoint = taskObj.getPoint_code2();
SchBasePoint endPointObj = pointService.getById(endPoint); SchBasePoint endPointObj = pointService.getById(endPoint);
// 终点解锁 // 终点解锁
@@ -269,6 +289,7 @@ public class GHCMLTask extends AbstractTask {
/** /**
* 二次申请 * 二次申请
*
* @param task_id: 任务标识 * @param task_id: 任务标识
* @return * @return
*/ */

View File

@@ -97,9 +97,11 @@ public class GHCQLTask extends AbstractTask {
SchBasePoint point = findStartPoint(startRegionStr, extGroupData); SchBasePoint point = findStartPoint(startRegionStr, extGroupData);
if (ObjectUtil.isEmpty(point)) { if (ObjectUtil.isEmpty(point)) {
// 消息通知 // 消息通知
noticeService.createNotice("固化室没有所需物料!", TASK_CONFIG_CODE + task.getPoint_code2(), noticeService.createNotice("固化室没有所需物料,将该固化室改为无货状态!", TASK_CONFIG_CODE + task.getPoint_code2(),
NoticeTypeEnum.WARN.getCode()); 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()); task.setPoint_code1(point.getPoint_code());

View File

@@ -17,82 +17,30 @@
p.* p.*
FROM FROM
`sch_base_point` p `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 ORDER BY p.row_num, p.col_num
</select> </select>
<select id="getZCSameMaterialPoint" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint"> <select id="getZCSameMaterialPoint" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">
SELECT p.* SELECT p.*
FROM `sch_base_point` p FROM sch_base_point p
LEFT JOIN sch_base_vehiclematerialgroup vg ON p.vehicle_code = vg.vehicle_code LEFT JOIN sch_base_vehiclematerialgroup vg
AND p.vehicle_type = vg.vehicle_type AND vg.group_bind_material_status = '2' ON p.vehicle_code = vg.vehicle_code
WHERE p.region_code = #{regionCode} AND p.vehicle_type = vg.vehicle_type
AND p.point_status = '2' AND vg.group_bind_material_status = '2'
AND vg.material_id = #{materialId} WHERE p.region_code = 'ZC'
AND p.col_num > AND p.point_status = '1'
(SELECT MIN(p2.col_num) AND p.is_used = TRUE
FROM sch_base_point p2 ORDER BY p.row_num, p.col_num
WHERE p2.region_code = #{regionCode} LIMIT 1;
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
</select> </select>
<select id="getZCEmptyMaterialPoint" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint"> <select id="getZCEmptyMaterialPoint" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">
SELECT p.* SELECT p.*
FROM `sch_base_point` p FROM sch_base_point p
WHERE p.region_code = #{regionCode} WHERE p.region_code = 'ZC'
AND p.point_status = '1'
AND p.is_used = TRUE AND p.is_used = TRUE
AND (p.ing_task_code = '' OR p.ing_task_code IS NULL) AND p.point_code like '%01-01%'
AND 0 = (SELECT COUNT(*) ORDER BY p.row_num, p.col_num
FROM sch_base_point p1 LIMIT 1;
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
</select> </select>
</mapper> </mapper>

View File

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