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

@@ -111,7 +111,7 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
} }
@Override @Override
public List<InstructionDto> queryAll(InstructionQueryParam query){ public List<InstructionDto> queryAll(InstructionQueryParam query) {
return ConvertUtil.convertList(instructionMapper.selectList(QueryHelpMybatisPlus.getPredicate(query)), InstructionDto.class); return ConvertUtil.convertList(instructionMapper.selectList(QueryHelpMybatisPlus.getPredicate(query)), InstructionDto.class);
} }
@@ -128,7 +128,7 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int updateById(InstructionDto resources){ public int updateById(InstructionDto resources) {
InstructionMybatis entity = ConvertUtil.convert(resources, InstructionMybatis.class); InstructionMybatis entity = ConvertUtil.convert(resources, InstructionMybatis.class);
int ret = instructionMapper.updateById(entity); int ret = instructionMapper.updateById(entity);
// delCaches(resources.id); // delCaches(resources.id);
@@ -137,14 +137,14 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int removeByIds(Set<String> ids){ public int removeByIds(Set<String> ids) {
// delCaches(ids); // delCaches(ids);
return instructionMapper.deleteBatchIds(ids); return instructionMapper.deleteBatchIds(ids);
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int removeById(String id){ public int removeById(String id) {
Set<String> set = new HashSet<>(1); Set<String> set = new HashSet<>(1);
set.add(id); set.add(id);
return this.removeByIds(set); return this.removeByIds(set);
@@ -176,7 +176,7 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
.eq(InstructionMybatis::getIs_delete, "0") .eq(InstructionMybatis::getIs_delete, "0")
.list(); .list();
// List list = this.queryAll("instruction_status <2 and is_delete =0"); // List list = this.queryAll("instruction_status <2 and is_delete =0");
this.instructions = new CopyOnWriteArrayList<>(ConvertUtil.convertList(list,Instruction.class)); this.instructions = new CopyOnWriteArrayList<>(ConvertUtil.convertList(list, Instruction.class));
} }
@Override @Override
@@ -192,20 +192,20 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
IPage<InstructionMybatis> queryPage = PageUtil.toMybatisPage(page); IPage<InstructionMybatis> queryPage = PageUtil.toMybatisPage(page);
LambdaQueryWrapper<InstructionMybatis> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<InstructionMybatis> wrapper = new LambdaQueryWrapper<>();
// wrapper.eq(InstructionMybatis::getIs_delete,0); // wrapper.eq(InstructionMybatis::getIs_delete,0);
wrapper.and(StringUtils.isNotBlank(code), instructionMybatis -> instructionMybatis.like(InstructionMybatis::getInstruction_code,code).or().like(InstructionMybatis::getTask_code,code)); wrapper.and(StringUtils.isNotBlank(code), instructionMybatis -> instructionMybatis.like(InstructionMybatis::getInstruction_code, code).or().like(InstructionMybatis::getTask_code, code));
wrapper.like(StringUtils.isNotBlank(vehicle_code),InstructionMybatis::getVehicle_code,vehicle_code); wrapper.like(StringUtils.isNotBlank(vehicle_code), InstructionMybatis::getVehicle_code, vehicle_code);
wrapper.eq(StringUtils.isNotBlank(material_type),InstructionMybatis::getMaterial,material_type); wrapper.eq(StringUtils.isNotBlank(material_type), InstructionMybatis::getMaterial, material_type);
wrapper.eq(StringUtils.isNotBlank(status),InstructionMybatis::getInstruction_status,status); wrapper.eq(StringUtils.isNotBlank(status), InstructionMybatis::getInstruction_status, status);
wrapper.and(StringUtils.isNotBlank(point_code),instructionMybatis -> instructionMybatis.like(InstructionMybatis::getStart_point_code,point_code).or().like(InstructionMybatis::getNext_point_code,point_code)); wrapper.and(StringUtils.isNotBlank(point_code), instructionMybatis -> instructionMybatis.like(InstructionMybatis::getStart_point_code, point_code).or().like(InstructionMybatis::getNext_point_code, point_code));
wrapper.eq(StringUtils.isNotBlank(instruction_type),InstructionMybatis::getInstruction_type,instruction_type); wrapper.eq(StringUtils.isNotBlank(instruction_type), InstructionMybatis::getInstruction_type, instruction_type);
if (!StrUtil.isEmpty(is_over)) { if (!StrUtil.isEmpty(is_over)) {
if (StrUtil.equals(is_over,"1")){ if (StrUtil.equals(is_over, "1")) {
wrapper.ge(InstructionMybatis::getInstruction_status,2); wrapper.ge(InstructionMybatis::getInstruction_status, 2);
}else{ } else {
wrapper.lt(InstructionMybatis::getInstruction_status,2); wrapper.lt(InstructionMybatis::getInstruction_status, 2);
} }
} }
IPage<InstructionMybatis> insPage = instructionMapper.selectPage(queryPage,wrapper); IPage<InstructionMybatis> insPage = instructionMapper.selectPage(queryPage, wrapper);
final JSONObject json = (JSONObject) JSON.toJSON(ConvertUtil.convertPage(insPage, InstructionDto.class)); final JSONObject json = (JSONObject) JSON.toJSON(ConvertUtil.convertPage(insPage, InstructionDto.class));
return json; return json;
} }
@@ -224,32 +224,32 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
LambdaQueryWrapper<InstructionMybatis> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<InstructionMybatis> wrapper = new LambdaQueryWrapper<>();
// wrapper.eq(InstructionMybatis::getIs_delete,"0"); // wrapper.eq(InstructionMybatis::getIs_delete,"0");
if (!StrUtil.isEmpty(code)) { if (!StrUtil.isEmpty(code)) {
wrapper.and(instructionMybatis -> instructionMybatis.like(InstructionMybatis::getInstruction_code,code).or().like(InstructionMybatis::getTask_code,code)); wrapper.and(instructionMybatis -> instructionMybatis.like(InstructionMybatis::getInstruction_code, code).or().like(InstructionMybatis::getTask_code, code));
} }
if (!StrUtil.isEmpty(vehicle_code)) { if (!StrUtil.isEmpty(vehicle_code)) {
wrapper.like(InstructionMybatis::getVehicle_code,vehicle_code); wrapper.like(InstructionMybatis::getVehicle_code, vehicle_code);
} }
if (!StrUtil.isEmpty(material_type)) { if (!StrUtil.isEmpty(material_type)) {
wrapper.eq(InstructionMybatis::getMaterial,material_type); wrapper.eq(InstructionMybatis::getMaterial, material_type);
} }
if (!StrUtil.isEmpty(status)) { if (!StrUtil.isEmpty(status)) {
wrapper.eq(InstructionMybatis::getInstruction_status,status); wrapper.eq(InstructionMybatis::getInstruction_status, status);
} }
if (!StrUtil.isEmpty(point_code)) { if (!StrUtil.isEmpty(point_code)) {
wrapper.and(instructionMybatis -> instructionMybatis.like(InstructionMybatis::getStart_point_code,point_code).or().like(InstructionMybatis::getNext_point_code,point_code)); wrapper.and(instructionMybatis -> instructionMybatis.like(InstructionMybatis::getStart_point_code, point_code).or().like(InstructionMybatis::getNext_point_code, point_code));
} }
if (!StrUtil.isEmpty(create_time) && !StrUtil.isEmpty(end_time)) { if (!StrUtil.isEmpty(create_time) && !StrUtil.isEmpty(end_time)) {
wrapper.between(InstructionMybatis::getCreate_time,create_time,end_time); wrapper.between(InstructionMybatis::getCreate_time, create_time, end_time);
} }
wrapper.orderByDesc(InstructionMybatis::getCreate_time); wrapper.orderByDesc(InstructionMybatis::getCreate_time);
IPage<InstructionMybatis> insPage = instructionMapper.selectPage(queryPage,wrapper); IPage<InstructionMybatis> insPage = instructionMapper.selectPage(queryPage, wrapper);
final JSONObject json = (JSONObject) JSON.toJSON(ConvertUtil.convertPage(insPage, InstructionDto.class)); final JSONObject json = (JSONObject) JSON.toJSON(ConvertUtil.convertPage(insPage, InstructionDto.class));
return json; return json;
} }
@Override @Override
public Map<String, Object> getByTaskId(String id) { public Map<String, Object> getByTaskId(String id) {
List<InstructionMybatis> insList= new LambdaQueryChainWrapper<>(instructionMapper) List<InstructionMybatis> insList = new LambdaQueryChainWrapper<>(instructionMapper)
.eq(InstructionMybatis::getTask_id, id) .eq(InstructionMybatis::getTask_id, id)
.list(); .list();
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
@@ -275,9 +275,9 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
@Override @Override
public List<Instruction> queryAll(Map whereJson) { public List<Instruction> queryAll(Map whereJson) {
List<InstructionMybatis> insList= new LambdaQueryChainWrapper<>(instructionMapper) List<InstructionMybatis> insList = new LambdaQueryChainWrapper<>(instructionMapper)
.list(); .list();
return ConvertUtil.convertList(insList,Instruction.class); return ConvertUtil.convertList(insList, Instruction.class);
} }
@Override @Override
@@ -285,10 +285,10 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
// WQLObject wo = WQLObject.getWQLObject("acs_instruction"); // WQLObject wo = WQLObject.getWQLObject("acs_instruction");
// JSONArray arr = wo.query(whereJson, "create_time").getResultJSONArray(0); // JSONArray arr = wo.query(whereJson, "create_time").getResultJSONArray(0);
// List<Instruction> list = arr.toJavaList(Instruction.class); // List<Instruction> list = arr.toJavaList(Instruction.class);
List<InstructionMybatis> insList= new LambdaQueryChainWrapper<>(instructionMapper) List<InstructionMybatis> insList = new LambdaQueryChainWrapper<>(instructionMapper)
.lt(InstructionMybatis::getInstruction_status, "2") .lt(InstructionMybatis::getInstruction_status, "2")
.list(); .list();
return ConvertUtil.convertList(insList,Instruction.class); return ConvertUtil.convertList(insList, Instruction.class);
} }
@@ -302,13 +302,13 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
// final Instruction obj = json.toJavaObject(Instruction.class); // final Instruction obj = json.toJavaObject(Instruction.class);
// return obj; // return obj;
InstructionMybatis ins= new LambdaQueryChainWrapper<>(instructionMapper) InstructionMybatis ins = new LambdaQueryChainWrapper<>(instructionMapper)
.eq(InstructionMybatis::getInstruction_code, code) .eq(InstructionMybatis::getInstruction_code, code)
.one(); .one();
if(ObjectUtil.isEmpty(ins)){ if (ObjectUtil.isEmpty(ins)) {
return null; return null;
} }
return ConvertUtil.convert(ins,Instruction.class); return ConvertUtil.convert(ins, Instruction.class);
} }
@Override @Override
@@ -317,13 +317,13 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
// JSONObject json = wo.query("task_code ='" + code + "'").uniqueResult(0); // JSONObject json = wo.query("task_code ='" + code + "'").uniqueResult(0);
// final Instruction obj = json.toJavaObject(Instruction.class); // final Instruction obj = json.toJavaObject(Instruction.class);
// return obj; // return obj;
InstructionMybatis ins= new LambdaQueryChainWrapper<>(instructionMapper) InstructionMybatis ins = new LambdaQueryChainWrapper<>(instructionMapper)
.eq(InstructionMybatis::getTask_code, code) .eq(InstructionMybatis::getTask_code, code)
.one(); .one();
if(ObjectUtil.isEmpty(ins)){ if (ObjectUtil.isEmpty(ins)) {
return null; return null;
} }
return ConvertUtil.convert(ins,Instruction.class); return ConvertUtil.convert(ins, Instruction.class);
} }
@Override @Override
@@ -352,11 +352,11 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
// return null; // return null;
LambdaQueryWrapper<InstructionMybatis> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<InstructionMybatis> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(InstructionMybatis::getTask_id,id); wrapper.eq(InstructionMybatis::getTask_id, id);
wrapper.apply(StringUtils.isNotBlank(wherecaluse),wherecaluse); wrapper.apply(StringUtils.isNotBlank(wherecaluse), wherecaluse);
InstructionMybatis ins = instructionMapper.selectOne(wrapper); InstructionMybatis ins = instructionMapper.selectOne(wrapper);
if (ObjectUtil.isNotEmpty(ins)) { if (ObjectUtil.isNotEmpty(ins)) {
return ConvertUtil.convert(ins,Instruction.class); return ConvertUtil.convert(ins, Instruction.class);
} }
return null; return null;
} }
@@ -412,8 +412,8 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
} }
} }
dto.setCreate_by(ObjectUtil.isNotEmpty(currentUsername)?currentUsername:"admin"); dto.setCreate_by(ObjectUtil.isNotEmpty(currentUsername) ? currentUsername : "admin");
dto.setUpdate_by(ObjectUtil.isNotEmpty(currentUsername)?currentUsername:"admin"); dto.setUpdate_by(ObjectUtil.isNotEmpty(currentUsername) ? currentUsername : "admin");
dto.setUpdate_time(now); dto.setUpdate_time(now);
dto.setCreate_time(now); dto.setCreate_time(now);
dto.setStart_parent_code(task.getStart_parent_code()); dto.setStart_parent_code(task.getStart_parent_code());
@@ -452,7 +452,7 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
if (StrUtil.equals(shortPathsList.get(0).getType(), "1")) { if (StrUtil.equals(shortPathsList.get(0).getType(), "1")) {
NDCAgvService ndcAgvService = SpringContextHolder.getBean(NDCAgvService.class); NDCAgvService ndcAgvService = SpringContextHolder.getBean(NDCAgvService.class);
ndcAgvService.sendAgvInstToNDC(task.getAgv_system_type(), dto); ndcAgvService.sendAgvInstToNDC(task.getAgv_system_type(), dto);
}else if(StrUtil.equals(shortPathsList.get(0).getType(), "2")) { } else if (StrUtil.equals(shortPathsList.get(0).getType(), "2")) {
ZheDaAgvService zheDaAgvService = SpringContextHolder.getBean(ZheDaAgvService.class); ZheDaAgvService zheDaAgvService = SpringContextHolder.getBean(ZheDaAgvService.class);
HttpResponse result = zheDaAgvService.sendAgvInstToAgv(dto); HttpResponse result = zheDaAgvService.sendAgvInstToAgv(dto);
if (!ObjectUtils.isEmpty(result)) { if (!ObjectUtils.isEmpty(result)) {
@@ -569,7 +569,7 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
if (StrUtil.equals(shortPathsList.get(0).getType(), "1")) { if (StrUtil.equals(shortPathsList.get(0).getType(), "1")) {
NDCAgvService ndcAgvService = SpringContextHolder.getBean(NDCAgvService.class); NDCAgvService ndcAgvService = SpringContextHolder.getBean(NDCAgvService.class);
ndcAgvService.sendAgvInstToNDC(task.getAgv_system_type(), dto); ndcAgvService.sendAgvInstToNDC(task.getAgv_system_type(), dto);
}else if(StrUtil.equals(shortPathsList.get(0).getType(), "2")) { } else if (StrUtil.equals(shortPathsList.get(0).getType(), "2")) {
ZheDaAgvService zheDaAgvService = SpringContextHolder.getBean(ZheDaAgvService.class); ZheDaAgvService zheDaAgvService = SpringContextHolder.getBean(ZheDaAgvService.class);
HttpResponse result = zheDaAgvService.sendAgvInstToAgv(dto); HttpResponse result = zheDaAgvService.sendAgvInstToAgv(dto);
if (!ObjectUtils.isEmpty(result)) { if (!ObjectUtils.isEmpty(result)) {
@@ -630,11 +630,11 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
// + dto.getTask_id() // + dto.getTask_id()
// + "'") // + "'")
// .uniqueResult(0); // .uniqueResult(0);
InstructionMybatis ins= new LambdaQueryChainWrapper<>(instructionMapper) InstructionMybatis ins = new LambdaQueryChainWrapper<>(instructionMapper)
.lt(InstructionMybatis::getInstruction_status, 3) .lt(InstructionMybatis::getInstruction_status, 3)
.eq(InstructionMybatis::getNext_point_code,dto.getNext_point_code()) .eq(InstructionMybatis::getNext_point_code, dto.getNext_point_code())
.eq(InstructionMybatis::getStart_point_code,dto.getStart_point_code()) .eq(InstructionMybatis::getStart_point_code, dto.getStart_point_code())
.eq(InstructionMybatis::getTask_id,dto.getTask_id()) .eq(InstructionMybatis::getTask_id, dto.getTask_id())
.one(); .one();
@@ -829,7 +829,7 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
// TaskDto obj = taskjson.toJavaObject(TaskDto.class); // TaskDto obj = taskjson.toJavaObject(TaskDto.class);
Task task = new LambdaQueryChainWrapper<>(taskMapper) Task task = new LambdaQueryChainWrapper<>(taskMapper)
.eq(Task::getTask_id,insttaskid) .eq(Task::getTask_id, insttaskid)
.one(); .one();
// =0 则不用再次请求 // =0 则不用再次请求
if (StrUtil.equals(task.getRequest_again(), "0")) { if (StrUtil.equals(task.getRequest_again(), "0")) {
@@ -864,7 +864,7 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
// TaskDto obj = taskjson.toJavaObject(TaskDto.class); // TaskDto obj = taskjson.toJavaObject(TaskDto.class);
Task task = new LambdaQueryChainWrapper<>(taskMapper) Task task = new LambdaQueryChainWrapper<>(taskMapper)
.eq(Task::getTask_id,insttaskid) .eq(Task::getTask_id, insttaskid)
.one(); .one();
// =0 则不用再次请求 // =0 则不用再次请求
if (StrUtil.equals(task.getRequest_again(), "0")) { if (StrUtil.equals(task.getRequest_again(), "0")) {
@@ -918,7 +918,7 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
// JSONObject taskjson = taskwo.query("task_id ='" + dto.getTask_id() + "'").uniqueResult(0); // JSONObject taskjson = taskwo.query("task_id ='" + dto.getTask_id() + "'").uniqueResult(0);
// TaskDto acsTask = taskjson.toJavaObject(TaskDto.class); // TaskDto acsTask = taskjson.toJavaObject(TaskDto.class);
Task acsTask = new LambdaQueryChainWrapper<>(taskMapper) Task acsTask = new LambdaQueryChainWrapper<>(taskMapper)
.eq(Task::getTask_id,dto.getTask_id()) .eq(Task::getTask_id, dto.getTask_id())
.one(); .one();
RouteLineService routeLineService = SpringContextHolder.getBean(RouteLineServiceImpl.class); RouteLineService routeLineService = SpringContextHolder.getBean(RouteLineServiceImpl.class);
@@ -1021,10 +1021,10 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
// } else { // } else {
flag = true; flag = true;
// } // }
}else { } else {
flag = true; flag = true;
} }
if (StrUtil.equals(entity.getInstruction_type(), "4")|| if (StrUtil.equals(entity.getInstruction_type(), "4") ||
StrUtil.equals(entity.getInstruction_type(), "3")) { StrUtil.equals(entity.getInstruction_type(), "3")) {
ZheDaAgvService zheDaAgvService = SpringContextHolder.getBean(ZheDaAgvService.class); ZheDaAgvService zheDaAgvService = SpringContextHolder.getBean(ZheDaAgvService.class);
zheDaAgvService.deleteZDAgvInst(entity.getInstruction_code()); zheDaAgvService.deleteZDAgvInst(entity.getInstruction_code());
@@ -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,16 +1151,14 @@ 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);
entity.setUpdate_by(currentUsername); entity.setUpdate_by(currentUsername);
entity.setInstruction_status("3"); entity.setInstruction_status("3");
// 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
@@ -1533,7 +1532,7 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
@Override @Override
public void init(String id) { public void init(String id) {
InstructionDto inst = this.findById(id); InstructionDto inst = this.findById(id);
if (inst == null) { if (inst == null) {
throw new BadRequestException("指令不存在或已删除"); throw new BadRequestException("指令不存在或已删除");
} }

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);
}); });
} }
@@ -103,7 +108,7 @@ public class GHCMLTask extends AbstractTask {
// 找终点 // 找终点
String requestParam = task.getRequest_param(); String requestParam = task.getRequest_param();
JSONObject jsonObject = JSONObject.parseObject(requestParam); 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); SchBasePoint point = findNextPoint(nextRegionStr, jsonObject);
if (ObjectUtil.isEmpty(point)) { if (ObjectUtil.isEmpty(point)) {
throw new BadRequestException("涂板线[" + task.getPoint_code1() + "]未找到所需点位!"); throw new BadRequestException("涂板线[" + task.getPoint_code1() + "]未找到所需点位!");
@@ -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
@@ -136,10 +147,11 @@ public class GHCMLTask extends AbstractTask {
, jsonObject.getString("material_id")); , jsonObject.getString("material_id"));
if (ObjectUtil.isNotEmpty(sameMaterialPoints)) { if (ObjectUtil.isNotEmpty(sameMaterialPoints)) {
// 找到相同物料。分配等待点。 // 找到相同物料。分配等待点。
SchBasePoint point = pointService.getOne(new LambdaQueryWrapper<SchBasePoint>() SchBasePoint point = pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
.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服务器连接端口