fix: 初步维护主体框架

This commit is contained in:
2024-08-06 16:13:20 +08:00
parent 1c05806c3f
commit 9a8395f4b6
20 changed files with 191 additions and 106 deletions

View File

@@ -161,26 +161,6 @@ mybatis-plus:
db-config: db-config:
id-type: INPUT id-type: INPUT
banner: false banner: false
jetcache:
statIntervalMinutes: 15
areaInCacheName: false
local:
default:
type: linkedhashmap
keyConvertor: fastjson
remote:
default:
type: redis
keyConvertor: fastjson2
broadcastChannel: projectA
valueEncoder: java
valueDecoder: java
poolConfig:
minIdle: 5
maxIdle: 20
maxTotal: 50
host: 127.0.0.1
port: 6379
lucene: lucene:
index: index:
path: D:\log\lms\ld\index path: D:\log\lms\ld\index

View File

@@ -15,7 +15,7 @@ public interface AcsToWmsService {
* @return Map<String, Object> * @return Map<String, Object>
*/ */
Map<String, Object> receiveTaskStatusAcs(String string); Map<String, Object> receiveTaskStatusAcs(String string) throws InterruptedException;
/** /**

View File

@@ -4,6 +4,7 @@ import org.nl.wms.ext.acs.service.dto.to.wms.AcsResponse;
import org.nl.wms.sch.task_manage.AcsTaskDto; import org.nl.wms.sch.task_manage.AcsTaskDto;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @Author: lyd * @Author: lyd
@@ -18,6 +19,6 @@ public interface WmsToAcsService {
* @param list: 任务链表 * @param list: 任务链表
* @return * @return
*/ */
AcsResponse renotifyAcs(List<AcsTaskDto> list); Map<String, Object> issueTaskToAcs(List<AcsTaskDto> list);
} }

View File

@@ -1,20 +1,88 @@
package org.nl.wms.ext.acs.service.impl; package org.nl.wms.ext.acs.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
import org.nl.wms.ext.acs.service.AcsToWmsService; import org.nl.wms.ext.acs.service.AcsToWmsService;
import org.nl.wms.sch.task.service.ISchBaseTaskService;
import org.nl.wms.sch.task.service.dao.SchBaseTask;
import org.nl.wms.sch.task_manage.AbstractTask;
import org.nl.wms.sch.task_manage.task.TaskFactory;
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit;
@Service @Service
@RequiredArgsConstructor
@Slf4j @Slf4j
public class AcsToWmsServiceImpl implements AcsToWmsService { public class AcsToWmsServiceImpl implements AcsToWmsService {
@Autowired
private RedissonClient redissonClient;
@Autowired
private ISchBaseTaskService taskService;
@Autowired
private TaskFactory taskFactory;
@Override @Override
public Map<String, Object> receiveTaskStatusAcs(String string) { public Map<String, Object> receiveTaskStatusAcs(String string) throws InterruptedException {
return null; log.info("acs向lms反馈任务状态请求参数--------------------------------------" + string);
JSONArray array = JSONArray.parseArray(string);
//返回处理失败的任务
JSONArray errArr = new JSONArray();
for (int i = 0; i < array.size(); i++) {
JSONObject row = array.getJSONObject(i);
String taskId = row.getString("task_id");
RLock lock = redissonClient.getLock(taskId);
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
try {
if (tryLock) {
SchBaseTask task = taskService.getById(taskId);
row.put("task_code", task.getTask_code());
//1:执行中,2:完成 ,3:acs取消
String acsTaskStatus = row.getString("task_status");
String message = "";
TaskStatus status = null;
if ("1".equals(acsTaskStatus)) {
status = TaskStatus.EXECUTING;
}
if ("2".equals(acsTaskStatus)) {
status = TaskStatus.FINISHED;
}
if ("3".equals(acsTaskStatus)) {
status = TaskStatus.CANCELED;
}
// 任务处理类
try {
AbstractTask task1 = taskFactory.getTask(task.getConfig_code());
task1.updateTaskStatus(row, status);
} catch (Exception e) {
e.printStackTrace();
message = e.getMessage();
throw new BadRequestException(message);
}
} else {
throw new BadRequestException("任务标识为:" + taskId + "的任务正在操作中!");
}
} finally {
if (tryLock) {
lock.unlock();
}
}
}
JSONObject result = new JSONObject();
result.put("status", HttpStatus.OK.value());
result.put("message", "任务状态反馈成功!");
result.put("data", new JSONObject());
result.put("errArr", errArr);
log.info("acs向lms反馈任务状态返回参数--------------------------------------" + result.toString());
return result;
} }
@Override @Override

View File

@@ -1,5 +1,7 @@
package org.nl.wms.ext.acs.service.impl; package org.nl.wms.ext.acs.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.ext.acs.service.WmsToAcsService;
import org.nl.wms.ext.acs.service.dto.to.acs.IssueAcsRequest; import org.nl.wms.ext.acs.service.dto.to.acs.IssueAcsRequest;
@@ -12,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @Author: lyd * @Author: lyd
@@ -25,12 +28,13 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
private ISysInteractRecordService interactRecordService; private ISysInteractRecordService interactRecordService;
@Override @Override
public AcsResponse renotifyAcs(List<AcsTaskDto> list) { public Map<String, Object> issueTaskToAcs(List<AcsTaskDto> list) {
String api = "api/wms/task"; String api = "api/wms/task";
AcsResponse resultForAcs = AcsUtil.notifyAcs2(api, IssueAcsRequest.buildRequestObj("下发任务", list)); JSONArray jsonArray = new JSONArray();
// 记录日志 for (AcsTaskDto dto : list) {
interactRecordService.saveRecord("下发任务", list, resultForAcs, GeneralDefinition.LMS_ACS); jsonArray.add(JSONObject.toJSONString(dto));
return resultForAcs; }
return AcsUtil.notifyAcs(api, jsonArray);
} }
} }

View File

@@ -70,8 +70,7 @@ public class SchBaseTaskController {
} }
@PutMapping("/operation") @PutMapping("/operation")
@Log("任务操作") @Log("PC操作任务")
public ResponseEntity<Object> update(@RequestBody Map<String, Object> map) { public ResponseEntity<Object> update(@RequestBody Map<String, Object> map) {
schBaseTaskService.operation(map); schBaseTaskService.operation(map);
return new ResponseEntity<>(HttpStatus.NO_CONTENT); return new ResponseEntity<>(HttpStatus.NO_CONTENT);

View File

@@ -1,11 +1,8 @@
package org.nl.wms.sch.task_manage; package org.nl.wms.sch.task_manage;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.HttpStatus;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.SneakyThrows; import lombok.SneakyThrows;
@@ -48,10 +45,19 @@ public abstract class AbstractTask {
@Autowired @Autowired
private WmsToAcsService wmsToAcsService; private WmsToAcsService wmsToAcsService;
/**
* 不走任务配置的创建任务类, 不会被定时任务扫描自动创建
* @param form 创建任务需要的参数
* @return 返回任务标识
*/
public String createTask(JSONObject form) {
return null;
}
/** /**
* 任务创建 * 任务创建
* 根据配置生成任务,如并发控制等 * 根据配置生成任务,如并发控制等
* * 这里会定时任务执行,例如:一条任务状态是[起点确认]的任务会在这个方法,由子类来定时扫描去执行对应的逻辑
* @throws BadRequestException / * @throws BadRequestException /
*/ */
public abstract void create() throws BadRequestException; public abstract void create() throws BadRequestException;
@@ -59,20 +65,19 @@ public abstract class AbstractTask {
/** /**
* 任务创建 * 任务创建
* 只会创建完整的任务,创建失败则抛出异常 * 只会创建完整的任务,创建失败则抛出异常
* * 这个定时任务不会扫描到,只做一次性创建,失败则报错
* @param task / * @param task /
*/ */
public void createCompletion(SchBaseTask task) { public void createCompletion(SchBaseTask task) {
} }
/** /**
* @return WCS的任务集合 * @return WCS的任务集合
* @discription 重新下发给wcs任务 * @discription 重新下发给wcs任务
* @author ldjun * @author ldjun
* @created 2020年6月12日 下午5:52:28 * @created 2020年6月12日 下午5:52:28
*/ */
protected AcsResponse renotifyAcs(SchBaseTask task) { protected AcsResponse immediateNotifyAcs(SchBaseTask task) {
Assert.notNull(task); Assert.notNull(task);
List<SchBaseTask> taskList = new ArrayList<>(); List<SchBaseTask> taskList = new ArrayList<>();
taskList.add(task); taskList.add(task);
@@ -94,7 +99,7 @@ public abstract class AbstractTask {
List<AcsTaskDto> list = new ArrayList<>(); List<AcsTaskDto> list = new ArrayList<>();
for (SchBaseTask task : taskList) { for (SchBaseTask task : taskList) {
AcsTaskDto taskDto = new AcsTaskDto(); AcsTaskDto taskDto = new AcsTaskDto();
taskDto.setExt_task_uuid(task.getTask_id()); taskDto.setExt_task_id(task.getTask_id());
taskDto.setTask_code(task.getTask_code()); taskDto.setTask_code(task.getTask_code());
taskDto.setRoute_plan_code("normal"); taskDto.setRoute_plan_code("normal");
taskDto.setStart_device_code(task.getPoint_code1()); taskDto.setStart_device_code(task.getPoint_code1());
@@ -108,35 +113,7 @@ public abstract class AbstractTask {
this.deliveryBeforeProcessing(task, taskDto); this.deliveryBeforeProcessing(task, taskDto);
list.add(taskDto); list.add(taskDto);
} }
try { wmsToAcsService.issueTaskToAcs(list);
// 创建下发对象
resultForAcs = wmsToAcsService.renotifyAcs(list);
} catch (Exception e) {
log.error("任务下发异常: {}", e.getMessage());
resultForAcs.setResponseDate(DateUtil.now());
resultForAcs.setCode(HttpStatus.HTTP_BAD_REQUEST);
resultForAcs.setMessage(e.getMessage());
}
// 如果下发完毕,就修改状态
if (resultForAcs.getCode() == HttpStatus.HTTP_OK) {
// 解析
JSONArray errArr = resultForAcs.getErrArr();
for (SchBaseTask schBaseTask : taskList) {
schBaseTask.setTask_status(TaskStatus.ISSUE.getCode());
// 判断是否是出错的任务
for (int i = 0; ObjectUtil.isNotEmpty(errArr) && i < errArr.size(); i++) {
JSONObject errObj = errArr.getJSONObject(i);
String taskCode = errObj.getString("task_code");
if (taskCode.equals(schBaseTask.getTask_code())) {
// 出错的任务就设置出错信息为备注,不是出错就设置下发
schBaseTask.setTask_status(TaskStatus.START_AND_POINT.getCode());
schBaseTask.setRemark(errObj.getString("message"));
break;
}
}
}
taskService.updateBatchById(taskList);
}
return resultForAcs; return resultForAcs;
} }
@@ -244,7 +221,7 @@ public abstract class AbstractTask {
public abstract void cancel(String task_code); public abstract void cancel(String task_code);
/** /**
* 申请任务 * 申请任务 - 暂时不用
* <p>创建task的总入口会根据自定义的子类去执行创建方法。</p> * <p>创建task的总入口会根据自定义的子类去执行创建方法。</p>
* @param param 请求任务的参数可以是只确定了单个点也可以是4个点都确定了 * @param param 请求任务的参数可以是只确定了单个点也可以是4个点都确定了
* @throws BadRequestException 如果创建失败 * @throws BadRequestException 如果创建失败
@@ -286,18 +263,14 @@ public abstract class AbstractTask {
task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr());
task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr());
task.setConfig_code(configCode); task.setConfig_code(configCode);
// todo
task.setCreate_mode(ObjectUtil.isNotEmpty(param.getString("create_mode")) task.setCreate_mode(ObjectUtil.isNotEmpty(param.getString("create_mode"))
? param.getString("create_mode") : GeneralDefinition.ACS_CREATION); ? param.getString("create_mode") : GeneralDefinition.ACS_CREATION);
task.setVehicle_code(vehicleCode); task.setVehicle_code(vehicleCode);
task.setVehicle_qty(param.getInteger("vehicle_qty")); task.setVehicle_qty(param.getInteger("vehicle_qty"));
task.setVehicle_type(vehicleType); task.setVehicle_type(vehicleType);
task.setTask_status(TaskStatus.APPLY.getCode()); task.setTask_status(TaskStatus.CREATED.getCode());
// 设置起/终点 // 设置起/终点
task.setPoint_code1(param.getString("point_code1")); bean.setTaskPoint(taskConfig, task, applyPointCode);
task.setPoint_code2(param.getString("point_code2"));
task.setPoint_code3(param.getString("point_code3"));
task.setPoint_code4(param.getString("point_code4"));
// 将所有参数存到表中,后续需要可以提取 // 将所有参数存到表中,后续需要可以提取
task.setRequest_param(JSONObject.toJSONString(param)); task.setRequest_param(JSONObject.toJSONString(param));
// 设置创建人信息 // 设置创建人信息
@@ -314,5 +287,4 @@ public abstract class AbstractTask {
bean.create(); bean.create();
} }
} }
} }

View File

@@ -23,7 +23,7 @@ public class AcsTaskDto {
/** /**
* 任务标识 * 任务标识
*/ */
private String ext_task_uuid; private String ext_task_id;
/** /**
* 任务编号 * 任务编号

View File

@@ -4,14 +4,22 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
import org.nl.config.SpringContextHolder; import org.nl.config.SpringContextHolder;
import org.nl.system.service.param.dao.Param; import org.nl.system.service.param.dao.Param;
import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.system.service.param.impl.SysParamServiceImpl;
import org.nl.wms.ext.acs.service.dto.ResultForAcs; import org.nl.wms.ext.acs.service.dto.ResultForAcs;
import org.nl.wms.ext.acs.service.dto.to.wms.AcsResponse; import org.nl.wms.ext.acs.service.dto.to.wms.AcsResponse;
import org.nl.wms.sch.task.service.ISchBaseTaskService;
import org.nl.wms.sch.task.service.dao.SchBaseTask;
import org.nl.wms.sch.task_manage.GeneralDefinition; import org.nl.wms.sch.task_manage.GeneralDefinition;
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
import org.nl.wms.util.URLEnum;
import org.springframework.http.HttpStatus;
import java.util.List; import java.util.List;
@@ -25,6 +33,69 @@ import java.util.List;
*/ */
@Slf4j @Slf4j
public class AcsUtil { public class AcsUtil {
public static JSONObject notifyAcs(String api, JSONArray list) {
log.info("下发ACS参数----------------------------------------+" + api + ",---" + list.toString());
//判断是否连接ACS系统
String isConnect = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("is_connect_acs").getValue();
JSONObject result = new JSONObject();
if (StrUtil.equals("0", isConnect)) {
result.put("status", HttpStatus.OK.value());
result.put("message", "下发成功但未连接ACS!");
result.put("data", new JSONObject());
return result;
}
for (int j = 0; j < list.size(); j++) {
JSONObject jo = list.getJSONObject(j);
String product_area = jo.getString("product_area");
if (StrUtil.isEmpty(product_area)) {
throw new BadRequestException("区域不能为空!下发信息:" + jo.toString());
}
String acs_url = URLEnum.find(product_area);
if (StrUtil.isEmpty(acs_url)) {
log.info(product_area);
throw new BadRequestException("未查询到区域对应的acs地址");
}
String url = acs_url + api;
try {
JSONArray rows = new JSONArray();
rows.add(jo);
String resultMsg = HttpRequest.post(url)
.body(String.valueOf(rows))
.execute().body();
result = JSONObject.parseObject(resultMsg);
log.info("下发acs任务成功返回参数----------------------------------------+" + api + ",---" + result.toString());
} catch (Exception e) {
//acs抛异常这里
String msg = e.getMessage();
//ConnectException: Connection refused: connect
//网络不通
result.put("status", HttpStatus.BAD_REQUEST);
result.put("message", "网络不通,操作失败!");
result.put("data", new JSONObject());
log.error("ACS出现异常: {}", e);
log.info("下发ACS任务失败原因是----------------------------------------+"+ msg);
}
if (!StrUtil.equals(result.getString("status"), "200")) {
log.info("下发acs任务失败原因是----------------------------------------+"+ result.getString("message"));
throw new BadRequestException(result.getString("message"));
} else {
//如果向ACS下发任务变更任务状态为下发
if ("api/wms/task".equals(api)) {
for (int i = 0; i < list.size(); i++) {
JSONObject task_jo = list.getJSONObject(i);
ISchBaseTaskService bean = SpringContextHolder.getBean(ISchBaseTaskService.class);
bean.update(new LambdaUpdateWrapper<SchBaseTask>()
.set(SchBaseTask::getTask_status, TaskStatus.ISSUE.getCode())
.eq(SchBaseTask::getTask_id, task_jo.getString("ext_task_id")));
}
}
}
}
log.info("下发acs任务结果是----------------------------------------+"+ result);
return result;
}
/** /**
* 原生默认请求方法: 默认执行的参数都是jsonArray * 原生默认请求方法: 默认执行的参数都是jsonArray
* @param api * @param api
@@ -32,7 +103,7 @@ public class AcsUtil {
* @return * @return
* @param <T> * @param <T>
*/ */
public static <T> ResultForAcs notifyAcs(String api, List<T> list) { public static <T> ResultForAcs notifyAcs2(String api, List<T> list) {
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class); SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
// list转JSONArray // list转JSONArray
String s = JSON.toJSONString(list); String s = JSON.toJSONString(list);
@@ -77,7 +148,7 @@ public class AcsUtil {
* @return * @return
* @param <T> * @param <T>
*/ */
public static <T> AcsResponse notifyAcs2(String api, T object) { public static <T> AcsResponse notifyAcs3(String api, T object) {
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class); SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
//判断是否连接ACS系统 //判断是否连接ACS系统
Param isConnectAcs = sysParamService.findByCode(GeneralDefinition.IS_CONNECT_ACS); Param isConnectAcs = sysParamService.findByCode(GeneralDefinition.IS_CONNECT_ACS);

View File

@@ -175,7 +175,7 @@ public class CallEmpReelTask extends AbstractTask {
taskService.save(task); taskService.save(task);
// 如果需要立即下发 // 如果需要立即下发
if (BooleanUtil.toBoolean(task.getIs_send())) { if (BooleanUtil.toBoolean(task.getIs_send())) {
this.renotifyAcs(task); this.immediateNotifyAcs(task);
} }
} }

View File

@@ -154,7 +154,7 @@ public class CoolCutTask extends AbstractTask {
taskService.save(task); taskService.save(task);
//如果目标点位没有空位先创建不下发 //如果目标点位没有空位先创建不下发
if (isSend) { if (isSend) {
this.renotifyAcs(task); this.immediateNotifyAcs(task);
} }
} }

View File

@@ -18,12 +18,9 @@ import org.nl.common.exception.BadRequestException;
import org.nl.config.SpringContextHolder; import org.nl.config.SpringContextHolder;
import org.nl.system.service.dict.ISysDictService; import org.nl.system.service.dict.ISysDictService;
import org.nl.system.service.dict.dao.Dict; import org.nl.system.service.dict.dao.Dict;
import org.nl.system.service.dict.dao.mapper.SysDictMapper;
import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.system.service.param.impl.SysParamServiceImpl;
import org.nl.wms.basedata.material.service.ImdMeMaterialbaseService;
import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder; import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder;
import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService; import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService;
import org.nl.wms.pdm.bi.service.IpdmBiSlittingproductionplanService;
import org.nl.wms.pdm.ivt.dao.StIvtCoolpointivt; import org.nl.wms.pdm.ivt.dao.StIvtCoolpointivt;
import org.nl.wms.pdm.ivt.service.*; import org.nl.wms.pdm.ivt.service.*;
import org.nl.wms.sch.point.service.ISchBasePointService; import org.nl.wms.sch.point.service.ISchBasePointService;
@@ -40,7 +37,6 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map; import java.util.Map;
@@ -150,7 +146,7 @@ public class InCoolIvtTask extends AbstractTask {
taskService.save(task); taskService.save(task);
//如果目标点位没有空位先创建不下发 //如果目标点位没有空位先创建不下发
if (isSend) { if (isSend) {
this.renotifyAcs(task); this.immediateNotifyAcs(task);
} }
} }

View File

@@ -178,7 +178,7 @@ public class InHotTask extends AbstractTask {
taskService.save(task); taskService.save(task);
//如果目标点位没有空位先创建不下发 //如果目标点位没有空位先创建不下发
if (isSend) { if (isSend) {
this.renotifyAcs(task); this.immediateNotifyAcs(task);
} }
} }

View File

@@ -14,14 +14,8 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException; import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
import org.nl.config.SpringContextHolder;
import org.nl.system.service.dict.ISysDictService; import org.nl.system.service.dict.ISysDictService;
import org.nl.system.service.dict.dao.Dict; import org.nl.system.service.dict.dao.Dict;
import org.nl.system.service.dict.dao.mapper.SysDictMapper;
import org.nl.wms.basedata.material.service.ImdMeMaterialbaseService;
import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService;
import org.nl.wms.pdm.bi.service.IpdmBiSlittingproductionplanService;
import org.nl.wms.pdm.ivt.dao.StIvtCoolpointivt;
import org.nl.wms.pdm.ivt.dao.StIvtHotpointivt; import org.nl.wms.pdm.ivt.dao.StIvtHotpointivt;
import org.nl.wms.pdm.ivt.dao.StIvtHotregioniomst; import org.nl.wms.pdm.ivt.dao.StIvtHotregioniomst;
import org.nl.wms.pdm.ivt.service.*; import org.nl.wms.pdm.ivt.service.*;
@@ -146,7 +140,7 @@ public class OutHotTask extends AbstractTask {
taskService.save(task); taskService.save(task);
//如果目标点位没有空位先创建不下发 //如果目标点位没有空位先创建不下发
if (isSend) { if (isSend) {
this.renotifyAcs(task); this.immediateNotifyAcs(task);
} }
} }

View File

@@ -53,7 +53,7 @@ spring:
login-username: admin login-username: admin
login-password: admin login-password: admin
dynamic: dynamic:
primary: dm primary: mysql
datasource: datasource:
mysql: mysql:
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -2,7 +2,7 @@ export default {
'lang': 'English', 'lang': 'English',
// 平台 // 平台
'platform': { 'platform': {
'title': 'NOBLELIFT Platform', 'title': 'LDHX LMS',
'tip1': 'The user name cannot be empty', 'tip1': 'The user name cannot be empty',
'tip2': 'The password cannot be empty', 'tip2': 'The password cannot be empty',
'tip3': 'The verification code cannot be empty' 'tip3': 'The verification code cannot be empty'

View File

@@ -2,7 +2,7 @@ export default {
'lang': 'in', 'lang': 'in',
// 平台 // 平台
'platform': { 'platform': {
'title': 'NOBLELIFT Platform', 'title': 'Longdian Huaxin LMS',
'tip1': 'Nama pengguna tidak dapat kosong', 'tip1': 'Nama pengguna tidak dapat kosong',
'tip2': 'Kata sandi tidak dapat kosong', 'tip2': 'Kata sandi tidak dapat kosong',
'tip3': 'Kode verifikasi tidak dapat kosong' 'tip3': 'Kode verifikasi tidak dapat kosong'

View File

@@ -2,7 +2,7 @@ export default {
'lang': 'zh', 'lang': 'zh',
// 平台 // 平台
'platform': { 'platform': {
'title': '诺力开发平台', 'title': '龙电华鑫铜箔LMS',
'tip1': '用户名不能为空', 'tip1': '用户名不能为空',
'tip2': '密码不能为空', 'tip2': '密码不能为空',
'tip3': '验证码不能为空' 'tip3': '验证码不能为空'

View File

@@ -14,8 +14,9 @@
</template> </template>
<script> <script>
import Logo from '@/assets/images/logo.png' import Logo from '@/assets/images/longdian.png'
import variables from '@/assets/styles/variables.scss' import variables from '@/assets/styles/variables.scss'
import i18n from '@/i18n'
export default { export default {
name: 'SidebarLogo', name: 'SidebarLogo',
props: { props: {
@@ -26,9 +27,8 @@ export default {
}, },
data() { data() {
return { return {
title: '诺力开发平台', title: i18n.t('platform.title'),
logo: Logo, logo: Logo
title_param: 'platform'
} }
}, },
computed: { computed: {
@@ -65,8 +65,8 @@ export default {
width: 100%; width: 100%;
& .sidebar-logo { & .sidebar-logo {
width: 32px; width: 55px;
height: 32px; height: 15px;
vertical-align: middle; vertical-align: middle;
margin-right: 6px; margin-right: 6px;
} }