opt:越南富佳入库优化

This commit is contained in:
2025-11-11 10:28:28 +08:00
parent 97788313fb
commit 18c973dd8c
8 changed files with 602 additions and 25 deletions

View File

@@ -43,6 +43,13 @@ public class AcsToWmsController {
return new ResponseEntity<>(acsToWmsService.acsApply(param), HttpStatus.OK);
}
@PostMapping("/applyInBillError")
@Log("ACS向LMS入库异常任务")
@SaIgnore
public ResponseEntity<Object> applyInBillError(@RequestBody JSONObject param) {
return new ResponseEntity<>(acsToWmsService.applyInBillError(param), HttpStatus.OK);
}
@PostMapping("/getExecutingTask")
@Log("ACS向LMS查询正在执行的任务数据")
@SaIgnore

View File

@@ -26,5 +26,7 @@ public interface AcsToWmsService {
/** ACS请求接口 */
Map<String, Object> acsApply(JSONObject param);
Map<String, Object> applyInBillError(JSONObject param);
Map<String, Object> getExecutingTask();
}

View File

@@ -5,22 +5,28 @@ import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.nl.common.exception.BadRequestException;
import org.nl.language.LangBehavior;
import org.nl.wms.basedata_manage.service.IStructattrService;
import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.ext_manage.enums.ResultAcsStatus;
import org.nl.wms.ext_manage.service.AcsToWmsService;
import org.nl.wms.pm_manage.service.dao.PmFormData;
import org.nl.wms.pm_manage.service.dao.mapper.PmFormDataMapper;
import org.nl.wms.sch_manage.enums.TaskEnum;
import org.nl.wms.sch_manage.enums.TaskStatus;
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
import org.nl.wms.sch_manage.service.util.AbstractTask;
import org.nl.wms.sch_manage.service.util.TaskFactory;
import org.nl.wms.sch_manage.service.util.tasks.AcsErrorTask;
import org.nl.wms.warehouse_manage.enums.IOSConstant;
import org.nl.wms.warehouse_manage.enums.IOSEnum;
import org.nl.wms.warehouse_manage.service.IRawAssistIStorService;
import org.nl.wms.warehouse_manage.service.dao.GroupPlate;
import org.nl.wms.warehouse_manage.service.dao.mapper.MdPbGroupplateMapper;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
@@ -29,7 +35,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@@ -51,6 +56,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
*/
@Autowired
private RedissonClient redissonClient;
@Resource
private IStructattrService iStructattrService;
/*
* 任务服务
*/
@@ -62,6 +70,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
@Resource
private PmFormDataMapper pmFormDataMapper;
@Resource
private AcsErrorTask acsErrorTask;
/**
* 任务工厂服务
*/
@@ -157,6 +168,23 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
return result;
}
@Override
public Map<String, Object> applyInBillError(JSONObject param) {
JSONObject result = new JSONObject();
param.put("user_id", "3");
param.put("person_name","ACS");
try {
this.applyInBillErrorTask(param);
result.put("status", HttpStatus.OK.value());
result.put("message", "申请任务成功!");
} catch (Exception e) {
log.error("ACS请求LMS出现错误: {}{}", e,e.getMessage());
result.put("status", HttpStatus.BAD_REQUEST.value());
result.put("message", "申请任务失败!");
}
return result;
}
@Override
public Map<String, Object> getExecutingTask() {
//查询正在执行的任务
@@ -211,4 +239,88 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
iRawAssistIStorService.AutoCreateBill(param);
}
/**
* 异常流程申请入库任务
*
* @param param
* @throws BadRequestException
*/
public void applyInBillErrorTask(JSONObject param) throws BadRequestException {
log.info("ACS请求异常流程申请入库任务参数: {}", param);
//起点
String vehicle_code = param.getString("vehicle_code");//子托盘
if(ObjectUtil.isNotEmpty(vehicle_code)) {
vehicle_code = vehicle_code.trim();
}
//子托盘非空
if(ObjectUtil.isNotEmpty(vehicle_code)) {
Assert.isFalse(vehicle_code.contains(";"),
"该任务申请托盘["+vehicle_code+"]存在串读,无法申请任务!");
}else{
Assert.isFalse(ObjectUtil.isEmpty(vehicle_code),
"该任务申请托盘["+vehicle_code+"]为空,无法申请任务!");
}
//判断该子托盘是否存在未完成任务
Integer sub_tray_lists = iSchBaseTaskService.findUnFinishTasksBySub_tray(vehicle_code);
Assert.isFalse(sub_tray_lists>0,
"该任务申请托盘["+vehicle_code+"]已存在未完成的任务,无法申请任务!");
//todo 仅生成任务,不生成单据
// 校验数据
String start_point_code = param.getString("device_code");
// 校验起点
Structattr start_point = iStructattrService.getByCode(start_point_code);
if (ObjectUtil.isEmpty(start_point)) {
throw new BadRequestException(LangBehavior.language("pda_manage.start_point_not_exist"));
}
//计算终点点位
List<Structattr> end_point_code_list = iStructattrService.list(new LambdaUpdateWrapper<Structattr>()
.eq(Structattr::getSect_code,"FJError")
.eq(Structattr::getIs_used, 1)
.isNull(Structattr::getStoragevehicle_code)
.eq(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
.orderByDesc(Structattr::getUpdate_time));
if(CollectionUtils.isEmpty(end_point_code_list)){
throw new BadRequestException(LangBehavior.language("pda_manage.end_point_not_exist"));
}
// 校验终点
Structattr end_point = end_point_code_list.get(0);
//查询是否有执行中的点位
//找到空点位正在执行的任务
List<SchBaseTask> taskingSchBaseTaskList = iSchBaseTaskService.list(new LambdaQueryWrapper<SchBaseTask>()
.eq(SchBaseTask::getIs_delete, IOSConstant.IS_DELETE_NO)
.and(wp -> wp
.eq(SchBaseTask::getPoint_code1, end_point.getStruct_code())
.or()
.eq(SchBaseTask::getPoint_code2, end_point.getStruct_code())
.or()
.eq(SchBaseTask::getPoint_code1, start_point.getStruct_code())
.or()
.eq(SchBaseTask::getPoint_code2, start_point.getStruct_code())
)
.le(SchBaseTask::getTask_status, TaskStatus.EXECUTING.getCode()));
if (CollectionUtils.isNotEmpty(taskingSchBaseTaskList)) {
throw new BadRequestException(LangBehavior.language("pda_manage.ongoing_task_at_point"));
}
start_point.setLock_type(IOSEnum.LOCK_TYPE.code("其他锁"));
iStructattrService.updateById(start_point);
end_point.setLock_type(IOSEnum.LOCK_TYPE.code("其他锁"));
iStructattrService.updateById(end_point);
// 创建任务
JSONObject task = new JSONObject();
task.put("config_code", IOSConstant.ACS_ERROR_TASK);
task.put("point_code1",start_point.getStruct_code());
task.put("point_code2", end_point.getStruct_code());
task.put("vehicle_code", vehicle_code);
task.put("Priority", TaskEnum.ACS_PRIORITY.code("1"));
acsErrorTask.create(task);
}
}

View File

@@ -0,0 +1,173 @@
package org.nl.wms.sch_manage.service.util.tasks;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil;
import org.nl.common.utils.IdUtil;
import org.nl.language.LangBehavior;
import org.nl.wms.basedata_manage.service.IStructattrService;
import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.sch_manage.enums.TaskStatus;
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
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.TaskType;
import org.nl.wms.warehouse_manage.enums.IOSEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
* @Author: Liuxy
* @Description: 入库异常情况流程
* @Date: 2025/6/6
*/
@Component(value = "AcsErrorTask")
@TaskType("AcsErrorTask")
public class AcsErrorTask extends AbstractTask {
/**
* 任务服务类
*/
@Autowired
private ISchBaseTaskService taskService;
/**
* 仓位服务
*/
@Autowired
private IStructattrService iStructattrService;
@Override
public String create(JSONObject json) {
SchBaseTask task = new SchBaseTask();
task.setTask_id(IdUtil.getStringId());
task.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
task.setTask_status(TaskStatus.CREATE.getCode());
task.setConfig_code(json.getString("config_code"));
task.setPoint_code1(json.getString("point_code1"));
task.setPoint_code2(json.getString("point_code2"));
task.setVehicle_code(json.getString("vehicle_code"));
task.setRequest_param(json.toString());
task.setPriority(json.getString("Priority"));
task.setCreate_id("ACS");
task.setCreate_name("ACS");
task.setCreate_time(DateUtil.now());
taskService.save(task);
return task.getTask_id();
}
@Override
public AcsTaskDto sendAcsParam(String taskId) {
SchBaseTask taskDao = taskService.getById(taskId);
// 组织下发给acs的数据
AcsTaskDto acsTaskDto = new AcsTaskDto();
acsTaskDto.setExt_task_uuid(taskDao.getTask_id());
acsTaskDto.setTask_code(taskDao.getTask_code());
acsTaskDto.setStart_device_code(taskDao.getPoint_code1());
acsTaskDto.setNext_device_code(taskDao.getPoint_code2());
acsTaskDto.setPriority(taskDao.getPriority());
acsTaskDto.setTask_type("1");
acsTaskDto.setVehicle_code(taskDao.getVehicle_code());
return acsTaskDto;
}
@Override
protected void updateStatus(String task_code, TaskStatus status) {
// 校验任务
SchBaseTask taskObj = taskService.getByCode(task_code);
if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) {
throw new BadRequestException(LangBehavior.language("sch_manage.task_already_completed"));
}
if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
throw new BadRequestException(LangBehavior.language("sch_manage.task_already_cancelled"));
}
// 根据传来的类型去对任务进行操作
if (status.equals(TaskStatus.EXECUTING)) {
// 更新明细状态
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
taskObj.setRemark("执行中");
taskService.updateById(taskObj);
}
if (status.equals(TaskStatus.FINISHED)) {
this.finishTask(taskObj);
}
if (status.equals(TaskStatus.CANCELED)) {
this.cancelTask(taskObj);
}
}
@Override
public void forceFinish(String task_code) {
SchBaseTask taskObj = taskService.getByCode(task_code);
if (ObjectUtil.isEmpty(taskObj)) {
throw new BadRequestException(LangBehavior.language("sch_manage.task_not_exists"));
}
this.finishTask(taskObj);
}
@Override
public void cancel(String task_code) {
SchBaseTask taskObj = taskService.getByCode(task_code);
if (ObjectUtil.isEmpty(taskObj)) {
throw new BadRequestException(LangBehavior.language("sch_manage.task_not_exists"));
}
if (Integer.parseInt(taskObj.getTask_status()) > Integer.parseInt(TaskStatus.CREATE.getCode())) {
throw new BadRequestException(LangBehavior.language("sch_manage.only_cancel_generating_tasks"));
}
this.cancelTask(taskObj);
}
@Override
public void backMes(String task_code) {
}
@Transactional
public void finishTask(SchBaseTask taskObj) {
// 更新起点
iStructattrService.update(
new UpdateWrapper<Structattr>().lambda()
.eq(Structattr::getStruct_code, taskObj.getPoint_code1())
.set(Structattr::getStoragevehicle_code, null)
.set(Structattr::getTask_code, null)
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
);
// 更新终点
iStructattrService.update(
new UpdateWrapper<Structattr>().lambda()
.eq(Structattr::getStruct_code, taskObj.getPoint_code2())
.set(Structattr::getStoragevehicle_code, taskObj.getVehicle_code())
.set(Structattr::getTask_code, null)
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
);
// 更新任务
taskObj.setRemark("已完成");
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskService.updateById(taskObj);
}
@Transactional
public void cancelTask(SchBaseTask taskObj) {
// 更新起点
iStructattrService.update(
new UpdateWrapper<Structattr>().lambda()
.eq(Structattr::getStruct_code, taskObj.getPoint_code1())
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
);
iStructattrService.update(
new UpdateWrapper<Structattr>().lambda()
.eq(Structattr::getStruct_code, taskObj.getPoint_code2())
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
);
// 更新任务
taskObj.setRemark("已取消");
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskService.updateById(taskObj);
}
}

View File

@@ -0,0 +1,189 @@
package org.nl.wms.sch_manage.service.util.tasks;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil;
import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.language.LangBehavior;
import org.nl.wms.basedata_manage.service.IStructattrService;
import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.sch_manage.enums.TaskStatus;
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
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.TaskType;
import org.nl.wms.warehouse_manage.enums.IOSEnum;
import org.nl.wms.warehouse_manage.service.IStIvtMoveinvService;
import org.nl.wms.warehouse_manage.service.IStIvtMoveinvdtlService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
* @Author: zhengxuming
* @Description: 移库任务类无单据
* @Date: 2025年11月11日09:38:11
*/
@Component(value = "MovePointTask")
@TaskType("MovePointTask")
public class MovePointTask extends AbstractTask {
/**
* 任务服务类
*/
@Autowired
private ISchBaseTaskService taskService;
/**
* 移库主表服务类
*/
@Autowired
private IStIvtMoveinvService iStIvtMoveinvService;
/**
* 仓位服务
*/
@Autowired
private IStructattrService iStructattrService;
/**
* 移库明细服务类
*/
@Autowired
private IStIvtMoveinvdtlService iStIvtMoveinvdtlService;
@Override
public String create(JSONObject json) {
SchBaseTask task = new SchBaseTask();
task.setTask_id(IdUtil.getStringId());
task.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
task.setTask_status(TaskStatus.CREATE.getCode());
task.setConfig_code(json.getString("config_code"));
task.setPoint_code1(json.getString("point_code1"));
task.setPoint_code2(json.getString("point_code2"));
task.setVehicle_code(json.getString("vehicle_code"));
task.setRequest_param(json.toString());
task.setPriority(json.getString("Priority"));
task.setCreate_id(SecurityUtils.getCurrentUserId());
task.setCreate_name(SecurityUtils.getCurrentNickName());
task.setCreate_time(DateUtil.now());
taskService.save(task);
return task.getTask_id();
}
@Override
public AcsTaskDto sendAcsParam(String taskId) {
SchBaseTask taskDao = taskService.getById(taskId);
// 组织下发给acs的数据
AcsTaskDto acsTaskDto = new AcsTaskDto();
acsTaskDto.setExt_task_uuid(taskDao.getTask_id());
acsTaskDto.setTask_code(taskDao.getTask_code());
acsTaskDto.setStart_device_code(taskDao.getPoint_code1());
acsTaskDto.setNext_device_code(taskDao.getPoint_code2());
acsTaskDto.setPriority(taskDao.getPriority());
acsTaskDto.setTask_type("1");
acsTaskDto.setVehicle_code(taskDao.getVehicle_code());
return acsTaskDto;
}
@Override
protected void updateStatus(String task_code, TaskStatus status) {
// 校验任务
SchBaseTask taskObj = taskService.getByCode(task_code);
if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) {
throw new BadRequestException(LangBehavior.language("sch_manage.task_already_completed"));
}
if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
throw new BadRequestException(LangBehavior.language("sch_manage.task_already_cancelled"));
}
// 根据传来的类型去对任务进行操作
if (status.equals(TaskStatus.EXECUTING)) {
// 更新明细状态
iStIvtMoveinvService.executing(taskObj);
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
taskObj.setRemark("执行中");
taskService.updateById(taskObj);
}
if (status.equals(TaskStatus.FINISHED)) {
this.finishTask(taskObj);
}
if (status.equals(TaskStatus.CANCELED)) {
this.cancelTask(taskObj);
}
}
@Override
public void forceFinish(String task_code) {
SchBaseTask taskObj = taskService.getByCode(task_code);
if (ObjectUtil.isEmpty(taskObj)) {
throw new BadRequestException(LangBehavior.language("sch_manage.task_not_exists"));
}
this.finishTask(taskObj);
}
@Override
public void cancel(String task_code) {
SchBaseTask taskObj = taskService.getByCode(task_code);
if (ObjectUtil.isEmpty(taskObj)) {
throw new BadRequestException(LangBehavior.language("sch_manage.task_not_exists"));
}
if (Integer.parseInt(taskObj.getTask_status()) > Integer.parseInt(TaskStatus.CREATE.getCode())) {
throw new BadRequestException(LangBehavior.language("sch_manage.only_cancel_generating_tasks"));
}
this.cancelTask(taskObj);
}
@Override
public void backMes(String task_code) {
}
@Transactional
public void finishTask(SchBaseTask taskObj) {
// 更新起点
iStructattrService.update(
new UpdateWrapper<Structattr>().lambda()
.eq(Structattr::getStruct_code, taskObj.getPoint_code1())
.set(Structattr::getStoragevehicle_code, null)
.set(Structattr::getTask_code, null)
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
);
// 更新终点
iStructattrService.update(
new UpdateWrapper<Structattr>().lambda()
.eq(Structattr::getStruct_code, taskObj.getPoint_code2())
.set(Structattr::getStoragevehicle_code, taskObj.getVehicle_code())
.set(Structattr::getTask_code, null)
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
);
// 更新任务
taskObj.setRemark("已完成");
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskService.updateById(taskObj);
}
@Transactional
public void cancelTask(SchBaseTask taskObj) {
// 更新起点
iStructattrService.update(
new UpdateWrapper<Structattr>().lambda()
.eq(Structattr::getStruct_code, taskObj.getPoint_code1())
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
);
iStructattrService.update(
new UpdateWrapper<Structattr>().lambda()
.eq(Structattr::getStruct_code, taskObj.getPoint_code2())
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
);
// 更新任务
taskObj.setRemark("已取消");
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskService.updateById(taskObj);
}
}

View File

@@ -3,22 +3,18 @@ package org.nl.wms.sch_manage.service.util.tasks;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import org.nl.common.exception.BadRequestException;
import org.nl.config.language.LangProcess;
import org.nl.common.utils.CodeUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.language.LangBehavior;
import org.nl.wms.basedata_manage.service.IStructattrService;
import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.sch_manage.enums.TaskStatus;
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
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.TaskType;
import org.nl.wms.warehouse_manage.enums.IOSEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@@ -149,9 +145,9 @@ public class PdaPointTask extends AbstractTask {
// .set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
// );
// // 更新任务
// taskObj.setRemark("已完成");
// taskObj.setTask_status(TaskStatus.FINISHED.getCode());
// taskService.updateById(taskObj);
taskObj.setRemark("已完成");
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskService.updateById(taskObj);
}
@Transactional
@@ -168,8 +164,8 @@ public class PdaPointTask extends AbstractTask {
// .set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
// );
// // 更新任务
// taskObj.setRemark("已取消");
// taskObj.setTask_status(TaskStatus.CANCELED.getCode());
// taskService.updateById(taskObj);
taskObj.setRemark("已取消");
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskService.updateById(taskObj);
}
}

View File

@@ -67,6 +67,12 @@ public class IOSConstant {
*/
public final static String PDA_POINT_TASK = "PdaPointTask";
/**
* 手持定点任务
*/
public final static String ACS_ERROR_TASK = "AcsErrorTask";
/**
* 空载具入库任务
*/

View File

@@ -478,6 +478,7 @@ var config = {
"strategy": {
"title": "策略管理",
"strategy_name": "策略名称",
"class_type": "处理类型",
"strategy_type": "策略类型",
"system_strategy": "系统策略",
"custom_strategy": "自定义策略",
@@ -506,6 +507,9 @@ var config = {
"confirm_close": "确定要关闭吗?"
},
"sectStrategy": {
"title":"策略管理",
"sect":"库区",
"strategy":"策略",
"select_sect": "请选择分区",
"select_strategy_type": "请选择策略类型",
"select_strategy": "请选择策略",
@@ -855,6 +859,17 @@ var config = {
"end_date": "结束日期"
},
"inbill": {
"inventory_allocation":"入库分配",
"inventory_details":"入库明细项",
"inventory_point":"入库点",
"vehicle_material_details":"载具物料明细",
"warehouse_area":"库区",
"auto_allocate_location":"自动分配货位",
"allocate_location":"分配货位",
"cancel_allocation":"取消分配",
"set_start_point":"设置起点",
"location":"货位",
"business_type":"业务类型",
"title": "入库单管理",
"start_date": "开始日期",
"end_date": "结束日期",
@@ -913,22 +928,33 @@ var config = {
"task_code": "任务号"
},
"outbill": {
"title": "出库单管理",
"vehicle_material_details":"载具物料明细",
"warehouse_area":"库区",
"auto_allocate_location":"自动分配货位",
"allocate_location":"分配货位",
"cancel_allocation":"取消分配",
"set_start_point":"设置起点",
"location":"货位",
"business_type":"业务类型",
"title": "入库单管理",
"start_date": "开始日期",
"end_date": "结束日期",
"blurry_query": "模糊查询",
"bill_code": "单据号",
"warehouse": "仓库",
"bill_status": "单据状态",
"warehouse": "所属仓库",
"create_time": "创建时间",
"create_mode": "生成方式",
"bill_status": "单据状态",
"bill_type": "业务类型",
"pcsn": "批次号",
"is_upload": "是否回传",
"allocate": "分配",
"force_confirm": "强制确认",
"operation": "操作",
"warehouse_location": "库位",
"vehicle_code": "载具编码",
"material_qrcode": "物料二维码",
"business_date": "业务日期",
"detail_count": "明细数",
"plan_weight": "计划重量",
"create_mode": "生成方式",
"total_weight": "总重量",
"remark": "备注",
"created_by": "制单人",
"created_time": "制单时间",
@@ -938,8 +964,36 @@ var config = {
"allocated_time": "分配时间",
"confirmed_by": "确认人",
"confirmed_time": "确认时间",
"allocate": "分配",
"force_confirm": "强制确认",
"select_bill": "请选择一条单据",
"bill_confirm_success": "单据确认成功!",
"system_generated": "系统生成",
"add_pallet_material": "添加组盘物料",
"material_code": "物料编码",
"material_name": "物料名称",
"unit_name": "计量单位名称",
"warehouse_not_empty": "仓库不能为空",
"business_type_not_empty": "业务类型不能为空",
"business_date_not_empty": "业务日期不能为空",
"please_select_at_least_one_detail": "请至少选择一条明细",
"please_select_business_type": "请选择业务类型!",
"add_material": "物料新增",
"view_detail": "入库详情",
"stor": "仓库",
"total_qty": "总重量",
"biz_date": "业务日期",
"in_detail": "入库明细",
"weight": "重量",
"source_bill_type": "源单类型",
"source_bill_code": "源单号",
"detail_remark": "明细备注",
"operation_detail": "作业明细",
"storagevehicle_code": "载具号",
"start_position": "起始位置",
"dest_position": "目的位置",
"task_code": "任务号",
"is_upload": "是否回传",
"detail_count": "明细数",
"plan_weight": "计划重量",
"outbound_success": "出库成功!",
"upload_notice": "点击确认按钮后,单据进行回传!",
"upload_success": "回传成功!",
@@ -999,6 +1053,12 @@ var config = {
"operation": "操作"
},
"common": {
"status": "状态",
"unit":"单位",
"all":"全部",
"please_select": "请选择/搜索",
"serial_number":"序号",
"quantity":"数量",
"blurry_search": "模糊搜索",
"create_optname": "创建人",
"modifier":"更新人",
@@ -1025,7 +1085,7 @@ var config = {
"Verify_password": "确认密码",
"User_information": "用户资料",
"Operation_log": "操作日志",
"action": "行为",
"action": "操作",
"IP_source": "IP来源",
"Browser": "浏览器",
"Request_time": "请求耗时",
@@ -1197,7 +1257,39 @@ var config = {
"weigth": "托盘重量",
"overstruct_type": "载具是否超过位置",
"occupystruct_qty": "占用位置数量",
"ext_id": "外部ID"
"ext_id": "外部ID",
"operate_success": "{status}成功",
"vehicle_type": "载具类型",
"fuzzy_search": "模糊搜索",
"vehicle_code_name": "载具号、载具名称",
"vehicle_code": "载具编码",
"vehicle_name": "载具名称",
"vehicle_weight": "载具重量",
"vehicle_id": "载具标识",
"pallet_weight": "托盘重量",
"vehicle_material_info": "载具物料信息",
"material_code": "物料编码",
"material_spec": "物料规格",
"batch": "批次",
"material_qty": "物料数量",
"frozen_qty": "冻结数量",
"process_instance": "流程实例",
"vehicle_info": "载具信息",
"vehicle_weight_g": "载具重量(g)",
"print_config": "打印配置",
"paper_height_mm": "纸张高度(mm)",
"paper_width_mm": "纸张宽度(mm)",
"margin_top_mm": "页边距top(mm)",
"margin_right_mm": "页边距right(mm)",
"margin_down_mm": "页边距down(mm)",
"margin_left_mm": "页边距left(mm)",
"start_vehicle_code": "起始载具号",
"vehicle_qty": "载具数量",
"height_mm": "高度(mm)",
"width_mm": "宽度(mm)",
"depth_mm": "深度(mm)",
"confirm_change": "此操作将 \"{status}\" {code}, 是否继续?",
"is_enabled": "启用状态"
},
"sch_base_point": {
"point_code": "点位编码",