add:增加任务链异常处理

This commit is contained in:
2025-02-11 14:42:12 +08:00
parent 1bbf15cdb8
commit ecd727c51a
5 changed files with 66 additions and 45 deletions

View File

@@ -65,7 +65,7 @@ public class SchBasePointController {
return new ResponseEntity<>(HttpStatus.OK);
}
@Log("解锁点位")
@Log("一键解锁")
@PostMapping("/unlockPoint")
@ApiOperation("解锁点位")
public ResponseEntity<Object> unlockPoint(@RequestBody JSONObject jsonObject) {

View File

@@ -16,21 +16,20 @@ import lombok.extern.slf4j.Slf4j;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.SecurityUtils;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.group.service.impl.SchBaseVehiclematerialgroupServiceImpl;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.point.service.dao.mapper.SchBasePointMapper;
import org.nl.wms.sch.region.service.dao.SchBaseRegion;
import org.nl.wms.sch.region.service.dao.mapper.SchBaseRegionMapper;
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
import org.nl.wms.sch.task.service.ISchBaseTaskService;
import org.nl.wms.sch.task.service.dao.SchBaseTask;
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
import org.nl.wms.util.PointUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -52,12 +51,12 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
@Autowired
private SchBaseRegionMapper regionMapper;
@Resource
private SchBaseVehiclematerialgroupServiceImpl groupServiceImpl;
@Autowired
private ISchBaseTaskService taskService;
@Override
public IPage<SchBasePoint> queryAll(Map whereJson, PageQuery page) {
String blurry = ObjectUtil.isNotEmpty(whereJson.get("blurry")) ? whereJson.get("blurry").toString() : null;
String blurry = ObjectUtil.isNotEmpty(whereJson.get("blurry")) ? whereJson.get("blurry").toString().trim() : null;
String workshop_code = ObjectUtil.isNotEmpty(whereJson.get("workshop_code")) ? whereJson.get("workshop_code").toString() : null;
String region_code = ObjectUtil.isNotEmpty(whereJson.get("region_code")) ? whereJson.get("region_code").toString() : null;
String point_type = ObjectUtil.isNotEmpty(whereJson.get("point_type")) ? whereJson.get("point_type").toString() : null;
@@ -73,14 +72,16 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
.eq(ObjectUtil.isNotEmpty(point_type), SchBasePoint::getPoint_type, point_type)
.eq(ObjectUtil.isNotEmpty(point_status), SchBasePoint::getPoint_status, point_status)
.eq(ObjectUtil.isNotEmpty(is_used), SchBasePoint::getIs_used, is_used)
.and(!lock_type, slam -> slam.isNull(SchBasePoint::getIng_task_code).or()
.eq(SchBasePoint::getIng_task_code, ""))
.and(lock_type, slam -> slam.isNotNull(SchBasePoint::getIng_task_code)
.ne(SchBasePoint::getIng_task_code, ""))
.orderByAsc(SchBasePoint::getRegion_code)
.orderByAsc(SchBasePoint::getPoint_code)
.orderByAsc(SchBasePoint::getPoint_type)
.apply(parent_point, "point_code = parent_point_code");
if (ObjectUtil.isEmpty(blurry)) {
lam.and(!lock_type, r -> r.isNull(SchBasePoint::getIng_task_code).or()
.eq(SchBasePoint::getIng_task_code, ""))
.and(lock_type, r -> r.isNotNull(SchBasePoint::getIng_task_code)
.ne(SchBasePoint::getIng_task_code, ""));
}
IPage<SchBasePoint> pages = new Page<>(page.getPage() + 1, page.getSize());
pointMapper.selectPage(pages, lam);
// 可以存放的载具类型
@@ -189,38 +190,40 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
@Override
@Transactional(rollbackFor = Exception.class)
public void unlockPoint(JSONObject jsonObject) {
// 不可能为空
JSONArray data = jsonObject.getJSONArray("data");
Boolean used = jsonObject.getBoolean("used");
Assert.notNull(data, "数据为空");
Assert.notNull(used, "数据为空!");
Boolean type = jsonObject.getBoolean("type");
Assert.noNullElements(new Object[]{type, data}, "请求参数不能为空");
List<SchBasePoint> schBasePoints = JSONArray.parseArray(JSONArray.toJSONString(data), SchBasePoint.class);
// 获取所有组盘标识
List<String> vehicleCodes = schBasePoints.stream()
.map(SchBasePoint::getVehicle_code)
.collect(Collectors.toList());
List<SchBaseVehiclematerialgroup> groupList = groupServiceImpl.list(new LambdaQueryWrapper<SchBaseVehiclematerialgroup>().in(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCodes));
if (ObjectUtil.isNotEmpty(groupList)) {
List<String> groupIds = groupList.stream().filter(r -> !r.getGroup_bind_material_status().equals(GroupBindMaterialStatusEnum.UNBOUND.getValue()))
.map(SchBaseVehiclematerialgroup::getGroup_id)
if (type) {
// 获取所有pointCode,清空ing_task_code
List<String> pointCodes = schBasePoints.stream()
.map(SchBasePoint::getPoint_code)
.collect(Collectors.toList());
if (ObjectUtil.isNotEmpty(groupIds)) {
LambdaUpdateWrapper<SchBaseVehiclematerialgroup> updateWrapper = new LambdaUpdateWrapper<SchBaseVehiclematerialgroup>().in(SchBaseVehiclematerialgroup::getGroup_id, groupIds);
updateWrapper.set(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.UNBOUND.getValue());
groupServiceImpl.update(updateWrapper);
if (ObjectUtil.isNotEmpty(pointCodes)) {
LambdaUpdateWrapper<SchBasePoint> updateWrapper = new LambdaUpdateWrapper<SchBasePoint>().in(SchBasePoint::getPoint_code, pointCodes);
updateWrapper.set(SchBasePoint::getIng_task_code, null);
this.update(updateWrapper);
}
} else {
if (schBasePoints.size() > 1) {
throw new BadRequestException("只能选中一个固化室出口进行操作!");
}
if (schBasePoints.get(0).getPoint_code().contains("C")) {
List<SchBaseTask> qlTask = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
.eq(SchBaseTask::getPoint_code2, schBasePoints.get(0).getPoint_code())
.eq(SchBaseTask::getConfig_code,"GHCQLTask")
.eq(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode())
.eq(SchBaseTask::getIs_delete, false)
.orderByDesc(SchBaseTask::getCreate_time)
.last("limit 1"));
if (ObjectUtil.isNotEmpty(qlTask)) {
//更新绑定前置任务固化室点位 -> 固化室出口标识
LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
.eq(SchBaseTask::getTask_id, qlTask.get(0).getTask_id())
.set(SchBaseTask::getTask_group_id, "1");
taskService.update(updateWrapper);
}
}
}
// 获取所有pointCode
List<String> pointCodes = schBasePoints.stream()
.map(SchBasePoint::getPoint_code)
.collect(Collectors.toList());
if (ObjectUtil.isNotEmpty(pointCodes)) {
LambdaUpdateWrapper<SchBasePoint> updateWrapper = new LambdaUpdateWrapper<SchBasePoint>().in(SchBasePoint::getPoint_code, pointCodes);
updateWrapper.set(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode());
updateWrapper.set(SchBasePoint::getVehicle_qty, null);
updateWrapper.set(SchBasePoint::getVehicle_type, null);
updateWrapper.set(SchBasePoint::getVehicle_code, null);
this.update(updateWrapper);
}
}

View File

@@ -50,14 +50,15 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
@Override
public IPage<SchBaseTask> queryAll(Map whereJson, PageQuery page) {
String task_code = ObjectUtil.isNotEmpty(whereJson.get("task_code")) ? whereJson.get("task_code").toString() : null;
String task_code = ObjectUtil.isNotEmpty(whereJson.get("task_code")) ? whereJson.get("task_code").toString().trim() : null;
String task_id = ObjectUtil.isNotEmpty(whereJson.get("task_id")) ? whereJson.get("task_id").toString().trim() : null;
String vehicle_code = ObjectUtil.isNotEmpty(whereJson.get("vehicle_code")) ? whereJson.get("vehicle_code").toString() : null;
String point_code1 = ObjectUtil.isNotEmpty(whereJson.get("point_code1")) ? whereJson.get("point_code1").toString().trim() : null;
String point_code2 = ObjectUtil.isNotEmpty(whereJson.get("point_code2")) ? whereJson.get("point_code2").toString().trim() : null;
String config_code = ObjectUtil.isNotEmpty(whereJson.get("config_code")) ? whereJson.get("config_code").toString().trim() : null;
String begin_time = ObjectUtil.isNotEmpty(whereJson.get("begin_time")) ? whereJson.get("begin_time").toString() : null;
String end_time = ObjectUtil.isNotEmpty(whereJson.get("end_time")) ? whereJson.get("end_time").toString() : null;
String more_task_status = ObjectUtil.isNotEmpty(whereJson.get("more_task_status")) ? whereJson.get("more_task_status").toString() : null;
String begin_time = ObjectUtil.isNotEmpty(whereJson.get("begin_time")) ? whereJson.get("begin_time").toString().trim() : null;
String end_time = ObjectUtil.isNotEmpty(whereJson.get("end_time")) ? whereJson.get("end_time").toString().trim() : null;
String more_task_status = ObjectUtil.isNotEmpty(whereJson.get("more_task_status")) ? whereJson.get("more_task_status").toString().trim() : null;
List<String> collect = ObjectUtil.isNotEmpty(more_task_status) ? Arrays.stream(more_task_status.split(",")).collect(Collectors.toList()) : null;
String unFinished = null;
if (collect != null) {
@@ -73,6 +74,12 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
.or(ObjectUtil.isNotEmpty(point_code2), w -> w.eq(SchBaseTask::getPoint_code2, point_code2));
});
}
if (ObjectUtil.isNotEmpty(task_code)) {
lam.eq(SchBaseTask::getTask_code, task_code);
}
if (ObjectUtil.isNotEmpty(task_id)) {
lam.eq(SchBaseTask::getTask_id, task_id);
}
if (ObjectUtil.isNotEmpty(vehicle_code)) {
lam.eq(SchBaseTask::getVehicle_code, vehicle_code);
}

View File

@@ -154,6 +154,7 @@ public class GHCMLTask extends AbstractTask {
task.setRequest_param(JSONObject.toJSONString(jsonObject));
List<SchBaseTask> qlTask = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
.eq(SchBaseTask::getPoint_code2, task.getPoint_code1())
.eq(SchBaseTask::getConfig_code,"GHCQLTask")
.eq(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode())
.eq(SchBaseTask::getIs_delete,false)
.ge(SchBaseTask::getCreate_time,
@@ -174,7 +175,6 @@ public class GHCMLTask extends AbstractTask {
taskService.save(task);
PointUtils.setUpdateByAcs(point);
pointService.updateById(point);
}
/**

View File

@@ -20,6 +20,16 @@
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="任务ID">
<label slot="label">&nbsp;&nbsp;&nbsp;ID:</label>
<el-input
v-model="query.task_id"
clearable
style="width: 180px"
placeholder="请输入任务ID"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="载具号">
<label slot="label">&nbsp;&nbsp;&nbsp;:</label>
<el-input
@@ -227,6 +237,7 @@
</template>
</el-table-column>
<el-table-column prop="request_param" label="生成任务的请求参数" :min-width="100" show-overflow-tooltip />
<el-table-column prop="task_group_id" label="任务组ID" :min-width="flexWidth('handle_class',crud.data,'任务组ID')" />
<el-table-column v-if="false" prop="workshop_code" label="车间编码" :min-width="flexWidth('workshop_code',crud.data,'车间编码')" />
<el-table-column prop="create_name" label="创建人" :min-width="flexWidth('create_name',crud.data,'创建人')" />
<el-table-column prop="create_time" label="创建时间" :min-width="flexWidth('create_time',crud.data,'创建时间')" />