add:增加任务链异常处理
This commit is contained in:
@@ -65,7 +65,7 @@ public class SchBasePointController {
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("解锁点位")
|
||||
@Log("一键解锁")
|
||||
@PostMapping("/unlockPoint")
|
||||
@ApiOperation("解锁点位")
|
||||
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.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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -20,6 +20,16 @@
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
/>
|
||||
</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="载具号">
|
||||
<label slot="label">载 具 号:</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,'创建时间')" />
|
||||
|
||||
Reference in New Issue
Block a user