opt: 任务完成人、单据新增参数不对应

This commit is contained in:
2025-08-06 17:27:24 +08:00
parent 97c83d6470
commit aca0eef363
8 changed files with 66 additions and 36 deletions

View File

@@ -146,6 +146,19 @@ public class PdaJBServiceImpl implements PdaJBService {
if (!"1".equals(workorder.getWorkorder_status())) {
throw new BadRequestException("该工单不是未生产,无法开工!");
}
// 判断任务
// 存在任务就不继续
List<SchBaseTask> list = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
.lt(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode())
.eq(SchBaseTask::getIs_delete, false)
.and(ll -> ll.like(SchBaseTask::getPoint_code1, pointCode).or()
.like(SchBaseTask::getPoint_code2, pointCode).or()
.like(SchBaseTask::getPoint_code3, pointCode).or()
.like(SchBaseTask::getPoint_code4, pointCode).or()));
if (list.size() > 0) {
throw new BadRequestException(pointCode + " 该点位已存在任务!");
}
// 出库的仓位
Structattr outStructAttr = structattrService.getByCode(workorder.getStruct_code());
if (ObjectUtil.isEmpty(outStructAttr)) {

View File

@@ -119,8 +119,8 @@ public class PmFormDataParam extends BaseQuery<PmFormData> {
* 说明
*/
private String remark;
private String supper_code;
private String supper_name;
private String supp_code;
private String supp_name;
/**
* 是否完结
*/

View File

@@ -91,21 +91,21 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
public void create(PmFormDataParam params) {
params.setCode(CodeUtil.getNewCode("EXT_BILL"));
params.setSource_form_date(params.getSource_form_date());
MdPbMeasureunit mdPbMeasureunit = iMdPbMeasureunitService.getOne(new LambdaQueryWrapper<MdPbMeasureunit>().eq(MdPbMeasureunit::getMeasure_unit_id, params.getUnit_id()));
if (ObjectUtil.isEmpty(mdPbMeasureunit)) {
throw new BadRequestException("没有该计量单位信息");
}
// MdPbMeasureunit mdPbMeasureunit = iMdPbMeasureunitService.getOne(new LambdaQueryWrapper<MdPbMeasureunit>().eq(MdPbMeasureunit::getMeasure_unit_id, params.getUnit_id()));
// if (ObjectUtil.isEmpty(mdPbMeasureunit)) {
// throw new BadRequestException("没有该计量单位信息");
// }
BsrealStorattr bsrealStorattr = iBsrealStorattrService.findById(params.getStor_id());
if (ObjectUtil.isEmpty(bsrealStorattr)) {
throw new BadRequestException("没有该仓库信息");
}
MdCsSupplierbase supp = supplierbaseService.getByCode(params.getSupper_code());
MdCsSupplierbase supp = supplierbaseService.getByCode(params.getSupp_code());
if (ObjectUtil.isEmpty(supp)) {
throw new BadRequestException("供应商信息不存在!");
}
params.setSupper_name(supp.getSupp_name());
params.setSupp_name(supp.getSupp_name());
params.setStor_name(bsrealStorattr.getStor_name());
params.setUnit_name(mdPbMeasureunit.getUnit_name());
// params.setUnit_name(mdPbMeasureunit.getUnit_name());
pmFormDataMapper.insert(getBasicInfo(params, true));
}
@@ -125,11 +125,11 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
if (ObjectUtil.isEmpty(bsrealStorattr)) {
throw new BadRequestException("没有该仓库信息");
}
MdCsSupplierbase supp = supplierbaseService.getByCode(params.getSupper_code());
MdCsSupplierbase supp = supplierbaseService.getByCode(params.getSupp_code());
if (ObjectUtil.isEmpty(supp)) {
throw new BadRequestException("供应商信息不存在!");
}
params.setSupper_name(supp.getSupp_name());
params.setSupp_name(supp.getSupp_name());
params.setStor_name(bsrealStorattr.getStor_name());
params.setUnit_name(mdPbMeasureunit.getUnit_name());
pmFormDataMapper.updateById(getBasicInfo(params, false));

View File

@@ -53,11 +53,19 @@
<choose>
<!-- Case: whereJson.lock_type is true -->
<when test="whereJson.lock_type">
AND (p.ing_task_code IS NOT NULL AND p.ing_task_code <![CDATA[<>]]> '')
AND 0 <![CDATA[<>]]> (SELECT COUNT(*) FROM sch_base_task t
WHERE t.task_status <![CDATA[<]]> 5
AND t.is_delete = false AND (t.point_code1 = p.point_code
OR t.point_code2 = p.point_code OR t.point_code3 = p.point_code
OR t.point_code4 = p.point_code ))
</when>
<!-- Case: whereJson.lock_type is false -->
<otherwise>
AND (p.ing_task_code IS NULL OR p.ing_task_code = '')
AND 0 = (SELECT COUNT(*) FROM sch_base_task t
WHERE t.task_status <![CDATA[<]]> 5
AND t.is_delete = false AND (t.point_code1 = p.point_code
OR t.point_code2 = p.point_code OR t.point_code3 = p.point_code
OR t.point_code4 = p.point_code ))
</otherwise>
</choose>
</where>

View File

@@ -8,6 +8,7 @@ import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.wms.sch_manage.enums.TaskFinishedTypeEnum;
import org.nl.wms.sch_manage.enums.TaskStatus;
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
import org.nl.wms.sch_manage.service.ISchBaseTaskconfigService;
@@ -15,6 +16,7 @@ import org.nl.wms.sch_manage.service.dao.SchBaseTask;
import org.nl.wms.sch_manage.service.dao.SchBaseTaskconfig;
import org.nl.wms.sch_manage.service.util.AbstractTask;
import org.nl.wms.sch_manage.service.util.AcsTaskDto;
import org.nl.wms.sch_manage.service.util.TaskUtils;
import org.nl.wms.warehouse_manage.enums.IOSEnum;
import org.nl.wms.warehouse_manage.inAndOut.service.IInBillService;
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDis;
@@ -105,13 +107,14 @@ public class JbBackAgvTask extends AbstractTask {
if (status.equals(TaskStatus.EXECUTING)) {
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
taskObj.setRemark("执行中");
TaskUtils.setUpdateByAcs(taskObj);
taskService.updateById(taskObj);
}
if (status.equals(TaskStatus.FINISHED)) {
this.finishTask(taskObj);
this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS);
}
if (status.equals(TaskStatus.CANCELED)) {
this.cancelTask(taskObj);
this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS);
}
}
@@ -121,7 +124,7 @@ public class JbBackAgvTask extends AbstractTask {
if (ObjectUtil.isEmpty(taskObj)) {
throw new BadRequestException("该任务不存在");
}
this.finishTask(taskObj);
this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
}
@Override
@@ -133,24 +136,25 @@ public class JbBackAgvTask extends AbstractTask {
if (!TaskStatus.CREATE.getCode().equals(taskObj.getTask_status())) {
throw new BadRequestException("任务状态必须为生成才能取消任务");
}
this.cancelTask(taskObj);
this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
}
private void finishTask(SchBaseTask taskObj) {
private void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
// 任务完成
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setRemark("已完成");
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);
inBillService.taskFinish(taskObj);
}
private void cancelTask(SchBaseTask taskObj) {
private void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
// 取消任务
taskService.update(new LambdaUpdateWrapper<SchBaseTask>()
.set(SchBaseTask::getTask_status, TaskStatus.CANCELED.getCode())
.set(SchBaseTask::getRemark, "已取消")
.eq(SchBaseTask::getTask_id, taskObj.getTask_id())
);
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setRemark("已取消");
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);
//分配表清除任务
ioStorInvDisMapper.update(new IOStorInvDis(),new LambdaUpdateWrapper<>(IOStorInvDis.class)
.set(IOStorInvDis::getTask_id,null)

View File

@@ -11,6 +11,7 @@ import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.wms.pm_manage.service.dao.PdmBdWorkorder;
import org.nl.wms.sch_manage.enums.TaskFinishedTypeEnum;
import org.nl.wms.sch_manage.enums.TaskStatus;
import org.nl.wms.sch_manage.service.ISchBasePointService;
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
@@ -20,6 +21,7 @@ import org.nl.wms.sch_manage.service.dao.SchBaseTask;
import org.nl.wms.sch_manage.service.dao.SchBaseTaskconfig;
import org.nl.wms.sch_manage.service.util.AbstractTask;
import org.nl.wms.sch_manage.service.util.AcsTaskDto;
import org.nl.wms.sch_manage.service.util.TaskUtils;
import org.nl.wms.warehouse_manage.enums.IOSEnum;
import org.nl.wms.warehouse_manage.inAndOut.service.IInBillService;
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDis;
@@ -117,23 +119,23 @@ public class JbDownAgvTask extends AbstractTask {
if (status.equals(TaskStatus.EXECUTING)) {
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
taskObj.setRemark("执行中");
TaskUtils.setUpdateByAcs(taskObj);
taskService.updateById(taskObj);
}
if (status.equals(TaskStatus.FINISHED)) {
this.finishTask(taskObj);
this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS);
}
if (status.equals(TaskStatus.CANCELED)) {
this.cancelTask(taskObj);
this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS);
}
}
private void cancelTask(SchBaseTask taskObj) {
private void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
// 取消任务
taskService.update(new LambdaUpdateWrapper<SchBaseTask>()
.set(SchBaseTask::getTask_status, TaskStatus.CANCELED.getCode())
.set(SchBaseTask::getRemark, "已取消")
.eq(SchBaseTask::getTask_id, taskObj.getTask_id())
);
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setRemark("已取消");
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);
//分配表清除任务
ioStorInvDisMapper.update(new IOStorInvDis(),new LambdaUpdateWrapper<>(IOStorInvDis.class)
.set(IOStorInvDis::getTask_id,null)
@@ -144,7 +146,7 @@ public class JbDownAgvTask extends AbstractTask {
);
}
private void finishTask(SchBaseTask taskObj) {
private void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
// 任务完成
taskObj.setRemark("该任务已完成,等待最后一条任务完成后全部完成!");
if ("1".equals(taskObj.getTask_group_seq().toString())) {
@@ -169,12 +171,15 @@ public class JbDownAgvTask extends AbstractTask {
pointService.updateById(khgPoint);
SchBaseTask task = new SchBaseTask();
task.setTask_status(TaskStatus.FINISHED.getCode());
TaskUtils.setUpdateByType(task, taskFinishedType);
task.setRemark("任务执行完毕");
task.setFinished_type(taskFinishedType.getCode());
taskService.update(task, new LambdaQueryWrapper<SchBaseTask>()
.eq(SchBaseTask::getTask_group_id, taskObj.getTask_group_id()));
inBillService.taskFinish(taskObj);
return;
}
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);
}
@@ -184,7 +189,7 @@ public class JbDownAgvTask extends AbstractTask {
if (ObjectUtil.isEmpty(taskObj)) {
throw new BadRequestException("该任务不存在");
}
this.finishTask(taskObj);
this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
}
@Override
@@ -196,7 +201,7 @@ public class JbDownAgvTask extends AbstractTask {
if (!TaskStatus.CREATE.getCode().equals(taskObj.getTask_status())) {
throw new BadRequestException("任务状态必须为生成才能取消任务");
}
this.cancelTask(taskObj);
this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
}
@Override

View File

@@ -145,6 +145,7 @@ public class JbUpAgvTask extends AbstractTask {
// 任务完成
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setRemark("已完成");
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);
outBillService.taskFinish(taskObj);

View File

@@ -676,7 +676,6 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
SchBasePoint parentPoint = pointService.getById(rkPoint.getParent_point_code());
// 2、创建任务4条任务、优先级需要获取所有的任务中的最小值并且-1默认8
// 获取工单对应的区域的出入点
// todo: 不对
SchBasePoint intoPoint = pointService.getNotTaskByRegionAndType(parentPoint.getRegion_code(), "2");
SchBasePoint emptyPoint = pointService.getNotTaskByRegionAndType(parentPoint.getRegion_code(), "5");
SchBasePoint fullPoint = pointService.getNotTaskByRegionAndType(parentPoint.getRegion_code(), "6");