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
|
||||
|
||||
Reference in New Issue
Block a user