add:增加任务链异常处理
This commit is contained in:
@@ -65,7 +65,7 @@ public class SchBasePointController {
|
|||||||
return new ResponseEntity<>(HttpStatus.OK);
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Log("解锁点位")
|
@Log("一键解锁")
|
||||||
@PostMapping("/unlockPoint")
|
@PostMapping("/unlockPoint")
|
||||||
@ApiOperation("解锁点位")
|
@ApiOperation("解锁点位")
|
||||||
public ResponseEntity<Object> unlockPoint(@RequestBody JSONObject jsonObject) {
|
public ResponseEntity<Object> unlockPoint(@RequestBody JSONObject jsonObject) {
|
||||||
|
|||||||
@@ -16,21 +16,20 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.nl.common.domain.query.PageQuery;
|
import org.nl.common.domain.query.PageQuery;
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
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.ISchBasePointService;
|
||||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||||
import org.nl.wms.sch.point.service.dao.mapper.SchBasePointMapper;
|
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.SchBaseRegion;
|
||||||
import org.nl.wms.sch.region.service.dao.mapper.SchBaseRegionMapper;
|
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.enums.PointStatusEnum;
|
||||||
|
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||||
import org.nl.wms.util.PointUtils;
|
import org.nl.wms.util.PointUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -52,12 +51,12 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
|||||||
@Autowired
|
@Autowired
|
||||||
private SchBaseRegionMapper regionMapper;
|
private SchBaseRegionMapper regionMapper;
|
||||||
|
|
||||||
@Resource
|
@Autowired
|
||||||
private SchBaseVehiclematerialgroupServiceImpl groupServiceImpl;
|
private ISchBaseTaskService taskService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<SchBasePoint> queryAll(Map whereJson, PageQuery page) {
|
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 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 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;
|
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_type), SchBasePoint::getPoint_type, point_type)
|
||||||
.eq(ObjectUtil.isNotEmpty(point_status), SchBasePoint::getPoint_status, point_status)
|
.eq(ObjectUtil.isNotEmpty(point_status), SchBasePoint::getPoint_status, point_status)
|
||||||
.eq(ObjectUtil.isNotEmpty(is_used), SchBasePoint::getIs_used, is_used)
|
.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::getRegion_code)
|
||||||
.orderByAsc(SchBasePoint::getPoint_code)
|
.orderByAsc(SchBasePoint::getPoint_code)
|
||||||
.orderByAsc(SchBasePoint::getPoint_type)
|
.orderByAsc(SchBasePoint::getPoint_type)
|
||||||
.apply(parent_point, "point_code = parent_point_code");
|
.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());
|
IPage<SchBasePoint> pages = new Page<>(page.getPage() + 1, page.getSize());
|
||||||
pointMapper.selectPage(pages, lam);
|
pointMapper.selectPage(pages, lam);
|
||||||
// 可以存放的载具类型
|
// 可以存放的载具类型
|
||||||
@@ -189,38 +190,40 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void unlockPoint(JSONObject jsonObject) {
|
public void unlockPoint(JSONObject jsonObject) {
|
||||||
// 不可能为空
|
|
||||||
JSONArray data = jsonObject.getJSONArray("data");
|
JSONArray data = jsonObject.getJSONArray("data");
|
||||||
Boolean used = jsonObject.getBoolean("used");
|
Boolean type = jsonObject.getBoolean("type");
|
||||||
Assert.notNull(data, "数据为空!");
|
Assert.noNullElements(new Object[]{type, data}, "请求参数不能为空");
|
||||||
Assert.notNull(used, "数据为空!");
|
|
||||||
List<SchBasePoint> schBasePoints = JSONArray.parseArray(JSONArray.toJSONString(data), SchBasePoint.class);
|
List<SchBasePoint> schBasePoints = JSONArray.parseArray(JSONArray.toJSONString(data), SchBasePoint.class);
|
||||||
// 获取所有组盘标识
|
if (type) {
|
||||||
List<String> vehicleCodes = schBasePoints.stream()
|
// 获取所有pointCode,清空ing_task_code
|
||||||
.map(SchBasePoint::getVehicle_code)
|
List<String> pointCodes = schBasePoints.stream()
|
||||||
.collect(Collectors.toList());
|
.map(SchBasePoint::getPoint_code)
|
||||||
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)
|
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
if (ObjectUtil.isNotEmpty(groupIds)) {
|
if (ObjectUtil.isNotEmpty(pointCodes)) {
|
||||||
LambdaUpdateWrapper<SchBaseVehiclematerialgroup> updateWrapper = new LambdaUpdateWrapper<SchBaseVehiclematerialgroup>().in(SchBaseVehiclematerialgroup::getGroup_id, groupIds);
|
LambdaUpdateWrapper<SchBasePoint> updateWrapper = new LambdaUpdateWrapper<SchBasePoint>().in(SchBasePoint::getPoint_code, pointCodes);
|
||||||
updateWrapper.set(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.UNBOUND.getValue());
|
updateWrapper.set(SchBasePoint::getIng_task_code, null);
|
||||||
groupServiceImpl.update(updateWrapper);
|
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -50,14 +50,15 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<SchBaseTask> queryAll(Map whereJson, PageQuery page) {
|
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 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_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 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 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 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() : 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() : 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;
|
List<String> collect = ObjectUtil.isNotEmpty(more_task_status) ? Arrays.stream(more_task_status.split(",")).collect(Collectors.toList()) : null;
|
||||||
String unFinished = null;
|
String unFinished = null;
|
||||||
if (collect != 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));
|
.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)) {
|
if (ObjectUtil.isNotEmpty(vehicle_code)) {
|
||||||
lam.eq(SchBaseTask::getVehicle_code, vehicle_code);
|
lam.eq(SchBaseTask::getVehicle_code, vehicle_code);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -154,6 +154,7 @@ public class GHCMLTask extends AbstractTask {
|
|||||||
task.setRequest_param(JSONObject.toJSONString(jsonObject));
|
task.setRequest_param(JSONObject.toJSONString(jsonObject));
|
||||||
List<SchBaseTask> qlTask = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
List<SchBaseTask> qlTask = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||||
.eq(SchBaseTask::getPoint_code2, task.getPoint_code1())
|
.eq(SchBaseTask::getPoint_code2, task.getPoint_code1())
|
||||||
|
.eq(SchBaseTask::getConfig_code,"GHCQLTask")
|
||||||
.eq(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode())
|
.eq(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode())
|
||||||
.eq(SchBaseTask::getIs_delete,false)
|
.eq(SchBaseTask::getIs_delete,false)
|
||||||
.ge(SchBaseTask::getCreate_time,
|
.ge(SchBaseTask::getCreate_time,
|
||||||
@@ -174,7 +175,6 @@ public class GHCMLTask extends AbstractTask {
|
|||||||
taskService.save(task);
|
taskService.save(task);
|
||||||
PointUtils.setUpdateByAcs(point);
|
PointUtils.setUpdateByAcs(point);
|
||||||
pointService.updateById(point);
|
pointService.updateById(point);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -20,6 +20,16 @@
|
|||||||
@keyup.enter.native="crud.toQuery"
|
@keyup.enter.native="crud.toQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="任务ID">
|
||||||
|
<label slot="label">任 务 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="载具号">
|
<el-form-item label="载具号">
|
||||||
<label slot="label">载 具 号:</label>
|
<label slot="label">载 具 号:</label>
|
||||||
<el-input
|
<el-input
|
||||||
@@ -227,6 +237,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="request_param" label="生成任务的请求参数" :min-width="100" show-overflow-tooltip />
|
<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 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_name" label="创建人" :min-width="flexWidth('create_name',crud.data,'创建人')" />
|
||||||
<el-table-column prop="create_time" label="创建时间" :min-width="flexWidth('create_time',crud.data,'创建时间')" />
|
<el-table-column prop="create_time" label="创建时间" :min-width="flexWidth('create_time',crud.data,'创建时间')" />
|
||||||
|
|||||||
Reference in New Issue
Block a user