Browse Source

fix: 修复马钢问题

master
李永德 1 year ago
parent
commit
7141d36c1a
  1. 21
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/thread/TestCollector.java
  2. 30
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/thread/ThreadMonitorCollector.java
  3. 7
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/monitor/MonitorController.java
  4. 5
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/monitor/MonitorService.java
  5. 15
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/monitor/impl/MonitorServiceImpl.java
  6. 1
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/user/impl/ISysUserServiceImpl.java
  7. 6
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
  8. 6
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/IPdmBdRequestMaterialRecordService.java
  9. 18
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/impl/PdmBdRequestMaterialRecordServiceImpl.java
  10. 7
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/IPdmBdWorkorderService.java
  11. 21
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/mapper/PdmBdWorkorderMapper.java
  12. 13
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/mapper/PdmBdWorkorderMapper.xml
  13. 11
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java
  14. 7
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/report/controller/ReportController.java
  15. 9
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/report/service/ReportService.java
  16. 3
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/report/service/dao/mapper/ReportMapper.java
  17. 11
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/report/service/dao/mapper/ReportMapper.xml
  18. 17
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/report/service/dao/vo/InsideDrumLineVo.java
  19. 8
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/report/service/impl/ReportServiceImpl.java
  20. 5
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNMLTask.java
  21. 2
      lms/nladmin-system/nlsso-server/src/main/resources/META-INF/services/org.dromara.dynamictp.core.monitor.collector.MetricsCollector
  22. 138
      lms/nladmin-ui/src/views/monitor/server/thread.vue
  23. 2
      lms/nladmin-ui/src/views/system/user/index.vue
  24. 63
      lms/nladmin-ui/src/views/wms/das/insideDrumLine/index.vue
  25. 5
      lms/nladmin-ui/src/views/wms/pdm/record/index.vue
  26. 1
      lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue

21
lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/thread/TestCollector.java

@ -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";
}
}

30
lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/thread/ThreadMonitorCollector.java

@ -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";
}
}

7
lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/monitor/MonitorController.java

@ -30,16 +30,19 @@ import org.springframework.web.bind.annotation.RestController;
*/ */
@RestController @RestController
@RequiredArgsConstructor @RequiredArgsConstructor
@RequestMapping("/api/monitor") @RequestMapping("/api/monitor")
public class MonitorController { public class MonitorController {
private final MonitorService serverService; private final MonitorService serverService;
@GetMapping @GetMapping
@SaCheckPermission("monitor:list") @SaCheckPermission("monitor:list")
public ResponseEntity<Object> query() { public ResponseEntity<Object> query() {
return new ResponseEntity<>(serverService.getServers(), HttpStatus.OK); return new ResponseEntity<>(serverService.getServers(), HttpStatus.OK);
} }
@GetMapping("/getThreadData")
public ResponseEntity<Object> getThreadData() {
return new ResponseEntity<>(serverService.getThreadData(), HttpStatus.OK);
}
} }

5
lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/monitor/MonitorService.java

@ -15,6 +15,9 @@
*/ */
package org.nl.system.service.monitor; package org.nl.system.service.monitor;
import org.dromara.dynamictp.common.entity.ThreadPoolStats;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@ -29,4 +32,6 @@ public interface MonitorService {
* @return Map<String, Object> * @return Map<String, Object>
*/ */
Map<String, Object> getServers(); Map<String, Object> getServers();
List<ThreadPoolStats> getThreadData();
} }

15
lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/monitor/impl/MonitorServiceImpl.java

@ -17,9 +17,11 @@ package org.nl.system.service.monitor.impl;
import cn.hutool.core.date.BetweenFormatter; import cn.hutool.core.date.BetweenFormatter;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import org.dromara.dynamictp.common.entity.ThreadPoolStats;
import org.nl.common.utils.ElAdminConstant; import org.nl.common.utils.ElAdminConstant;
import org.nl.common.utils.FileUtil; import org.nl.common.utils.FileUtil;
import org.nl.common.utils.StringUtils; import org.nl.common.utils.StringUtils;
import org.nl.config.thread.ThreadMonitorCollector;
import org.nl.system.service.monitor.MonitorService; import org.nl.system.service.monitor.MonitorService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import oshi.SystemInfo; import oshi.SystemInfo;
@ -35,10 +37,7 @@ import oshi.util.Util;
import java.lang.management.ManagementFactory; import java.lang.management.ManagementFactory;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.util.Date; import java.util.*;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/** /**
* @author Zheng Jie * @author Zheng Jie
@ -73,6 +72,14 @@ public class MonitorServiceImpl implements MonitorService {
return resultMap; return resultMap;
} }
@Override
public List<ThreadPoolStats> getThreadData() {
List<ThreadPoolStats> res = new ArrayList<>();
res.add(ThreadMonitorCollector.TOMCAT_THREAD);
res.add(ThreadMonitorCollector.EL_THREAD);
return res;
}
/** /**
* 获取磁盘信息 * 获取磁盘信息
* *

1
lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/user/impl/ISysUserServiceImpl.java

@ -125,6 +125,7 @@ public class ISysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> imp
} catch (Exception ex) { } catch (Exception ex) {
throw new RuntimeException(); throw new RuntimeException();
} }
sysUser.setPassword(SaSecureUtil.md5BySalt(sysUser.getPassword(), GeneralDefinition.SALT));
sysUser.setUpdate_time(new Date()); sysUser.setUpdate_time(new Date());
sysUser.setUpdate_id(SecurityUtils.getCurrentUserId()); sysUser.setUpdate_id(SecurityUtils.getCurrentUserId());
this.updateById(sysUser); this.updateById(sysUser);

6
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java

@ -605,6 +605,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
} catch (Exception e) { } catch (Exception e) {
log.info("调用mes异常:{}", e.getMessage()); log.info("调用mes异常:{}", e.getMessage());
} }
// 清除要料表多余的要料单
requestMaterialRecordService.toClearExcessMaterial(bdWorkorder.getWorkorder_code());
return BaseResponse.responseOk(requestNo); return BaseResponse.responseOk(requestNo);
} }
@ -667,8 +669,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
// 压机设备编码 // 压机设备编码
String yjDeviceCode = basePoint.getParent_point_code(); String yjDeviceCode = basePoint.getParent_point_code();
SchBasePoint devicePoint = pointService.getById(yjDeviceCode); SchBasePoint devicePoint = pointService.getById(yjDeviceCode);
// 获取当前工单 // 获取当前工单: 可能未开工,未开工就拿第一条
PdmBdWorkorder productionTask = workorderService.getDeviceProductionTask(yjDeviceCode); PdmBdWorkorder productionTask = workorderService.getDeviceOneTask(yjDeviceCode);
// 校验物料是否正确 // 校验物料是否正确
if (ObjectUtil.isEmpty(productionTask)) { if (ObjectUtil.isEmpty(productionTask)) {
throw new BadRequestException("压机" + yjDeviceCode + "工单不存在!"); throw new BadRequestException("压机" + yjDeviceCode + "工单不存在!");

6
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/IPdmBdRequestMaterialRecordService.java

@ -71,4 +71,10 @@ public interface IPdmBdRequestMaterialRecordService extends IService<PdmBdReques
* @return 记录表 * @return 记录表
*/ */
List<PdmBdRequestMaterialRecord> getLeftJoinWorkOrderList(String materialCode); List<PdmBdRequestMaterialRecord> getLeftJoinWorkOrderList(String materialCode);
/**
* 清除多余要料信息
* @param workorderCode /
*/
void toClearExcessMaterial(String workorderCode);
} }

18
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/impl/PdmBdRequestMaterialRecordServiceImpl.java

@ -41,6 +41,7 @@ public class PdmBdRequestMaterialRecordServiceImpl extends ServiceImpl<PdmBdRequ
@Override @Override
public IPage<PdmBdRequestMaterialRecord> queryAll(Map whereJson, PageQuery page) { public IPage<PdmBdRequestMaterialRecord> queryAll(Map whereJson, PageQuery page) {
LambdaQueryWrapper<PdmBdRequestMaterialRecord> lam = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PdmBdRequestMaterialRecord> lam = new LambdaQueryWrapper<>();
lam.orderByDesc(PdmBdRequestMaterialRecord::getCreate_time);
IPage<PdmBdRequestMaterialRecord> pages = new Page<>(page.getPage() + 1, page.getSize()); IPage<PdmBdRequestMaterialRecord> pages = new Page<>(page.getPage() + 1, page.getSize());
pdmBdRequestMaterialRecordMapper.selectPage(pages, lam); pdmBdRequestMaterialRecordMapper.selectPage(pages, lam);
return pages; return pages;
@ -66,8 +67,11 @@ public class PdmBdRequestMaterialRecordServiceImpl extends ServiceImpl<PdmBdRequ
@Override @Override
public void deleteAll(Set<String> ids) { public void deleteAll(Set<String> ids) {
// 真删除 PdmBdRequestMaterialRecord requestMaterialRecord = new PdmBdRequestMaterialRecord();
pdmBdRequestMaterialRecordMapper.deleteBatchIds(ids); requestMaterialRecord.setIs_delete(true);
requestMaterialRecord.setUpdate_time(DateUtil.now());
pdmBdRequestMaterialRecordMapper.update(requestMaterialRecord, new LambdaQueryWrapper<PdmBdRequestMaterialRecord>()
.in(PdmBdRequestMaterialRecord::getRecord_id, ids));
} }
@Override @Override
@ -102,4 +106,14 @@ public class PdmBdRequestMaterialRecordServiceImpl extends ServiceImpl<PdmBdRequ
return pdmBdRequestMaterialRecordMapper.getLeftJoinWorkOrderList(materialCode); 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));
}
} }

7
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/IPdmBdWorkorderService.java

@ -185,4 +185,11 @@ public interface IPdmBdWorkorderService extends IService<PdmBdWorkorder> {
* @return / * @return /
*/ */
PdmBdWorkorder selectByIdLock(String id); PdmBdWorkorder selectByIdLock(String id);
/**
* 获取压机第一条工单
* @param yjDeviceCode /
* @return /
*/
PdmBdWorkorder getDeviceOneTask(String yjDeviceCode);
} }

21
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/mapper/PdmBdWorkorderMapper.java

@ -48,8 +48,8 @@ public interface PdmBdWorkorderMapper extends BaseMapper<PdmBdWorkorder> {
/** /**
* 获取设备未生产的工单 * 获取设备未生产的工单
* *
* @param device * @param device /
* @return * @return /
*/ */
List<AcsWorkOrderVo> getAcsWorkOrderVos(String device); List<AcsWorkOrderVo> getAcsWorkOrderVos(String device);
@ -58,17 +58,28 @@ public interface PdmBdWorkorderMapper extends BaseMapper<PdmBdWorkorder> {
/** /**
* 获取叫料工单 * 获取叫料工单
* *
* @return * @return /
*/ */
List<PdmBdWorkorder> getNeedCallMaterial(); List<PdmBdWorkorder> getNeedCallMaterial();
/**
* 获取未生产
* @return /
*/
List<PdmBdWorkorder> getNotIssueOrder(); List<PdmBdWorkorder> getNotIssueOrder();
/** /**
* 悲观锁查找工单数据 * 悲观锁查找工单数据
* *
* @param id * @param id /
* @return * @return /
*/ */
PdmBdWorkorder selectByIdLock(String id); PdmBdWorkorder selectByIdLock(String id);
/**
* 获取压机当天第一条工单
* @param yjDeviceCode /
* @return /
*/
PdmBdWorkorder getDeviceOneTask(String yjDeviceCode);
} }

13
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/mapper/PdmBdWorkorderMapper.xml

@ -29,6 +29,7 @@
AND wo.create_time <![CDATA[ <= ]]> #{query.end_time} AND wo.create_time <![CDATA[ <= ]]> #{query.end_time}
</if> </if>
</where> </where>
ORDER BY wo.update_time DESC
</select> </select>
<select id="toAcsWorkOrderById" resultType="org.nl.wms.pdm.workorder.service.dao.vo.AcsWorkOrderVo"> <select id="toAcsWorkOrderById" resultType="org.nl.wms.pdm.workorder.service.dao.vo.AcsWorkOrderVo">
SELECT w.workorder_code, SELECT w.workorder_code,
@ -146,4 +147,16 @@
WHERE workorder_id = #{id} WHERE workorder_id = #{id}
FOR UPDATE FOR UPDATE
</select> </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> </mapper>

11
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java

@ -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.acs.service.dto.to.wms.AcsResponse;
import org.nl.wms.ext.mes.service.WmsToMesService; import org.nl.wms.ext.mes.service.WmsToMesService;
import org.nl.wms.ext.mes.service.dto.MesOrderInfo; 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.IPdmBdWorkorderService;
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder; import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
import org.nl.wms.pdm.workorder.service.dao.mapper.PdmBdWorkorderMapper; import org.nl.wms.pdm.workorder.service.dao.mapper.PdmBdWorkorderMapper;
@ -76,6 +77,8 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
private IMdBaseBrickInfoService baseBrickInfoService; private IMdBaseBrickInfoService baseBrickInfoService;
@Autowired @Autowired
private ISchBaseTaskService taskService; private ISchBaseTaskService taskService;
@Autowired
private IPdmBdRequestMaterialRecordService requestMaterialRecordService;
@Override @Override
public IPage<PdmBdWorkorder> queryAll(PdmBdWorkorderQuery query, PageQuery page) { public IPage<PdmBdWorkorder> queryAll(PdmBdWorkorderQuery query, PageQuery page) {
@ -345,6 +348,9 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
} catch (Exception e) { } catch (Exception e) {
log.info("调用mes异常:{}", e.getMessage()); 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) { public PdmBdWorkorder selectByIdLock(String id) {
return pdmBdWorkorderMapper.selectByIdLock(id); return pdmBdWorkorderMapper.selectByIdLock(id);
} }
@Override
public PdmBdWorkorder getDeviceOneTask(String yjDeviceCode) {
return pdmBdWorkorderMapper.getDeviceOneTask(yjDeviceCode);
}
} }

7
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/report/controller/ReportController.java

@ -66,8 +66,13 @@ public class ReportController {
@GetMapping("/inventoryMaterialTimeoutWarning") @GetMapping("/inventoryMaterialTimeoutWarning")
@Log("库存物料超时提示") @Log("库存物料超时提示")
public ResponseEntity<Object> inventoryMaterialTimeoutWarning(Map json, PageQuery page) { public ResponseEntity<Object> inventoryMaterialTimeoutWarning(Map json, PageQuery page) {
return new ResponseEntity<>(TableDataInfo.build(reportService.inventoryMaterialTimeoutWarning(json, page)), HttpStatus.OK); 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);
}
} }

9
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/report/service/ReportService.java

@ -3,6 +3,7 @@ package org.nl.wms.report.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import org.nl.common.domain.query.PageQuery; import org.nl.common.domain.query.PageQuery;
import org.nl.wms.report.service.dao.vo.IOKilnReportVo; 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.nl.wms.report.service.dao.vo.MaterialTimeoutVo;
import java.util.Map; import java.util.Map;
@ -49,5 +50,13 @@ public interface ReportService {
*/ */
IPage<MaterialTimeoutVo> inventoryMaterialTimeoutWarning(Map json, PageQuery page); 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); // IPage<> mudTransfer(JSONObject json, PageQuery page);
} }

3
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/report/service/dao/mapper/ReportMapper.java

@ -3,6 +3,7 @@ package org.nl.wms.report.service.dao.mapper;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import org.nl.wms.report.service.dao.vo.IOKilnReportVo; 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.nl.wms.report.service.dao.vo.MaterialTimeoutVo;
/** /**
@ -18,4 +19,6 @@ public interface ReportMapper {
IPage<IOKilnReportVo> inKilnReport(IPage<IOKilnReportVo> pages, JSONObject object); IPage<IOKilnReportVo> inKilnReport(IPage<IOKilnReportVo> pages, JSONObject object);
IPage<MaterialTimeoutVo> inventoryMaterialTimeoutWarning(IPage<MaterialTimeoutVo> pages, JSONObject object); IPage<MaterialTimeoutVo> inventoryMaterialTimeoutWarning(IPage<MaterialTimeoutVo> pages, JSONObject object);
IPage<InsideDrumLineVo> insideDrumLineReport(IPage<InsideDrumLineVo> pages, JSONObject object);
} }

11
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/report/service/dao/mapper/ReportMapper.xml

@ -58,4 +58,15 @@
AND p.point_status = '3' AND p.point_status = '3'
AND vg.instorage_time <![CDATA[<=]]> DATE_SUB(NOW(), INTERVAL 30 DAY) AND vg.instorage_time <![CDATA[<=]]> DATE_SUB(NOW(), INTERVAL 30 DAY)
</select> </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> </mapper>

17
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/report/service/dao/vo/InsideDrumLineVo.java

@ -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
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/report/service/impl/ReportServiceImpl.java

@ -8,6 +8,7 @@ import org.nl.common.domain.query.PageQuery;
import org.nl.wms.report.service.ReportService; import org.nl.wms.report.service.ReportService;
import org.nl.wms.report.service.dao.mapper.ReportMapper; 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.IOKilnReportVo;
import org.nl.wms.report.service.dao.vo.InsideDrumLineVo;
import org.nl.wms.report.service.dao.vo.MaterialTimeoutVo; import org.nl.wms.report.service.dao.vo.MaterialTimeoutVo;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -52,4 +53,11 @@ public class ReportServiceImpl implements ReportService {
pages = reportMapper.inventoryMaterialTimeoutWarning(pages, new JSONObject(query)); pages = reportMapper.inventoryMaterialTimeoutWarning(pages, new JSONObject(query));
return pages; 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;
}
} }

5
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNMLTask.java

@ -260,9 +260,10 @@ public class HNMLTask extends AbstractTask {
groupEntity.setPoint_name(endPointObj.getPoint_name()); groupEntity.setPoint_name(endPointObj.getPoint_name());
groupEntity.setMove_way(groupEntity.getMove_way() + " -> " + endPointObj.getPoint_code()); groupEntity.setMove_way(groupEntity.getMove_way() + " -> " + endPointObj.getPoint_code());
groupEntity.setMaterial_id(one.getMaterial_id()); groupEntity.setMaterial_id(one.getMaterial_id());
// mark: *根据压机的工单物料标识查找静置时间 // mark: *根据压机的工单物料标识查找静置时间, 先根据工单,在根据物料信息
MdBaseMaterial mdBaseMaterial = materialService.getById(one.getMaterial_id()); 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());
} }
} }
// 更新组盘数据 // 更新组盘数据

2
lms/nladmin-system/nlsso-server/src/main/resources/META-INF/services/org.dromara.dynamictp.core.monitor.collector.MetricsCollector

@ -1 +1 @@
org.nl.config.thread.TestCollector org.nl.config.thread.ThreadMonitorCollector

138
lms/nladmin-ui/src/views/monitor/server/thread.vue

@ -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>

2
lms/nladmin-ui/src/views/system/user/index.vue

@ -91,7 +91,7 @@
/> />
</el-form-item> </el-form-item>
<br v-if="!crud.status.add"> <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-input v-model="form.password" style="width: 200px;" show-password auto-complete="new-password" />
</el-form-item> </el-form-item>
<el-form-item label="性别"> <el-form-item label="性别">

63
lms/nladmin-ui/src/views/wms/das/insideDrumLine/index.vue

@ -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>

5
lms/nladmin-ui/src/views/wms/pdm/record/index.vue

@ -37,6 +37,11 @@
{{ scope.row.is_finish ? '是' : '否'}} {{ scope.row.is_finish ? '是' : '否'}}
</template> </template>
</el-table-column> </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"> <el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<udOperation <udOperation

1
lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue

@ -660,6 +660,7 @@ export default {
this.form.raw_material_code = row.material_code this.form.raw_material_code = row.material_code
} }
this.form.pack_method = row.pack_method 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) const result = Object.keys(this.dict.label.vehicle_type).find(key => this.dict.label.vehicle_type[key] === row.pack_palletspec)
if (result) { if (result) {
this.form.vehicle_type = result this.form.vehicle_type = result

Loading…
Cancel
Save