|
|
@ -9,6 +9,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.apache.commons.lang.StringUtils; |
|
|
|
import org.nl.common.exception.BadRequestException; |
|
|
|
import org.nl.system.service.param.ISysParamService; |
|
|
|
import org.nl.system.service.param.dao.Param; |
|
|
|
import org.nl.wms.ext.service.WmsToAcsService; |
|
|
|
import org.nl.wms.ext.service.dto.to.BaseResponse; |
|
|
|
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; |
|
|
@ -57,6 +59,8 @@ public class POINTTask extends AbstractTask { |
|
|
|
private IWorkorderService workorderService; |
|
|
|
@Autowired |
|
|
|
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; |
|
|
|
@Autowired |
|
|
|
private ISysParamService paramService; |
|
|
|
|
|
|
|
@Override |
|
|
|
// @Transactional(rollbackFor = Exception.class)
|
|
|
@ -81,9 +85,21 @@ public class POINTTask extends AbstractTask { |
|
|
|
SchBasePoint nextSchBasePoint= pointService.getOne(new LambdaQueryWrapper<SchBasePoint>() |
|
|
|
.eq(SchBasePoint::getPoint_code, task.getPoint_code2())); |
|
|
|
if(task.getPoint_code2().startsWith("DKT")){ |
|
|
|
//判断叠盘机最大叠盘数量
|
|
|
|
Param max_dkt_qty = paramService.findByCode(GeneralDefinition.MAX_DKT_QTY); |
|
|
|
if (ObjectUtil.isEmpty(max_dkt_qty)) { |
|
|
|
Assert.notNull(taskConfig, "找不到配置文件,请确认系统参数[max_dkt_qty]配置是否存在!"); |
|
|
|
} |
|
|
|
Integer max_qty = Integer.valueOf(max_dkt_qty.getValue()); |
|
|
|
//如果是叠盘位,根据当前数量+1为目标地址
|
|
|
|
int qty=nextSchBasePoint.getVehicle_qty()+1; |
|
|
|
if(qty <= max_qty){ |
|
|
|
task.setPoint_code2(task.getPoint_code2().substring(0,task.getPoint_code2().length()-1)+qty); |
|
|
|
}else{ |
|
|
|
task.setRemark("叠盘机空盘数量已达最大值:["+max_qty+"],暂时无法下发任务!"); |
|
|
|
taskService.update(task); |
|
|
|
continue; |
|
|
|
} |
|
|
|
}else{ |
|
|
|
if (nextSchBasePoint.getVehicle_qty() > 0 |
|
|
|
|| ObjectUtil.isNotEmpty(nextSchBasePoint.getVehicle_code2())) { |
|
|
@ -200,10 +216,9 @@ public class POINTTask extends AbstractTask { |
|
|
|
} |
|
|
|
//子托盘更新组盘信息
|
|
|
|
if(StringUtils.isNotEmpty(vehicleCode2)) { |
|
|
|
one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper<SchBaseVehiclematerialgroup>() |
|
|
|
.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode2) |
|
|
|
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, |
|
|
|
GroupBindMaterialStatusEnum.BOUND.getValue())); |
|
|
|
JSONObject group_jo = new JSONObject(); |
|
|
|
group_jo.put("vehicle_code",vehicleCode2); |
|
|
|
one = vehiclematerialgroupService.getGroup(group_jo); |
|
|
|
if (ObjectUtil.isNotEmpty(one)) { |
|
|
|
one.setTask_code(taskObj.getTask_code()); |
|
|
|
one.setPoint_code(endPointObj.getPoint_code()); // 当前位置
|
|
|
@ -213,7 +228,7 @@ public class POINTTask extends AbstractTask { |
|
|
|
one.setUpdate_id(GeneralDefinition.ACS_ID); |
|
|
|
one.setUpdate_name(GeneralDefinition.ACS_NAME); |
|
|
|
one.setUpdate_time(DateUtil.now()); |
|
|
|
vehiclematerialgroupService.updateById(one); |
|
|
|
vehiclematerialgroupService.updateByJson(one); |
|
|
|
} |
|
|
|
if(endPointObj.getPoint_code().contains("XHW")){ |
|
|
|
//pdm_bd_workorder_two任务完成时,status改为3
|
|
|
|