diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java index 741ea32..04d9478 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java @@ -4,6 +4,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.nl.acs.ext.wms.data.*; +import org.nl.acs.ext.wms.data.feedBackTaskStatus.FeedBackTaskStatusRequest; public interface AcsToWmsService { @@ -122,7 +123,7 @@ public interface AcsToWmsService { /** * ACS向WMS反馈任务状态 */ - String feedTaskStatus(BaseRequest request); + String feedTaskStatus(FeedBackTaskStatusRequest request); /** * ACS向WMS反馈任务状态 diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java index e7589a4..72c9f5f 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; +import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -17,10 +18,14 @@ import org.nl.acs.address.service.dto.AddressDto; import org.nl.acs.device.service.DeviceService; import org.nl.acs.ext.wms.LmsUtil; import org.nl.acs.ext.wms.data.*; +import org.nl.acs.ext.wms.data.feedBackTaskStatus.FeedBackTaskStatusRequest; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; +import org.nl.config.SpringContextHolder; +import org.nl.system.service.lucene.LuceneExecuteLogService; +import org.nl.system.service.lucene.dto.LuceneLogDto; import org.nl.system.service.param.ISysParamService; import org.slf4j.MDC; import org.springframework.beans.factory.annotation.Autowired; @@ -34,18 +39,16 @@ import org.springframework.stereotype.Service; public class AcsToWmsServiceImpl implements AcsToWmsService { @Autowired ISysParamService paramService; - @Autowired DeviceService deviceService; - @Autowired AddressService addressService; - @Autowired TaskService taskService; - @Autowired DeviceExecuteLogService logServer; + @Autowired + LuceneExecuteLogService luceneExecuteLogService; /*@Value("${acsTowms.token}")*/ public String token; @@ -533,18 +536,25 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Override public HttpResponse feedAgvTaskStatus(JSONObject from) { String wmsUrl = paramService.findByCode(AcsConfig.WMSURL).getValue(); - AddressDto addressDto = addressService.findByCode("feedAgvTaskStatus"); String methods_url = addressDto.getMethods_url(); String url = wmsUrl + methods_url; HttpResponse result = null; log.info("feedAgvTaskStatus----请求参数{}", from); - try { result = HttpRequest.post(url) .body(String.valueOf(from)) .execute(); - System.out.println(result); + LuceneLogDto reqlogDto = LuceneLogDto.builder() + .device_code(from.getString("device_code")) + .task_code(from.getString("task_code")) + .status_code(StrUtil.toString(result.getStatus())) + .requestparam("请求参数:"+ from) + .responseparam("响应参数:"+result.body()) + .content(result.body()) + .method("feedAgvTaskStatus") + .build(); + luceneExecuteLogService.interfaceExecuteLog(reqlogDto); log.info("feedAgvTaskStatus----返回参数{}", result); } catch (Exception e) { String msg = e.getMessage(); @@ -568,12 +578,22 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } @Override - public String feedTaskStatus(BaseRequest requestParam) { + public String feedTaskStatus(FeedBackTaskStatusRequest requestParam) { try { MDC.put(log_file_type, log_type); String api = addressService.findByCode("feedTaskStatus").getMethods_url(); log.info("feedTaskStatus-----输入参数{}", JSON.toJSONString(requestParam, SerializerFeature.DisableCircularReferenceDetect)); String result = LmsUtil.notifyAcs(api, requestParam); + LuceneLogDto reqlogDto = LuceneLogDto.builder() + .device_code(requestParam.getDevice_code()) + .task_id(requestParam.getTask_id()) + .status_code(JSONObject.parseObject(result).getString("code")) + .requestparam("请求参数:"+ JSONUtil.toJsonStr(requestParam)) + .responseparam("响应参数:"+result) + .content(result) + .method("feedTaskStatus") + .build(); + luceneExecuteLogService.interfaceExecuteLog(reqlogDto); log.info("feedTaskStatus-----输出参数{}", result); return result; } finally { diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java index f2c7ed9..9fe888f 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java @@ -3,6 +3,7 @@ package org.nl.acs.ext.wms.service.impl; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -36,6 +37,8 @@ import org.nl.acs.storage_cell.service.mapper.StorageCellMapper; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; import org.nl.common.exception.BadRequestException; +import org.nl.system.service.lucene.LuceneExecuteLogService; +import org.nl.system.service.lucene.dto.LuceneLogDto; import org.nl.system.service.param.ISysParamService; import org.nl.config.SpringContextHolder; @@ -63,6 +66,8 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { private final StorageCellMapper storageCellMapper; @Autowired private DeviceExtraService deviceExtraService; + @Autowired + private LuceneExecuteLogService luceneExecuteLogService; private String log_file_type = "log_file_type"; private String log_type = "LMS请求ACS"; @@ -622,6 +627,13 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { } response.setErrArr(errArr); } + LuceneLogDto reqlogDto = LuceneLogDto.builder() + .status_code(StrUtil.toString(response.getstatus())) + .requestparam("请求参数:"+ JSONUtil.toJsonStr(reqs)) + .responseparam("响应参数:"+JSON.toJSONString(response)) + .method("crateTask") + .build(); + luceneExecuteLogService.interfaceExecuteLog(reqlogDto); log.info("createFromWms--------------:输出参数:" + JSON.toJSONString(response)); return response; } finally { @@ -674,6 +686,11 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { @Override public Object updateRoute(JSONObject param) { Assert.notNull(param.getString("pointCode"), "参数Point不能为空"); + LuceneLogDto reqlogDto = LuceneLogDto.builder() + .requestparam("请求参数:"+ JSONUtil.toJsonStr(param)) + .method("updateRoute") + .build(); + luceneExecuteLogService.interfaceExecuteLog(reqlogDto); String pointCode = param.getString("pointCode"); if (pointCode.contains(",")) { String[] split = pointCode.split(","); diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java index 5b8d2cd..6efd70b 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java @@ -207,6 +207,10 @@ public class DeviceOpcProtocolRunable implements Runnable, DataCallback, ServerC } if(!ObjectUtil.isEmpty(value) || "".equals(value)){ accessor_value.setValue(itemId, value); + LuceneLogDto luceneLogDto = new LuceneLogDto(itemDto.getOpc_server_code(), itemDto.getOpc_plc_code(),4, itemDto.getDevice_code(), itemDto.getItem_code().substring(itemDto.getItem_code().lastIndexOf(".") + 1), + String.valueOf(his), String.valueOf(value)); + luceneLogDto.setLogType(LogTypeEnum.DEVICE_LOG.getDesc()); + log.info("{}", JSON.toJSONString(luceneLogDto)); } if(ObjectUtil.isEmpty(value) && !"".equals(value)){ accessor_value.removeValue(itemId); @@ -387,7 +391,6 @@ public class DeviceOpcProtocolRunable implements Runnable, DataCallback, ServerC @Override public void changed(Item item, ItemState itemState) { String itemId = item.getId(); - try { Object value = OpcUtl.getValue(item, itemState); UnifiedDataAccessor accessor_value = UnifiedDataAccessorFactory.getAccessor(OpcConfig.udw_opc_value_key); diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneAppender.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneAppender.java index f3a9c26..da340df 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneAppender.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneAppender.java @@ -12,6 +12,7 @@ import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; +import com.alibaba.ttl.TransmittableThreadLocal; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; @@ -22,85 +23,95 @@ import org.apache.lucene.index.IndexWriterConfig; import org.apache.lucene.store.Directory; import org.apache.lucene.store.FSDirectory; import org.nl.system.service.lucene.dto.LuceneLogDto; +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; import java.nio.file.Paths; +import java.util.List; import java.util.Map; +import java.util.Properties; public class LuceneAppender extends AppenderBase { - private Directory index; - private IndexWriter indexWriter; + public static final TransmittableThreadLocal traceIdTL = new TransmittableThreadLocal(); + public LuceneProperties properties; + public static Directory index; +// private List encoders; + public static IndexWriter indexWriter; @Override public void start() { super.start(); try { - index = FSDirectory.open(Paths.get(LogMessageConstant.INDEX_DIR)); - } 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); } @Override protected void append(ILoggingEvent event) { String message = event.getFormattedMessage(); + String[] split = message.split("@"); + LuceneLogDto luceneLogDto = JSONObject.parseObject(split[0], LuceneLogDto.class); + Document document = new Document(); try { -// String[] split = message.split("@"); - LuceneLogDto luceneLogDto = JSONObject.parseObject(message, LuceneLogDto.class); - Document document = new Document(); - try { - //向document对象中添加域。 - Map mdcPropertyMap = event.getMDCPropertyMap(); - String traceId = mdcPropertyMap.get("traceId"); - System.out.println("---追踪号---"+traceId); - if (ObjectUtil.isNotEmpty(traceId)) { - document.add(new StringField("trace_id", traceId, Field.Store.YES)); - } - 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)); - document.add(new NumericDocValuesField("time",System.currentTimeMillis()));//排序 + //向document对象中添加域。 + Map mdcPropertyMap = event.getMDCPropertyMap(); + String traceId = mdcPropertyMap.get("traceId"); +// System.out.println("---追踪号---"+traceId); + if (ObjectUtil.isNotEmpty(traceId)) { + document.add(new StringField("trace_id", traceId, Field.Store.YES)); + } + 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)); + document.add(new NumericDocValuesField("logTime",System.currentTimeMillis()));//排序 - try { - indexWriter.addDocument(document); - indexWriter.commit(); - } catch (IOException e) { - e.printStackTrace(); - } - } catch (Exception e) { - return; + try { + indexWriter.addDocument(document); + indexWriter.commit(); + } catch (IOException e) { + e.printStackTrace(); } - } catch (Exception e){ + } catch (Exception e) { return; } } @@ -114,4 +125,9 @@ public class LuceneAppender extends AppenderBase { e.printStackTrace(); } } + + public void setProperties(LuceneProperties properties) { + this.properties = properties; + + } } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneProperties.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneProperties.java new file mode 100644 index 0000000..805f549 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneProperties.java @@ -0,0 +1,23 @@ +package org.nl.config.lucene; + + +import java.util.ArrayList; +import java.util.List; + +public class LuceneProperties { + + private List properties; + + public LuceneProperties() { + this.properties = new ArrayList(); + } + + public List getProperties() { + return properties; + } + + public void addProperty(Property property) { + properties.add(property); + } + +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Property.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Property.java new file mode 100644 index 0000000..4d33144 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Property.java @@ -0,0 +1,44 @@ +package org.nl.config.lucene; + +/* + * @author ZZQ + * @Date 2023/12/26 15:30 + */ +public class Property { + private String name; + private String value; + private boolean allowEmpty; + + public Property() { + } + + public Property(String name, String value, boolean allowEmpty) { + this.name = name; + this.value = value; + this.allowEmpty = allowEmpty; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public boolean isAllowEmpty() { + return allowEmpty; + } + + public void setAllowEmpty(boolean allowEmpty) { + this.allowEmpty = allowEmpty; + } +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/lucence/LuceneController.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/lucence/LuceneController.java index 1ee76d9..d8fb60a 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/lucence/LuceneController.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/lucence/LuceneController.java @@ -4,6 +4,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.common.enums.LogTypeEnum; import org.nl.common.logging.annotation.Log; import org.nl.system.service.lucene.LuceneService; import org.springframework.data.domain.Pageable; @@ -30,6 +31,16 @@ public class LuceneController { @ApiOperation("日志检索") //@PreAuthorize("@el.check('task:list')") public ResponseEntity get(@RequestParam Map whereJson, Pageable page) { + whereJson.put("logType", LogTypeEnum.DEVICE_LOG.getDesc()); + return new ResponseEntity<>(luceneService.getAll(whereJson, page), HttpStatus.OK); + } + + @GetMapping("/getApiAll") + @Log("日志检索") + @ApiOperation("日志检索") + //@PreAuthorize("@el.check('task:list')") + public ResponseEntity getApiAll(@RequestParam Map whereJson, Pageable page) { + whereJson.put("logType", LogTypeEnum.INTERFACE_LOG.getDesc()); return new ResponseEntity<>(luceneService.getAll(whereJson, page), HttpStatus.OK); } } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/impl/LuceneServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/impl/LuceneServiceImpl.java index e5b0a0c..0e570a1 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/impl/LuceneServiceImpl.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/impl/LuceneServiceImpl.java @@ -56,49 +56,50 @@ public class LuceneServiceImpl implements LuceneService { String startDate = (String) whereJson.get("begin_time"); String endDate = (String) whereJson.get("end_time"); - if (startDate == null){ - Calendar calendar=Calendar.getInstance(); + if (startDate == null) { + Calendar calendar = Calendar.getInstance(); calendar.set(1970, 0, 1); - startDate = DateUtil.format(calendar.getTime(),"yyyy-MM-dd HH:mm:ss.SSS"); - }else{ + startDate = DateUtil.format(calendar.getTime(), "yyyy-MM-dd HH:mm:ss.SSS"); + } else { startDate = getDate(startDate); } - if (endDate == null){ - endDate = DateUtil.format(new DateTime(),"yyyy-MM-dd HH:mm:ss.SSS"); + if (endDate == null) { + endDate = DateUtil.format(new DateTime(), "yyyy-MM-dd HH:mm:ss.SSS"); } else { endDate = getDate(endDate); } TermRangeQuery termRangeQuery = new TermRangeQuery("logTime", new BytesRef(startDate), new BytesRef(endDate), true, true); booleanQueryBuilder.add(termRangeQuery, BooleanClause.Occur.MUST); - if (whereJson.get("device_code") != null){ + if (whereJson.get("device_code") != null) { Query termQuery = new TermQuery(new Term("device_code", (String) whereJson.get("device_code"))); - booleanQueryBuilder.add(termQuery,BooleanClause.Occur.MUST); + booleanQueryBuilder.add(termQuery, BooleanClause.Occur.MUST); } - if (whereJson.get("method") != null){ + if (whereJson.get("method") != null) { Query termQuery = new TermQuery(new Term("method", (String) whereJson.get("method"))); - booleanQueryBuilder.add(termQuery,BooleanClause.Occur.MUST); + booleanQueryBuilder.add(termQuery, BooleanClause.Occur.MUST); } - if (whereJson.get("status_code") != null){ + if (whereJson.get("status_code") != null) { Query termQuery = new TermQuery(new Term("status_code", (String) whereJson.get("status_code"))); - booleanQueryBuilder.add(termQuery,BooleanClause.Occur.MUST); + booleanQueryBuilder.add(termQuery, BooleanClause.Occur.MUST); } - if (whereJson.get("requestparam") != null){ - WildcardQuery query = new WildcardQuery(new Term("requestparam", "*"+(String) whereJson.get("requestparam")+"*")); - booleanQueryBuilder.add(query,BooleanClause.Occur.MUST); + if (whereJson.get("requestparam") != null) { + WildcardQuery query = new WildcardQuery(new Term("requestparam", "*" + (String) whereJson.get("requestparam") + "*")); + booleanQueryBuilder.add(query, BooleanClause.Occur.MUST); } - if (whereJson.get("responseparam") != null){ - WildcardQuery query = new WildcardQuery(new Term("responseparam", "*"+(String) whereJson.get("responseparam")+"*")); - booleanQueryBuilder.add(query,BooleanClause.Occur.MUST); + if (whereJson.get("responseparam") != null) { + WildcardQuery query = new WildcardQuery(new Term("responseparam", "*" + (String) whereJson.get("responseparam") + "*")); + booleanQueryBuilder.add(query, BooleanClause.Occur.MUST); } if (whereJson.get("blurry") != null) { - WildcardQuery query = new WildcardQuery(new Term("fieldContent", "*"+(String) whereJson.get("blurry")+"*")); + WildcardQuery query = new WildcardQuery(new Term("fieldContent", "*" + (String) whereJson.get("blurry") + "*")); booleanQueryBuilder.add(query, BooleanClause.Occur.MUST); } - - TopFieldCollector collector = TopFieldCollector.create(new Sort(new SortField("logTime", SortField.Type.LONG,true)), 20000, 0); + Query termQuery = new TermQuery(new Term("logType", (String) whereJson.get("logType"))); + booleanQueryBuilder.add(termQuery, BooleanClause.Occur.MUST); + TopFieldCollector collector = TopFieldCollector.create(new Sort(new SortField("logTime", SortField.Type.LONG, true)), 20000, 0); searcher.search(booleanQueryBuilder.build(), collector); - TopDocs topDocs = collector.topDocs(pageNum*pageSize, pageSize); + TopDocs topDocs = collector.topDocs(pageNum * pageSize, pageSize); int totalSize = collector.getTotalHits(); ScoreDoc[] scoreDocs = topDocs.scoreDocs; @@ -106,16 +107,15 @@ public class LuceneServiceImpl implements LuceneService { for (ScoreDoc scoreDoc : scoreDocs) { Document doc = open.document(scoreDoc.doc); JSONObject object = new JSONObject(); - object.put("content",doc.get("fieldContent")); - object.put("device_code",doc.get("device_code")); - object.put("logTime",doc.get("logTime")); - object.put("method",doc.get("method")); - object.put("status_code",doc.get("status_code")); - object.put("requestparam",doc.get("requestparam")); - object.put("responseparam",doc.get("responseparam")); - if(doc.get("fieldContent") != null) { - list.add(object); - } + object.put("content", doc.get("fieldContent")); + object.put("device_code", doc.get("device_code")); + object.put("task_code", doc.get("task_id")); + object.put("logTime", doc.get("logTime")); + object.put("method", doc.get("method")); + object.put("status_code", doc.get("status_code")); + object.put("requestparam", doc.get("requestparam")); + object.put("responseparam", doc.get("responseparam")); + list.add(object); } open.close(); directory.close(); diff --git a/acs/nladmin-ui/src/api/monitor/Address.js b/acs/nladmin-ui/src/api/monitor/Address.js new file mode 100644 index 0000000..a51f3b0 --- /dev/null +++ b/acs/nladmin-ui/src/api/monitor/Address.js @@ -0,0 +1,34 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/Address', + method: 'post', + data + }) +} + +export function queryAddressCodeList() { + return request({ + url: 'api/Address/queryAddressCodeList', + method: 'get' + }) +} + +export function del(ids) { + return request({ + url: 'api/Address/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/Address', + method: 'put', + data + }) +} + +export default { add, edit, del, queryAddressCodeList } diff --git a/acs/nladmin-ui/src/views/lucene/index.vue b/acs/nladmin-ui/src/views/lucene/index.vue index 051df24..496c928 100644 --- a/acs/nladmin-ui/src/views/lucene/index.vue +++ b/acs/nladmin-ui/src/views/lucene/index.vue @@ -106,3 +106,4 @@ export default { + diff --git a/acs/nladmin-ui/src/views/monitor/log/logQuery.vue b/acs/nladmin-ui/src/views/monitor/log/logQuery.vue new file mode 100644 index 0000000..1106629 --- /dev/null +++ b/acs/nladmin-ui/src/views/monitor/log/logQuery.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/acs/nladmin-ui/src/views/monitor/lucene/index.vue b/acs/nladmin-ui/src/views/monitor/lucene/index.vue index 36be01e..4522b05 100644 --- a/acs/nladmin-ui/src/views/monitor/lucene/index.vue +++ b/acs/nladmin-ui/src/views/monitor/lucene/index.vue @@ -15,15 +15,15 @@ - - + + - - + + diff --git a/acs/nladmin-ui/src/views/monitor/lucene/search.vue b/acs/nladmin-ui/src/views/monitor/lucene/search.vue index 4418988..c5b5cb7 100644 --- a/acs/nladmin-ui/src/views/monitor/lucene/search.vue +++ b/acs/nladmin-ui/src/views/monitor/lucene/search.vue @@ -22,13 +22,14 @@ --> impl @Override public Page queryPage(Map whereJson, PageQuery page) { QueryWrapper queryWrapper = new QueryWrapper<>(); + page.setPage(page.getPage() + 1); queryWrapper.orderBy(true, true, "create_time"); Page paramPage = paramMapper.selectPage(page.build(), queryWrapper); return paramPage; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 1b35bb1..7e1ee17 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -515,6 +515,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { schBaseVehiclematerialgroup.setRegion_code(connectorDto.getNextOperation()); schBaseVehiclematerialgroup.setExtend(JSON.toJSONString(connectorDto)); schBaseVehiclematerialgroup.setOrder_code(connectorDto.getProductionOrder()); + schBaseVehiclematerialgroup.setCreate_name("Connector"); iSchBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup); taskService.update(Wrappers.lambdaUpdate(SchBaseTask.class).eq(SchBaseTask::getTask_code, schBaseTask.getTask_code()) .set(SchBaseTask::getJob_name, connectorDto.getJobname())); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/impl/ConnectorToWmsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/impl/ConnectorToWmsServiceImpl.java index f15fc03..46517be 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/impl/ConnectorToWmsServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/impl/ConnectorToWmsServiceImpl.java @@ -59,6 +59,7 @@ public class ConnectorToWmsServiceImpl implements ConnectorToWmsService { map.put("status", HttpStatus.HTTP_INTERNAL_ERROR); map.put("message", "请求参数为空!"); objects.add(map); + log.info("connector下发agv任务请求参数为空:{}!", jsonArray); return map; } try { @@ -74,6 +75,8 @@ public class ConnectorToWmsServiceImpl implements ConnectorToWmsService { map1.put("message", StrUtil.isEmpty(task_code) ? "任务号不能为空!" : StrUtil.isEmpty(start_device_code) ? "起点参数不能为空!" : StrUtil.isEmpty(vehicle_code) ? "载具号不能为空!" : "未知"); objects.add(map1); + log.info(StrUtil.isEmpty(task_code) ? "任务号不能为空!" + : StrUtil.isEmpty(start_device_code) ? "起点参数不能为空!" : StrUtil.isEmpty(vehicle_code) ? "载具号不能为空!" : "未知"); continue; } SchBasePoint schBasePoint = schBasePointService.selectByPointCode(start_device_code); @@ -82,12 +85,14 @@ public class ConnectorToWmsServiceImpl implements ConnectorToWmsService { map1.put("status", HttpStatus.HTTP_INTERNAL_ERROR); map1.put("message", start_device_code + "点位设备不存在!"); objects.add(map1); + log.info(start_device_code + "点位设备不存在!"); continue; } else if (schBasePoint.getIs_lock()) { map1.put("task_code", task_code); map1.put("status", HttpStatus.HTTP_INTERNAL_ERROR); map1.put("message", start_device_code + "该设备正在执行任务!"); objects.add(map1); + log.info(start_device_code + "该设备正在执行任务!"); continue; } //TODO:固定的载具类型,根据载具类型来决定终点 @@ -121,6 +126,7 @@ public class ConnectorToWmsServiceImpl implements ConnectorToWmsService { map.put("status", HttpStatus.HTTP_INTERNAL_ERROR); map.put("message", e.getMessage()); objects.add(map); + log.info("connector下发agv任务异常:{}", e.getMessage()); return map; } return map; @@ -132,10 +138,11 @@ public class ConnectorToWmsServiceImpl implements ConnectorToWmsService { Assert.noNullElements(jsonArray, "请求参数为空!"); List connectorDtos = BeanUtil.copyToList(jsonArray, ConnectorDto.class); for (ConnectorDto connectorDto : connectorDtos) { - if(StrUtil.isEmpty(connectorDto.getID())) throw new BadRequestException("物料id为null!"); + if (StrUtil.isEmpty(connectorDto.getID())) throw new BadRequestException("物料id为null!"); SchBaseVehiclematerialgroup one = iSchBaseVehiclematerialgroupService.getOne(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class) .eq(SchBaseVehiclematerialgroup::getGroup_id, connectorDto.getID())); if (ObjectUtil.isNotNull(one)) { + log.info("id:" + connectorDto.getID() + "," + "该物料信息已存在!"); throw new BadRequestException("id:" + connectorDto.getID() + "," + "该物料信息已存在!"); } SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = new SchBaseVehiclematerialgroup(); @@ -147,6 +154,7 @@ public class ConnectorToWmsServiceImpl implements ConnectorToWmsService { schBaseVehiclematerialgroup.setRegion_code(connectorDto.getNextOperation()); schBaseVehiclematerialgroup.setExtend(JSON.toJSONString(connectorDto)); schBaseVehiclematerialgroup.setOrder_code(connectorDto.getProductionOrder()); + schBaseVehiclematerialgroup.setCreate_name("Connector"); iSchBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup); } return null; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/impl/WmsToConnectorServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/impl/WmsToConnectorServiceImpl.java index d983259..8c81634 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/impl/WmsToConnectorServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/impl/WmsToConnectorServiceImpl.java @@ -49,7 +49,7 @@ public class WmsToConnectorServiceImpl implements WmsToConnectorService { SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class); Param isInvokeConnector = sysParamService.findByCode(GeneralDefinition.IS_INVOKE_CONNECTOR); if (ObjectUtil.isNotEmpty(isInvokeConnector) && GeneralDefinition.YES.equals(isInvokeConnector.getValue())) { - String api = "/iot/agvarrive"; + String api = "/iot/order_report"; JSONObject jsonObject = ConnectorUtil.notifyConnector3(api, json); return jsonObject; } else if (ObjectUtil.isNotEmpty(isInvokeConnector) && GeneralDefinition.NO.equals(isInvokeConnector.getValue())) { diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/service/impl/HandheldServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/service/impl/HandheldServiceImpl.java index 8482afb..40fdf01 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/service/impl/HandheldServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/service/impl/HandheldServiceImpl.java @@ -14,6 +14,7 @@ import org.nl.common.enums.VehicleTypeEnum; import org.nl.common.enums.region.RegionEnum; import org.nl.common.exception.BadRequestException; import org.nl.common.utils.RedisUtils; +import org.nl.common.utils.SecurityUtils; import org.nl.config.SpringContextHolder; import org.nl.system.service.param.dao.Param; import org.nl.system.service.param.impl.SysParamServiceImpl; @@ -255,6 +256,9 @@ public class HandheldServiceImpl implements HandheldService { private void goShelves(SchBasePoint schBasePoint, JSONObject param, String region_code, String device_code, String vehicle_code, AbstractTask connectorTask) { Assert.noNullElements(param.getJSONArray("material"), "参数不能为空!"); JSONArray materials = param.getJSONArray("material"); + if (materials.size() < 1) { + throw new BadRequestException("物料下料数量不能为空!"); + } JSONObject jo = new JSONObject(); if (StrUtil.isBlank(region_code)) { JSONObject json = new JSONObject(); @@ -328,6 +332,7 @@ public class HandheldServiceImpl implements HandheldService { schBaseVehiclematerialgroup.setMaterial_code(jsonObject.getString("material_code")); schBaseVehiclematerialgroup.setOrder_code(jsonObject.getString("order_code")); schBaseVehiclematerialgroup.setDue_date(jsonObject.getString("due_date")); + schBaseVehiclematerialgroup.setCreate_name(SecurityUtils.getCurrentNickName()); schBaseVehiclematerialgroup.setRegion_code(StrUtil.isBlank(finalRegion_code) ? jsonObject.getString("region_code") : finalRegion_code); iSchBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup); }); @@ -344,6 +349,10 @@ public class HandheldServiceImpl implements HandheldService { */ private void goWxOrNx(JSONObject param, String region_code, String device_code, String vehicle_code, AbstractTask connectorTask) { JSONObject jo = new JSONObject(); + JSONArray materials = param.getJSONArray("material"); + if (materials.size() < 1) { + throw new BadRequestException("物料下料数量不能为空!"); + } jo.put("device_code", device_code); jo.put("config_code", "ProcessingSMTTask"); jo.put("create_mode", GeneralDefinition.AUTO_CREATION); @@ -357,6 +366,30 @@ public class HandheldServiceImpl implements HandheldService { .set(SchBasePoint::getPoint_status, GoodsEnum.OUT_OF_STOCK.getValue()) .set(SchBasePoint::getIs_lock, true) .set(SchBasePoint::getVehicle_code, null)); + iSchBaseVehiclematerialgroupService.remove(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class) + .eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicle_code)); + materials.stream().forEach(material -> { + String replace = StrUtil.replace(StrUtil.toString(material), "=", ":"); + replace = replace.replaceAll("material_code:,", ""); + // 使用 Hutool 的 JSONUtil 解析 JSON 字符串 + cn.hutool.json.JSONObject jsonObject1 = JSONUtil.parseObj(replace); + // 判断 material_code 是否为空 + if (replace.contains("OR")) { + Object materialCode = jsonObject1.get("order_code"); + jsonObject1.put("order_code", materialCode.toString()); + replace = jsonObject1.toString(); + } + JSONObject jsonObject = JSONObject.parseObject(replace); + SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = new SchBaseVehiclematerialgroup(); + schBaseVehiclematerialgroup.setVehicle_code(vehicle_code); + schBaseVehiclematerialgroup.setMaterial_qty(jsonObject.getInteger("material_qty")); + schBaseVehiclematerialgroup.setMaterial_code(jsonObject.getString("material_code")); + schBaseVehiclematerialgroup.setOrder_code(jsonObject.getString("order_code")); + schBaseVehiclematerialgroup.setDue_date(jsonObject.getString("due_date")); + schBaseVehiclematerialgroup.setCreate_name(SecurityUtils.getCurrentNickName()); + schBaseVehiclematerialgroup.setRegion_code(region_code); + iSchBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup); + }); } @@ -566,18 +599,19 @@ public class HandheldServiceImpl implements HandheldService { @Override public void updateRoute(JSONObject json) { Assert.noNullElements(new String[]{json.getString("type"), json.getString("status")}, "参数不能为空!"); - switch (json.getString("type")) { - case "1": - JSONObject jsonObject = new JSONObject(); - SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class); - Param isConnectConnector = sysParamService.findByCode(GeneralDefinition.ADD_ROUTE_DOOR_1); - jsonObject.put("pointCode", isConnectConnector.getValue()); - jsonObject.put("status", json.getString("status")); - wmsToAcsService.notifyAcs1(jsonObject); - break; - default: - break; + JSONObject jsonObject = new JSONObject(); + SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class); + Param isConnectConnector = sysParamService.findByCode("add_route_door_" + json.getString("type")); + jsonObject.put("pointCode", isConnectConnector.getValue()); + jsonObject.put("status", json.getString("status")); + wmsToAcsService.notifyAcs1(jsonObject); + Param isConnectConnector1 = sysParamService.findByCode(GeneralDefinition.ADD_ROUTE_DOOR); + if ("1".equals(json.getString("status"))) { + isConnectConnector1.setValue(json.getString("type")); + } else { + isConnectConnector1.setValue("0"); } + sysParamService.update(isConnectConnector1); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/sorting/service/impl/SortingServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/sorting/service/impl/SortingServiceImpl.java index f237afa..3858e08 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/sorting/service/impl/SortingServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/sorting/service/impl/SortingServiceImpl.java @@ -1,6 +1,7 @@ package org.nl.wms.ext.sorting.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -31,6 +32,7 @@ import org.nl.wms.sch.task_manage.task.tasks.sorting.SortingSMTTask; import org.nl.wms.sch.task_manage.task.tasks.sorting.SortingSNTTask; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; import java.util.ArrayList; @@ -75,9 +77,11 @@ public class SortingServiceImpl implements SortingService { JSONArray jsonArray = JSONUtil.parseArray(jsonObject.get("pallet_detail")); SchBasePoint schBasePoint = iSchBasePointService.selectByPointCode(pointCode); if (ObjectUtil.isEmpty(schBasePoint)) { + log.info("点位编码不存在:{}", pointCode); return MapOf.of("status", 400, "msg", "点位编码不存在!"); } if (schBasePoint.getIs_lock()) { + log.info("该点位已创建任务:{}", pointCode); return MapOf.of("status", 400, "msg", "该点位已创建任务!"); } JSONObject taskParam = new JSONObject(MapOf.of("task_code", task_code, "job_name", jobname, "device_code", pointCode, "requestNo" @@ -85,10 +89,6 @@ public class SortingServiceImpl implements SortingService { AbstractTask connectorTask = taskFactory.getTask("CNTTask"); if ("0".equals(vehicle_type)) { // TODO:呼叫空托 - iSchBasePointService.update(new UpdateWrapper() - .set("is_lock", true) - .set("remark", task_code) - .eq("point_code", pointCode)); if (SortingEnum.TASK_TYPE_ONE.getValue().equals(task_type) && SortingEnum.IS_EMPTY.getValue().equals(is_empty)) { taskParam.put("vehicle_type", "G01"); taskParam.put("config_code", "SortingCNTTask"); @@ -96,6 +96,7 @@ public class SortingServiceImpl implements SortingService { //TODO:叫料 } else if (SortingEnum.TASK_TYPE_ONE.getValue().equals(task_type) && SortingEnum.NOT_EMPTY.getValue().equals(is_empty)) { if (StrUtil.isEmpty(vehicle_code)) { + log.info("载具号未传递"); return MapOf.of("status", 400, "msg", "载具号未传递!"); } taskParam.put("config_code", "SortingCMTTask"); @@ -103,6 +104,7 @@ public class SortingServiceImpl implements SortingService { //TODO:将空托盘放到线边库 } else if (SortingEnum.TASK_TYPE_TWO.getValue().equals(task_type) && SortingEnum.IS_EMPTY.getValue().equals(is_empty)) { if (StrUtil.isEmpty(vehicle_code)) { + log.info("载具号未传递"); return MapOf.of("status", 400, "msg", "载具号未传递!"); } taskParam.put("config_code", "SortingSNTTask"); @@ -110,8 +112,13 @@ public class SortingServiceImpl implements SortingService { //TODO:将满料放到线边库 } else if (SortingEnum.TASK_TYPE_TWO.getValue().equals(task_type) && SortingEnum.NOT_EMPTY.getValue().equals(is_empty)) { if (StrUtil.isEmpty(vehicle_code)) { + log.info("载具号未传递"); return MapOf.of("status", 400, "msg", "载具号未传递!"); } + if (CollUtil.isEmpty(jsonArray) || jsonArray.size() < 1) { + log.info("物料信息为空!"); + return MapOf.of("status", 400, "msg", "物料信息为空!"); + } taskParam.put("config_code", "SortingSMTTask"); connectorTask.apply(taskParam); } @@ -130,8 +137,13 @@ public class SortingServiceImpl implements SortingService { //TODO:将两个笼框放到线边库 } else if (SortingEnum.TASK_TYPE_TWO.getValue().equals(task_type) && SortingEnum.NOT_EMPTY.getValue().equals(is_empty)) { if (StrUtil.isEmpty(jsonObject.getString("vehicle_code2"))) { + log.info("第二个笼框载具号未传递"); return MapOf.of("status", 400, "msg", "第二个笼框载具号未传递!"); } + if (CollUtil.isEmpty(jsonArray) || jsonArray.size() < 1) { + log.info("物料信息为空!"); + return MapOf.of("status", 400, "msg", "物料信息为空!"); + } taskParam.put("config_code", "SortingSMTTask"); taskParam.put("task_seq", "1"); taskParam.put("vehicle_code", jsonObject.getString("vehicle_code2")); @@ -145,14 +157,20 @@ public class SortingServiceImpl implements SortingService { connectorTask.apply(taskParam); } } + iSchBasePointService.update(new UpdateWrapper() + .set("is_lock", true) + .set("remark", task_code) + .eq("point_code", pointCode)); return MapOf.of("status", 200, "msg", "sucess"); } catch (Exception ex) { + log.info("sorting下发任务失败:{}", ex.getMessage()); return MapOf.of("status", 200, "msg", "操作失败", "errMsg", ex.getMessage()); } } @Override public List getStructList(String jobName) { + log.info("sorting查询组盘请求参数数据:{}", jobName); List list = iSchBaseVehiclematerialgroupService.list(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class) .eq(SchBaseVehiclematerialgroup::getJob_name, jobName)); List connectors = new ArrayList<>(); @@ -163,7 +181,7 @@ public class SortingServiceImpl implements SortingService { connectorDto.setNextOperation(StrUtil.isNotEmpty(connectorDto.getNextOperation()) ? connectorDto.getNextOperation() : DateUtil.now()); connectors.add(connectorDto); } - // List structList = iSchBasePointService.getStructList(RegionEnum.ZDFJ.getRegion_code(), "1"); + log.info("sorting查询组盘响应参数:{}", JSONObject.toJSONString(connectors)); return connectors; } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/SchBaseVehiclematerialgroup.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/SchBaseVehiclematerialgroup.java index 768d430..e6a962b 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/SchBaseVehiclematerialgroup.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/SchBaseVehiclematerialgroup.java @@ -88,6 +88,7 @@ public class SchBaseVehiclematerialgroup implements Serializable { @ApiModelProperty(value = "是否已加工") private Boolean has_work; + @ApiModelProperty(value = "交期时间") private String due_date; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dto/SchBaseVehiclematerialgroupQuery.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dto/SchBaseVehiclematerialgroupQuery.java index 576d285..9d78104 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dto/SchBaseVehiclematerialgroupQuery.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dto/SchBaseVehiclematerialgroupQuery.java @@ -15,5 +15,5 @@ public class SchBaseVehiclematerialgroupQuery implements Serializable { private String vehicle_code; private String workshop_code; private String region_code; - private String group_bind_material_status; + private String job_name; } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java index 44b1945..230ac11 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java @@ -62,7 +62,7 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl schBaseVehiclematerialgroupIPage = vehiclematerialgroupMapper.selectPage(pages, Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class) .eq(StrUtil.isNotBlank(whereJson.getVehicle_code()), SchBaseVehiclematerialgroup::getVehicle_code, whereJson.getVehicle_code()) .eq(StrUtil.isNotBlank(whereJson.getWorkshop_code()), SchBaseVehiclematerialgroup::getWorkshop_code, whereJson.getWorkshop_code()) - .eq(StrUtil.isNotBlank(whereJson.getGroup_bind_material_status()), SchBaseVehiclematerialgroup::getGroup_bind_material_status, whereJson.getGroup_bind_material_status()) + .eq(StrUtil.isNotBlank(whereJson.getJob_name()), SchBaseVehiclematerialgroup::getJob_name, whereJson.getJob_name()) .eq(StrUtil.isNotBlank(whereJson.getRegion_code()), SchBaseVehiclematerialgroup::getRegion_code, whereJson.getRegion_code())); schBaseVehiclematerialgroupIPage.getRecords().forEach(item -> { if (StrUtil.isNotBlank(item.getMaterial_id())) { @@ -87,12 +87,9 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl slam.isNull(SchBasePoint::getIng_task_code) - .or() - .eq(SchBasePoint::getIng_task_code, "")) - .and(lock_type, slam -> slam.isNotNull(SchBasePoint::getIng_task_code) - .ne(SchBasePoint::getIng_task_code, "")) + .eq(ObjectUtil.isNotEmpty(lock_type), SchBasePoint::getIs_lock, lock_type) .orderByAsc(SchBasePoint::getRegion_code) .orderByAsc(SchBasePoint::getPoint_type) .orderByAsc(SchBasePoint::getPoint_code) @@ -175,18 +171,17 @@ public class SchBasePointServiceImpl extends ServiceImpl tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY); // 配置信息 // 定义按数字后缀排序的比较器 - /*Comparator numericSuffixComparator = (s1, s2) -> { + Comparator numericSuffixComparator = (s1, s2) -> { Integer suffix1 = getNumericSuffix(s1.getPoint_code1()); Integer suffix2 = getNumericSuffix(s2.getPoint_code1()); return suffix1.compareTo(suffix2); }; - List collect = tasks.stream().sorted(numericSuffixComparator).collect(Collectors.toList());*/ + tasks = tasks.stream().sorted(numericSuffixComparator).collect(Collectors.toList()); for (SchBaseTask task : tasks) { TaskUtils.setUpdateByAcs(task); // 找起点 diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/pcoperation/PcOperationSMTTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/pcoperation/PcOperationSMTTask.java index 453eb63..467fb7b 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/pcoperation/PcOperationSMTTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/pcoperation/PcOperationSMTTask.java @@ -110,6 +110,7 @@ public class PcOperationSMTTask extends AbstractTask { schBaseVehiclematerialgroup.setOrder_code(smv.getOrder_code()); schBaseVehiclematerialgroup.setDue_date(smv.getDue_date()); schBaseVehiclematerialgroup.setHas_work(sendMaterVo.getHas_work()); + schBaseVehiclematerialgroup.setCreate_name("Sorting"); schBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup); }); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/sorting/SortingSMTTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/sorting/SortingSMTTask.java index 6641cb0..cb27ba3 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/sorting/SortingSMTTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/sorting/SortingSMTTask.java @@ -34,6 +34,12 @@ import org.nl.wms.util.TaskUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; import java.util.List; /** @@ -45,6 +51,7 @@ public class SortingSMTTask extends AbstractTask { private static final String TASK_CONFIG_CODE = "SortingSMTTask"; + private static final DateTimeFormatter ISO_8601_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSX"); @Autowired private ISchBasePointService pointService; @Autowired @@ -108,7 +115,11 @@ public class SortingSMTTask extends AbstractTask { schBaseVehiclematerialgroup.setRegion_code(region_code); schBaseVehiclematerialgroup.setOrder_code(workorder); schBaseVehiclematerialgroup.setJob_name(Jobname); + if (StrUtil.isNotEmpty(dueDate) && isValidISO8601(dueDate)) { + dueDate = parseDate(dueDate); + } schBaseVehiclematerialgroup.setDue_date(dueDate); + schBaseVehiclematerialgroup.setCreate_name("Sorting"); schBaseVehiclematerialgroup.setExtend(JSON.toJSONString(jO)); schBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup); } @@ -128,6 +139,22 @@ public class SortingSMTTask extends AbstractTask { } } + public static boolean isValidISO8601(String dateString) { + try { + ZonedDateTime.parse(dateString, ISO_8601_FORMATTER); + return true; + } catch (DateTimeParseException e) { + return false; + } + } + + public static String parseDate(String isoString) { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + ZonedDateTime zonedDateTime = ZonedDateTime.parse(isoString); + return formatter.format(zonedDateTime); + } + + private Long getTime(String dateString) { String pattern = "yyyy-MM-dd HH:mm:ss"; java.util.Date date = DateUtil.parse(dateString, pattern); diff --git a/lms/nladmin-system/nlsso-server/src/main/resources/log/XgAgvDeviceDriver.xml b/lms/nladmin-system/nlsso-server/src/main/resources/log/ConnectorToWmsServiceImpl.xml similarity index 79% rename from lms/nladmin-system/nlsso-server/src/main/resources/log/XgAgvDeviceDriver.xml rename to lms/nladmin-system/nlsso-server/src/main/resources/log/ConnectorToWmsServiceImpl.xml index c805802..f68b9dc 100644 --- a/lms/nladmin-system/nlsso-server/src/main/resources/log/XgAgvDeviceDriver.xml +++ b/lms/nladmin-system/nlsso-server/src/main/resources/log/ConnectorToWmsServiceImpl.xml @@ -4,10 +4,10 @@ - + - ${LOG_HOME}/XgAgvDeviceDriver/${DEVICECODE}/%d{yyyy-MM-dd}.%i.log + ${LOG_HOME}/ConnectorToWms/%d{yyyy-MM-dd}.%i.log 15 @@ -28,7 +28,7 @@ --> - - + + diff --git a/lms/nladmin-system/nlsso-server/src/main/resources/log/SortingToWms.xml b/lms/nladmin-system/nlsso-server/src/main/resources/log/SortingToWms.xml new file mode 100644 index 0000000..69c2a7f --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/resources/log/SortingToWms.xml @@ -0,0 +1,34 @@ + + + + + + + + + + ${LOG_HOME}/SortingToWms/%d{yyyy-MM-dd}.%i.log + + 15 + + 200MB + + 2GB + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + ${log.charset} + + + + + + + + + + + diff --git a/lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml b/lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml index a45f2a7..5ff53be 100644 --- a/lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml +++ b/lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml @@ -19,6 +19,8 @@ + + diff --git a/lms/nladmin-ui/src/views/wms/sch/group/index.vue b/lms/nladmin-ui/src/views/wms/sch/group/index.vue index 9ebcc22..9994b5b 100644 --- a/lms/nladmin-ui/src/views/wms/sch/group/index.vue +++ b/lms/nladmin-ui/src/views/wms/sch/group/index.vue @@ -49,7 +49,7 @@ @keyup.enter.native="crud.toQuery" /> - + + + @@ -241,9 +250,11 @@ --> - - - + + + + + - + --> - - + + - - + + - + diff --git a/lms/nladmin-ui/src/views/wms/sch/task/index.vue b/lms/nladmin-ui/src/views/wms/sch/task/index.vue index 6ff3f15..4f82a34 100644 --- a/lms/nladmin-ui/src/views/wms/sch/task/index.vue +++ b/lms/nladmin-ui/src/views/wms/sch/task/index.vue @@ -182,7 +182,14 @@ - + + + + @@ -377,5 +384,11 @@ export default {