diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Indexer.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Indexer.java deleted file mode 100644 index 64895ee14..000000000 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Indexer.java +++ /dev/null @@ -1,187 +0,0 @@ -package org.nl.config.lucene; - -import com.alibaba.fastjson.JSONObject; -import org.apache.commons.io.FileUtils; -import org.apache.lucene.analysis.Analyzer; -import org.apache.lucene.document.Document; -import org.apache.lucene.document.Field; -import org.apache.lucene.document.TextField; -import org.apache.lucene.index.IndexWriter; -import org.apache.lucene.index.IndexWriterConfig; -import org.apache.lucene.store.Directory; -import org.apache.lucene.store.FSDirectory; -import org.springframework.beans.factory.annotation.Value; -import org.wltea.analyzer.lucene.IKAnalyzer; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.nio.file.Paths; -import java.util.Set; - -/** - *

- * lucene索引器 - *

- * - * @author generator - * @since 2023-11-16 - */ -public class Indexer { - /** - * 写索引实例 - */ - private IndexWriter writer; - - public IndexWriter getWriter() { - return writer; - } - - /** - * 构造方法,实例化IndexWriter - * - * @param indexDir - * @throws Exception - */ - public Indexer(String indexDir) throws Exception { - Directory dir = FSDirectory.open(Paths.get(indexDir)); - //标准分词器,会自动去掉空格啊,is a the等单词 -// Analyzer analyzer = new StandardAnalyzer(); - Analyzer analyzer = new IKAnalyzer(); - //将标准分词器配到写索引的配置中 - IndexWriterConfig config = new IndexWriterConfig(analyzer); - //实例化写索引对象 - writer = new IndexWriter(dir, config); - } - - /** - * 索引指定目录下的所有文件 - * - * @param dataDir - * @return - * @throws Exception - */ - public int indexAll(String dataDir) throws Exception { - // 获取该路径下的所有文件 - File[] files = new File(dataDir).listFiles(); - if (null != files) { - for (File file : files) { - //调用下面的indexFile方法,对每个文件进行索引 - indexFile(file); - } - } - //返回索引的文件数 - return writer.numRamDocs(); - } - - /** - * 索引指定的文件 - * - * @param file - * @throws Exception - */ - private void indexFile(File file) throws Exception { - System.out.println("索引文件的路径:" + file.getCanonicalPath()); - //调用下面的getDocument方法,获取该文件的document - Document doc = getDocument(file); - //添加索引文档 - //Document doc = json2Doc(jsonDoc); -// Document doc = new Document(); - Field fieldContent = new TextField("fieldContent", FileUtils.readFileToString(null, "UTF-8"), Field.Store.YES); - - //将doc添加到索引中 - writer.addDocument(doc); - } - - /** - * 获取文档,文档里再设置每个字段,就类似于数据库中的一行记录 - * - * @param file - * @return - * @throws Exception - */ - private Document getDocument(File file) throws Exception { - Document doc = new Document(); - //开始添加字段 - //添加内容 - doc.add(new TextField("contents", new FileReader(file))); - //添加文件名,并把这个字段存到索引文件里 - doc.add(new TextField("fileName", file.getName(), Field.Store.YES)); - //添加文件路径 - doc.add(new TextField("fullPath", file.getCanonicalPath(), Field.Store.YES)); - return doc; - } - - public Document json2Doc(String strDoc) { - Document doc = new Document(); - JSONObject jsonDoc = JSONObject.parseObject(strDoc); - Set keys = jsonDoc.keySet(); - for (String key : keys) { - doc.add(new TextField(key, jsonDoc.getString(key), Field.Store.YES)); - } - return doc; - } - - public void addLogIndex(String msg) throws IOException { - //步骤一:创建Directory对象,用于指定索引库的位置 RAMDirectory内存 - Directory directory = FSDirectory.open(new File("D:\\lucene\\index").toPath()); - //步骤二:创建一个IndexWriter对象,用于写索引 -// Analyzer analyzer = new StandardAnalyzer(); - IndexWriter indexWriter = new IndexWriter(directory, new IndexWriterConfig(new IKAnalyzer(false))); -// indexWriter.deleteAll();//清理所有索引库 -// IndexWriter indexWriter=new IndexWriter(directory,new IndexWriterConfig(new StandardAnalyzer())); - //记录索引开始时间 - long startTime = System.currentTimeMillis(); - //步骤三:读取磁盘中文件,对应每一个文件创建一个文档对象 - Document document = new Document(); - document.add(new TextField("fieldContent", msg, Field.Store.YES)); - indexWriter.addDocument(document); - //记录索引结束时间 - long endTime = System.currentTimeMillis(); - System.out.println("建立索引" + "共耗时" + (endTime - startTime) + "毫秒"); - indexWriter.commit(); - //步骤八:关闭资源 - indexWriter.close(); - System.out.println("建立索引成功-----关闭资源"); - } - - /** - * 系统的日志文件路径 - */ - @Value("${logging.file.path}") - private String logUrl; - - public static void main(String[] args) throws IOException { - //步骤一:创建Directory对象,用于指定索引库的位置 RAMDirectory内存 - Directory directory = FSDirectory.open(new File("D:\\lucene\\index").toPath()); - //步骤二:创建一个IndexWriter对象,用于写索引 -// Analyzer analyzer = new StandardAnalyzer(); - IndexWriter indexWriter = new IndexWriter(directory, new IndexWriterConfig(new IKAnalyzer(false))); - - indexWriter.deleteAll();//清理所有索引库 -// indexWriter=new IndexWriter(directory,new IndexWriterConfig(new StandardAnalyzer())); - //记录索引开始时间 - long startTime = System.currentTimeMillis(); - //步骤三:读取磁盘中文件,对应每一个文件创建一个文档对象 - File file = new File("D:\\testlog"); - //步骤四:获取文件列表 - File[] files = file.listFiles(); - for (File item : files) { - BufferedReader bufferedReader = new BufferedReader(new FileReader(item)); - String strLine = null; - while (null != (strLine = bufferedReader.readLine())) { - Document document = new Document(); - document.add(new TextField("fieldContent", strLine, Field.Store.YES)); - indexWriter.addDocument(document); - } - } - //记录索引结束时间 - long endTime = System.currentTimeMillis(); - System.out.println("建立索引" + "共耗时" + (endTime - startTime) + "毫秒"); - indexWriter.commit(); - //步骤八:关闭资源 - indexWriter.close(); - System.out.println("建立索引成功-----关闭资源"); - } -} diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneAppender.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneAppender.java index d342c3a0a..e9e48cb00 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneAppender.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneAppender.java @@ -16,7 +16,9 @@ import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.IndexWriterConfig; import org.apache.lucene.store.Directory; import org.apache.lucene.store.FSDirectory; -import org.nl.common.utils.YmlConfigFileUtil; +import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; import org.wltea.analyzer.lucene.IKAnalyzer; import java.io.IOException; @@ -30,7 +32,7 @@ import java.util.regex.Pattern; public class LuceneAppender extends AppenderBase { - private Directory index; + private static Directory index; public static IndexWriter indexWriter; @@ -38,24 +40,25 @@ public class LuceneAppender extends AppenderBase { public void start() { super.start(); try { - // 读取配置文件 - Properties properties = YmlConfigFileUtil.readConfig("config/application.yml"); - - // 获取配置值 - String luceneDir = properties.getProperty("lucene.index.path"); - index = FSDirectory.open(Paths.get(luceneDir)); - } catch (IOException e) { + init(); + } catch (Exception e) { e.printStackTrace(); } + } + public static void init() throws IOException { + Resource resource = new ClassPathResource("config/application.yml"); + YamlPropertiesFactoryBean yamlPropertiesFactoryBean = new YamlPropertiesFactoryBean(); + yamlPropertiesFactoryBean.setResources(resource); + Properties properties = yamlPropertiesFactoryBean.getObject(); + // 获取配置值 + String luceneDir = properties.getProperty("lucene.index.path"); + System.out.println("---index地址----" + luceneDir); + index = FSDirectory.open(Paths.get(luceneDir)); // 初始化 Lucene 索引 Analyzer analyzer = new IKAnalyzer(); IndexWriterConfig config = new IndexWriterConfig(analyzer); - try { - indexWriter = new IndexWriter(index, config); - } catch (IOException e) { - e.printStackTrace(); - } + indexWriter = new IndexWriter(index, config); } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneIndexWriter.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneIndexWriter.java deleted file mode 100644 index 0e9fdb613..000000000 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneIndexWriter.java +++ /dev/null @@ -1,70 +0,0 @@ -package org.nl.config.lucene; - -import cn.hutool.core.date.DateUtil; -import org.apache.lucene.index.CorruptIndexException; -import org.apache.lucene.index.IndexWriter; -import org.apache.lucene.index.IndexWriterConfig; -import org.apache.lucene.store.Directory; -import org.apache.lucene.store.FSDirectory; -import org.wltea.analyzer.lucene.IKAnalyzer; - -import java.io.File; -import java.io.IOException; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; - -/** - *

- * 、 - *

- * - * @author generator - * @since 2023-11-16 - */ -public class LuceneIndexWriter { - private static IndexWriter indexWriter; - - static { - try { - Directory directory = FSDirectory.open(new File(UrlConfig.luceneUrl).toPath()); - IndexWriterConfig config = new IndexWriterConfig(new IKAnalyzer()); - indexWriter = new IndexWriter(directory, config); - } catch (Exception e) { - e.printStackTrace(); - } - /**当当前线程结束时,自动关闭IndexWriter,使用Runtime对象*/ - Runtime.getRuntime().addShutdownHook(new Thread(() -> { - try { - closeIndexWriter(); - } catch (Exception e) { - e.printStackTrace(); - } - })); - } - /**在线程结束时,自动关闭IndexWriter*/ - public static IndexWriter getIndexWriter() { - return indexWriter; - } - /**关闭IndexWriter - * @throws IOException - * @throws CorruptIndexException */ - public static void closeIndexWriter() throws Exception { - if(indexWriter != null) { - indexWriter.close(); - } - } - - public static void main(String[] args) throws IOException { - indexWriter.deleteAll(); - } - - public static String getDate(String timeString) throws ParseException { - //时间格式 - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX"); - Date date = sdf.parse(timeString); - //格式化后的时间 - timeString = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss.SSS"); - return timeString; - } -} diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Searcher.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Searcher.java index 45b867ef3..f9f035258 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Searcher.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Searcher.java @@ -95,6 +95,7 @@ public class Searcher { whereJson.get(LogMessageConstant.FIELD_LEVEL).toString())); booleanQueryBuilder.add(termQuery, BooleanClause.Occur.MUST); } + // 使用实体接收 List list = new ArrayList<>(); TopFieldCollector collector = TopFieldCollector.create(sort, 20000, 0); searcher.search(booleanQueryBuilder.build(), collector); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/LuceneExecuteLogService.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/LuceneExecuteLogService.java deleted file mode 100644 index e5c683702..000000000 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/LuceneExecuteLogService.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.nl.system.service.lucene; - -import org.nl.system.service.lucene.dto.LuceneLogDto; - -import java.io.IOException; - -/** - *

- * 日志检索服务 - *

- * - * @author generator - * @since 2023-11-16 - */ -public interface LuceneExecuteLogService { - /** - * 设备光电变化实时光电信号 - * - * @param device_code 设备编号 - * @param key plc信号 - * @param value plc信号值 - */ - void deviceItemValue(String device_code, String key, String value); - - /** - * 设备执行日志,会保留历史记录 - * - * @param luceneLogDto 日志结果对象 - */ - void deviceExecuteLog(LuceneLogDto luceneLogDto); - - /** - * 接口日志,会保留历史记录 - * @param luceneLogDto 日志结果对象 - * @throws IOException - */ - void interfaceExecuteLog(LuceneLogDto luceneLogDto) throws IOException; - - /** - * 设备执行日志,会保留历史记录 - * - * @param name 日志名称 - * @param message 日志信息 - */ - void extLog(String name, String message); - - -} diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/impl/LuceneExecuteLogServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/impl/LuceneExecuteLogServiceImpl.java index 2c049465c..4f039890c 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/impl/LuceneExecuteLogServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/impl/LuceneExecuteLogServiceImpl.java @@ -1,111 +1,111 @@ -package org.nl.system.service.lucene.impl; - -import cn.hutool.core.date.DateTime; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.ObjectUtil; -import lombok.RequiredArgsConstructor; -import lombok.SneakyThrows; -import lombok.extern.slf4j.Slf4j; -import org.apache.lucene.document.Document; -import org.apache.lucene.document.Field; -import org.apache.lucene.document.StringField; -import org.apache.lucene.index.IndexWriter; -import org.nl.common.enums.LogTypeEnum; -import org.nl.config.lucene.DynamicLogger; -import org.nl.config.lucene.LuceneIndexWriter; -import org.nl.system.service.lucene.LuceneExecuteLogService; -import org.nl.system.service.lucene.dto.LuceneLogDto; -import org.slf4j.Logger; -import org.slf4j.MDC; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; - -import java.io.IOException; - -/** - * @author jlm - * @description 服务实现 - * @date 2023-04-11 - */ -@Service -@RequiredArgsConstructor -@Slf4j -public class LuceneExecuteLogServiceImpl implements LuceneExecuteLogService { - - /** - * 日志目录 - */ - @Value("${logging.file.path}") - private String logPath; - - @Override - public void deviceItemValue(String device_code, String key, String value) { - String now = DateUtil.now(); - } - - @SneakyThrows - @Override - public void deviceExecuteLog(LuceneLogDto luceneLogDto) { - luceneLogDto.setLogType(LogTypeEnum.DEVICE_LOG.getDesc()); - addIndex(luceneLogDto); - } - - @Override - public void interfaceExecuteLog(LuceneLogDto luceneLogDto) throws IOException { - luceneLogDto.setLogType(LogTypeEnum.INTERFACE_LOG.getDesc()); - addIndex(luceneLogDto); - } - - private void addIndex(LuceneLogDto luceneLogDto) throws IOException { - IndexWriter indexWriter = LuceneIndexWriter.getIndexWriter(); - //创建一个Document对象 - Document document = new Document(); - try { - //记录索引开始时间 - long startTime = System.currentTimeMillis(); - //向document对象中添加域。 - if (ObjectUtil.isNotEmpty(luceneLogDto.getDevice_code())) { - document.add(new StringField("device_code", luceneLogDto.getDevice_code(), Field.Store.YES)); - } - if (ObjectUtil.isNotEmpty(luceneLogDto.getContent())) { - document.add(new StringField("fieldContent", luceneLogDto.getContent(), Field.Store.YES)); - } - if (ObjectUtil.isNotEmpty(luceneLogDto.getMethod())) { - document.add(new StringField("method", luceneLogDto.getMethod(), Field.Store.YES)); - } - if (ObjectUtil.isNotEmpty(luceneLogDto.getStatus_code())) { - document.add(new StringField("status_code", luceneLogDto.getStatus_code(), Field.Store.YES)); - } - if (ObjectUtil.isNotEmpty(luceneLogDto.getRequestparam())) { - document.add(new StringField("requestparam", luceneLogDto.getRequestparam(), Field.Store.YES)); - } - if (ObjectUtil.isNotEmpty(luceneLogDto.getResponseparam())) { - document.add(new StringField("responseparam", luceneLogDto.getResponseparam(), Field.Store.YES)); - } - document.add(new StringField("logType", luceneLogDto.getLogType(), Field.Store.YES)); - document.add(new StringField("logTime", DateUtil.format(new DateTime(), "yyyy-MM-dd HH:mm:ss.SSS"), Field.Store.YES)); - indexWriter.addDocument(document); - //记录索引结束时间 - long endTime = System.currentTimeMillis(); - indexWriter.commit(); - //实现日志文件按业务独立生成日志文件到指定路径 - DynamicLogger loggerBuilder =new DynamicLogger(logPath+"\\"+luceneLogDto.getLogType()+"\\"); - Logger logger = loggerBuilder.getLogger(luceneLogDto.getDevice_code()); - logger.info("{}",luceneLogDto.toString()); - } catch (Exception e) { - log.error(e.getMessage(), e); - } - } - - @Override - public void extLog(String name, String message) { - try { - MDC.put(name, name); - log.info("{}", message); - } catch (Exception e) { - e.printStackTrace(); - } finally { - MDC.remove(name); - } - } -} +//package org.nl.system.service.lucene.impl; +// +//import cn.hutool.core.date.DateTime; +//import cn.hutool.core.date.DateUtil; +//import cn.hutool.core.util.ObjectUtil; +//import lombok.RequiredArgsConstructor; +//import lombok.SneakyThrows; +//import lombok.extern.slf4j.Slf4j; +//import org.apache.lucene.document.Document; +//import org.apache.lucene.document.Field; +//import org.apache.lucene.document.StringField; +//import org.apache.lucene.index.IndexWriter; +//import org.nl.common.enums.LogTypeEnum; +//import org.nl.config.lucene.DynamicLogger; +//import org.nl.config.lucene.LuceneIndexWriter; +//import org.nl.system.service.lucene.LuceneExecuteLogService; +//import org.nl.system.service.lucene.dto.LuceneLogDto; +//import org.slf4j.Logger; +//import org.slf4j.MDC; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.stereotype.Service; +// +//import java.io.IOException; +// +///** +// * @author jlm +// * @description 服务实现 +// * @date 2023-04-11 +// */ +//@Service +//@RequiredArgsConstructor +//@Slf4j +//public class LuceneExecuteLogServiceImpl implements LuceneExecuteLogService { +// +// /** +// * 日志目录 +// */ +// @Value("${logging.file.path}") +// private String logPath; +// +// @Override +// public void deviceItemValue(String device_code, String key, String value) { +// String now = DateUtil.now(); +// } +// +// @SneakyThrows +// @Override +// public void deviceExecuteLog(LuceneLogDto luceneLogDto) { +// luceneLogDto.setLogType(LogTypeEnum.DEVICE_LOG.getDesc()); +// addIndex(luceneLogDto); +// } +// +// @Override +// public void interfaceExecuteLog(LuceneLogDto luceneLogDto) throws IOException { +// luceneLogDto.setLogType(LogTypeEnum.INTERFACE_LOG.getDesc()); +// addIndex(luceneLogDto); +// } +// +// private void addIndex(LuceneLogDto luceneLogDto) throws IOException { +// IndexWriter indexWriter = LuceneIndexWriter.getIndexWriter(); +// //创建一个Document对象 +// Document document = new Document(); +// try { +// //记录索引开始时间 +// long startTime = System.currentTimeMillis(); +// //向document对象中添加域。 +// if (ObjectUtil.isNotEmpty(luceneLogDto.getDevice_code())) { +// document.add(new StringField("device_code", luceneLogDto.getDevice_code(), Field.Store.YES)); +// } +// if (ObjectUtil.isNotEmpty(luceneLogDto.getContent())) { +// document.add(new StringField("fieldContent", luceneLogDto.getContent(), Field.Store.YES)); +// } +// if (ObjectUtil.isNotEmpty(luceneLogDto.getMethod())) { +// document.add(new StringField("method", luceneLogDto.getMethod(), Field.Store.YES)); +// } +// if (ObjectUtil.isNotEmpty(luceneLogDto.getStatus_code())) { +// document.add(new StringField("status_code", luceneLogDto.getStatus_code(), Field.Store.YES)); +// } +// if (ObjectUtil.isNotEmpty(luceneLogDto.getRequestparam())) { +// document.add(new StringField("requestparam", luceneLogDto.getRequestparam(), Field.Store.YES)); +// } +// if (ObjectUtil.isNotEmpty(luceneLogDto.getResponseparam())) { +// document.add(new StringField("responseparam", luceneLogDto.getResponseparam(), Field.Store.YES)); +// } +// document.add(new StringField("logType", luceneLogDto.getLogType(), Field.Store.YES)); +// document.add(new StringField("logTime", DateUtil.format(new DateTime(), "yyyy-MM-dd HH:mm:ss.SSS"), Field.Store.YES)); +// indexWriter.addDocument(document); +// //记录索引结束时间 +// long endTime = System.currentTimeMillis(); +// indexWriter.commit(); +// //实现日志文件按业务独立生成日志文件到指定路径 +// DynamicLogger loggerBuilder =new DynamicLogger(logPath+"\\"+luceneLogDto.getLogType()+"\\"); +// Logger logger = loggerBuilder.getLogger(luceneLogDto.getDevice_code()); +// logger.info("{}",luceneLogDto.toString()); +// } catch (Exception e) { +// log.error(e.getMessage(), e); +// } +// } +// +// @Override +// public void extLog(String name, String message) { +// try { +// MDC.put(name, name); +// log.info("{}", message); +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// MDC.remove(name); +// } +// } +//} diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java index 2fa76ef4a..d6e393f11 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java @@ -21,7 +21,6 @@ import org.nl.config.IdUtil; import org.nl.config.language.LangProcess; import org.nl.system.service.dict.dao.Dict; import org.nl.system.service.dict.dao.mapper.SysDictMapper; -import org.nl.system.service.lucene.LuceneExecuteLogService; import org.nl.system.service.menu.dto.MenuDto; import org.nl.system.service.menu.ISysMenuService; import org.nl.system.service.menu.dao.SysMenu; @@ -54,9 +53,6 @@ public class SysMenuServiceImpl extends ServiceImpl impl @Autowired private SysDictMapper sysDictMapper; - @Autowired - private LuceneExecuteLogService luceneExecuteLogService; - @Override public List queryAll(Map param) { // 父节点标识 diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java index e7448e353..47334d7d5 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java @@ -1,5 +1,7 @@ package org.nl.wms.ext.acs.service; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import org.nl.wms.ext.acs.service.dto.to.wms.AcsResponse; import org.nl.wms.sch.task_manage.AcsTaskDto; @@ -21,4 +23,13 @@ public interface WmsToAcsService { */ Map issueTaskToAcs(List list); + /** + * 更新任务状态 + * + * @param arr / + * @return JSONObject + */ + JSONObject updateTask(JSONArray arr); + + JSONObject getHotPointStatus(JSONArray deviceRows); } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java index dc6918f59..ecc1595b9 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java @@ -34,4 +34,16 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { return AcsUtil.notifyAcs(api, jsonArray); } + @Override + public JSONObject updateTask(JSONArray arr) { + String api = "api/wms/updateTask"; + return AcsUtil.notifyAcs(api, arr); + } + + @Override + public JSONObject getHotPointStatus(JSONArray deviceRows) { + String api = "api/wms/querydevice"; + return AcsUtil.notifyAcs(api, deviceRows); + } + } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/controller/RawFoilPdaController.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/controller/RawFoilPdaController.java index f12901399..2ca26d52e 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/controller/RawFoilPdaController.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/controller/RawFoilPdaController.java @@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.nl.common.logging.annotation.Log; import org.nl.wms.pda.mps.service.RawFoilPdaService; -import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -45,5 +44,10 @@ public class RawFoilPdaController { public ResponseEntity needEmptyAxis(@RequestBody JSONObject whereJson) { return new ResponseEntity<>(rawFoilPdaService.needEmptyAxis(whereJson), HttpStatus.OK); } + @PostMapping("/confirmBlanking") + @Log("准备就绪") + public ResponseEntity confirmBlanking(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(rawFoilPdaService.confirmBlanking(whereJson), HttpStatus.OK); + } } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/RawFoilPdaService.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/RawFoilPdaService.java index 739483e6f..35134d594 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/RawFoilPdaService.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/RawFoilPdaService.java @@ -30,4 +30,11 @@ public interface RawFoilPdaService { * @return / */ JSONObject needEmptyAxis(JSONObject param); + + /** + * 准备就绪 + * @param param / + * @return / + */ + JSONObject confirmBlanking(JSONObject param); } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilPdaServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilPdaServiceImpl.java index 57b3f28e6..1ce32304b 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilPdaServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilPdaServiceImpl.java @@ -2,18 +2,22 @@ package org.nl.wms.pda.mps.service.impl; import cn.hutool.core.util.IdUtil; 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.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; +import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.pda.mps.service.RawFoilPdaService; import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder; import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService; import org.nl.wms.sch.point.service.ISchBasePointService; import org.nl.wms.sch.task.service.ISchBaseTaskService; import org.nl.wms.sch.task.service.dao.SchBaseTask; -import org.nl.wms.sch.task_manage.constant.GeneralDefinition; -import org.nl.wms.sch.task_manage.tasks.raw.RawCallRollTrussTask; +import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition; +import org.nl.wms.sch.task_manage.core.tasks.raw.RawCallRollTrussTask; +import org.nl.wms.sch.task_manage.core.tasks.raw.RawDownAGVTask; import org.nl.wms.util.TaskUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -33,11 +37,15 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService { @Autowired private RawCallRollTrussTask rawCallRollTrussTask; @Autowired + private RawDownAGVTask rawDownAGVTask; + @Autowired private ISchBasePointService pointService; @Autowired private IpdmBiRawfoilworkorderService rawfoilworkorderService; @Autowired private ISchBaseTaskService taskService; + @Autowired + private WmsToAcsService wmsToAcsService; @Override @Transactional(rollbackFor = Exception.class) public JSONObject needEmptyVehicle(JSONObject param) { @@ -59,6 +67,8 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService { param.put("config_code", "RawCallRollTrussTask"); param.put("device_code", pointCode); param.put("create_mode", GeneralDefinition.PDA_CREATION); + // 标记一下这里的任务只是单纯送空 + param.put("is_flag", "0"); param.put("requestNo", "LMS" + IdUtil.getSnowflake(1,1).nextIdStr()); // 调用通用口, 创建空辊桁架任务 rawCallRollTrussTask.apply(param); @@ -92,6 +102,7 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService { log.info("手持生箔下料: {}", param); // point_code, vehicle_code, is_call_empty, vehicle_type, workorder_id String pointCode = param.getString("point_code"); + // 扫码的载具编码 String vehicleCode = param.getString("vehicle_code"); String isCallEmpty = param.getString("is_call_empty"); String vehicleType = param.getString("vehicle_type"); @@ -107,19 +118,80 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService { log.error("点位 [{}] 已经存在任务!", pointCode); throw new BadRequestException("点位[" + pointCode + "]已经存在任务!"); } - // 获取生箔工单 01 -> 02d + // 获取生箔工单 01 -> 02 PdmBiRawfoilworkorder rawfoilworkorder = rawfoilworkorderService.getById(workOrderId); + if (ObjectUtil.isEmpty(rawfoilworkorder)) { + throw new BadRequestException("所选的工单不存在!"); + } rawfoilworkorder.setWind_roll(vehicleCode); rawfoilworkorder.setStatus("02"); TaskUtils.setRawOrderUpdateByDefault(rawfoilworkorder); rawfoilworkorderService.updateById(rawfoilworkorder); + // 组织请求任务参数 + // 当前生箔的点位 + param.put("device_code", pointCode); + param.put("create_mode", GeneralDefinition.PDA_CREATION); + param.put("requestNo", "LMS" + IdUtil.getSnowflake(1,1).nextIdStr()); // 判断是否呼叫空辊 if (GeneralDefinition.YES.equals(isCallEmpty)) { // 创建桁架任务,之后创建AGV任务需要备注是四点任务 + param.put("config_code", "RawCallRollTrussTask"); + param.put("is_flag", "1"); + rawCallRollTrussTask.apply(param); } else { // 创建AGV任务,直接到烘箱的任务 + param.put("config_code", "RawDownAGVTask"); + param.put("vehicle_code2", vehicleCode); + param.put("vehicle_code", ""); + param.put("is_flag", "0"); + rawDownAGVTask.apply(param); } + JSONObject result = new JSONObject(); + result.put("status", HttpStatus.OK.value()); + result.put("message", "任务创建成功!"); + result.put("data", new JSONObject()); + return result; + } - return null; + @Override + public JSONObject confirmBlanking(JSONObject param) { + log.info("手持生箔准备就绪, {}", param); + // param: point_code + String pointCode = param.getString("point_code"); + // 将工单设置确认下卷(如果是空轴任务就不用),再写信号给ACS + // 1、获取对应的任务 + SchBaseTask task = taskService.getTaskByPointCodeX(null, pointCode, null, null); + if (ObjectUtil.isEmpty(task)) { + // 可能是起点 + task = taskService.getTaskByPointCodeX(pointCode, null, null, null); + } + if (ObjectUtil.isEmpty(task)) { + log.error("该点查不到任务!"); + throw new BadRequestException("该点查不到任务!"); + } + String requestParam = task.getRequest_param(); + JSONObject requestObj = JSONObject.parseObject(requestParam); + String workorderId = requestObj.getString("workorder_id"); + if (ObjectUtil.isNotEmpty(workorderId)) { + rawfoilworkorderService.update(new LambdaUpdateWrapper() + .set(PdmBiRawfoilworkorder::getStatus, "03") + .eq(PdmBiRawfoilworkorder::getWorkorder_id, workorderId)); + log.info("工单修改完毕 - 工单标识 - {}", workorderId); + } + //下发ACS,执行AGV动作 + JSONArray paramArr = new JSONArray(); + JSONObject acsParam = new JSONObject(); + acsParam.put("device_code", pointCode); + acsParam.put("task_code", task.getTask_code()); + acsParam.put("product_area", task.getProduct_area()); + acsParam.put("option", "1"); + paramArr.add(acsParam); + JSONObject jsonObject = wmsToAcsService.updateTask(paramArr); + log.info("生箔下发ACS,执行AGV动作,请求参数{},返回结果:{}", paramArr, jsonObject); + JSONObject result = new JSONObject(); + result.put("status", HttpStatus.OK.value()); + result.put("message", "请求成功!"); + result.put("data", new JSONObject()); + return result; } } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/bi/dao/PdmBiRawfoilworkorder.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/bi/dao/PdmBiRawfoilworkorder.java index b3d4feb39..60fb3d2c6 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/bi/dao/PdmBiRawfoilworkorder.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/bi/dao/PdmBiRawfoilworkorder.java @@ -173,6 +173,12 @@ public class PdmBiRawfoilworkorder extends Model { /** 烘烤时间 */ private String baking_time; + /** 大卷小卷 */ + private String roll_type; + + /** 烘烤温度 */ + private String baking_temperature; + } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/StIvtHotpointivt.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/StIvtHotpointivt.java index 90a5992ab..6a9b75590 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/StIvtHotpointivt.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/StIvtHotpointivt.java @@ -22,12 +22,11 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; public class StIvtHotpointivt extends Model { private static final long serialVersionUID = -7739291296662381393L; - //@TableId(type = IdType.ASSIGN_ID) - /** * 库存记录标识 */ + @TableId(type = IdType.ASSIGN_ID) private Long ivt_id; @@ -183,16 +182,6 @@ public class StIvtHotpointivt extends Model { private String last_time; - /** - * 获取主键值 - * - * @return 主键值 - */ - @Override - protected Serializable pkVal() { - return this.ivt_id; - } - } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/StIvtHotpointivtMapper.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/StIvtHotpointivtMapper.java index 631faf31e..5d6e38341 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/StIvtHotpointivtMapper.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/StIvtHotpointivtMapper.java @@ -1,8 +1,11 @@ package org.nl.wms.pdm.ivt.dao.mapper; +import com.alibaba.fastjson.JSONArray; import org.nl.wms.pdm.ivt.dao.StIvtHotpointivt; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import java.util.List; + /** * {@code @Description:} 烘烤区点位库存表(StIvtHotpointivt)数据持久层 * {@code @Author:} gbx @@ -12,4 +15,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; public interface StIvtHotpointivtMapper extends BaseMapper { + List getNotTaskHotOven(String rollType, String used); + + JSONArray getHotDeviceInfoForAcs(String productArea); } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/xml/StIvtCoolpointivtMapper.xml b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/xml/StIvtCoolpointivtMapper.xml similarity index 100% rename from lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/xml/StIvtCoolpointivtMapper.xml rename to lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/xml/StIvtCoolpointivtMapper.xml diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/xml/StIvtCoolregionioMapper.xml b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/xml/StIvtCoolregionioMapper.xml similarity index 100% rename from lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/xml/StIvtCoolregionioMapper.xml rename to lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/xml/StIvtCoolregionioMapper.xml diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/xml/StIvtCutpointivtMapper.xml b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/xml/StIvtCutpointivtMapper.xml similarity index 100% rename from lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/xml/StIvtCutpointivtMapper.xml rename to lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/xml/StIvtCutpointivtMapper.xml diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/xml/StIvtDeliverypointivtMapper.xml b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/xml/StIvtDeliverypointivtMapper.xml similarity index 100% rename from lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/xml/StIvtDeliverypointivtMapper.xml rename to lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/xml/StIvtDeliverypointivtMapper.xml diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/xml/StIvtEmptytubeivtMapper.xml b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/xml/StIvtEmptytubeivtMapper.xml similarity index 100% rename from lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/xml/StIvtEmptytubeivtMapper.xml rename to lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/xml/StIvtEmptytubeivtMapper.xml diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/xml/StIvtEmptyvehiclerecordMapper.xml b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/xml/StIvtEmptyvehiclerecordMapper.xml similarity index 100% rename from lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/xml/StIvtEmptyvehiclerecordMapper.xml rename to lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/xml/StIvtEmptyvehiclerecordMapper.xml diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/xml/StIvtHotpointivtMapper.xml b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/xml/StIvtHotpointivtMapper.xml new file mode 100644 index 000000000..4a587952a --- /dev/null +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/xml/StIvtHotpointivtMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/xml/StIvtHotregioniomstMapper.xml b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/xml/StIvtHotregioniomstMapper.xml similarity index 100% rename from lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/xml/StIvtHotregioniomstMapper.xml rename to lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/xml/StIvtHotregioniomstMapper.xml diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/xml/StIvtSbpointivtMapper.xml b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/xml/StIvtSbpointivtMapper.xml similarity index 100% rename from lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/xml/StIvtSbpointivtMapper.xml rename to lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/xml/StIvtSbpointivtMapper.xml diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/xml/StIvtStpointivtMapper.xml b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/xml/StIvtStpointivtMapper.xml similarity index 100% rename from lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/xml/StIvtStpointivtMapper.xml rename to lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/mapper/xml/StIvtStpointivtMapper.xml diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/xml/StIvtHotpointivtMapper.xml b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/xml/StIvtHotpointivtMapper.xml deleted file mode 100644 index ccd0b7e6c..000000000 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/dao/xml/StIvtHotpointivtMapper.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/service/IstIvtHotpointivtService.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/service/IstIvtHotpointivtService.java index 55fb75369..3e0540fb9 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/service/IstIvtHotpointivtService.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/service/IstIvtHotpointivtService.java @@ -1,5 +1,6 @@ package org.nl.wms.pdm.ivt.service; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.metadata.IPage; import org.nl.common.domain.query.PageQuery; import org.nl.wms.pdm.ivt.dao.StIvtHotpointivt; @@ -60,6 +61,28 @@ public interface IstIvtHotpointivtService extends IService { void deleteAll(Set ids); + /** + * 通过母卷大小卷查找可用的烘箱 + * @param rollType 母卷规格 + * @param used 是否使用 + * @return / + */ + List getNotTaskHotOven(String rollType, String used); + + /** + * 查找设备号给ACS + * @param productArea / + * @return / + */ + JSONArray getHotDeviceInfoForAcs(String productArea); + + /** + * 根据点位编码获取烘箱点位 + * @param pointCode 点位编码 + * @param flag 是否校验禁用启用 + * @return / + */ + StIvtHotpointivt getPointByCode(String pointCode, boolean flag); } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/service/impl/StIvtHotpointivtServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/service/impl/StIvtHotpointivtServiceImpl.java index 70260fdca..2249075b6 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/service/impl/StIvtHotpointivtServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/service/impl/StIvtHotpointivtServiceImpl.java @@ -1,5 +1,7 @@ package org.nl.wms.pdm.ivt.service.impl; +import cn.hutool.core.lang.Assert; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -15,6 +17,7 @@ import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.IdUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; import org.nl.common.domain.query.PageQuery; @@ -31,11 +34,11 @@ import java.util.List; * * @since 2024-04-01 */ -@Service("stIvtHotpointivtService") +@Service public class StIvtHotpointivtServiceImpl extends ServiceImpl implements IstIvtHotpointivtService { - @Resource + @Autowired private StIvtHotpointivtMapper stIvtHotpointivtMapper; @@ -115,6 +118,25 @@ public class StIvtHotpointivtServiceImpl extends ServiceImpl getNotTaskHotOven(String rollType, String used) { + return stIvtHotpointivtMapper.getNotTaskHotOven(rollType, used); + } + + @Override + public JSONArray getHotDeviceInfoForAcs(String productArea) { + return stIvtHotpointivtMapper.getHotDeviceInfoForAcs(productArea); + } + + @Override + public StIvtHotpointivt getPointByCode(String pointCode, boolean flag) { + Assert.notNull(pointCode, "点位编码不能为空!"); + LambdaQueryWrapper lam = new QueryWrapper().lambda(); + lam.eq(StIvtHotpointivt::getPoint_code, pointCode) + .eq(flag, StIvtHotpointivt::getIs_used, "1"); + return getOne(lam); + } + /** * 获取实体基础信息 @@ -123,16 +145,6 @@ public class StIvtHotpointivtServiceImpl extends ServiceImpl { * @return / */ List getPointByConditions(String area, String region, String pointType, String pointStatus, @NotNull boolean flag); + + /** + * 获取烘箱可用的对接位 + * @param area 生产区域 + * @param region 区域 + * @param pointType 点位类型 + * @param pointStatus 点位状态 + * @return / + */ + List getHotNotTaskPoint(String area, String region, String pointType, String pointStatus); } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.java index 6469a704e..7faf54f49 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.java @@ -24,4 +24,14 @@ public interface SchBasePointMapper extends BaseMapper { * @return / */ List getWindRollNotTaskPoints(String vehicleType); + + /** + * 获取烘箱可用点位 + * @param area / + * @param region / + * @param pointType / + * @param pointStatus / + * @return / + */ + List getHotNotTaskPoint(String area, String region, String pointType, String pointStatus); } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.xml b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.xml index 77341edee..26319d775 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.xml +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.xml @@ -23,4 +23,15 @@ AND 0 = (SELECT COUNT(*) FROM sch_base_task t WHERE t.point_code1 = p.point_code AND t.task_status '07') ORDER BY p.in_order_seq + diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java index 2e50cf7da..5592e31b0 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java @@ -20,7 +20,7 @@ import org.nl.wms.sch.point.service.dao.SchBasePoint; import org.nl.wms.sch.point.service.dao.mapper.SchBasePointMapper; import org.nl.wms.sch.region.service.dao.SchBaseRegion; import org.nl.wms.sch.region.service.dao.mapper.SchBaseRegionMapper; -import org.nl.wms.sch.task_manage.enums.PointStatusEnum; +import org.nl.wms.sch.task_manage.core.enums.PointStatusEnum; import org.nl.wms.util.PointUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -225,4 +225,9 @@ public class SchBasePointServiceImpl extends ServiceImpl getHotNotTaskPoint(String area, String region, String pointType, String pointStatus) { + return pointMapper.getHotNotTaskPoint(area, region, pointType, pointStatus); + } + } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/ISchBaseTaskService.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/ISchBaseTaskService.java index 68dd35f67..24ba317c8 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/ISchBaseTaskService.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/ISchBaseTaskService.java @@ -128,4 +128,14 @@ public interface ISchBaseTaskService extends IService { * @return / */ List checkHaveRelatedTaskInRequestParam(String param); + + /** + * 根据点位获取对应的任务 + * @param p1 取货点1 + * @param p2 放货点1 + * @param p3 取货点2 + * @param p4 放货点2 + * @return / + */ + SchBaseTask getTaskByPointCodeX(String p1, String p2, String p3, String p4); } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java index 8fafd2a2c..591fa137b 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java @@ -265,4 +265,15 @@ public class SchBaseTaskServiceImpl extends ServiceImpl lam = new QueryWrapper().lambda(); + lam.eq(ObjectUtil.isNotEmpty(p1), SchBaseTask::getPoint_code1, p1) + .eq(ObjectUtil.isNotEmpty(p2), SchBaseTask::getPoint_code2, p2) + .eq(ObjectUtil.isNotEmpty(p3), SchBaseTask::getPoint_code3, p3) + .eq(ObjectUtil.isNotEmpty(p4), SchBaseTask::getPoint_code4, p4) + .lt(SchBaseTask::getTask_status, "07"); + return getOne(lam, false); + } + } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java index ce33a5047..d91e4e692 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.CodeUtil; import org.nl.config.SpringContextHolder; import org.nl.config.language.LangProcess; import org.nl.wms.ext.acs.service.WmsToAcsService; @@ -17,8 +18,8 @@ import org.nl.wms.sch.task.service.ISchBaseTaskService; import org.nl.wms.sch.task.service.ISchBaseTaskconfigService; import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig; -import org.nl.wms.sch.task_manage.constant.GeneralDefinition; -import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; +import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition; +import org.nl.wms.sch.task_manage.core.enums.TaskFinishedTypeEnum; import org.nl.wms.util.TaskUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -26,11 +27,11 @@ import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.List; -import static org.nl.wms.sch.task_manage.constant.TaskConstant.*; +import static org.nl.wms.sch.task_manage.core.constant.TaskConstant.*; /** * @author ldjun - * @version 1.0 + * @version 1.5 * @date 2023年05月16日 16:42 * @desc 任务抽象父类,申请任务的相关率先判断以及生成,接着到子类执行任务的创建,最后统一通过定时任务去下发到ACS *

模板模式+策略模式,将具体的创建任务交付给具体的子类,能够做到责任拆分,各司其职

@@ -172,7 +173,6 @@ public abstract class AbstractTask { // 根据传来的类型去对任务进行操作 if (status.equals(TaskStatus.EXECUTING)) { taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); - taskObj.setRemark("执行中"); taskObj.setCar_no(task.getString("car_no")); TaskUtils.setUpdateByAcs(taskObj); taskService.updateById(taskObj); @@ -188,15 +188,15 @@ public abstract class AbstractTask { /** * 具体完成逻辑 * @param taskObj 任务数据 - * @param autoAcs 完成枚举 + * @param taskFinishedType 完成枚举 */ - public abstract void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum autoAcs); + public abstract void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType); /** * 具体完成逻辑 * @param taskObj 任务数据 - * @param autoAcs 完成枚举 + * @param taskFinishedType 完成枚举 */ - public abstract void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum autoAcs); + public abstract void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType); /** @@ -270,7 +270,7 @@ public abstract class AbstractTask { taskConfig.getConfig_code(), taskConfig.getTask_direction()); Assert.isFalse(unFinishTasksByTaskConfig.size() >= tcmn, LangProcess.msg("common_maxTaskTip", applyPointCode)); - // 校验同个点位,同种任务是否多次请求创建任务(固定只能1个任务) + // 校验同个点位,同种任务是否多次请求创建任务(固定只能1个任务)此处不判断,调用此处前判断 // List applyPointTask = taskService.findUnFinishTasksByTaskConfig( // taskConfig.getConfig_code(), applyPointCode, taskConfig.getTask_direction()); // if (applyPointTask.size() == 1) { @@ -278,17 +278,19 @@ public abstract class AbstractTask { // } String vehicleType = param.getString("vehicle_type"); - String vehicleCode = TaskUtils.defaultVehicleCode(param.getString("vehicle_code")); + String vehicleCode = param.getString("vehicle_code"); + String vehicleCode2 = param.getString("vehicle_code2"); AbstractTask bean = SpringContextHolder.getBean(this.getClass()); // 2、创建申请任务 task.setAcs_trace_id(requestNo); task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); + task.setTask_code(CodeUtil.getNewCode("TASK_CODE")); task.setConfig_code(configCode); task.setCreate_mode(ObjectUtil.isNotEmpty(param.getString("create_mode")) ? param.getString("create_mode") : GeneralDefinition.ACS_CREATION); task.setVehicle_code(vehicleCode); + task.setVehicle_code2(vehicleCode2); task.setProduct_area(productArea); task.setVehicle_qty(param.getInteger("vehicle_qty")); task.setVehicle_type(vehicleType); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AcsUtil.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AcsUtil.java index 9d37428e0..bf9a78562 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AcsUtil.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AcsUtil.java @@ -16,7 +16,7 @@ import org.nl.wms.ext.acs.service.dto.ResultForAcs; 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.constant.GeneralDefinition; +import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition; import org.nl.wms.util.URLEnum; import org.springframework.http.HttpStatus; diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/constant/GeneralDefinition.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/constant/GeneralDefinition.java similarity index 97% rename from lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/constant/GeneralDefinition.java rename to lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/constant/GeneralDefinition.java index 974e34c4e..2e486df6a 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/constant/GeneralDefinition.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/constant/GeneralDefinition.java @@ -1,4 +1,4 @@ -package org.nl.wms.sch.task_manage.constant; +package org.nl.wms.sch.task_manage.core.constant; /** * @Author: lyd diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/constant/TaskConstant.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/constant/TaskConstant.java similarity index 80% rename from lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/constant/TaskConstant.java rename to lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/constant/TaskConstant.java index 69bb702ae..cd43897d8 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/constant/TaskConstant.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/constant/TaskConstant.java @@ -1,4 +1,4 @@ -package org.nl.wms.sch.task_manage.constant; +package org.nl.wms.sch.task_manage.core.constant; /** * @Author: lyd diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/GroupBindMaterialStatusEnum.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/enums/GroupBindMaterialStatusEnum.java similarity index 95% rename from lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/GroupBindMaterialStatusEnum.java rename to lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/enums/GroupBindMaterialStatusEnum.java index 506c1c9b0..6f1dbd0cf 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/GroupBindMaterialStatusEnum.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/enums/GroupBindMaterialStatusEnum.java @@ -1,4 +1,4 @@ -package org.nl.wms.sch.task_manage.enums; +package org.nl.wms.sch.task_manage.core.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/GroupStatusEnum.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/enums/GroupStatusEnum.java similarity index 92% rename from lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/GroupStatusEnum.java rename to lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/enums/GroupStatusEnum.java index 9643b5083..65ad563a4 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/GroupStatusEnum.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/enums/GroupStatusEnum.java @@ -1,4 +1,4 @@ -package org.nl.wms.sch.task_manage.enums; +package org.nl.wms.sch.task_manage.core.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/NoticeTypeEnum.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/enums/NoticeTypeEnum.java similarity index 89% rename from lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/NoticeTypeEnum.java rename to lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/enums/NoticeTypeEnum.java index 1ea90096f..bf9156ad1 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/NoticeTypeEnum.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/enums/NoticeTypeEnum.java @@ -1,4 +1,4 @@ -package org.nl.wms.sch.task_manage.enums; +package org.nl.wms.sch.task_manage.core.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/PackageInfoIvtEnum.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/enums/PackageInfoIvtEnum.java similarity index 97% rename from lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/PackageInfoIvtEnum.java rename to lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/enums/PackageInfoIvtEnum.java index 35103f279..514bcbb59 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/PackageInfoIvtEnum.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/enums/PackageInfoIvtEnum.java @@ -1,4 +1,4 @@ -package org.nl.wms.sch.task_manage.enums; +package org.nl.wms.sch.task_manage.core.enums; import lombok.AllArgsConstructor; import lombok.Getter; @@ -62,4 +62,4 @@ public enum PackageInfoIvtEnum { } throw new BadRequestException(this.name() + "对应类型" + code + "未定义"); } -} \ No newline at end of file +} diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/PointStatusEnum.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/enums/PointStatusEnum.java similarity index 89% rename from lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/PointStatusEnum.java rename to lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/enums/PointStatusEnum.java index e07927d4d..e9f623fe3 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/PointStatusEnum.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/enums/PointStatusEnum.java @@ -1,4 +1,4 @@ -package org.nl.wms.sch.task_manage.enums; +package org.nl.wms.sch.task_manage.core.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/TaskFinishedTypeEnum.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/enums/TaskFinishedTypeEnum.java similarity index 90% rename from lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/TaskFinishedTypeEnum.java rename to lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/enums/TaskFinishedTypeEnum.java index d732e39ba..b0db11d27 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/TaskFinishedTypeEnum.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/enums/TaskFinishedTypeEnum.java @@ -1,4 +1,4 @@ -package org.nl.wms.sch.task_manage.enums; +package org.nl.wms.sch.task_manage.core.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/WorkOrderStatusEnum.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/enums/WorkOrderStatusEnum.java similarity index 91% rename from lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/WorkOrderStatusEnum.java rename to lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/enums/WorkOrderStatusEnum.java index 0ffa42071..22b992974 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/WorkOrderStatusEnum.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/enums/WorkOrderStatusEnum.java @@ -1,4 +1,4 @@ -package org.nl.wms.sch.task_manage.enums; +package org.nl.wms.sch.task_manage.core.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawDownAGVTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/tasks/auto/AutoInHotTrussTask.java similarity index 53% rename from lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawDownAGVTask.java rename to lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/tasks/auto/AutoInHotTrussTask.java index 93cd9023c..cc7f3740b 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawDownAGVTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/tasks/auto/AutoInHotTrussTask.java @@ -1,32 +1,38 @@ -package org.nl.wms.sch.task_manage.tasks.raw; +package org.nl.wms.sch.task_manage.core.tasks.auto; import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task_manage.AbstractTask; -import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; +import org.nl.wms.sch.task_manage.core.enums.TaskFinishedTypeEnum; import org.springframework.stereotype.Component; /** * @Author: lyd - * @Description: 生箔下料AGV任务, 这里有四点或者两点任务 - * @Date: 2024/8/7 + * @Description: 自动创建入烘箱任务 + * @Date: 2024/8/9 */ @Slf4j -@Component(value = "RawDownAGVTask") -public class RawDownAGVTask extends AbstractTask { +@Component(value = "AutoInHotTrussTask") +public class AutoInHotTrussTask extends AbstractTask { @Override public void create() throws BadRequestException { } @Override - public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum autoAcs) { + protected void autoCreate() { + // 自动创建 + log.info("自动创建。。。。"); + } + + @Override + public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { } @Override - public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum autoAcs) { + public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { } } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/tasks/hot/InHotTrussTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/tasks/hot/InHotTrussTask.java new file mode 100644 index 000000000..db930ac89 --- /dev/null +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/tasks/hot/InHotTrussTask.java @@ -0,0 +1,171 @@ +package org.nl.wms.sch.task_manage.core.tasks.hot; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.RedisUtils; +import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder; +import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService; +import org.nl.wms.pdm.ivt.dao.StIvtHotpointivt; +import org.nl.wms.pdm.ivt.service.IstIvtHotpointivtService; +import org.nl.wms.sch.point.service.ISchBasePointService; +import org.nl.wms.sch.point.service.dao.SchBasePoint; +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.TaskStatus; +import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition; +import org.nl.wms.sch.task_manage.core.enums.TaskFinishedTypeEnum; +import org.nl.wms.util.PointUtils; +import org.nl.wms.util.TaskUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +import static org.nl.wms.util.TaskUtils.checkTaskOptionStatus; +import static org.nl.wms.util.TaskUtils.setUpdateByPC; +import static org.nl.wms.util.PointUtils.setUpdateByType; +import static org.nl.wms.util.PointUtils.setHxUpdateByType; + +/** + * @Author: lyd + * @Description: 入烘箱的任务类 + * @Date: 2024/8/8 + */ +@Slf4j +@Component(value = "InHotTrussTask") +public class InHotTrussTask extends AbstractTask { + private final String THIS_CLASS = InHotTrussTask.class.getName(); + private final static String HX_REGION = "A1-HXZC"; + + @Autowired + private IpdmBiRawfoilworkorderService rawfoilworkorderService; + @Autowired + private IstIvtHotpointivtService hotpointivtService; + @Autowired + private ISchBasePointService pointService; + @Autowired + private RedisUtils redisUtils; + @Autowired + private ISchBaseTaskService taskService; + @Override + public void create() throws BadRequestException { + + } + + @Override + public void createCompletion(SchBaseTask task) { + // 查找烘箱同大卷小卷 + String requestParam = task.getRequest_param(); + JSONObject requestObj = JSONObject.parseObject(requestParam); + String workorderId = requestObj.getString("workorder_id"); + PdmBiRawfoilworkorder order = rawfoilworkorderService.getById(workorderId); + if ("1".equals(order.getIs_baking())) { + String bakingTemperature = order.getBaking_temperature(); + // 如果需要烘烤, 先找对应点 + List hotList = hotpointivtService.getNotTaskHotOven(order.getRoll_type(), "1"); + if (hotList.size() > 0) { + // 查找合适温度的点位 + for (StIvtHotpointivt hotPoint : hotList) { + String pointCode = hotPoint.getPoint_code(); +// String pointTemperature = (String) redisUtils.hget(pointCode, "temperature"); +// if (ObjectUtil.isNotEmpty(pointTemperature)) { +// if (pointTemperature.equals(bakingTemperature)) { +// task.setPoint_code2(hotPoint.getPoint_code()); +// break; +// } +// } + // 临时测试 + task.setPoint_code2(hotPoint.getPoint_code()); + break; + } + } + // 没有烘烤位置或者没有找到对应的点就区待烘烤区, 就去待烘烤 + if (hotList.size() == 0 || ObjectUtil.isEmpty(task.getPoint_code2())) { + // 找不到就去找暂存区(待烘烤区) + List hotDjwList = pointService.getHotNotTaskPoint("A1", HX_REGION, "2", "1"); + if (hotDjwList.size() > 0) { + SchBasePoint point = hotDjwList.get(0); + task.setPoint_code2(point.getPoint_code()); + } + } + } else { + // 不需要烘烤,则送到暂存区(无需烘烤区 - 任务做完需要将点位设置为待分切) + List hotDjwList = pointService.getHotNotTaskPoint("A1", HX_REGION, "3", "1"); + if (hotDjwList.size() > 0) { + SchBasePoint point = hotDjwList.get(0); + task.setPoint_code2(point.getPoint_code()); + } + + } + // 如果都没有位置, 就去未开启的烘箱的空位,也是区分大小卷 + if (ObjectUtil.isEmpty(task.getPoint_code2())) { + List notTaskHotOven = hotpointivtService.getNotTaskHotOven(order.getRoll_type(), "0"); + if (notTaskHotOven.size() == 0) { + throw new BadRequestException("未找到可用货位!"); + } + StIvtHotpointivt stIvtHotpointivt = notTaskHotOven.get(0); + task.setPoint_code2(stIvtHotpointivt.getPoint_code()); + } + // 保存任务参数 + task.setHandle_class(THIS_CLASS); + task.setTask_status(TaskStatus.START_AND_POINT.getCode()); + setUpdateByPC(task); + taskService.save(task); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + checkTaskOptionStatus(taskObj); + // 完成任务,需要设置对应点位状态(可能入的是烘箱,也有可能入的是暂存区) + String requestParam = taskObj.getRequest_param(); + JSONObject requestObj = JSONObject.parseObject(requestParam); + String workorderId = requestObj.getString("workorder_id"); + String pointCode2 = taskObj.getPoint_code2(); + SchBasePoint hotDjwPoint = pointService.getById(pointCode2); + StIvtHotpointivt hotpointivt = hotpointivtService.getPointByCode(pointCode2, false); + PdmBiRawfoilworkorder order = rawfoilworkorderService.getById(workorderId); + Assert.notNull(order, "工单不能为空!"); + if (ObjectUtil.isEmpty(hotpointivt)) { + // 如果是对接位, 判断区域,修改对应的点位状态,并且绑定载具号 + hotDjwPoint.setVehicle_code(taskObj.getVehicle_code()); + hotDjwPoint.setPoint_status("1".equals(order.getIs_baking()) ? "2" : "4"); + // 此字段存放工单号 + hotDjwPoint.setGroup_id(workorderId); + setUpdateByType(hotDjwPoint, taskFinishedType); + pointService.update(hotDjwPoint); + } else { + // 如果是烘箱位, 需要判断是做为暂存,还是说进行暂存,则状态为03:暂存中 + hotpointivt.setContainer_name(order.getContainer_name()); + hotpointivt.setWorkorder_id(order.getWorkorder_id()); + hotpointivt.setInstorage_time(DateUtil.now()); + hotpointivt.setPoint_status("1".equals(order.getIs_baking()) ? "02" : "03"); + // todo: 更新温度和倒计时 + setHxUpdateByType(hotpointivt, taskFinishedType); + hotpointivtService.updateById(hotpointivt); + } + // 完成 + taskObj.setTask_status(TaskStatus.FINISHED.getCode()); + taskObj.setFinished_type(taskFinishedType.getCode()); + TaskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + checkTaskOptionStatus(taskObj); + // 取消 + taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + taskObj.setRemark(GeneralDefinition.TASK_CANCEL); + taskObj.setFinished_type(taskFinishedType.getCode()); + TaskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); + } +} diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawCallRollAGVTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/tasks/raw/RawCallRollAGVTask.java similarity index 61% rename from lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawCallRollAGVTask.java rename to lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/tasks/raw/RawCallRollAGVTask.java index e64cc884b..eb8ccbd69 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawCallRollAGVTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/tasks/raw/RawCallRollAGVTask.java @@ -1,6 +1,5 @@ -package org.nl.wms.sch.task_manage.tasks.raw; +package org.nl.wms.sch.task_manage.core.tasks.raw; -import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; @@ -8,10 +7,14 @@ 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.TaskStatus; -import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; +import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition; +import org.nl.wms.sch.task_manage.core.enums.TaskFinishedTypeEnum; +import org.nl.wms.util.TaskUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import static org.nl.wms.util.TaskUtils.checkTaskOptionStatus; import static org.nl.wms.util.TaskUtils.setUpdateByPC; /** @@ -49,12 +52,24 @@ public class RawCallRollAGVTask extends AbstractTask { } @Override - public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum autoAcs) { - + @Transactional(rollbackFor = Exception.class) + public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + checkTaskOptionStatus(taskObj); + taskObj.setTask_status(TaskStatus.FINISHED.getCode()); + taskObj.setFinished_type(taskFinishedType.getCode()); + TaskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); } @Override - public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum autoAcs) { - + @Transactional(rollbackFor = Exception.class) + public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + checkTaskOptionStatus(taskObj); + // 取消 + taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + taskObj.setRemark(GeneralDefinition.TASK_CANCEL); + taskObj.setFinished_type(taskFinishedType.getCode()); + TaskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); } } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawCallRollTrussTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/tasks/raw/RawCallRollTrussTask.java similarity index 84% rename from lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawCallRollTrussTask.java rename to lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/tasks/raw/RawCallRollTrussTask.java index d42152f63..9057db067 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawCallRollTrussTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/tasks/raw/RawCallRollTrussTask.java @@ -1,4 +1,4 @@ -package org.nl.wms.sch.task_manage.tasks.raw; +package org.nl.wms.sch.task_manage.core.tasks.raw; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; @@ -11,9 +11,9 @@ import org.nl.wms.sch.point.service.dao.SchBasePoint; 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.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.TaskStatus; -import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; +import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition; +import org.nl.wms.sch.task_manage.core.enums.TaskFinishedTypeEnum; import org.nl.wms.util.TaskUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -23,8 +23,8 @@ import javax.annotation.Resource; import java.util.List; import static org.nl.wms.util.PointUtils.clearPoint; -import static org.nl.wms.util.TaskUtils.setUpdateByPC; import static org.nl.wms.util.TaskUtils.checkTaskOptionStatus; +import static org.nl.wms.util.TaskUtils.setUpdateByPC; /** * @Author: lyd @@ -41,6 +41,8 @@ public class RawCallRollTrussTask extends AbstractTask { private ISchBaseTaskService taskService; @Autowired private RawCallRollAGVTask rawCallRollAGVTask; + @Autowired + private RawDownAGVTask rawDownAGVTask; @Resource private IstIvtSbpointivtService stIvtSbpointivtService; @Override @@ -68,6 +70,7 @@ public class RawCallRollTrussTask extends AbstractTask { task.setHandle_class(THIS_CLASS); task.setPoint_code1(startPoint.getPoint_code()); task.setPoint_code2(endPoint.getPoint_code()); + // 收卷辊库里的载具编码 task.setVehicle_code(startPoint.getVehicle_code()); task.setTask_status(TaskStatus.START_AND_POINT.getCode()); setUpdateByPC(task); @@ -86,6 +89,7 @@ public class RawCallRollTrussTask extends AbstractTask { // 其中device_code代表AGV的终点(生箔点位) JSONObject requestObj = JSONObject.parseObject(requestParam); String endAgvPoint = requestObj.getString("device_code"); + String flag = requestObj.getString("is_flag"); // 1、清空起点数据 String startPoint = taskObj.getPoint_code1(); SchBasePoint startPointObj = pointService.getById(startPoint); @@ -101,15 +105,27 @@ public class RawCallRollTrussTask extends AbstractTask { } log.info("桁架任务完毕,开始创建 [{}] 的AGV任务", endAgvPoint); // 2、创建AGV任务 + // 收卷辊库里的载具编码 taskParam.put("vehicle_code", taskObj.getVehicle_code()); taskParam.put("vehicle_type", taskObj.getVehicle_type()); taskParam.put("device_code", endAgvPoint); + taskParam.put("is_flag", flag); + taskParam.put("workorder_id", requestObj.getString("workorder_id")); taskParam.put("start_point_code", taskObj.getPoint_code2()); - taskParam.put("config_code", "RawCallRollAGVTask"); taskParam.put("up_task_code", taskObj.getTask_code()); taskParam.put("create_mode", GeneralDefinition.TASK_CREATION); + // 这里需要判断是否是送轴的任务 + if ("1".equals(flag)) { + // 需要的是四点任务 + taskParam.put("config_code", "RawDownAGVTask"); + taskParam.put("vehicle_code2", requestObj.getString("vehicle_code")); + rawDownAGVTask.apply(taskParam); + } else { + // 单纯送空 + taskParam.put("config_code", "RawCallRollAGVTask"); + rawCallRollAGVTask.apply(taskParam); + } log.info("创建AGV任务的参数:{}", taskParam); - rawCallRollAGVTask.apply(taskParam); taskObj.setTask_status(TaskStatus.FINISHED.getCode()); taskObj.setFinished_type(taskFinishedType.getCode()); TaskUtils.setUpdateByType(taskObj, taskFinishedType); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/tasks/raw/RawDownAGVTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/tasks/raw/RawDownAGVTask.java new file mode 100644 index 000000000..2837eab4e --- /dev/null +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/tasks/raw/RawDownAGVTask.java @@ -0,0 +1,133 @@ +package org.nl.wms.sch.task_manage.core.tasks.raw; + +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.exception.BadRequestException; +import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder; +import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService; +import org.nl.wms.sch.point.service.ISchBasePointService; +import org.nl.wms.sch.point.service.dao.SchBasePoint; +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.TaskStatus; +import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition; +import org.nl.wms.sch.task_manage.core.enums.TaskFinishedTypeEnum; +import org.nl.wms.sch.task_manage.core.tasks.hot.InHotTrussTask; +import org.nl.wms.util.TaskUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +import static org.nl.wms.util.TaskUtils.checkTaskOptionStatus; +import static org.nl.wms.util.TaskUtils.setUpdateByPC; + +/** + * @Author: lyd + * @Description: 生箔下料AGV任务, 这里有四点或者两点任务 + * @Date: 2024/8/7 + */ +@Slf4j +@Component(value = "RawDownAGVTask") +public class RawDownAGVTask extends AbstractTask { + private final String THIS_CLASS = RawDownAGVTask.class.getName(); + private final static String HX_REGION = "A1-HXZC"; + @Autowired + private ISchBasePointService pointService; + @Autowired + private ISchBaseTaskService taskService; + @Autowired + private IpdmBiRawfoilworkorderService rawfoilworkorderService; + @Autowired + private InHotTrussTask inHotTrussTask; + @Override + public void create() throws BadRequestException { + + } + + @Override + public void createCompletion(SchBaseTask task) { + String requestParam = task.getRequest_param(); + JSONObject requestObj = JSONObject.parseObject(requestParam); + String flag = requestObj.getString("is_flag"); + // 生箔位置 + String deviceCode = requestObj.getString("device_code"); + // 收卷辊库出口 + String startPointCode = requestObj.getString("start_point_code"); + // 查找烘箱可用的位置(没货、没锁、没任务、没禁用) + List hxPoints = pointService.getHotNotTaskPoint("A1", HX_REGION, "1", "1"); + if (hxPoints.size() == 0) { + throw new BadRequestException("烘箱没有可以用的对接位!"); + } + SchBasePoint hxPoint = hxPoints.get(0); + if ("1".equals(flag)) { + // 创建四点任务:先到生箔位,在从生箔到烘箱对接位 + task.setPoint_code1(startPointCode); + task.setPoint_code2(deviceCode); + task.setPoint_code3(deviceCode); + task.setPoint_code4(hxPoint.getPoint_code()); + } else { + // 创建两点任务: 搬运到烘箱位置 + task.setPoint_code1(deviceCode); + task.setPoint_code2(hxPoint.getPoint_code()); + } + // 保存任务参数 + task.setHandle_class(THIS_CLASS); + task.setTask_status(TaskStatus.START_AND_POINT.getCode()); + setUpdateByPC(task); + taskService.save(task); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + // 任务完成将工单对应的状态设置04, 维护重量信息。触发烘箱桁架任务 + JSONObject taskParam = new JSONObject(); + String requestParam = taskObj.getRequest_param(); + JSONObject requestObj = JSONObject.parseObject(requestParam); + String workorderId = requestObj.getString("workorder_id"); + if (ObjectUtil.isNotEmpty(workorderId)) { + rawfoilworkorderService.update(new LambdaUpdateWrapper() + .set(PdmBiRawfoilworkorder::getStatus, "04") + .eq(PdmBiRawfoilworkorder::getWorkorder_id, workorderId)); + log.info("工单修改完毕 - 工单标识 - {}", workorderId); + } + String hxPointCode = ""; + // 获取点位 + if (ObjectUtil.isEmpty(taskObj.getPoint_code3())) { + // 取满任务 + hxPointCode = taskObj.getPoint_code2(); + } else { + // 取满放空任务 + hxPointCode = taskObj.getPoint_code4(); + } + log.info("开始创建桁架任务入烘箱...."); + taskParam.put("workorder_id", requestObj.getString("workorder_id")); + taskParam.put("up_task_code", taskObj.getTask_code()); + taskParam.put("device_code", hxPointCode); + taskParam.put("config_code", "InHotTrussTask"); + // 满卷的收卷辊编码放在AGV任务的载具2上 + taskParam.put("vehicle_code", taskObj.getVehicle_code2()); + inHotTrussTask.apply(taskParam); + taskObj.setTask_status(TaskStatus.FINISHED.getCode()); + taskObj.setFinished_type(taskFinishedType.getCode()); + TaskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + checkTaskOptionStatus(taskObj); + // 取消 + taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + taskObj.setRemark(GeneralDefinition.TASK_CANCEL); + taskObj.setFinished_type(taskFinishedType.getCode()); + TaskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); + } +} diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/second_floor_area/CallEmpReelTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/second_floor_area/CallEmpReelTask.java deleted file mode 100644 index 8420f4fc5..000000000 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/second_floor_area/CallEmpReelTask.java +++ /dev/null @@ -1,424 +0,0 @@ -package org.nl.wms.sch.task_manage.task.second_floor_area; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.lang.Assert; -import cn.hutool.core.util.BooleanUtil; -import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.alibaba.fastjson.TypeReference; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import lombok.extern.slf4j.Slf4j; -import org.nl.common.exception.BadRequestException; -import org.nl.common.utils.CodeUtil; -import org.nl.common.utils.SecurityUtils; -import org.nl.config.language.LangProcess; -import org.nl.system.service.dict.ISysDictService; -import org.nl.system.service.dict.dao.Dict; -import org.nl.wms.basedata.material.dao.MdMeMaterialbase; -import org.nl.wms.basedata.material.service.ImdMeMaterialbaseService; -import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder; -import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService; -import org.nl.wms.pdm.ivt.dao.StIvtCoolpointivt; -import org.nl.wms.pdm.ivt.dao.StIvtCoolregionio; -import org.nl.wms.pdm.ivt.dao.StIvtSbpointivt; -import org.nl.wms.pdm.ivt.service.IstIvtCoolpointivtService; -import org.nl.wms.pdm.ivt.service.IstIvtCoolregionioService; -import org.nl.wms.pdm.ivt.service.IstIvtSbpointivtService; -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.AcsTaskDto; -import org.nl.wms.sch.task_manage.enums.PackageInfoIvtEnum; -import org.nl.wms.sch.task_manage.TaskStatus; -import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; -import org.nl.wms.storage_manage.ios.enums.IOSEnum; -import org.nl.wms.util.TaskUtils; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; -import java.math.BigDecimal; -import java.util.Map; - - -/** - * 1 生箔区域和冷却区之前的任务创建 - * - * @author gbx - * @since 2024-03-28 - */ -@Slf4j -@Component(value = "CallEmpReelTask") -public class CallEmpReelTask extends AbstractTask { - - private final String THIS_CLASS = CallEmpReelTask.class.getName(); - - - @Resource - private ISchBaseTaskService taskService; - - - - @Resource - private ISysDictService sysDictService; - - - - @Resource - private IstIvtCoolpointivtService stIvtCoolpointivtService; - - - @Resource - private IstIvtCoolregionioService stIvtCoolRegionIoService; - - - @Resource - private IpdmBiRawfoilworkorderService pdmBiRawfoilworkorderService; - - - @Resource - private IstIvtSbpointivtService stIvtSbpointivtService; - - - @Resource - private ImdMeMaterialbaseService mdMeMaterialbaseService; - - - /** - * 特殊操作 - * - * @param task LMS任务 - * @param acsTaskDto ACS任务 - */ - @Override - public void deliveryBeforeProcessing(SchBaseTask task, AcsTaskDto acsTaskDto) { - acsTaskDto.setDtl_type(task.getDtl_type()); - acsTaskDto.setTruss_type(PackageInfoIvtEnum.TRUSS_TYPE.code("点对点任务")); - acsTaskDto.setParams(JSON.parseObject(task.getRequest_param(), - new TypeReference>() {})); - } - - @Override - public void create() throws BadRequestException { - - } - - @Override - public void createCompletion(SchBaseTask task) { - Assert.notNull(task, "请求参数不能为空"); - String taskType = task.getTask_type(); - if (StrUtil.isBlank(taskType)) { - throw new BadRequestException("业务类型不能为空"); - } - String vehicleCode = task.getVehicle_code(); - if (StrUtil.isBlank(vehicleCode)) { - throw new BadRequestException("载具号不能为空"); - } - String pointCode1 = task.getPoint_code1(); - if (StrUtil.isBlank(pointCode1)) { - throw new BadRequestException("起点不能为空"); - } - String pointCode2 = task.getPoint_code2(); - if (StrUtil.isBlank(pointCode2)) { - throw new BadRequestException("下一点不能为空"); - } - if (isSingleTask(pointCode1)) { - throw new BadRequestException("点位:" + pointCode1 + "存在未完成的任务!"); - } - if (isSingleTask(pointCode2)) { - throw new BadRequestException("点位:" + pointCode2 + "存在未完成的任务!"); - } - if (isSingleTask(task.getPoint_code3())) { - throw new BadRequestException("点位:" + task.getPoint_code3() + "存在未完成的任务!"); - } - if (isSingleTask(task.getPoint_code4())) { - throw new BadRequestException("点位:" + task.getPoint_code4() + "存在未完成的任务!"); - } - task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setHandle_class(THIS_CLASS); - task.setTask_status(StrUtil.isBlank(task.getTask_status()) ? TaskStatus.START_AND_POINT.getCode() : task.getTask_status()); - task.setProduct_area(StrUtil.isEmpty(task.getProduct_area())? "A1" : task.getProduct_area()); - Dict dict = sysDictService.getOne(new LambdaQueryWrapper() - .eq(Dict::getCode, "task_priority") - .eq(Dict::getLabel, task.getTask_type())); - task.setPriority(dict == null ? "1" : dict.getValue()); - boolean isSend = StrUtil.isBlank(task.getIs_send()) || BooleanUtil.toBoolean(task.getIs_send()); - task.setIs_send(isSend ? "1" : "0"); - TaskUtils.setCreateByDefault(task); - if (StrUtil.equals(task.getTask_type(), "1")) { - if (isSingleTask(task.getPoint_code1()) || isSingleTask(task.getPoint_code3())) { - throw new BadRequestException("点位:" + (isSingleTask(task.getPoint_code1()) ? task.getPoint_code1() : task.getPoint_code3()) + "存在未完成的任务!"); - } - task.setTask_type("010201"); - task.setAcs_task_type(PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); - // 更新对应点位库存为已裹膜 - StIvtCoolpointivt coolIvtToUpdate = stIvtCoolpointivtService.getOne(new LambdaQueryWrapper() - .eq(StIvtCoolpointivt::getFull_point_code, task.getPoint_code1()), false); - if (ObjectUtil.isEmpty(coolIvtToUpdate)) { - throw new BadRequestException("未查询到对应的冷却区点位!"); - } - coolIvtToUpdate.setCool_ivt_status("02"); - stIvtCoolpointivtService.updateById(coolIvtToUpdate); - } else if (StrUtil.equals(task.getTask_type(), "2")) { - if (isSingleTask(task.getPoint_code1()) || isSingleTask(task.getPoint_code2())) { - throw new BadRequestException("点位:" + (isSingleTask(task.getPoint_code1()) ? task.getPoint_code1() : task.getPoint_code2()) + "存在未完成的任务!"); - } - task.setTask_type("010203"); - task.setAcs_task_type(PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); - } - taskService.save(task); - // 如果需要立即下发 - if (BooleanUtil.toBoolean(task.getIs_send())) { - this.immediateNotifyAcs(task); - } - } - - - @Override - @Transactional(rollbackFor = Exception.class) - public void updateStatus(JSONObject taskObj, TaskStatus status) { - SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() - .eq(SchBaseTask::getTask_code, taskObj.getString("task_code")), false); - if (schBaseTask == null) { - throw new BadRequestException("CallEmpReelTask任务更新接口任务号为空!"); - } - //更新车号和重量 - String carNo = taskObj.getString("car_no"); - if (ObjectUtil.isNotEmpty(carNo)) { - PdmBiRawfoilworkorder jsonRaw = pdmBiRawfoilworkorderService.getOne(new QueryWrapper() - .eq("container_name", schBaseTask.getMaterial_code()) - .ne("status", "09") - .eq("is_delete", "0") - ); - if (jsonRaw != null) { - jsonRaw.setAgvno(carNo); - pdmBiRawfoilworkorderService.updateById(jsonRaw); - } - } - // 更新生箔工单称重信息 - String weight = taskObj.getString("weight"); - if (ObjectUtil.isNotEmpty(weight)) { - PdmBiRawfoilworkorder jsonRaw = pdmBiRawfoilworkorderService.getOne(new QueryWrapper() - .eq("container_name", schBaseTask.getMaterial_code()) - .ne("status", "09") - .eq("is_delete", "0") - ); - if (jsonRaw != null) { - jsonRaw.setProductin_qty(new BigDecimal(weight)); - pdmBiRawfoilworkorderService.updateById(jsonRaw); - } - } - if (status.getCode().equals(IOSEnum.IS_NOTANDYES.code("否"))) { - // 更新删除字段 - schBaseTask.setIs_delete(true); - schBaseTask.setUpdate_time(DateUtil.now()); - taskService.updateById(schBaseTask); - // 更新生箔工单状态为开始、清除称重信息 - PdmBiRawfoilworkorder jsonRaw = pdmBiRawfoilworkorderService.getOne(new QueryWrapper() - .eq("container_name", schBaseTask.getMaterial_code()) - .ne("status", "09") - .eq("is_delete", "0") - ); - if (jsonRaw != null) { - jsonRaw.setStatus("01"); - jsonRaw.setProductin_qty(BigDecimal.ZERO); - pdmBiRawfoilworkorderService.updateById(jsonRaw); - } - } - // 执行中 - if (TaskStatus.EXECUTING.getCode().equals(status.getCode())) { - // 更新任务状态为执行中 - schBaseTask.setTask_status(TaskStatus.EXECUTING.getCode()); - } - // 完成 - if (StrUtil.equals(status.getCode(), TaskStatus.FINISHED.getCode())) { - // 更新任务状态为执行中 - schBaseTask.setTask_status(TaskStatus.FINISHED.getCode()); - String pointCode1 = schBaseTask.getPoint_code1(); - String pointCode2 = schBaseTask.getPoint_code2(); - String pointCode3 = schBaseTask.getPoint_code3(); - String pointCode4 = schBaseTask.getPoint_code4(); - PdmBiRawfoilworkorder jsonRaw = pdmBiRawfoilworkorderService.getOne(new QueryWrapper() - .eq("container_name", schBaseTask.getMaterial_code()) - .ne("status", "09") - .eq("is_delete", "0") - ); - - // 判断是两个点位的任务还是四个点位的任务 - if (ObjectUtil.isEmpty(pointCode3)) { - // 判断是取满 or 取空 :取满起点是生箔区域、取空起点是冷却区域 - StIvtSbpointivt jsonSbIvt = stIvtSbpointivtService.getOne(new QueryWrapper() - .eq("point_code", pointCode1.substring(0, pointCode1.length() - 2)) - ); - if (ObjectUtil.isNotEmpty(jsonSbIvt)) { - // 取满 - StIvtCoolpointivt jsonCoolIvt = stIvtCoolpointivtService.getOne(new QueryWrapper() - .eq("full_point_code", pointCode2) - ); - // 更新库存状态 - if (jsonCoolIvt != null) { - jsonCoolIvt.setFull_point_status("02"); - jsonCoolIvt.setInstorage_time(DateUtil.now()); - jsonCoolIvt.setContainer_name(jsonRaw.getContainer_name()); - jsonCoolIvt.setWorkorder_id(jsonRaw.getWorkorder_id()); - jsonCoolIvt.setIvt_qty(jsonRaw.getProductin_qty()); - stIvtCoolpointivtService.updateById(jsonCoolIvt); - } - // 更新母卷工单状态 - pdmBiRawfoilworkorderService.update(Wrappers.lambdaUpdate() - .set(PdmBiRawfoilworkorder::getStatus, "09") - .set(PdmBiRawfoilworkorder::getRealend_time, DateUtil.now()) - .set(PdmBiRawfoilworkorder::getUpdate_optid, SecurityUtils.getCurrentUserId()) - .set(PdmBiRawfoilworkorder::getUpdate_optname, SecurityUtils.getCurrentUsername()) - .set(PdmBiRawfoilworkorder::getFinish_type, "01") - .set(PdmBiRawfoilworkorder::getUpdate_time, DateUtil.now()) - .eq(PdmBiRawfoilworkorder::getContainer_name, schBaseTask.getMaterial_code()) - ); - } else { - // 取空 - StIvtCoolpointivt jsonCoolIvt = stIvtCoolpointivtService.getOne(new QueryWrapper() - .eq("empty_point_code", pointCode1) - ); - if (jsonCoolIvt != null) { - jsonCoolIvt.setEmpty_point_status("01"); - jsonCoolIvt.setEmpty_vehicle_code(""); - stIvtCoolpointivtService.updateById(jsonCoolIvt); - } - } - } else { - // 取满放空 - // 校验起点是否存在 - StIvtCoolpointivt jsonIvt = stIvtCoolpointivtService.getOne(new QueryWrapper() - .eq("empty_point_code", pointCode1) - ); - if (jsonIvt == null) { - throw new BadRequestException("未找到可用点位:" + pointCode1); - } - // 更新冷却库存状态 - jsonIvt.setEmpty_point_status("01"); - jsonIvt.setEmpty_vehicle_code(""); - stIvtCoolpointivtService.updateById(jsonIvt); - // 校验终点是否存在 - StIvtCoolpointivt jsonIvt2 = stIvtCoolpointivtService.getOne(new QueryWrapper() - .eq("full_point_code", pointCode4) - ); - if (jsonIvt2 == null) { - throw new BadRequestException("终点未找到可用点位:" + pointCode2); - } - // 更新工单状态为完成 - pdmBiRawfoilworkorderService.update(Wrappers.lambdaUpdate() - .set(PdmBiRawfoilworkorder::getStatus, "09") - .set(PdmBiRawfoilworkorder::getRealend_time, DateUtil.now()) - .set(PdmBiRawfoilworkorder::getUpdate_optid, SecurityUtils.getCurrentUserId()) - .set(PdmBiRawfoilworkorder::getUpdate_optname, SecurityUtils.getCurrentUsername()) - .set(PdmBiRawfoilworkorder::getFinish_type, "01") - .set(PdmBiRawfoilworkorder::getUpdate_time, DateUtil.now()) - .eq(PdmBiRawfoilworkorder::getContainer_name, schBaseTask.getMaterial_code()) - ); - // 更新冷却库存状态 - jsonIvt2.setFull_point_status("02"); - jsonIvt2.setInstorage_time(DateUtil.now()); - jsonIvt2.setContainer_name(jsonRaw.getContainer_name()); - jsonIvt2.setWorkorder_id(jsonRaw.getWorkorder_id()); - jsonIvt2.setIvt_qty(jsonRaw.getProductin_qty()); - jsonIvt2.setCool_ivt_status("01"); - stIvtCoolpointivtService.updateById(jsonIvt2); - // 插入入库单 - MdMeMaterialbase jsonMater = mdMeMaterialbaseService.getOne(new QueryWrapper() - .eq("material_code", jsonRaw.getProduct_name()) - ); - if (jsonMater == null) { - throw new BadRequestException("产品不存在"); - } - StIvtCoolregionio jsonRegion = new StIvtCoolregionio(); - jsonRegion.setIostorinv_id(IdUtil.getSnowflake(1, 1).nextId()); - jsonRegion.setBill_code(CodeUtil.getNewCode("COOLREGION_BILL_CODE")); - jsonRegion.setIo_type("0"); - jsonRegion.setMaterial_id(jsonMater.getMaterial_id()); - jsonRegion.setPcsn(jsonRaw.getContainer_name()); - jsonRegion.setVehicle_code(""); - jsonRegion.setQty(jsonRaw.getProductin_qty()); - //todo 物料单位是否需要 - //jsonRegion.setQty_unit_id(jsonMater.getQty_unit_id()); - jsonRegion.setBill_status("50"); - jsonRegion.setStart_point_code(pointCode2); - jsonRegion.setEnd_point_code(pointCode4); - jsonRegion.setCust_id(""); - jsonRegion.setCreate_mode("03"); - jsonRegion.setTask_id(taskObj.getString("task_code")); - jsonRegion.setCreate_id(SecurityUtils.getCurrentUserId()); - jsonRegion.setCreate_name(SecurityUtils.getCurrentUsername()); - jsonRegion.setCreate_time(DateUtil.now()); - jsonRegion.setUpdate_optid(SecurityUtils.getCurrentUserId()); - jsonRegion.setUpdate_optname(SecurityUtils.getCurrentUsername()); - jsonRegion.setUpdate_time(DateUtil.now()); - jsonRegion.setConfirm_optid(SecurityUtils.getCurrentUserId()); - jsonRegion.setConfirm_optname(SecurityUtils.getCurrentUsername()); - jsonRegion.setConfirm_time(DateUtil.now()); - stIvtCoolRegionIoService.save(jsonRegion); - } - } - TaskUtils.setUpdateByDefault(schBaseTask); - taskService.updateById(schBaseTask); - } - - @Override - public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum autoAcs) { - - } - - @Override - public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum autoAcs) { - - } - - - @Override - public void forceFinish(String taskId) { - SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() - .eq(SchBaseTask::getTask_id, taskId), false); - if (schBaseTask == null) { - throw new BadRequestException(LangProcess.msg("CallEmpReelTask_forceFinish")); - } - schBaseTask.setTask_status(TaskStatus.FINISHED.getCode()); - TaskUtils.setUpdateByDefault(schBaseTask); - taskService.updateById(schBaseTask); - } - - @Override - public void cancel(String taskId) { - SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() - .eq(SchBaseTask::getTask_id, taskId), false); - if (schBaseTask == null) { - throw new BadRequestException(LangProcess.msg("CallEmpReelTask_forceCancel")); - } - schBaseTask.setTask_status(IOSEnum.ACS_RESULT.code("取消")); - TaskUtils.setUpdateByDefault(schBaseTask); - taskService.updateById(schBaseTask); - } - - public boolean isSingleTask(String point_code) { - return taskService.getOne(new LambdaQueryWrapper() - .and(wrapper -> wrapper - .eq(SchBaseTask::getPoint_code1, point_code) - .or() - .eq(SchBaseTask::getPoint_code2, point_code) - .or() - .eq(SchBaseTask::getPoint_code3, point_code) - .or() - .eq(SchBaseTask::getPoint_code4, point_code) - ) - .lt(SchBaseTask::getTask_status, "07") - .eq(SchBaseTask::getIs_delete, "0") - ) != null; - } - - -} diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/second_floor_area/CoolCutTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/second_floor_area/CoolCutTask.java deleted file mode 100644 index 5734c3061..000000000 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/second_floor_area/CoolCutTask.java +++ /dev/null @@ -1,392 +0,0 @@ -package org.nl.wms.sch.task_manage.task.second_floor_area; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.lang.Assert; -import cn.hutool.core.util.BooleanUtil; -import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSONObject; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.TypeReference; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.nl.common.exception.BadRequestException; -import org.nl.common.utils.SecurityUtils; -import org.nl.system.service.dict.ISysDictService; -import org.nl.system.service.dict.dao.Dict; -import org.nl.wms.pdm.bi.dao.PdmBiSlittingproductionplan; -import org.nl.wms.pdm.bi.service.IpdmBiSlittingproductionplanService; -import org.nl.wms.pdm.ivt.dao.StIvtCoolpointivt; -import org.nl.wms.pdm.ivt.dao.StIvtCoolregionio; -import org.nl.wms.pdm.ivt.dao.StIvtCutpointivt; -import org.nl.wms.pdm.ivt.service.IstIvtCoolpointivtService; -import org.nl.wms.pdm.ivt.service.IstIvtCoolregionioService; -import org.nl.wms.pdm.ivt.service.IstIvtCutpointivtService; -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.AcsTaskDto; -import org.nl.wms.sch.task_manage.enums.PackageInfoIvtEnum; -import org.nl.wms.sch.task_manage.TaskStatus; -import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; -import org.nl.wms.storage_manage.ios.enums.IOSEnum; -import org.nl.wms.util.TaskUtils; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; -import java.math.BigDecimal; -import java.util.Map; -import java.util.Optional; - - -/** - * @author gbx - * @since 2024-04-11 - */ -@Slf4j -@Component(value = "CoolCutTask") -public class CoolCutTask extends AbstractTask { - - private final String THIS_CLASS = CoolCutTask.class.getName(); - - - @Resource - private ISchBaseTaskService taskService; - - - @Resource - private ISysDictService sysDictService; - - - @Resource - private IstIvtCoolpointivtService stIvtCoolpointivtService; - - - @Resource - private IstIvtCoolregionioService stIvtCoolRegionIoService; - - - - @Resource - private IstIvtCutpointivtService stIvtCutpointivtService; - - //分切计划 - @Resource - private IpdmBiSlittingproductionplanService pdmBiSlittingproductionplanService; - - - /** - * 特殊操作 - * - * @param task LMS任务 - * @param acsTaskDto ACS任务 - */ - @Override - public void deliveryBeforeProcessing(SchBaseTask task, AcsTaskDto acsTaskDto) { - acsTaskDto.setDtl_type(task.getDtl_type()); - acsTaskDto.setTruss_type(PackageInfoIvtEnum.TRUSS_TYPE.code("点对点任务")); - acsTaskDto.setAgv_system_type(PackageInfoIvtEnum.AGV_SYSTEM_TYPE.code("2楼1区域AGV系统")); - acsTaskDto.setParams(JSON.parseObject(task.getRequest_param(), new TypeReference>() { - })); - } - - @Override - public void createCompletion(SchBaseTask task) { - Assert.notNull(task, "请求参数不能为空"); - String taskType = task.getTask_type(); - if (StrUtil.isBlank(taskType)) { - throw new BadRequestException("业务类型不能为空"); - } - String vehicleCode = task.getVehicle_code(); - if (StrUtil.isBlank(vehicleCode)) { - throw new BadRequestException("载具号不能为空"); - } - String pointCode1 = task.getPoint_code1(); - if (StrUtil.isBlank(pointCode1)) { - throw new BadRequestException("起点不能为空"); - } - String pointCode2 = task.getPoint_code2(); - if (StrUtil.isBlank(pointCode2)) { - throw new BadRequestException("下一点不能为空"); - } - String pointCode3 = task.getPoint_code3(); - String pointCode4 = task.getPoint_code4(); - if (isSingleTask(pointCode1)) { - throw new BadRequestException("点位:" + pointCode1 + "存在未完成的任务!"); - } - if (isSingleTask(pointCode2)) { - throw new BadRequestException("点位:" + pointCode2 + "存在未完成的任务!"); - } - if (isSingleTask(pointCode3)) { - throw new BadRequestException("点位:" + pointCode3 + "存在未完成的任务!"); - } - if (isSingleTask(pointCode4)) { - throw new BadRequestException("点位:" + pointCode4 + "存在未完成的任务!"); - } - //是否立即下发 - boolean isSend = !StrUtil.isNotBlank(task.getIs_send()) || BooleanUtil.toBoolean(task.getIs_send()); - task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setHandle_class(THIS_CLASS); - task.setIs_send(isSend ? "1" : "0"); - task.setAcs_task_type(StrUtil.isEmpty(task.getAcs_task_type()) - ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : (task.getAcs_task_type())); - task.setTask_status(StrUtil.isEmpty(task.getTask_status()) - ? TaskStatus.START_AND_POINT.getCode() : task.getTask_status()); - task.setProduct_area(StrUtil.isEmpty(task.getProduct_area())? "A1" : task.getProduct_area()); - if ("010301".equals(task.getTask_type())) { - task.setAcs_task_type("2"); - } else { - //todo 2和3是什么类型 - task.setAcs_task_type("3"); - } - //根据类型获取对应的任务优先级 - String priority = Optional.ofNullable(sysDictService.getOne(new LambdaQueryWrapper() - .eq(Dict::getCode, "task_priority") - .eq(Dict::getLabel, task.getTask_type()))) - .map(Dict::getValue) - .orElse("1"); - task.setPriority(priority); - TaskUtils.setCreateByDefault(task); - taskService.save(task); - //如果目标点位没有空位先创建不下发 - if (isSend) { - this.immediateNotifyAcs(task); - } - } - - - @Override - @Transactional(rollbackFor = Exception.class) - public void updateStatus(JSONObject taskObj, TaskStatus status) { - SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() - .eq(SchBaseTask::getTask_code, taskObj.getString("task_code")), false); - if (schBaseTask == null) { - throw new BadRequestException("CoolCutTask任务更新接口任务号为空!"); - } - // 执行中 - if (TaskStatus.EXECUTING.getCode().equals(status.getCode())) { - // 更新任务状态为执行中 - schBaseTask.setTask_status(TaskStatus.EXECUTING.getCode()); - } - // 完成 - if (StrUtil.equals(status.getCode(), TaskStatus.FINISHED.getCode())) { - // 更新任务状态为执行中 - schBaseTask.setTask_status(TaskStatus.FINISHED.getCode()); - String point_code1 = schBaseTask.getPoint_code1(); - String point_code2 = schBaseTask.getPoint_code2(); - String point_code3 = schBaseTask.getPoint_code3(); - String point_code4 = schBaseTask.getPoint_code4(); - if ("010301".equals(schBaseTask.getTask_type())) { - //更新主表状态 - StIvtCoolregionio stIvtCoolregionio = stIvtCoolRegionIoService.getOne(new LambdaQueryWrapper() - .eq(StIvtCoolregionio::getTask_id, schBaseTask.getTask_id())); - stIvtCoolregionio.setBill_status("50"); - stIvtCoolRegionIoService.update(stIvtCoolregionio, new QueryWrapper<>()); - // 更新冷却区母卷库存 - StIvtCoolpointivt stIvtCoolpointivt = stIvtCoolpointivtService.getOne(new QueryWrapper().eq("full_point_code", point_code1)); - if (stIvtCoolpointivt != null) { - - if (StringUtils.isBlank(stIvtCoolpointivt.getContainer_name())) { - throw new BadRequestException("CoolCutTask任务更新接口-子卷号不能为空!"); - } - stIvtCoolpointivt.setFull_point_status("01"); - stIvtCoolpointivt.setContainer_name(""); - stIvtCoolpointivt.setWorkorder_id(""); - stIvtCoolpointivt.setIvt_qty(BigDecimal.ZERO);//包含qty的字段一般都是BigDecimal类型 - stIvtCoolpointivt.setCool_ivt_status("01"); - stIvtCoolpointivt.setInstorage_time(""); // 是String类型,赋值空字符表示清除时间 - stIvtCoolpointivt.setUpdate_optid(SecurityUtils.getCurrentUserId()); - stIvtCoolpointivt.setUpdate_optname(SecurityUtils.getCurrentNickName()); - stIvtCoolpointivt.setUpdate_time(DateUtil.now()); - stIvtCoolpointivtService.updateById(stIvtCoolpointivt); - // 更新分切区母卷库存 - StIvtCutpointivt cutPointIvt = stIvtCutpointivtService.getOne(new QueryWrapper().eq("full_point_code", point_code2)); - if (cutPointIvt != null) { - cutPointIvt.setFull_point_status("02"); - cutPointIvt.setContainer_name(stIvtCoolpointivt.getContainer_name()); - cutPointIvt.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId())); //注意这是Long类型,记得转换 - cutPointIvt.setUpdate_optname(SecurityUtils.getCurrentNickName()); - cutPointIvt.setUpdate_time(DateUtil.now()); - stIvtCutpointivtService.updateById(cutPointIvt); - } - } - // 更新分切区空轴库存 - StIvtCutpointivt cutPointIvt2 = stIvtCutpointivtService.getOne(new QueryWrapper().eq("empty_point_code", point_code3)); - if (cutPointIvt2 != null) { - cutPointIvt2.setEmpty_point_status("01"); - cutPointIvt2.setEmpty_vehicle_code(""); - cutPointIvt2.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId())); - cutPointIvt2.setUpdate_optname(SecurityUtils.getCurrentNickName()); - cutPointIvt2.setUpdate_time(DateUtil.now()); - stIvtCutpointivtService.updateById(cutPointIvt2); - } - // 更新冷却区空轴库存 - StIvtCoolpointivt coolPointIvt2 = stIvtCoolpointivtService.getOne(new QueryWrapper().eq("empty_point_code", point_code4)); - if (coolPointIvt2 != null) { - coolPointIvt2.setEmpty_point_status("02"); - coolPointIvt2.setEmpty_vehicle_code(schBaseTask.getVehicle_code2()); - coolPointIvt2.setCool_ivt_status("01"); - coolPointIvt2.setInstorage_time(""); // 是String类型,赋值空字符表示清除时间 - coolPointIvt2.setUpdate_optid(SecurityUtils.getCurrentUserId()); - coolPointIvt2.setUpdate_optname(SecurityUtils.getCurrentNickName()); - coolPointIvt2.setUpdate_time(DateUtil.now()); - stIvtCoolpointivtService.updateById(coolPointIvt2); - } - // 更新该母卷对应分切计划的状态 - PdmBiSlittingproductionplan pdmBiSlittingproductionplan = new PdmBiSlittingproductionplan(); - pdmBiSlittingproductionplan.setIs_parent_ok("1"); - pdmBiSlittingproductionplanService.update(pdmBiSlittingproductionplan, new QueryWrapper().eq("parent_container_name", stIvtCoolpointivt.getContainer_name())); - // todo MES相关,判断该接口是否需要回传 - //JSONObject mom_jo = new JSONObject(); - //mom_jo.put("contain_name", container_name); - //mom_jo.put("warehouse", "1"); - //JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'cutPlanMomRollDeliveryComplete'").uniqueResult(0); - //if (ObjectUtil.isNotEmpty(back_jo) && "1".equals(back_jo.getString("is_back"))) { - // new LmsToMesServiceImpl().cutPlanMomRollDeliveryComplete(mom_jo); - //} - } - if ("010302".equals(schBaseTask.getTask_type())) { - // 更新主表状态 - StIvtCoolregionio stIvtCoolregionio = new StIvtCoolregionio(); - stIvtCoolregionio.setBill_status("50"); - stIvtCoolRegionIoService.update(stIvtCoolregionio, new QueryWrapper().eq("task_id", schBaseTask.getTask_id())); - // 更新冷却区母卷库存 - StIvtCoolpointivt coolPointIvt = stIvtCoolpointivtService.getOne(new QueryWrapper().eq("full_point_code", point_code1)); - if (coolPointIvt != null) { - coolPointIvt.setFull_point_status("01"); - coolPointIvt.setContainer_name(""); - coolPointIvt.setWorkorder_id(""); - coolPointIvt.setIvt_qty(BigDecimal.ZERO); - coolPointIvt.setCool_ivt_status("01"); - coolPointIvt.setInstorage_time(""); - coolPointIvt.setUpdate_optid(SecurityUtils.getCurrentUserId()); - coolPointIvt.setUpdate_optname(SecurityUtils.getCurrentNickName()); - coolPointIvt.setUpdate_time(DateUtil.now()); - stIvtCoolpointivtService.updateById(coolPointIvt); - } - // 更新分切区母卷库存 - StIvtCutpointivt cutPointIvt = stIvtCutpointivtService.getOne(new QueryWrapper().eq("full_point_code", point_code2)); - if (cutPointIvt != null) { - cutPointIvt.setFull_point_status("02"); - cutPointIvt.setContainer_name(coolPointIvt.getContainer_name()); - cutPointIvt.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId())); - cutPointIvt.setUpdate_optname(SecurityUtils.getCurrentNickName()); - cutPointIvt.setUpdate_time(DateUtil.now()); - stIvtCutpointivtService.updateById(cutPointIvt); - } - // 更新该母卷对应分切计划的状态 - PdmBiSlittingproductionplan pdmBiSlittingproductionplan = new PdmBiSlittingproductionplan(); - pdmBiSlittingproductionplan.setIs_parent_ok("1"); - pdmBiSlittingproductionplanService.update(pdmBiSlittingproductionplan, new QueryWrapper().eq("parent_container_name", coolPointIvt.getContainer_name())); - // JSONObject mom_jo = new JSONObject(); - // mom_jo.put("contain_name", container_name); - // mom_jo.put("warehouse", "1"); - // //判断该接口是否需要回传 - // JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'cutPlanMomRollDeliveryComplete'").uniqueResult(0); - // if (ObjectUtil.isNotEmpty(back_jo) && "1".equals(back_jo.getString("is_back"))) { - // new LmsToMesServiceImpl().cutPlanMomRollDeliveryComplete(mom_jo); - // } - } - if ("010303".equals(schBaseTask.getTask_type())) { - // 更新分切区空轴库存 - StIvtCutpointivt cutPointIvt2 = stIvtCutpointivtService.getOne(new QueryWrapper().eq("empty_point_code", point_code1)); - if (cutPointIvt2 != null) { - cutPointIvt2.setEmpty_point_status("01"); - cutPointIvt2.setEmpty_vehicle_code(""); - cutPointIvt2.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId())); - cutPointIvt2.setUpdate_optname(SecurityUtils.getCurrentNickName()); - cutPointIvt2.setUpdate_time(DateUtil.now()); - stIvtCutpointivtService.updateById(cutPointIvt2); - } - // 更新冷却区空轴库存 - StIvtCoolpointivt coolPointIvt2 = stIvtCoolpointivtService.getOne(new QueryWrapper().eq("empty_point_code", point_code2)); - if (coolPointIvt2 != null) { - coolPointIvt2.setEmpty_point_status("02"); - coolPointIvt2.setEmpty_vehicle_code(schBaseTask.getVehicle_code()); - coolPointIvt2.setCool_ivt_status("01"); - coolPointIvt2.setInstorage_time(""); - coolPointIvt2.setUpdate_optid(SecurityUtils.getCurrentUserId()); - coolPointIvt2.setUpdate_optname(SecurityUtils.getCurrentNickName()); - coolPointIvt2.setUpdate_time(DateUtil.now()); - stIvtCoolpointivtService.updateById(coolPointIvt2); - } - } - } - // 取消 - if (status.getCode().equals(IOSEnum.IS_NOTANDYES.code("否"))) { - // if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatus.ISSUE.getCode())) { - // throw new BadRequestException("CoolCutTask任务已执行不能取消"); - // } - // 更新任务表删除字段 - schBaseTask.setIs_delete(true); - //删除冷却区出入记录 - stIvtCoolRegionIoService.delete(schBaseTask.getTask_id()); - } - TaskUtils.setUpdateByDefault(schBaseTask); - taskService.updateById(schBaseTask); - } - - @Override - public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum autoAcs) { - - } - - @Override - public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum autoAcs) { - - } - - - @Override - public void forceFinish(String taskId) { - SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() - .eq(SchBaseTask::getTask_id, taskId), false); - if (schBaseTask == null) { - throw new BadRequestException("CoolCutTask任务强制完成接口任务号为空!"); - } - schBaseTask.setTask_status(TaskStatus.FINISHED.getCode()); - TaskUtils.setUpdateByDefault(schBaseTask); - taskService.updateById(schBaseTask); - } - - @Override - public void cancel(String taskId) { - SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() - .eq(SchBaseTask::getTask_id, taskId), false); - if (schBaseTask == null) { - throw new BadRequestException("CoolCutTask任务取消接口任务号为空!"); - } - schBaseTask.setTask_status(IOSEnum.ACS_RESULT.code("取消")); - TaskUtils.setUpdateByDefault(schBaseTask); - taskService.updateById(schBaseTask); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void create() throws BadRequestException { - - } - - //判断该点位是否存在未完成的任务 - public boolean isSingleTask(String point_code) { - return taskService.getOne(new LambdaQueryWrapper() - .and(wrapper -> wrapper - .eq(SchBaseTask::getPoint_code1, point_code) - .or() - .eq(SchBaseTask::getPoint_code2, point_code) - .or() - .eq(SchBaseTask::getPoint_code3, point_code) - .or() - .eq(SchBaseTask::getPoint_code4, point_code) - ) - .lt(SchBaseTask::getTask_status, "07") - .eq(SchBaseTask::getIs_delete, "0") - ) != null; - } - -} diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/second_floor_area/InCoolIvtTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/second_floor_area/InCoolIvtTask.java deleted file mode 100644 index b45fa4920..000000000 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/second_floor_area/InCoolIvtTask.java +++ /dev/null @@ -1,303 +0,0 @@ -package org.nl.wms.sch.task_manage.task.second_floor_area; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.lang.Assert; -import cn.hutool.core.util.BooleanUtil; -import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSONObject; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.TypeReference; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; -import lombok.extern.slf4j.Slf4j; -import org.nl.common.exception.BadRequestException; -import org.nl.config.SpringContextHolder; -import org.nl.system.service.dict.ISysDictService; -import org.nl.system.service.dict.dao.Dict; -import org.nl.system.service.param.impl.SysParamServiceImpl; -import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder; -import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService; -import org.nl.wms.pdm.ivt.dao.StIvtCoolpointivt; -import org.nl.wms.pdm.ivt.service.*; -import org.nl.wms.sch.point.service.ISchBasePointService; -import org.nl.wms.sch.point.service.dao.SchBasePoint; -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.AcsTaskDto; -import org.nl.wms.sch.task_manage.enums.PackageInfoIvtEnum; -import org.nl.wms.sch.task_manage.TaskStatus; -import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; -import org.nl.wms.storage_manage.ios.enums.IOSEnum; -import org.nl.wms.util.TaskUtils; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; -import java.util.Map; - - -/** - * @author gbx - * @since 2024-04-11 - */ -@Slf4j -@Component(value = "InCoolIvtTask") -public class InCoolIvtTask extends AbstractTask { - - private final String THIS_CLASS = InCoolIvtTask.class.getName(); - - @Resource - private ISchBaseTaskService taskService; - - @Resource - private ISchBasePointService schBasePointService; - - - @Resource - private ISysDictService sysDictService; - - - @Resource - private IstIvtCoolpointivtService stIvtCoolpointivtService; - - - @Resource - private IstIvtCoolregionioService stIvtCoolRegionIoService; - - - @Resource - private IpdmBiRawfoilworkorderService pdmBiRawfoilworkorderService; - - - /** - * 特殊操作 - * - * @param task LMS任务 - * @param acsTaskDto ACS任务 - */ - @Override - public void deliveryBeforeProcessing(SchBaseTask task, AcsTaskDto acsTaskDto) { - acsTaskDto.setDtl_type(task.getDtl_type()); - acsTaskDto.setTruss_type(PackageInfoIvtEnum.TRUSS_TYPE.code("点对点任务")); - acsTaskDto.setAgv_system_type(PackageInfoIvtEnum.AGV_SYSTEM_TYPE.code("1楼叉车系统")); - acsTaskDto.setParams(JSON.parseObject(task.getRequest_param(), new TypeReference>() { - })); - } - - @Override - public void createCompletion(SchBaseTask task) { - Assert.notNull(task, "请求参数不能为空"); - String taskType = task.getTask_type(); - if (StrUtil.isBlank(taskType)) { - throw new BadRequestException("业务类型不能为空"); - } - String vehicleCode = task.getVehicle_code(); - if (StrUtil.isBlank(vehicleCode)) { - throw new BadRequestException("载具号不能为空"); - } - String pointCode1 = task.getPoint_code1(); - if (StrUtil.isBlank(pointCode1)) { - throw new BadRequestException("起点不能为空"); - } - String pointCode2 = task.getPoint_code2(); - if (StrUtil.isBlank(pointCode2)) { - throw new BadRequestException("下一点不能为空"); - } - String pointCode3 = task.getPoint_code3(); - String pointCode4 = task.getPoint_code4(); - if (isSingleTask(pointCode1)) { - throw new BadRequestException("点位:" + pointCode1 + "存在未完成的任务!"); - } - if (isSingleTask(pointCode2)) { - throw new BadRequestException("点位:" + pointCode2 + "存在未完成的任务!"); - } - if (isSingleTask(pointCode3)) { - throw new BadRequestException("点位:" + pointCode3 + "存在未完成的任务!"); - } - if (isSingleTask(pointCode4)) { - throw new BadRequestException("点位:" + pointCode4 + "存在未完成的任务!"); - } - //是否立即下发 - boolean isSend = !StrUtil.isNotBlank(task.getIs_send()) || BooleanUtil.toBoolean(task.getIs_send()); - task.setTask_type("010204"); - task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setHandle_class(THIS_CLASS); - task.setIs_send(isSend ? "1" : "0"); - task.setAcs_task_type(StrUtil.isEmpty(task.getAcs_task_type()) - ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : (task.getAcs_task_type())); - //todo 3的任务类型加进枚举中 - task.setAcs_task_type("3"); - task.setTask_status(StrUtil.isEmpty(task.getTask_status()) - ? TaskStatus.START_AND_POINT.getCode() : task.getTask_status()); - task.setProduct_area(StrUtil.isEmpty(task.getProduct_area()) ? "A1" : task.getProduct_area()); - //根据类型获取对应的任务优先级 - Dict dict = sysDictService.getOne(new LambdaQueryWrapper().eq(Dict::getCode, "task_priority").eq(Dict::getLabel, task.getTask_type())); - if (dict == null) { - task.setPriority("1"); - } else { - task.setPriority(dict.getValue()); - } - TaskUtils.setCreateByDefault(task); - taskService.save(task); - //如果目标点位没有空位先创建不下发 - if (isSend) { - this.immediateNotifyAcs(task); - } - } - - - @Override - @Transactional(rollbackFor = Exception.class) - public void updateStatus(JSONObject taskObj, TaskStatus status) { - SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() - .eq(SchBaseTask::getTask_code, taskObj.getString("task_code")), false); - if (schBaseTask == null) { - throw new BadRequestException("CallEmpReelTask任务更新接口任务号为空!"); - } - // 执行中 - if (TaskStatus.EXECUTING.getCode().equals(status.getCode())) { - // 更新任务状态为执行中 - schBaseTask.setTask_status(TaskStatus.EXECUTING.getCode()); - } - // 完成 - if (StrUtil.equals(status.getCode(), TaskStatus.FINISHED.getCode())) { - // 更新任务状态为执行中 - schBaseTask.setTask_status(TaskStatus.FINISHED.getCode()); - String pointCode1 = schBaseTask.getPoint_code1(); - String pointCode2 = schBaseTask.getPoint_code2(); - // 校验起点是否存在 - SchBasePoint startPointDto = schBasePointService.getOne(new QueryWrapper() - .eq("point_code", pointCode1)); - - if (ObjectUtil.isEmpty(startPointDto)) { - throw new BadRequestException("起点未找到可用点位:" + pointCode1); - } - // 校验终点是否存在 - StIvtCoolpointivt jsonIvt = stIvtCoolpointivtService.getOne(new QueryWrapper() - .eq("full_point_code", pointCode2) - ); - if (ObjectUtil.isEmpty(jsonIvt)) { - throw new BadRequestException("终点未找到可用点位:" + pointCode2); - } - // 更新暂存位状态为空位 - SchBasePoint jsonPoint = schBasePointService.getOne(new QueryWrapper().eq("point_code", pointCode1)); - jsonPoint.setPoint_status("1"); - //todo 是否需要清理物料编号 - //jsonPoint.setMaterial_code(""); - schBasePointService.updateById(jsonPoint); - // 更新冷却库存状态 - PdmBiRawfoilworkorder rawJo = pdmBiRawfoilworkorderService.getOne(new QueryWrapper() - .eq("container_name", schBaseTask.getMaterial_code()) - ); - if (rawJo != null) { - jsonIvt.setFull_point_status("02"); - jsonIvt.setCool_ivt_status("04"); - jsonIvt.setInstorage_time(DateUtil.now()); - jsonIvt.setContainer_name(rawJo.getContainer_name()); - jsonIvt.setWorkorder_id(rawJo.getWorkorder_id()); - //todo pdm_bi_rawfoilworkorder 无qty字段 - //jsonIvt.setIvt_qty(rawJo.getQty()); - stIvtCoolpointivtService.updateById(jsonIvt); - } - // 将入冷却信息发送给mes - JSONObject param = new JSONObject(); - String userName = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_USERNAME").getValue(); - String passWord = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_PASSWORD").getValue(); - param.put("iContainerName", schBaseTask.getMaterial_code()); - param.put("iArrivalTime", DateUtil.now()); - param.put("iWarehouse", 2); - param.put("UserName", userName); - param.put("PassWord", passWord); - //todo MES回传 判断该接口是否需要回传 - //MdPbInterfaceBack backJo = mdPbInterfaceBackService.getOne(new QueryWrapper().eq("interface_name", "momRollSemiFGInboundComplete")); - // if (backJo != null && "1".equals(backJo.getIsBack())) { - // String productArea = backJo.getProductArea(); - // if (StrUtil.isNotEmpty(productArea) && productArea.contains(schBaseTask.getString("product_area"))) { - // new LmsToMesServiceImpl().momRollSemiFGInboundComplete(param); - // } - // } - // 将该母卷的入冷却标识改为0 - PdmBiRawfoilworkorder pdmBiRawfoilworkorder = new PdmBiRawfoilworkorder(); - pdmBiRawfoilworkorder.setIs_instor("0"); - pdmBiRawfoilworkorderService.update(pdmBiRawfoilworkorder, new UpdateWrapper().eq("container_name", schBaseTask.getMaterial_code())); - log.info("母卷:" + schBaseTask.getMaterial_code() + "对应的入冷却任务完成,请求入半成品库标识改为0"); - } - // 取消 - if (status.getCode().equals(IOSEnum.IS_NOTANDYES.code("否"))) { - if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatus.ISSUE.getCode())) { - throw new BadRequestException("CallEmpReelTask任务已执行不能取消"); - } - // 更新任务表删除字段 - schBaseTask.setIs_delete(true); - //删除冷却区出入记录 - stIvtCoolRegionIoService.delete(schBaseTask.getTask_id()); - } - TaskUtils.setUpdateByDefault(schBaseTask); - taskService.updateById(schBaseTask); - } - - @Override - public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum autoAcs) { - - } - - @Override - public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum autoAcs) { - - } - - - @Override - public void forceFinish(String taskId) { - SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() - .eq(SchBaseTask::getTask_id, taskId), false); - if (schBaseTask == null) { - throw new BadRequestException("CallEmpReelTask任务强制完成接口任务号为空!"); - } - schBaseTask.setTask_status(TaskStatus.FINISHED.getCode()); - TaskUtils.setUpdateByDefault(schBaseTask); - taskService.updateById(schBaseTask); - } - - @Override - public void cancel(String taskId) { - SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() - .eq(SchBaseTask::getTask_id, taskId), false); - if (schBaseTask == null) { - throw new BadRequestException("CallEmpReelTask任务取消接口任务号为空!"); - } - schBaseTask.setTask_status(IOSEnum.ACS_RESULT.code("取消")); - TaskUtils.setUpdateByDefault(schBaseTask); - taskService.updateById(schBaseTask); - } - - public boolean isSingleTask(String point_code) { - return taskService.getOne(new LambdaQueryWrapper() - .and(wrapper -> wrapper - .eq(SchBaseTask::getPoint_code1, point_code) - .or() - .eq(SchBaseTask::getPoint_code2, point_code) - .or() - .eq(SchBaseTask::getPoint_code3, point_code) - .or() - .eq(SchBaseTask::getPoint_code4, point_code) - ) - .lt(SchBaseTask::getTask_status, "07") - .eq(SchBaseTask::getIs_delete, "0") - ) != null; - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void create() throws BadRequestException { - - } - - -} diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/second_floor_area/InHotTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/second_floor_area/InHotTask.java deleted file mode 100644 index 0bd4e4024..000000000 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/second_floor_area/InHotTask.java +++ /dev/null @@ -1,396 +0,0 @@ -package org.nl.wms.sch.task_manage.task.second_floor_area; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.lang.Assert; -import cn.hutool.core.util.BooleanUtil; -import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSONObject; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.TypeReference; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; -import lombok.extern.slf4j.Slf4j; -import org.nl.common.exception.BadRequestException; -import org.nl.common.utils.SecurityUtils; -import org.nl.config.SpringContextHolder; -import org.nl.system.service.dict.ISysDictService; -import org.nl.system.service.dict.dao.Dict; -import org.nl.system.service.param.impl.SysParamServiceImpl; -import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder; -import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService; -import org.nl.wms.pdm.ivt.dao.StIvtCoolpointivt; -import org.nl.wms.pdm.ivt.dao.StIvtCoolregionio; -import org.nl.wms.pdm.ivt.dao.StIvtHotpointivt; -import org.nl.wms.pdm.ivt.dao.StIvtHotregioniomst; -import org.nl.wms.pdm.ivt.service.IstIvtCoolpointivtService; -import org.nl.wms.pdm.ivt.service.IstIvtCoolregionioService; -import org.nl.wms.pdm.ivt.service.IstIvtHotpointivtService; -import org.nl.wms.pdm.ivt.service.IstIvtHotregioniomstService; -import org.nl.wms.sch.point.service.ISchBasePointService; -import org.nl.wms.sch.point.service.dao.SchBasePoint; -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.AcsTaskDto; -import org.nl.wms.sch.task_manage.enums.PackageInfoIvtEnum; -import org.nl.wms.sch.task_manage.TaskStatus; -import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; -import org.nl.wms.storage_manage.ios.enums.IOSEnum; -import org.nl.wms.util.TaskUtils; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; -import java.math.BigDecimal; -import java.util.Map; - - -/** - * @author gbx - * @since 2024-04-11 - */ -@Slf4j -@Component(value = "InHotTask") -public class InHotTask extends AbstractTask { - - private final String THIS_CLASS = InHotTask.class.getName(); - - @Resource - private ISchBaseTaskService taskService; - - - @Resource - private ISchBasePointService schBasePointService; - - - @Resource - private ISysDictService sysDictService; - - - @Resource - private IstIvtHotpointivtService stIvtHotpointivtService; - - @Resource - private IstIvtHotregioniomstService stIvtHotregioniomstService; - - - @Resource - private IstIvtCoolpointivtService stIvtCoolpointivtService; - - - @Resource - private IstIvtCoolregionioService stIvtCoolRegionIoService; - - - @Resource - private IpdmBiRawfoilworkorderService pdmBiRawfoilworkorderService; - - - /** - * 特殊操作 - * - * @param task LMS任务 - * @param acsTaskDto ACS任务 - */ - @Override - public void deliveryBeforeProcessing(SchBaseTask task, AcsTaskDto acsTaskDto) { - acsTaskDto.setDtl_type(task.getDtl_type()); - acsTaskDto.setTruss_type(PackageInfoIvtEnum.TRUSS_TYPE.code("点对点任务")); - acsTaskDto.setAgv_system_type(PackageInfoIvtEnum.AGV_SYSTEM_TYPE.code("1楼叉车系统")); - acsTaskDto.setParams(JSON.parseObject(task.getRequest_param(), new TypeReference>() { - })); - } - - @Override - public void createCompletion(SchBaseTask task) { - Assert.notNull(task, "请求参数不能为空"); - String taskType = task.getTask_type(); - if (StrUtil.isBlank(taskType)) { - throw new BadRequestException("业务类型不能为空"); - } - String vehicleCode = task.getVehicle_code(); - if (StrUtil.isBlank(vehicleCode)) { - throw new BadRequestException("载具号不能为空"); - } - String pointCode1 = task.getPoint_code1(); - if (StrUtil.isBlank(pointCode1)) { - throw new BadRequestException("起点不能为空"); - } - String pointCode2 = task.getPoint_code2(); - if (StrUtil.isBlank(pointCode2)) { - throw new BadRequestException("下一点不能为空"); - } - task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setHandle_class(THIS_CLASS); - task.setTask_status(StrUtil.isEmpty(task.getTask_status()) - ? TaskStatus.START_AND_POINT.getCode() : task.getTask_status()); - task.setProduct_area(StrUtil.isEmpty(task.getProduct_area()) ? "A1" : task.getProduct_area()); - - //根据类型获取对应的任务优先级 - Dict dict = sysDictService.getOne(new LambdaQueryWrapper().eq(Dict::getCode, "task_priority").eq(Dict::getLabel, task.getTask_type())); - if (dict == null) { - task.setPriority("1"); - } else { - task.setPriority(dict.getValue()); - } - //是否立即下发 - boolean isSend = !StrUtil.isNotBlank(task.getIs_send()) || BooleanUtil.toBoolean(task.getIs_send()); - task.setIs_send(isSend ? "1" : "0"); - TaskUtils.setCreateByDefault(task); - if (StrUtil.equals(task.getTask_type(), "1")) { - if (isSingleTask(pointCode1)) { - throw new BadRequestException("点位:" + pointCode1 + "存在未完成的任务!"); - } - if (isSingleTask(task.getPoint_code3())) { - throw new BadRequestException("点位:" + task.getPoint_code3() + "存在未完成的任务!"); - } - task.setTask_type("010201"); - if (StrUtil.isNotEmpty(task.getPoint_code3())) { - //todo json.put("acs_task_type", "8"); 6和8是什么任务 - task.setAcs_task_type(PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务")); - } else { - task.setAcs_task_type(PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); - } - // 更新对应点位库存为已裹膜 - StIvtCoolpointivt coolIvtToUpdate = stIvtCoolpointivtService.getOne(new LambdaQueryWrapper() - .eq(StIvtCoolpointivt::getFull_point_code, task.getPoint_code1()), false); - if (ObjectUtil.isEmpty(coolIvtToUpdate)) { - throw new BadRequestException("未查询到对应的冷却区点位!"); - } - coolIvtToUpdate.setCool_ivt_status("02"); - stIvtCoolpointivtService.updateById(coolIvtToUpdate); - } - if (StrUtil.equals(task.getTask_type(), "2")) { - if (isSingleTask(pointCode1)) { - throw new BadRequestException("点位:" + pointCode1 + "存在未完成的任务!"); - } - if (isSingleTask(pointCode2)) { - throw new BadRequestException("点位:" + pointCode2 + "存在未完成的任务!"); - } - task.setTask_type("010203"); - task.setAcs_task_type(PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); - - } - taskService.save(task); - //如果目标点位没有空位先创建不下发 - if (isSend) { - this.immediateNotifyAcs(task); - } - } - - - @Override - @Transactional(rollbackFor = Exception.class) - public void updateStatus(JSONObject taskObj, TaskStatus status) { - SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() - .eq(SchBaseTask::getTask_code, taskObj.getString("task_code")), false); - if (schBaseTask == null) { - throw new BadRequestException("CallEmpReelTask任务更新接口任务号为空!"); - } - String task_id = schBaseTask.getTask_id(); - // 执行中 - if (TaskStatus.EXECUTING.getCode().equals(status.getCode())) { - // 更新任务状态为执行中 - schBaseTask.setTask_status(TaskStatus.EXECUTING.getCode()); - } - // 完成 - if (StrUtil.equals(status.getCode(), TaskStatus.FINISHED.getCode())) { - // 更新任务状态为执行中 - schBaseTask.setTask_status(TaskStatus.FINISHED.getCode()); - - - String currentUserId = SecurityUtils.getCurrentUserId(); - String currentUsername = SecurityUtils.getCurrentUsername(); - - -// 更新主表 - StIvtHotregioniomst jsonHotMst = stIvtHotregioniomstService.getOne(new QueryWrapper() - .eq("task_id", task_id)); - - String hotPointCode = ""; -// 判断此任务是否有三个点位 - if (ObjectUtil.isEmpty(schBaseTask.getPoint_code3())) { - // 暂存区入烘箱任务 - // 更新烘箱区库存状态 - StIvtHotpointivt jsonHotIvt = stIvtHotpointivtService.getOne(new QueryWrapper() - .eq("point_code", schBaseTask.getPoint_code2())); - if (jsonHotIvt != null) { - jsonHotIvt.setPoint_status("02"); - jsonHotIvt.setContainer_name(jsonHotMst.getContainer_name()); - jsonHotIvt.setWorkorder_id(jsonHotMst.getWorkorder_id()); - jsonHotIvt.setIvt_qty(jsonHotMst.getQty()); - jsonHotIvt.setInstorage_time(DateUtil.now()); - jsonHotIvt.setUpdate_optid(currentUserId); - jsonHotIvt.setUpdate_optname(currentUsername); - jsonHotIvt.setUpdate_time(DateUtil.now()); - stIvtHotpointivtService.updateById(jsonHotIvt); - } - - - // 更新暂存区点位状态为空位 - SchBasePoint jsonPoint = schBasePointService.getOne(new QueryWrapper().eq("point_code", schBaseTask.getPoint_code1())); - if (jsonPoint != null) { - jsonPoint.setPoint_status("1"); - //todo setMaterialCode是否需要MaterialCode - //jsonPoint.setMaterialCode(""); - schBasePointService.updateById(jsonPoint); - } - - hotPointCode = jsonHotIvt != null ? jsonHotIvt.getExt_code() : ""; - } else { - //冷却区入烘箱任务 - //更新冷却出入主表状态 - StIvtCoolregionio jsonCool = stIvtCoolRegionIoService.getOne(new QueryWrapper() - .eq("task_id", task_id) - ); - if (jsonCool != null) { - jsonCool.setBill_status("50"); - stIvtCoolRegionIoService.updateById(jsonCool); - } - - // 更新冷却区库存状态 - StIvtCoolpointivt jsonCoolIvt = stIvtCoolpointivtService.getOne(new QueryWrapper() - .eq("full_point_code", schBaseTask.getPoint_code1()) - ); - if (jsonCoolIvt != null) { - jsonCoolIvt.setFull_point_status("01"); - jsonCoolIvt.setCool_ivt_status("01"); - jsonCoolIvt.setContainer_name(""); - jsonCoolIvt.setWorkorder_id(""); - jsonCoolIvt.setIvt_qty(BigDecimal.ZERO); - jsonCoolIvt.setInstorage_time(""); - jsonCoolIvt.setUpdate_optid(currentUserId); - jsonCoolIvt.setUpdate_optname(currentUsername); - jsonCoolIvt.setUpdate_time(DateUtil.now()); - stIvtCoolpointivtService.updateById(jsonCoolIvt); - } - - // 更新烘箱区库存状态 - StIvtHotpointivt jsonHotIvt = stIvtHotpointivtService.getOne(new QueryWrapper() - .eq("point_code", schBaseTask.getPoint_code3()) - ); - if (jsonHotIvt != null) { - jsonHotIvt.setPoint_status("02"); - jsonHotIvt.setContainer_name(jsonCoolIvt != null ? jsonCoolIvt.getContainer_name() : ""); - jsonHotIvt.setWorkorder_id(jsonCoolIvt != null ? jsonCoolIvt.getWorkorder_id() : ""); - jsonHotIvt.setIvt_qty(jsonCoolIvt != null ? jsonCoolIvt.getIvt_qty() : BigDecimal.ZERO); - jsonHotIvt.setInstorage_time(DateUtil.now()); - jsonHotIvt.setUpdate_optid(currentUserId); - jsonHotIvt.setUpdate_optname(currentUsername); - jsonHotIvt.setUpdate_time(DateUtil.now()); - - stIvtHotpointivtService.updateById(jsonHotIvt); - - log.info("入烘箱wql执行update语句!"); - log.info("入烘箱mybatis执行update语句!"); - } - - hotPointCode = jsonHotIvt != null ? jsonHotIvt.getExt_code() : ""; - } - -// 将入烘箱信息发送给mes - JSONObject param = new JSONObject(); - String userName = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_USERNAME").getValue(); - String passWord = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_PASSWORD").getValue(); - param.put("iContainerName", jsonHotMst.getContainer_name()); - param.put("iResourceName", hotPointCode); - param.put("iMoveInDate", DateUtil.now()); - param.put("iPlanBakingTemperature", jsonHotMst.getTemperature()); - param.put("iPlanBakingTimer", jsonHotMst.getOven_time()); - param.put("UserName", userName); - param.put("PassWord", passWord); - -// todo 判断该接口是否需要回传 -// MdPbInterfaceBack backJo = mdPbInterfaceBackService.getOne(new QueryWrapper().eq("interface_name", "momRollBakeInBound")); -// if (backJo != null && "1".equals(backJo.getIsBack())) { -// String productArea = backJo.getProductArea(); -// if (StrUtil.isNotEmpty(productArea) && productArea.contains(schBaseTask.getString("product_area"))) { -// new LmsToMesServiceImpl().momRollBakeInBound(param); -// } -// } - -// 将该母卷的入烘箱标识改为0 - PdmBiRawfoilworkorder pdmBiRawfoilworkorder = new PdmBiRawfoilworkorder(); - pdmBiRawfoilworkorder.setIs_baking("0"); - pdmBiRawfoilworkorderService.update(pdmBiRawfoilworkorder, new UpdateWrapper().eq("container_name", jsonHotMst.getContainer_name())); - log.info("母卷:" + jsonHotMst.getContainer_name() + "对应的入烘箱任务完成,请求烘烤标识改为0"); - - - } - // 取消 - if (status.getCode().equals(IOSEnum.IS_NOTANDYES.code("否"))) { - if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatus.ISSUE.getCode())) { - throw new BadRequestException("CallEmpReelTask任务已执行不能取消"); - } - // 更新任务表删除字段 - schBaseTask.setIs_delete(true); - stIvtCoolRegionIoService.delete(task_id); - stIvtHotregioniomstService.delete(task_id); - } - TaskUtils.setUpdateByDefault(schBaseTask); - taskService.updateById(schBaseTask); - } - - @Override - public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum autoAcs) { - - } - - @Override - public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum autoAcs) { - - } - - - @Override - public void forceFinish(String taskId) { - SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() - .eq(SchBaseTask::getTask_id, taskId), false); - if (schBaseTask == null) { - throw new BadRequestException("CallEmpReelTask任务强制完成接口任务号为空!"); - } - schBaseTask.setTask_status(TaskStatus.FINISHED.getCode()); - TaskUtils.setUpdateByDefault(schBaseTask); - taskService.updateById(schBaseTask); - } - - @Override - public void cancel(String taskId) { - SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() - .eq(SchBaseTask::getTask_id, taskId), false); - if (schBaseTask == null) { - throw new BadRequestException("CallEmpReelTask任务取消接口任务号为空!"); - } - schBaseTask.setTask_status(IOSEnum.ACS_RESULT.code("取消")); - TaskUtils.setUpdateByDefault(schBaseTask); - taskService.updateById(schBaseTask); - } - - public boolean isSingleTask(String point_code) { - return taskService.getOne(new LambdaQueryWrapper() - .and(wrapper -> wrapper - .eq(SchBaseTask::getPoint_code1, point_code) - .or() - .eq(SchBaseTask::getPoint_code2, point_code) - .or() - .eq(SchBaseTask::getPoint_code3, point_code) - .or() - .eq(SchBaseTask::getPoint_code4, point_code) - ) - .lt(SchBaseTask::getTask_status, "07") - .eq(SchBaseTask::getIs_delete, "0") - ) != null; - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void create() throws BadRequestException { - - } - -} diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/second_floor_area/OutHotTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/second_floor_area/OutHotTask.java deleted file mode 100644 index bc24d1ed7..000000000 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/second_floor_area/OutHotTask.java +++ /dev/null @@ -1,282 +0,0 @@ -package org.nl.wms.sch.task_manage.task.second_floor_area; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.lang.Assert; -import cn.hutool.core.util.BooleanUtil; -import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSONObject; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.TypeReference; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import lombok.extern.slf4j.Slf4j; -import org.nl.common.exception.BadRequestException; -import org.nl.common.utils.SecurityUtils; -import org.nl.system.service.dict.ISysDictService; -import org.nl.system.service.dict.dao.Dict; -import org.nl.wms.pdm.ivt.dao.StIvtHotpointivt; -import org.nl.wms.pdm.ivt.dao.StIvtHotregioniomst; -import org.nl.wms.pdm.ivt.service.*; -import org.nl.wms.sch.point.service.ISchBasePointService; -import org.nl.wms.sch.point.service.dao.SchBasePoint; -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.AcsTaskDto; -import org.nl.wms.sch.task_manage.enums.PackageInfoIvtEnum; -import org.nl.wms.sch.task_manage.TaskStatus; -import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; -import org.nl.wms.storage_manage.ios.enums.IOSEnum; -import org.nl.wms.util.TaskUtils; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; -import java.math.BigDecimal; -import java.util.Map; - - -/** - * @author gbx - * @since 2024-04-11 - */ -@Slf4j -@Component(value = "OutHotTask") -public class OutHotTask extends AbstractTask { - - private final String THIS_CLASS = OutHotTask.class.getName(); - - @Resource - private ISchBaseTaskService taskService; - - - @Resource - private ISchBasePointService schBasePointService; - - - @Resource - private ISysDictService sysDictService; - - - @Resource - private IstIvtHotpointivtService stIvtHotpointivtService; - - - @Resource - private IstIvtHotregioniomstService stIvtHotregioniomstService; - - - /** - * 特殊操作 - * - * @param task LMS任务 - * @param acsTaskDto ACS任务 - */ - @Override - public void deliveryBeforeProcessing(SchBaseTask task, AcsTaskDto acsTaskDto) { - acsTaskDto.setDtl_type(task.getDtl_type()); - acsTaskDto.setTruss_type(PackageInfoIvtEnum.TRUSS_TYPE.code("点对点任务")); - acsTaskDto.setAgv_system_type(PackageInfoIvtEnum.AGV_SYSTEM_TYPE.code("1楼叉车系统")); - acsTaskDto.setParams(JSON.parseObject(task.getRequest_param(), new TypeReference>() { - })); - } - - @Override - public void createCompletion(SchBaseTask task) { - Assert.notNull(task, "请求参数不能为空"); - String taskType = task.getTask_type(); - if (StrUtil.isBlank(taskType)) { - throw new BadRequestException("业务类型不能为空"); - } - String vehicleCode = task.getVehicle_code(); - if (StrUtil.isBlank(vehicleCode)) { - throw new BadRequestException("载具号不能为空"); - } - String pointCode1 = task.getPoint_code1(); - if (StrUtil.isBlank(pointCode1)) { - throw new BadRequestException("起点不能为空"); - } - String pointCode2 = task.getPoint_code2(); - if (StrUtil.isBlank(pointCode2)) { - throw new BadRequestException("下一点不能为空"); - } - String pointCode3 = task.getPoint_code3(); - String pointCode4 = task.getPoint_code4(); - if (isSingleTask(pointCode1)) { - throw new BadRequestException("点位:" + pointCode1 + "存在未完成的任务!"); - } - if (isSingleTask(pointCode2)) { - throw new BadRequestException("点位:" + pointCode2 + "存在未完成的任务!"); - } - if (isSingleTask(pointCode3)) { - throw new BadRequestException("点位:" + pointCode3 + "存在未完成的任务!"); - } - if (isSingleTask(pointCode4)) { - throw new BadRequestException("点位:" + pointCode4 + "存在未完成的任务!"); - } - //是否立即下发 - boolean isSend = !StrUtil.isNotBlank(task.getIs_send()) || BooleanUtil.toBoolean(task.getIs_send()); - task.setTask_type("010202"); - task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setHandle_class(THIS_CLASS); - task.setIs_send(isSend ? "1" : "0"); - task.setAcs_task_type(StrUtil.isEmpty(task.getAcs_task_type()) - ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : (task.getAcs_task_type())); - //todo 改为任务枚举 - task.setAcs_task_type("6"); - task.setTask_status(StrUtil.isEmpty(task.getTask_status()) - ? TaskStatus.START_AND_POINT.getCode() : task.getTask_status()); - task.setProduct_area(StrUtil.isEmpty(task.getProduct_area())? "A1" : task.getProduct_area()); - //根据类型获取对应的任务优先级 - Dict dict = sysDictService.getOne(new LambdaQueryWrapper().eq(Dict::getCode, "task_priority").eq(Dict::getLabel, task.getTask_type())); - if (dict == null) { - task.setPriority("1"); - } else { - task.setPriority(dict.getValue()); - } - TaskUtils.setCreateByDefault(task); - taskService.save(task); - //如果目标点位没有空位先创建不下发 - if (isSend) { - this.immediateNotifyAcs(task); - } - } - - - @Override - @Transactional(rollbackFor = Exception.class) - public void updateStatus(JSONObject taskObj, TaskStatus status) { - SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() - .eq(SchBaseTask::getTask_code, taskObj.getString("task_code")), false); - if (schBaseTask == null) { - throw new BadRequestException("CallEmpReelTask任务更新接口任务号为空!"); - } - String task_id = schBaseTask.getTask_id(); - // 执行中 - if (TaskStatus.EXECUTING.getCode().equals(status.getCode())) { - // 更新任务状态为执行中 - schBaseTask.setTask_status(TaskStatus.EXECUTING.getCode()); - } - // 完成 - if (StrUtil.equals(status.getCode(), TaskStatus.FINISHED.getCode())) { - // 更新任务状态为执行中 - schBaseTask.setTask_status(TaskStatus.FINISHED.getCode()); - // 查询烘箱区点位库存信息 - StIvtHotpointivt jsonHotIvt = stIvtHotpointivtService.getOne(new LambdaQueryWrapper() - .eq(StIvtHotpointivt::getPoint_code, schBaseTask.getPoint_code1()), false); - // 查询烘箱区出入主表信息 - StIvtHotregioniomst jsonHotMst = stIvtHotregioniomstService.getOne(new QueryWrapper() - .eq("task_id", task_id)); - // 更新暂存区点位状态 - SchBasePoint jsonPoint2 = schBasePointService.getOne(new LambdaQueryWrapper() - .eq(SchBasePoint::getPoint_code, schBaseTask.getPoint_code2()), false); - jsonPoint2.setPoint_status("2"); - //todo setMaterialCode是否需要MaterialCode - //jsonPoint2.setMaterial_code(jsonHotIvt.getContainer_name()); - schBasePointService.updateById(jsonPoint2); - // 更新烘箱区库存状态 - jsonHotIvt.setPoint_status("01"); - jsonHotIvt.setContainer_name(""); - jsonHotIvt.setWorkorder_id(""); - jsonHotIvt.setIvt_qty(BigDecimal.ZERO); - jsonHotIvt.setInstorage_time(""); - jsonHotIvt.setUpdate_optid(SecurityUtils.getCurrentUserId()); - jsonHotIvt.setUpdate_optname(SecurityUtils.getCurrentUsername()); - jsonHotIvt.setUpdate_time(DateUtil.now()); - log.info("出烘箱wql执行update语句!"); - stIvtHotpointivtService.updateById(jsonHotIvt); - // 查询更新后的烘箱区点位库存信息 - StIvtHotpointivt updateIvt = stIvtHotpointivtService.getOne(new LambdaQueryWrapper() - .eq(StIvtHotpointivt::getPoint_code, schBaseTask.getPoint_code1()), false); - log.info("更新完后烘箱库存为:-----------------" + updateIvt.toString()); - // 将出烘箱信息发送给mes - JSONObject param = new JSONObject(); - param.put("iContainerName", jsonHotMst.getContainer_name()); - param.put("iResourceName", jsonHotIvt.getExt_code()); - param.put("iMoveOutDate", DateUtil.now()); - param.put("iabxActualBakingTemperature", jsonHotMst.getTemperature()); - param.put("iabxActualBakingTimer", jsonHotMst.getOven_time()); - //todo MES回传 判断该接口是否需要回传 - //MdPbInterfaceBack backJo = mdPbInterfaceBackService.getOne(new QueryWrapper().eq("interface_name", "momRollBakeOutBound")); - // if (backJo != null && "1".equals(backJo.getIsBack())) { - // String productArea = backJo.getProductArea(); - // if (StrUtil.isNotEmpty(productArea) && productArea.contains(schBaseTask.getString("product_area"))) { - // new LmsToMesServiceImpl().momRollBakeOutBound(param); - // } - // } - } - // 取消 - if (status.getCode().equals(IOSEnum.IS_NOTANDYES.code("否"))) { - if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatus.ISSUE.getCode())) { - throw new BadRequestException("CallEmpReelTask任务已执行不能取消"); - } - // 更新任务表删除字段 - schBaseTask.setIs_delete(true); - stIvtHotregioniomstService.delete(task_id); - } - TaskUtils.setUpdateByDefault(schBaseTask); - taskService.updateById(schBaseTask); - } - - @Override - public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum autoAcs) { - - } - - @Override - public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum autoAcs) { - - } - - - @Override - public void forceFinish(String taskId) { - SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() - .eq(SchBaseTask::getTask_id, taskId), false); - if (schBaseTask == null) { - throw new BadRequestException("CallEmpReelTask任务强制完成接口任务号为空!"); - } - schBaseTask.setTask_status(TaskStatus.FINISHED.getCode()); - TaskUtils.setUpdateByDefault(schBaseTask); - taskService.updateById(schBaseTask); - } - - @Override - public void cancel(String taskId) { - SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() - .eq(SchBaseTask::getTask_id, taskId), false); - if (schBaseTask == null) { - throw new BadRequestException("CallEmpReelTask任务取消接口任务号为空!"); - } - schBaseTask.setTask_status(IOSEnum.ACS_RESULT.code("取消")); - TaskUtils.setUpdateByDefault(schBaseTask); - taskService.updateById(schBaseTask); - } - - public boolean isSingleTask(String point_code) { - return taskService.getOne(new LambdaQueryWrapper() - .and(wrapper -> wrapper - .eq(SchBaseTask::getPoint_code1, point_code) - .or() - .eq(SchBaseTask::getPoint_code2, point_code) - .or() - .eq(SchBaseTask::getPoint_code3, point_code) - .or() - .eq(SchBaseTask::getPoint_code4, point_code) - ) - .lt(SchBaseTask::getTask_status, "07") - .eq(SchBaseTask::getIs_delete, "0") - ) != null; - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void create() throws BadRequestException { - - } - - -} diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/MesUtils.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/MesUtils.java index 31febada6..1ada8ef5c 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/MesUtils.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/MesUtils.java @@ -11,8 +11,8 @@ import org.nl.system.service.notice.impl.SysNoticeServiceImpl; import org.nl.system.service.param.dao.Param; import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.wms.ext.mes.service.dto.ResultForMes; -import org.nl.wms.sch.task_manage.constant.GeneralDefinition; -import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; +import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition; +import org.nl.wms.sch.task_manage.core.enums.NoticeTypeEnum; /** * @Author: lyd diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/PointUtils.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/PointUtils.java index 1f277dedb..f9af24f1d 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/PointUtils.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/PointUtils.java @@ -5,11 +5,12 @@ import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import org.nl.common.utils.SecurityUtils; import org.nl.config.SpringContextHolder; +import org.nl.wms.pdm.ivt.dao.StIvtHotpointivt; import org.nl.wms.sch.point.service.dao.SchBasePoint; import org.nl.wms.sch.point.service.impl.SchBasePointServiceImpl; -import org.nl.wms.sch.task_manage.constant.GeneralDefinition; -import org.nl.wms.sch.task_manage.enums.PointStatusEnum; -import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; +import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition; +import org.nl.wms.sch.task_manage.core.enums.PointStatusEnum; +import org.nl.wms.sch.task_manage.core.enums.TaskFinishedTypeEnum; /** * @Author: lyd @@ -108,4 +109,30 @@ public class PointUtils { setUpdateByPC(pointObj); } } + + /** + * 烘箱点位修改更新信息 + **/ + public static void setHxUpdateByAcs(StIvtHotpointivt pointObj) { + pointObj.setUpdate_optid(GeneralDefinition.ACS_ID); + pointObj.setUpdate_optname(GeneralDefinition.ACS_NAME); + pointObj.setUpdate_time(DateUtil.now()); + } + + /** + * 烘箱点位修改更新信息 + **/ + public static void setHxUpdateByPC(StIvtHotpointivt pointObj) { + pointObj.setUpdate_optid(SecurityUtils.getCurrentUserId()); + pointObj.setUpdate_optname(SecurityUtils.getCurrentNickName()); + pointObj.setUpdate_time(DateUtil.now()); + } + + public static void setHxUpdateByType(StIvtHotpointivt pointObj, TaskFinishedTypeEnum taskFinishedType) { + if (taskFinishedType.equals(TaskFinishedTypeEnum.AUTO_ACS)) { + setHxUpdateByAcs(pointObj); + } else { + setHxUpdateByPC(pointObj); + } + } } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/TaskUtils.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/TaskUtils.java index da1c35b7d..7bd033b57 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/TaskUtils.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/TaskUtils.java @@ -12,8 +12,8 @@ import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder; import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; import org.nl.wms.sch.task.service.ISchBaseTaskService; import org.nl.wms.sch.task.service.dao.SchBaseTask; -import org.nl.wms.sch.task_manage.constant.GeneralDefinition; -import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; +import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition; +import org.nl.wms.sch.task_manage.core.enums.TaskFinishedTypeEnum; import org.nl.wms.sch.task_manage.TaskStatus; import java.util.List; diff --git a/lms2/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml b/lms2/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml index 9ee61a81f..5e418f14e 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml +++ b/lms2/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml @@ -14,17 +14,5 @@ nl: port: 6379 password: null database: 1 - oracle: - ip: 172.27.37.66 - port: 1521 - scheme: RTMES - username: LMSTELCOM - password: LMSTELCOM_6463 - sqlserver: - ip: 10.93.41.2 - port: WINCC - username: sa - password: 123 - database: 马钢_RH logging-path: C:\log\wms dynamic-log-path: C:\log\lms diff --git a/lms2/nladmin-system/nlsso-server/src/main/resources/config/application.yml b/lms2/nladmin-system/nlsso-server/src/main/resources/config/application.yml index 5afe2e8c9..307668f78 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/resources/config/application.yml +++ b/lms2/nladmin-system/nlsso-server/src/main/resources/config/application.yml @@ -122,7 +122,7 @@ spring: enabled: true # 是否启用 dynamictp,默认true enabledBanner: false # 是否启用 控制台banner,默认true enabledCollect: true # 是否开启监控指标采集,默认true - collectorTypes: logging,test_collect # 监控数据采集器类型(logging | micrometer | internal_logging),默认micrometer + collectorTypes: logging # 监控数据采集器类型(logging | micrometer | internal_logging),默认micrometer logPath: ${nl.config.dynamic-log-path} # 监控日志数据路径,默认 ${user.home}/logs,采集类型非logging不用配置 monitorInterval: 8 tomcatTp: # tomcat webserver 线程池配置 diff --git a/lms2/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml b/lms2/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml index 2f22eab79..a02af0e3a 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml +++ b/lms2/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml @@ -49,8 +49,21 @@ https://juejin.cn/post/6844903775631572999 + - DEBUG + INFO + ACCEPT + NEXT + + + + WARN + ACCEPT + NEXT + + + + ERROR ACCEPT DENY @@ -96,7 +109,10 @@ https://juejin.cn/post/6844903775631572999 - + + + + diff --git a/lms2/nladmin-ui/src/views/lucene/index.vue b/lms2/nladmin-ui/src/views/lucene/index.vue index d08b9e0c9..e0fc4d8e7 100644 --- a/lms2/nladmin-ui/src/views/lucene/index.vue +++ b/lms2/nladmin-ui/src/views/lucene/index.vue @@ -62,6 +62,15 @@ :end-placeholder="$t('Log.end_time')" /> + + + {{ $t('common.Query') }} @@ -73,7 +82,8 @@
-
+
+
@@ -126,7 +136,8 @@ export default { size: 100, total: 0, createTime: '' - } + }, + compressedView: true } }, created() { diff --git a/lms2/nladmin-ui/src/views/wms/sch/point/index.vue b/lms2/nladmin-ui/src/views/wms/sch/point/index.vue index 829d8f815..8ca060f1d 100644 --- a/lms2/nladmin-ui/src/views/wms/sch/point/index.vue +++ b/lms2/nladmin-ui/src/views/wms/sch/point/index.vue @@ -471,7 +471,6 @@ import PointDialog from '@/views/wms/sch/point/PointDialog.vue' import i18n from '@/i18n' const defaultForm = { - point_id: null, point_code: null, point_name: null, region_code: null, @@ -510,8 +509,8 @@ export default { return CRUD({ title: i18n.t('Point.title'), url: 'api/schBasePoint', - idField: 'point_id', - sort: 'point_id,desc', + idField: 'point_code', + sort: 'point_code,desc', crudMethod: { ...crudSchBasePoint }, optShow: { add: true, diff --git a/lms2/nladmin-ui/src/views/wms/sch/task/index.vue b/lms2/nladmin-ui/src/views/wms/sch/task/index.vue index 64bff74bf..661c916da 100644 --- a/lms2/nladmin-ui/src/views/wms/sch/task/index.vue +++ b/lms2/nladmin-ui/src/views/wms/sch/task/index.vue @@ -458,7 +458,11 @@ export default { download: false, reset: true }, - crudMethod: { ...crudSchBaseTask } + crudMethod: { ...crudSchBaseTask }, + query: { + more_task_status: '09', + task_status: ['09'] + } }) }, data() { @@ -480,7 +484,6 @@ export default { this.crud.toQuery() }, handTaskStatus(value) { - this.crud.query.more_task_status = null if (value) { this.crud.query.more_task_status = value.toString() }