fix: 修复马钢问题
This commit is contained in:
@@ -1,21 +0,0 @@
|
||||
package org.nl.config.thread;
|
||||
|
||||
import org.dromara.dynamictp.common.entity.ThreadPoolStats;
|
||||
import org.dromara.dynamictp.core.monitor.collector.AbstractCollector;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Description:
|
||||
* @Date: 2023/12/25
|
||||
*/
|
||||
public class TestCollector extends AbstractCollector {
|
||||
@Override
|
||||
public void collect(ThreadPoolStats threadPoolStats) {
|
||||
// System.out.println("ssssssssssssssss:" + threadPoolStats);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String type() {
|
||||
return "test_collect";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package org.nl.config.thread;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.dynamictp.common.entity.ThreadPoolStats;
|
||||
import org.dromara.dynamictp.core.monitor.collector.AbstractCollector;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Description: 线程监控
|
||||
* @Date: 2023/12/25
|
||||
*/
|
||||
@Slf4j
|
||||
public class ThreadMonitorCollector extends AbstractCollector {
|
||||
public static ThreadPoolStats TOMCAT_THREAD;
|
||||
public static ThreadPoolStats EL_THREAD;
|
||||
@Override
|
||||
public void collect(ThreadPoolStats threadPoolStats) {
|
||||
if ("tomcatTp".equals(threadPoolStats.getPoolName())) {
|
||||
ThreadMonitorCollector.TOMCAT_THREAD = threadPoolStats;
|
||||
} else {
|
||||
ThreadMonitorCollector.EL_THREAD = threadPoolStats;
|
||||
}
|
||||
log.info("线程池数据:{}", threadPoolStats);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String type() {
|
||||
return "test_collect";
|
||||
}
|
||||
}
|
||||
@@ -30,16 +30,19 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
*/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
|
||||
@RequestMapping("/api/monitor")
|
||||
public class MonitorController {
|
||||
|
||||
private final MonitorService serverService;
|
||||
|
||||
@GetMapping
|
||||
|
||||
@SaCheckPermission("monitor:list")
|
||||
public ResponseEntity<Object> query() {
|
||||
return new ResponseEntity<>(serverService.getServers(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/getThreadData")
|
||||
public ResponseEntity<Object> getThreadData() {
|
||||
return new ResponseEntity<>(serverService.getThreadData(), HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,6 +15,9 @@
|
||||
*/
|
||||
package org.nl.system.service.monitor;
|
||||
|
||||
import org.dromara.dynamictp.common.entity.ThreadPoolStats;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@@ -29,4 +32,6 @@ public interface MonitorService {
|
||||
* @return Map<String, Object>
|
||||
*/
|
||||
Map<String, Object> getServers();
|
||||
|
||||
List<ThreadPoolStats> getThreadData();
|
||||
}
|
||||
|
||||
@@ -17,9 +17,11 @@ package org.nl.system.service.monitor.impl;
|
||||
|
||||
import cn.hutool.core.date.BetweenFormatter;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import org.dromara.dynamictp.common.entity.ThreadPoolStats;
|
||||
import org.nl.common.utils.ElAdminConstant;
|
||||
import org.nl.common.utils.FileUtil;
|
||||
import org.nl.common.utils.StringUtils;
|
||||
import org.nl.config.thread.ThreadMonitorCollector;
|
||||
import org.nl.system.service.monitor.MonitorService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import oshi.SystemInfo;
|
||||
@@ -35,10 +37,7 @@ import oshi.util.Util;
|
||||
|
||||
import java.lang.management.ManagementFactory;
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.Date;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @author Zheng Jie
|
||||
@@ -73,6 +72,14 @@ public class MonitorServiceImpl implements MonitorService {
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ThreadPoolStats> getThreadData() {
|
||||
List<ThreadPoolStats> res = new ArrayList<>();
|
||||
res.add(ThreadMonitorCollector.TOMCAT_THREAD);
|
||||
res.add(ThreadMonitorCollector.EL_THREAD);
|
||||
return res;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取磁盘信息
|
||||
*
|
||||
|
||||
@@ -125,6 +125,7 @@ public class ISysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> imp
|
||||
} catch (Exception ex) {
|
||||
throw new RuntimeException();
|
||||
}
|
||||
sysUser.setPassword(SaSecureUtil.md5BySalt(sysUser.getPassword(), GeneralDefinition.SALT));
|
||||
sysUser.setUpdate_time(new Date());
|
||||
sysUser.setUpdate_id(SecurityUtils.getCurrentUserId());
|
||||
this.updateById(sysUser);
|
||||
|
||||
@@ -605,6 +605,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
} catch (Exception e) {
|
||||
log.info("调用mes异常:{}", e.getMessage());
|
||||
}
|
||||
// 清除要料表多余的要料单
|
||||
requestMaterialRecordService.toClearExcessMaterial(bdWorkorder.getWorkorder_code());
|
||||
return BaseResponse.responseOk(requestNo);
|
||||
}
|
||||
|
||||
@@ -667,8 +669,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
// 压机设备编码
|
||||
String yjDeviceCode = basePoint.getParent_point_code();
|
||||
SchBasePoint devicePoint = pointService.getById(yjDeviceCode);
|
||||
// 获取当前工单
|
||||
PdmBdWorkorder productionTask = workorderService.getDeviceProductionTask(yjDeviceCode);
|
||||
// 获取当前工单: 可能未开工,未开工就拿第一条
|
||||
PdmBdWorkorder productionTask = workorderService.getDeviceOneTask(yjDeviceCode);
|
||||
// 校验物料是否正确
|
||||
if (ObjectUtil.isEmpty(productionTask)) {
|
||||
throw new BadRequestException("压机" + yjDeviceCode + "工单不存在!");
|
||||
|
||||
@@ -71,4 +71,10 @@ public interface IPdmBdRequestMaterialRecordService extends IService<PdmBdReques
|
||||
* @return 记录表
|
||||
*/
|
||||
List<PdmBdRequestMaterialRecord> getLeftJoinWorkOrderList(String materialCode);
|
||||
|
||||
/**
|
||||
* 清除多余要料信息
|
||||
* @param workorderCode /
|
||||
*/
|
||||
void toClearExcessMaterial(String workorderCode);
|
||||
}
|
||||
|
||||
@@ -41,6 +41,7 @@ public class PdmBdRequestMaterialRecordServiceImpl extends ServiceImpl<PdmBdRequ
|
||||
@Override
|
||||
public IPage<PdmBdRequestMaterialRecord> queryAll(Map whereJson, PageQuery page) {
|
||||
LambdaQueryWrapper<PdmBdRequestMaterialRecord> lam = new LambdaQueryWrapper<>();
|
||||
lam.orderByDesc(PdmBdRequestMaterialRecord::getCreate_time);
|
||||
IPage<PdmBdRequestMaterialRecord> pages = new Page<>(page.getPage() + 1, page.getSize());
|
||||
pdmBdRequestMaterialRecordMapper.selectPage(pages, lam);
|
||||
return pages;
|
||||
@@ -66,8 +67,11 @@ public class PdmBdRequestMaterialRecordServiceImpl extends ServiceImpl<PdmBdRequ
|
||||
|
||||
@Override
|
||||
public void deleteAll(Set<String> ids) {
|
||||
// 真删除
|
||||
pdmBdRequestMaterialRecordMapper.deleteBatchIds(ids);
|
||||
PdmBdRequestMaterialRecord requestMaterialRecord = new PdmBdRequestMaterialRecord();
|
||||
requestMaterialRecord.setIs_delete(true);
|
||||
requestMaterialRecord.setUpdate_time(DateUtil.now());
|
||||
pdmBdRequestMaterialRecordMapper.update(requestMaterialRecord, new LambdaQueryWrapper<PdmBdRequestMaterialRecord>()
|
||||
.in(PdmBdRequestMaterialRecord::getRecord_id, ids));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -102,4 +106,14 @@ public class PdmBdRequestMaterialRecordServiceImpl extends ServiceImpl<PdmBdRequ
|
||||
return pdmBdRequestMaterialRecordMapper.getLeftJoinWorkOrderList(materialCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toClearExcessMaterial(String workorderCode) {
|
||||
PdmBdRequestMaterialRecord entity = new PdmBdRequestMaterialRecord();
|
||||
entity.setIs_delete(true);
|
||||
entity.setUpdate_time(DateUtil.now());
|
||||
pdmBdRequestMaterialRecordMapper.update(entity, new LambdaQueryWrapper<PdmBdRequestMaterialRecord>()
|
||||
.eq(PdmBdRequestMaterialRecord::getWorkorder_id, workorderCode)
|
||||
.eq(PdmBdRequestMaterialRecord::getIs_delete, false));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -185,4 +185,11 @@ public interface IPdmBdWorkorderService extends IService<PdmBdWorkorder> {
|
||||
* @return /
|
||||
*/
|
||||
PdmBdWorkorder selectByIdLock(String id);
|
||||
|
||||
/**
|
||||
* 获取压机第一条工单
|
||||
* @param yjDeviceCode /
|
||||
* @return /
|
||||
*/
|
||||
PdmBdWorkorder getDeviceOneTask(String yjDeviceCode);
|
||||
}
|
||||
|
||||
@@ -48,8 +48,8 @@ public interface PdmBdWorkorderMapper extends BaseMapper<PdmBdWorkorder> {
|
||||
/**
|
||||
* 获取设备未生产的工单
|
||||
*
|
||||
* @param device
|
||||
* @return
|
||||
* @param device /
|
||||
* @return /
|
||||
*/
|
||||
List<AcsWorkOrderVo> getAcsWorkOrderVos(String device);
|
||||
|
||||
@@ -58,17 +58,28 @@ public interface PdmBdWorkorderMapper extends BaseMapper<PdmBdWorkorder> {
|
||||
/**
|
||||
* 获取叫料工单
|
||||
*
|
||||
* @return
|
||||
* @return /
|
||||
*/
|
||||
List<PdmBdWorkorder> getNeedCallMaterial();
|
||||
|
||||
/**
|
||||
* 获取未生产
|
||||
* @return /
|
||||
*/
|
||||
List<PdmBdWorkorder> getNotIssueOrder();
|
||||
|
||||
/**
|
||||
* 悲观锁查找工单数据
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
* @param id /
|
||||
* @return /
|
||||
*/
|
||||
PdmBdWorkorder selectByIdLock(String id);
|
||||
|
||||
/**
|
||||
* 获取压机当天第一条工单
|
||||
* @param yjDeviceCode /
|
||||
* @return /
|
||||
*/
|
||||
PdmBdWorkorder getDeviceOneTask(String yjDeviceCode);
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
AND wo.create_time <![CDATA[ <= ]]> #{query.end_time}
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY wo.update_time DESC
|
||||
</select>
|
||||
<select id="toAcsWorkOrderById" resultType="org.nl.wms.pdm.workorder.service.dao.vo.AcsWorkOrderVo">
|
||||
SELECT w.workorder_code,
|
||||
@@ -146,4 +147,16 @@
|
||||
WHERE workorder_id = #{id}
|
||||
FOR UPDATE
|
||||
</select>
|
||||
<select id="getDeviceOneTask" resultType="org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder">
|
||||
SELECT ranked.*
|
||||
FROM (SELECT w.*,
|
||||
ROW_NUMBER() OVER (PARTITION BY w.point_code ORDER BY w.workorder_status DESC, w.planproducestart_date) AS row_num
|
||||
FROM `pdm_bd_workorder` w
|
||||
WHERE w.produce_date = CURDATE()
|
||||
AND w.region_code = 'YZ'
|
||||
AND w.workorder_status IN ('1', '2', '3')
|
||||
AND w.point_code = #{yjDeviceCode}
|
||||
ORDER BY w.workorder_status DESC, w.planproducestart_date) AS ranked
|
||||
WHERE row_num = 1
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -24,6 +24,7 @@ import org.nl.wms.ext.acs.service.WmsToAcsService;
|
||||
import org.nl.wms.ext.acs.service.dto.to.wms.AcsResponse;
|
||||
import org.nl.wms.ext.mes.service.WmsToMesService;
|
||||
import org.nl.wms.ext.mes.service.dto.MesOrderInfo;
|
||||
import org.nl.wms.pdm.record.service.IPdmBdRequestMaterialRecordService;
|
||||
import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService;
|
||||
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
|
||||
import org.nl.wms.pdm.workorder.service.dao.mapper.PdmBdWorkorderMapper;
|
||||
@@ -76,6 +77,8 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
|
||||
private IMdBaseBrickInfoService baseBrickInfoService;
|
||||
@Autowired
|
||||
private ISchBaseTaskService taskService;
|
||||
@Autowired
|
||||
private IPdmBdRequestMaterialRecordService requestMaterialRecordService;
|
||||
|
||||
@Override
|
||||
public IPage<PdmBdWorkorder> queryAll(PdmBdWorkorderQuery query, PageQuery page) {
|
||||
@@ -345,6 +348,9 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
|
||||
} catch (Exception e) {
|
||||
log.info("调用mes异常:{}", e.getMessage());
|
||||
}
|
||||
if ("YZ".equals(bdWorkorder.getRegion_code())) {
|
||||
requestMaterialRecordService.toClearExcessMaterial(bdWorkorder.getWorkorder_code());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -392,4 +398,9 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
|
||||
public PdmBdWorkorder selectByIdLock(String id) {
|
||||
return pdmBdWorkorderMapper.selectByIdLock(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PdmBdWorkorder getDeviceOneTask(String yjDeviceCode) {
|
||||
return pdmBdWorkorderMapper.getDeviceOneTask(yjDeviceCode);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,8 +66,13 @@ public class ReportController {
|
||||
|
||||
@GetMapping("/inventoryMaterialTimeoutWarning")
|
||||
@Log("库存物料超时提示")
|
||||
|
||||
public ResponseEntity<Object> inventoryMaterialTimeoutWarning(Map json, PageQuery page) {
|
||||
return new ResponseEntity<>(TableDataInfo.build(reportService.inventoryMaterialTimeoutWarning(json, page)), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/insideDrumLineReport")
|
||||
@Log("滚筒线内物料实时报表")
|
||||
public ResponseEntity<Object> insideDrumLineReport(Map json, PageQuery page) {
|
||||
return new ResponseEntity<>(TableDataInfo.build(reportService.insideDrumLineReport(json, page)), HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.nl.wms.report.service;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.wms.report.service.dao.vo.IOKilnReportVo;
|
||||
import org.nl.wms.report.service.dao.vo.InsideDrumLineVo;
|
||||
import org.nl.wms.report.service.dao.vo.MaterialTimeoutVo;
|
||||
|
||||
import java.util.Map;
|
||||
@@ -49,5 +50,13 @@ public interface ReportService {
|
||||
*/
|
||||
IPage<MaterialTimeoutVo> inventoryMaterialTimeoutWarning(Map json, PageQuery page);
|
||||
|
||||
/**
|
||||
* 滚筒线数据
|
||||
* @param json
|
||||
* @param page
|
||||
* @return
|
||||
*/
|
||||
IPage<InsideDrumLineVo> insideDrumLineReport(Map json, PageQuery page);
|
||||
|
||||
// IPage<> mudTransfer(JSONObject json, PageQuery page);
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.nl.wms.report.service.dao.mapper;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.nl.wms.report.service.dao.vo.IOKilnReportVo;
|
||||
import org.nl.wms.report.service.dao.vo.InsideDrumLineVo;
|
||||
import org.nl.wms.report.service.dao.vo.MaterialTimeoutVo;
|
||||
|
||||
/**
|
||||
@@ -18,4 +19,6 @@ public interface ReportMapper {
|
||||
IPage<IOKilnReportVo> inKilnReport(IPage<IOKilnReportVo> pages, JSONObject object);
|
||||
|
||||
IPage<MaterialTimeoutVo> inventoryMaterialTimeoutWarning(IPage<MaterialTimeoutVo> pages, JSONObject object);
|
||||
|
||||
IPage<InsideDrumLineVo> insideDrumLineReport(IPage<InsideDrumLineVo> pages, JSONObject object);
|
||||
}
|
||||
|
||||
@@ -58,4 +58,15 @@
|
||||
AND p.point_status = '3'
|
||||
AND vg.instorage_time <![CDATA[<=]]> DATE_SUB(NOW(), INTERVAL 30 DAY)
|
||||
</select>
|
||||
<select id="insideDrumLineReport" resultType="org.nl.wms.report.service.dao.vo.InsideDrumLineVo">
|
||||
SELECT vg.vehicle_code,
|
||||
vg.pcsn,
|
||||
vg.material_qty,
|
||||
m.material_code,
|
||||
m.material_name
|
||||
FROM `sch_base_vehiclematerialgroup` vg
|
||||
LEFT JOIN md_base_material m ON m.material_id = vg.material_id
|
||||
WHERE vg.point_code IN ('HCSSX01', 'HCSSX63')
|
||||
AND vg.group_bind_material_status = '2'
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package org.nl.wms.report.service.dao.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Description: 滚筒线数据
|
||||
* @Date: 2024/1/2
|
||||
*/
|
||||
@Data
|
||||
public class InsideDrumLineVo {
|
||||
private String vehicle_code;
|
||||
private String pcsn;
|
||||
private String material_qty;
|
||||
private String material_code;
|
||||
private String material_name;
|
||||
}
|
||||
@@ -8,6 +8,7 @@ import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.wms.report.service.ReportService;
|
||||
import org.nl.wms.report.service.dao.mapper.ReportMapper;
|
||||
import org.nl.wms.report.service.dao.vo.IOKilnReportVo;
|
||||
import org.nl.wms.report.service.dao.vo.InsideDrumLineVo;
|
||||
import org.nl.wms.report.service.dao.vo.MaterialTimeoutVo;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -52,4 +53,11 @@ public class ReportServiceImpl implements ReportService {
|
||||
pages = reportMapper.inventoryMaterialTimeoutWarning(pages, new JSONObject(query));
|
||||
return pages;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<InsideDrumLineVo> insideDrumLineReport(Map query, PageQuery page) {
|
||||
IPage<InsideDrumLineVo> pages = new Page<>(page.getPage() + 1, page.getSize());
|
||||
pages = reportMapper.insideDrumLineReport(pages, new JSONObject(query));
|
||||
return pages;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -260,9 +260,10 @@ public class HNMLTask extends AbstractTask {
|
||||
groupEntity.setPoint_name(endPointObj.getPoint_name());
|
||||
groupEntity.setMove_way(groupEntity.getMove_way() + " -> " + endPointObj.getPoint_code());
|
||||
groupEntity.setMaterial_id(one.getMaterial_id());
|
||||
// mark: *根据压机的工单物料标识查找静置时间
|
||||
// mark: *根据压机的工单物料标识查找静置时间, 先根据工单,在根据物料信息
|
||||
MdBaseMaterial mdBaseMaterial = materialService.getById(one.getMaterial_id());
|
||||
groupEntity.setStanding_time(mdBaseMaterial.getStanding_time());
|
||||
groupEntity.setStanding_time(one.getStanding_time() == 0
|
||||
? mdBaseMaterial.getStanding_time() : one.getStanding_time());
|
||||
}
|
||||
}
|
||||
// 更新组盘数据
|
||||
|
||||
@@ -1 +1 @@
|
||||
org.nl.config.thread.TestCollector
|
||||
org.nl.config.thread.ThreadMonitorCollector
|
||||
|
||||
138
lms/nladmin-ui/src/views/monitor/server/thread.vue
Normal file
138
lms/nladmin-ui/src/views/monitor/server/thread.vue
Normal file
@@ -0,0 +1,138 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-row>
|
||||
<el-col :span="24" class="card-box">
|
||||
<el-card>
|
||||
<div slot="header">
|
||||
<span>基本信息</span>
|
||||
</div>
|
||||
<div v-for="(item, index) in threadDataList" :key="index" class="el-table el-table--enable-row-hover el-table--medium">
|
||||
<table cellspacing="0" style="width: 100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><div class="cell">线程池名称:</div></td>
|
||||
<td><div class="cell">{{ item.poolName }}</div></td>
|
||||
<td><div class="cell">别名:</div></td>
|
||||
<td><div class="cell">{{ item.poolAliasName }}</div></td>
|
||||
<td><div class="cell">核心线程数:</div></td>
|
||||
<td><div class="cell">{{ item.corePoolSize }}</div></td>
|
||||
<td><div class="cell">最大线程数:</div></td>
|
||||
<td><div class="cell">{{ item.maximumPoolSize }}</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div class="cell">队列类型:</div></td>
|
||||
<td><div class="cell">{{ item.queueType }}</div></td>
|
||||
<td><div class="cell">队列容量:</div></td>
|
||||
<td><div class="cell">{{ item.queueCapacity }}</div></td>
|
||||
<td><div class="cell">队列任务数量:</div></td>
|
||||
<td><div class="cell">{{ item.queueSize }}</div></td>
|
||||
<td><div class="cell">SynchronousQueue队列模式:</div></td>
|
||||
<td><div class="cell">{{ item.fair }}</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div class="cell">队列剩余容量:</div></td>
|
||||
<td><div class="cell">{{ item.queueRemainingCapacity }}</div></td>
|
||||
<td><div class="cell">正在执行任务的活跃线程大致总数:</div></td>
|
||||
<td><div class="cell">{{ item.activeCount }}</div></td>
|
||||
<td><div class="cell">大致任务总数:</div></td>
|
||||
<td><div class="cell">{{ item.taskCount }} </div></td>
|
||||
<td><div class="cell">已执行完成的大致任务总数:</div></td>
|
||||
<td><div class="cell">{{ item.completedTaskCount }}</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div class="cell">池中曾经同时存在的最大线程数量:</div></td>
|
||||
<td><div class="cell">{{ item.largestPoolSize }}</div></td>
|
||||
<td><div class="cell">当前池中存在的线程总数:</div></td>
|
||||
<td><div class="cell">{{ item.poolSize }}</div></td>
|
||||
<td><div class="cell">等待执行的任务数量:</div></td>
|
||||
<td><div class="cell">{{ item.waitTaskCount }} </div></td>
|
||||
<td><div class="cell">拒绝的任务数量:</div></td>
|
||||
<td><div class="cell">{{ item.rejectCount }}</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div class="cell">拒绝策略名称:</div></td>
|
||||
<td><div class="cell">{{ item.rejectHandlerName }}</div></td>
|
||||
<td><div class="cell">是否DtpExecutor线程池:</div></td>
|
||||
<td><div class="cell">{{ item.dynamic }}</div></td>
|
||||
<td><div class="cell">执行超时任务数量:</div></td>
|
||||
<td><div class="cell">{{ item.runTimeoutCount }} </div></td>
|
||||
<td><div class="cell">在队列等待超时任务数量:</div></td>
|
||||
<td><div class="cell">{{ item.queueTimeoutCount }}</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div class="cell">tps:</div></td>
|
||||
<td><div class="cell">{{ item.tps }}</div></td>
|
||||
<td><div class="cell">最大任务耗时:</div></td>
|
||||
<td><div class="cell">{{ item.maxRt }}</div></td>
|
||||
<td><div class="cell">最小任务耗时:</div></td>
|
||||
<td><div class="cell">{{ item.minRt }} </div></td>
|
||||
<td><div class="cell">任务平均耗时(单位:ms):</div></td>
|
||||
<td><div class="cell">{{ item.avg }}</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div class="cell">满足50%的任务执行所需的最低耗时:</div></td>
|
||||
<td><div class="cell">{{ item.tp50 }}</div></td>
|
||||
<td><div class="cell">满足75%的任务执行所需的最低耗时:</div></td>
|
||||
<td><div class="cell">{{ item.tp75 }}</div></td>
|
||||
<td><div class="cell">满足90%的任务执行所需的最低耗时:</div></td>
|
||||
<td><div class="cell">{{ item.tp90 }} </div></td>
|
||||
<td><div class="cell">满足95%的任务执行所需的最低耗时:</div></td>
|
||||
<td><div class="cell">{{ item.tp95 }}</div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div class="cell">满足99%的任务执行所需的最低耗时:</div></td>
|
||||
<td><div class="cell">{{ item.tp99 }}</div></td>
|
||||
<td><div class="cell">满足99.9%的任务执行所需的最低耗时:</div></td>
|
||||
<td><div class="cell">{{ item.tp999 }}</div></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<br>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { initData } from '@/api/data'
|
||||
export default {
|
||||
name: 'Threads',
|
||||
data() {
|
||||
return {
|
||||
// 线程数组
|
||||
threadDataList: [],
|
||||
url: 'api/monitor/getThreadData',
|
||||
monitor: null
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.init()
|
||||
this.monitor = window.setInterval(() => {
|
||||
setTimeout(() => {
|
||||
this.init()
|
||||
}, 2)
|
||||
}, 3500)
|
||||
},
|
||||
destroyed() {
|
||||
clearInterval(this.monitor)
|
||||
},
|
||||
methods: {
|
||||
// 初始化数据
|
||||
init() {
|
||||
initData(this.url, {}).then(data => {
|
||||
this.threadDataList = data
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.card-box {
|
||||
padding-right: 15px;
|
||||
padding-left: 15px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
</style>
|
||||
@@ -91,7 +91,7 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
<br v-if="!crud.status.add">
|
||||
<el-form-item v-if="crud.status.add" label="密码" prop="password">
|
||||
<el-form-item label="密码" prop="password">
|
||||
<el-input v-model="form.password" style="width: 200px;" show-password auto-complete="new-password" />
|
||||
</el-form-item>
|
||||
<el-form-item label="性别">
|
||||
|
||||
63
lms/nladmin-ui/src/views/wms/das/insideDrumLine/index.vue
Normal file
63
lms/nladmin-ui/src/views/wms/das/insideDrumLine/index.vue
Normal file
@@ -0,0 +1,63 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" />
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="vehicle_code" label="托盘号" :min-width="flexWidth('vehicle_code',crud.data,'托盘号')" />
|
||||
<el-table-column prop="pcsn" label="批次" :min-width="flexWidth('pcsn',crud.data,'数量')" />
|
||||
<el-table-column prop="material_code" label="产品编码" :min-width="flexWidth('material_code',crud.data,'拆垛工位')" />
|
||||
<el-table-column prop="material_name" label="产品名称" :min-width="flexWidth('material_name',crud.data,'分拣工单')" />
|
||||
<el-table-column prop="material_qty" label="产品数量" :min-width="flexWidth('material_qty',crud.data,'分拣工单')" />
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<pagination />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import CRUD, { crud, header, presenter } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
export default {
|
||||
name: 'InsideDrumLine',
|
||||
components: { pagination, crudOperation, rrOperation, udOperation },
|
||||
mixins: [presenter(), header(), crud()],
|
||||
cruds() {
|
||||
return CRUD({
|
||||
title: '滚筒线内记录报表',
|
||||
url: 'api/report/insideDrumLineReport',
|
||||
optShow: {
|
||||
add: false,
|
||||
edit: false,
|
||||
del: false,
|
||||
download: false
|
||||
}
|
||||
})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
permission: {
|
||||
},
|
||||
rules: {
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -37,6 +37,11 @@
|
||||
{{ scope.row.is_finish ? '是' : '否'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="is_delete" label="是否下料" :min-width="flexWidth('is_finish',crud.data,'是否下料')">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.is_delete ? '是' : '否'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
|
||||
@@ -660,6 +660,7 @@ export default {
|
||||
this.form.raw_material_code = row.material_code
|
||||
}
|
||||
this.form.pack_method = row.pack_method
|
||||
this.form.standing_time = row.standing_time
|
||||
const result = Object.keys(this.dict.label.vehicle_type).find(key => this.dict.label.vehicle_type[key] === row.pack_palletspec)
|
||||
if (result) {
|
||||
this.form.vehicle_type = result
|
||||
|
||||
Reference in New Issue
Block a user