fix: 看板数据优化
This commit is contained in:
@@ -10,8 +10,8 @@ import lombok.Data;
|
|||||||
@Data
|
@Data
|
||||||
public class MonthlyWorkOrderVo {
|
public class MonthlyWorkOrderVo {
|
||||||
private String name;
|
private String name;
|
||||||
private Long order_num;
|
private String order_num;
|
||||||
private Long guada_num;
|
private String guada_num;
|
||||||
private Long residue_num;
|
private String residue_num;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,15 +53,15 @@ public class CockpitServiceImpl implements CockpitService {
|
|||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
// 3、人员月生产
|
// 3、人员月生产
|
||||||
CompletableFuture<List<PersonnelMonthlyProductionVo>> listPersonnelMonthlyProductionFuture = CompletableFuture.supplyAsync(
|
// CompletableFuture<List<PersonnelMonthlyProductionVo>> listPersonnelMonthlyProductionFuture = CompletableFuture.supplyAsync(
|
||||||
() -> cockPitMapper.getPersonnelMonthlyProductionList(dayShift), pool);
|
// () -> cockPitMapper.getPersonnelMonthlyProductionList(dayShift), pool);
|
||||||
listPersonnelMonthlyProductionFuture.thenAccept(result -> {
|
// listPersonnelMonthlyProductionFuture.thenAccept(result -> {
|
||||||
map.put("PersonnelMonthlyProduction", result);
|
// map.put("PersonnelMonthlyProduction", result);
|
||||||
}).exceptionally((e) -> {
|
// }).exceptionally((e) -> {
|
||||||
log.error("人员月生产: {}", e.getMessage(), e);
|
// log.error("人员月生产: {}", e.getMessage(), e);
|
||||||
map.put("PersonnelMonthlyProduction", null);
|
// map.put("PersonnelMonthlyProduction", null);
|
||||||
return null;
|
// return null;
|
||||||
});
|
// });
|
||||||
// 4、生产任务
|
// 4、生产任务
|
||||||
CompletableFuture<List<ProductTaskVo>> listProductionTaskFuture = CompletableFuture.supplyAsync(
|
CompletableFuture<List<ProductTaskVo>> listProductionTaskFuture = CompletableFuture.supplyAsync(
|
||||||
() -> cockPitMapper.getProductionTaskList(), pool);
|
() -> cockPitMapper.getProductionTaskList(), pool);
|
||||||
@@ -69,7 +69,7 @@ public class CockpitServiceImpl implements CockpitService {
|
|||||||
map.put("ProductionTask", result);
|
map.put("ProductionTask", result);
|
||||||
}).exceptionally((e) -> {
|
}).exceptionally((e) -> {
|
||||||
log.error("生产任务: {}", e.getMessage(), e);
|
log.error("生产任务: {}", e.getMessage(), e);
|
||||||
map.put("ProductionTask", null);
|
map.put("ProductionTask", e);
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
// 5、当月工单
|
// 5、当月工单
|
||||||
@@ -79,14 +79,13 @@ public class CockpitServiceImpl implements CockpitService {
|
|||||||
map.put("MonthlyWorkOrder", result);
|
map.put("MonthlyWorkOrder", result);
|
||||||
}).exceptionally((e) -> {
|
}).exceptionally((e) -> {
|
||||||
log.error("当月工单: {}", e.getMessage(), e);
|
log.error("当月工单: {}", e.getMessage(), e);
|
||||||
map.put("MonthlyWorkOrder", null);
|
map.put("MonthlyWorkOrder", e);
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
// 提交
|
// 提交
|
||||||
CompletableFuture<Void> allQuery = CompletableFuture.allOf(
|
CompletableFuture<Void> allQuery = CompletableFuture.allOf(
|
||||||
listCompletableFuture,
|
listCompletableFuture,
|
||||||
listShiftProductionFuture,
|
listShiftProductionFuture,
|
||||||
listPersonnelMonthlyProductionFuture,
|
|
||||||
listProductionTaskFuture,
|
listProductionTaskFuture,
|
||||||
monthlyWorkOrderFuture);
|
monthlyWorkOrderFuture);
|
||||||
CompletableFuture<ConcurrentHashMap<String, Object>> future
|
CompletableFuture<ConcurrentHashMap<String, Object>> future
|
||||||
|
|||||||
@@ -68,12 +68,12 @@
|
|||||||
ORDER BY w.team DESC, w.workorder_status
|
ORDER BY w.team DESC, w.workorder_status
|
||||||
</select>
|
</select>
|
||||||
<select id="getMonthlyWorkOrderFutureList" resultType="org.nl.wms.cockpit.service.dao.MonthlyWorkOrderVo">
|
<select id="getMonthlyWorkOrderFutureList" resultType="org.nl.wms.cockpit.service.dao.MonthlyWorkOrderVo">
|
||||||
SELECT FMATSPEC AS name
|
SELECT FMATSPEC AS "name"
|
||||||
, FORDER_SUBNUM AS order_num
|
, FORDER_SUBNUM AS "order_num"
|
||||||
, GUADANSUM AS guada_num
|
, GUADANSUM AS "guada_num"
|
||||||
, (FORDER_SUBNUM - GUADANSUM) AS residue_num
|
, (FORDER_SUBNUM - GUADANSUM) AS "residue_num"
|
||||||
FROM "RTMG"."VIEW_POP_ORDER_SEMINPRO_LMS"
|
FROM "RTMG"."VIEW_POP_ORDER_SEMINPRO_LMS"
|
||||||
WHERE TO_DATE(FPLANSTART_DATE, 'YYYYMMDD') <![CDATA[ >= ]]> TRUNC(SYSDATE, 'MONTH')
|
WHERE TO_DATE(FPLANSTART_DATE, 'YYYYMMDD') <![CDATA[ >= ]]> TRUNC(SYSDATE, 'MONTH')
|
||||||
AND TO_DATE(FPLANSTART_DATE, 'YYYYMMDD') <![CDATA[ < ]]> ADD_MONTHS(TRUNC(SYSDATE, 'MONTH'), 1);
|
AND TO_DATE(FPLANSTART_DATE, 'YYYYMMDD') <![CDATA[ < ]]> ADD_MONTHS(TRUNC(SYSDATE, 'MONTH'), 1)
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -11,10 +11,15 @@ public interface MdBaseBrickInfoMapper extends BaseMapper<MdBaseBrickInfo> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 合格数
|
* 合格数
|
||||||
* @param workorderCode
|
* @param workorderCode 工单号
|
||||||
* @return
|
* @return 数字
|
||||||
*/
|
*/
|
||||||
int getCountQualifiedQty(String workorderCode);
|
int getCountQualifiedQty(String workorderCode);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 不合格数
|
||||||
|
* @param workorderCode 工单号
|
||||||
|
* @return 数字
|
||||||
|
*/
|
||||||
int getCountUnqualifiedQty(String workorderCode);
|
int getCountUnqualifiedQty(String workorderCode);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ public class AutoCallMaterials {
|
|||||||
List<PdmBdWorkorder> workorderList = workorderService.getNeedCallMaterial();
|
List<PdmBdWorkorder> workorderList = workorderService.getNeedCallMaterial();
|
||||||
// 判断是否可以叫料,可以就下发给混碾系统
|
// 判断是否可以叫料,可以就下发给混碾系统
|
||||||
workorderList.forEach(workorder -> {
|
workorderList.forEach(workorder -> {
|
||||||
|
// 达到工单的数量
|
||||||
if (workorder.getReal_weight().compareTo(workorder.getPlan_weight()) >= 0) {
|
if (workorder.getReal_weight().compareTo(workorder.getPlan_weight()) >= 0) {
|
||||||
// 不需要请求,等待工单完工
|
// 不需要请求,等待工单完工
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
String requestMethodName = param.getString("request_medthod_name");
|
String requestMethodName = param.getString("request_medthod_name");
|
||||||
BaseResponse result = BaseResponse.build(requestNo);
|
BaseResponse result = BaseResponse.build(requestNo);
|
||||||
try {
|
try {
|
||||||
String requestMethodCode = param.getString("request_medthod_code"); // 获取请求方法名
|
String requestMethodCode = param.getString("request_medthod_code");
|
||||||
Method method = methodCache.get(StrUtil.toCamelCase(requestMethodCode));
|
Method method = methodCache.get(StrUtil.toCamelCase(requestMethodCode));
|
||||||
if (method == null) {
|
if (method == null) {
|
||||||
throw new BadRequestException("请求方法不存在");
|
throw new BadRequestException("请求方法不存在");
|
||||||
@@ -318,8 +318,10 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
|
|
||||||
// mark: 特殊处理
|
// mark: 特殊处理
|
||||||
protected int specialHandling(String regionCode, JSONObject param) {
|
protected int specialHandling(String regionCode, JSONObject param) {
|
||||||
int torus = 0; // 无业务:0,分拣剩余0托:1
|
// 无业务:0,分拣剩余0托:1
|
||||||
if (regionCode.equals("FJ")) { // 判断是否够码满
|
int torus = 0;
|
||||||
|
// 判断是否够码满
|
||||||
|
if (regionCode.equals("FJ")) {
|
||||||
// 分拣需要在这设置特殊值
|
// 分拣需要在这设置特殊值
|
||||||
// 校验是否够码满一托
|
// 校验是否够码满一托
|
||||||
boolean enoughCallEmpty = workorderService.isEnoughCallEmpty(param.getString("device_code"));
|
boolean enoughCallEmpty = workorderService.isEnoughCallEmpty(param.getString("device_code"));
|
||||||
@@ -425,8 +427,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
@Override
|
@Override
|
||||||
public BaseResponse applyGetPutStation(JSONObject param) {
|
public BaseResponse applyGetPutStation(JSONObject param) {
|
||||||
FeedBackSplitPalletStationRequest request = param.toJavaObject(FeedBackSplitPalletStationRequest.class);
|
FeedBackSplitPalletStationRequest request = param.toJavaObject(FeedBackSplitPalletStationRequest.class);
|
||||||
String getStation = request.getGet_station(); // 取货点
|
String getStation = request.getGet_station();
|
||||||
String putStation = request.getPut_station(); // 放货点
|
String putStation = request.getPut_station();
|
||||||
// 查找当前点位中的信息,如果acs没有提供,就获取点位上的数据,如果点位没有,则数据失效
|
// 查找当前点位中的信息,如果acs没有提供,就获取点位上的数据,如果点位没有,则数据失效
|
||||||
SchBasePoint pickupPoint = pointService.getById(getStation);
|
SchBasePoint pickupPoint = pointService.getById(getStation);
|
||||||
SchBasePoint putPoint = pointService.getById(putStation);
|
SchBasePoint putPoint = pointService.getById(putStation);
|
||||||
@@ -442,10 +444,12 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
PdmBdVehicleBinding vehicleBinding = new PdmBdVehicleBinding();
|
PdmBdVehicleBinding vehicleBinding = new PdmBdVehicleBinding();
|
||||||
vehicleBinding.setOrigin_vehicle_code(request.getGet_station_vehicle_code());
|
vehicleBinding.setOrigin_vehicle_code(request.getGet_station_vehicle_code());
|
||||||
vehicleBinding.setOrigin_vehicle_type(GeneralDefinition.STEEL_TRAY);
|
vehicleBinding.setOrigin_vehicle_type(GeneralDefinition.STEEL_TRAY);
|
||||||
vehicleBinding.setOrigin_qty(request.getGet_station_qty()); // 当前码垛位的数量
|
// 当前码垛位的数量
|
||||||
|
vehicleBinding.setOrigin_qty(request.getGet_station_qty());
|
||||||
vehicleBinding.setTarget_vehicle_code(request.getPut_station_vehicle_code());
|
vehicleBinding.setTarget_vehicle_code(request.getPut_station_vehicle_code());
|
||||||
vehicleBinding.setTarget_vehicle_type(putPoint.getVehicle_type());
|
vehicleBinding.setTarget_vehicle_type(putPoint.getVehicle_type());
|
||||||
vehicleBinding.setTarget_qty(request.getPut_station_qty()); // 当前拆垛位的数量
|
// 当前拆垛位的数量
|
||||||
|
vehicleBinding.setTarget_qty(request.getPut_station_qty());
|
||||||
vehicleBinding.setGet_station(request.getGet_station());
|
vehicleBinding.setGet_station(request.getGet_station());
|
||||||
vehicleBinding.setPut_station(request.getPut_station());
|
vehicleBinding.setPut_station(request.getPut_station());
|
||||||
if (productionTask != null) {
|
if (productionTask != null) {
|
||||||
@@ -495,6 +499,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
String custerNo = object.getString("custer_no");
|
String custerNo = object.getString("custer_no");
|
||||||
String orderNo = object.getString("order_no");
|
String orderNo = object.getString("order_no");
|
||||||
CusterDo custer;
|
CusterDo custer;
|
||||||
|
// 都是数据就是id,否则就是名称
|
||||||
if (custerNo.matches("\\d+")) {
|
if (custerNo.matches("\\d+")) {
|
||||||
custer = wmsToMesService.getCusterByNo(custerNo);
|
custer = wmsToMesService.getCusterByNo(custerNo);
|
||||||
} else {
|
} else {
|
||||||
@@ -692,16 +697,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
mesMudConsumptionDto.setCREATE_TM(DateUtil.now());
|
mesMudConsumptionDto.setCREATE_TM(DateUtil.now());
|
||||||
mesMudConsumptionDto.setOP_FLAG(GeneralDefinition.NO);
|
mesMudConsumptionDto.setOP_FLAG(GeneralDefinition.NO);
|
||||||
log.info("泥料消耗上报参数:{}", mesMudConsumptionDto);
|
log.info("泥料消耗上报参数:{}", mesMudConsumptionDto);
|
||||||
// 不在维护lms数据表
|
|
||||||
// PdmBdMudConsumption mudConsumption = new PdmBdMudConsumption();
|
|
||||||
// mudConsumption.setDevice_code(productionTask.getPoint_code());
|
|
||||||
// mudConsumption.setGroup_id(one.getGroup_id());
|
|
||||||
// mudConsumption.setMaterial_id(one.getMaterial_id());
|
|
||||||
// mudConsumption.setWeight(one.getMaterial_weight());
|
|
||||||
// mudConsumption.setCurrent_point(basePoint.getPoint_code());
|
|
||||||
// mudConsumption.setWorkorder_code(productionTask.getWorkorder_code());
|
|
||||||
// mudConsumption.setRaw_material_code(rawMaterialCode);
|
|
||||||
// String id = mudConsumptionService.create(mudConsumption);
|
|
||||||
// 反馈数据给acs
|
// 反馈数据给acs
|
||||||
taskResponse.setMix_number(one.getMix_times());
|
taskResponse.setMix_number(one.getMix_times());
|
||||||
taskResponse.setIs_standing_finish(GeneralDefinition.YES);
|
taskResponse.setIs_standing_finish(GeneralDefinition.YES);
|
||||||
@@ -713,6 +708,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
.eq(PdmBdRequestMaterialRecord::getDevice_code, productionTask.getPoint_code())
|
.eq(PdmBdRequestMaterialRecord::getDevice_code, productionTask.getPoint_code())
|
||||||
.eq(PdmBdRequestMaterialRecord::getWorkorder_id, productionTask.getWorkorder_code()) // 工单编码
|
.eq(PdmBdRequestMaterialRecord::getWorkorder_id, productionTask.getWorkorder_code()) // 工单编码
|
||||||
.eq(PdmBdRequestMaterialRecord::getIs_delete, false)
|
.eq(PdmBdRequestMaterialRecord::getIs_delete, false)
|
||||||
|
.eq(PdmBdRequestMaterialRecord::getIs_finish, true)
|
||||||
.orderByAsc(PdmBdRequestMaterialRecord::getCreate_time));
|
.orderByAsc(PdmBdRequestMaterialRecord::getCreate_time));
|
||||||
if (list.size() > 0) {
|
if (list.size() > 0) {
|
||||||
PdmBdRequestMaterialRecord record = list.get(0);
|
PdmBdRequestMaterialRecord record = list.get(0);
|
||||||
@@ -817,10 +813,11 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
*/
|
*/
|
||||||
@Deprecated
|
@Deprecated
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public BaseResponse pressRequestMaterial2(JSONObject param) { // (公共接口进来)只是给我一个下料位(中间位置)
|
public BaseResponse pressRequestMaterial2(JSONObject param) {
|
||||||
String requestNo = param.getString("requestNo");
|
String requestNo = param.getString("requestNo");
|
||||||
// 压机、原材料物料(混碾)、压机工单、叫料时间
|
// 压机、原材料物料(混碾)、压机工单、叫料时间
|
||||||
String deviceCode = param.getString("device_code");// 几号压机下料位
|
// 几号压机下料位
|
||||||
|
String deviceCode = param.getString("device_code");
|
||||||
SchBasePoint basePoint = pointService.getById(deviceCode);
|
SchBasePoint basePoint = pointService.getById(deviceCode);
|
||||||
if (ObjectUtil.isEmpty(basePoint)) {
|
if (ObjectUtil.isEmpty(basePoint)) {
|
||||||
return BaseResponse.responseError(requestNo, "设备号[" + deviceCode + "]不正确!");
|
return BaseResponse.responseError(requestNo, "设备号[" + deviceCode + "]不正确!");
|
||||||
@@ -910,7 +907,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
vehicleType, GroupBindMaterialStatusEnum.BOUND.getValue());
|
vehicleType, GroupBindMaterialStatusEnum.BOUND.getValue());
|
||||||
String extData = baseVehiclematerialgroup.getExt_data();
|
String extData = baseVehiclematerialgroup.getExt_data();
|
||||||
PalletizeDto palletizeDto = new PalletizeDto();
|
PalletizeDto palletizeDto = new PalletizeDto();
|
||||||
if (extData != null && !extData.equals("null")) {
|
if (extData != null && !"null".equals(extData)) {
|
||||||
// 转成实体
|
// 转成实体
|
||||||
palletizeDto = CommonUtils.toJavaObject(extData, PalletizeDto.class);
|
palletizeDto = CommonUtils.toJavaObject(extData, PalletizeDto.class);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,7 +43,6 @@ public class AutoSaveWaitGdyInfo {
|
|||||||
// 存入表中
|
// 存入表中
|
||||||
list.forEach(mesGdyInfoWaitDto -> {
|
list.forEach(mesGdyInfoWaitDto -> {
|
||||||
mesGdyInfoWaitDto.setMSGID(IdUtil.getSnowflake(1,1).nextIdStr());
|
mesGdyInfoWaitDto.setMSGID(IdUtil.getSnowflake(1,1).nextIdStr());
|
||||||
mesGdyInfoWaitDto.setSEND_TM(DateUtil.now());
|
|
||||||
mesGdyInfoWaitDto.setPRO_SUBUNIT("块");
|
mesGdyInfoWaitDto.setPRO_SUBUNIT("块");
|
||||||
mesGdyInfoWaitDto.setCREATE_TM(DateUtil.now());
|
mesGdyInfoWaitDto.setCREATE_TM(DateUtil.now());
|
||||||
mesGdyInfoWaitDto.setOP_FLAG(GeneralDefinition.NO);
|
mesGdyInfoWaitDto.setOP_FLAG(GeneralDefinition.NO);
|
||||||
|
|||||||
@@ -254,6 +254,7 @@
|
|||||||
mm.material_code AS FPRODUCT_MATERIAL_ID,
|
mm.material_code AS FPRODUCT_MATERIAL_ID,
|
||||||
mm.material_name AS FPRODUCT_MATERIAL_NAME,
|
mm.material_name AS FPRODUCT_MATERIAL_NAME,
|
||||||
mm.material_spec AS FMATSPEC,
|
mm.material_spec AS FMATSPEC,
|
||||||
|
vg.instorage_time AS SEND_TM,
|
||||||
mm.material_model AS FMATMODEL,
|
mm.material_model AS FMATMODEL,
|
||||||
IF(LENGTH(pw.batch_no) > 0,pw.batch_no,'-') AS BATCHNO,
|
IF(LENGTH(pw.batch_no) > 0,pw.batch_no,'-') AS BATCHNO,
|
||||||
p2.ext_point_code AS PRESSUNIT,
|
p2.ext_point_code AS PRESSUNIT,
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import lombok.Data;
|
|||||||
* @Description: 带入窑实体
|
* @Description: 带入窑实体
|
||||||
* @Date: 2023/9/22
|
* @Date: 2023/9/22
|
||||||
* 二维码
|
* 二维码
|
||||||
* 发送时间
|
* 发送时间: 组盘入库时间
|
||||||
* 托盘编号
|
* 托盘编号
|
||||||
* 物料编码
|
* 物料编码
|
||||||
* 物料名称
|
* 物料名称
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ import org.nl.wms.ext.mms.service.WmsToMmsService;
|
|||||||
import org.nl.wms.ext.mms.service.dao.dto.RequestMaterialDto;
|
import org.nl.wms.ext.mms.service.dao.dto.RequestMaterialDto;
|
||||||
import org.nl.wms.ext.mms.service.dao.mapper.MmsRequestMapper;
|
import org.nl.wms.ext.mms.service.dao.mapper.MmsRequestMapper;
|
||||||
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
|
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
|
||||||
|
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||||
|
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -20,6 +22,8 @@ import java.util.Date;
|
|||||||
public class WmsToMmsServiceImpl implements WmsToMmsService {
|
public class WmsToMmsServiceImpl implements WmsToMmsService {
|
||||||
@Autowired
|
@Autowired
|
||||||
public MmsRequestMapper mmsRequestMapper;
|
public MmsRequestMapper mmsRequestMapper;
|
||||||
|
@Autowired
|
||||||
|
private ISchBasePointService pointService;
|
||||||
@Override
|
@Override
|
||||||
public void addRequestMaterial(PdmBdWorkorder workorder) {
|
public void addRequestMaterial(PdmBdWorkorder workorder) {
|
||||||
// 插入:压机、原材料、生产订单号、插入时间
|
// 插入:压机、原材料、生产订单号、插入时间
|
||||||
@@ -30,11 +34,12 @@ public class WmsToMmsServiceImpl implements WmsToMmsService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public RequestMaterialDto toRequestMaterialMapper(PdmBdWorkorder workorder) {
|
public RequestMaterialDto toRequestMaterialMapper(PdmBdWorkorder workorder) {
|
||||||
|
SchBasePoint device = pointService.getById(workorder.getPoint_code());
|
||||||
RequestMaterialDto requestMaterialDto = new RequestMaterialDto();
|
RequestMaterialDto requestMaterialDto = new RequestMaterialDto();
|
||||||
requestMaterialDto.setDevice_code(workorder.getPoint_code().charAt(workorder.getPoint_code().length() - 1) + "");
|
requestMaterialDto.setDevice_code(device.getExt_point_code().split("#")[0]);
|
||||||
requestMaterialDto.setMaterial_code(workorder.getRaw_material_code());
|
requestMaterialDto.setMaterial_code(workorder.getRaw_material_code());
|
||||||
requestMaterialDto.setRequest_date(new Date());
|
requestMaterialDto.setRequest_date(new Date());
|
||||||
requestMaterialDto.setProduction_order(workorder.getProduction_order());
|
requestMaterialDto.setProduction_order(workorder.getWorkorder_code());
|
||||||
requestMaterialDto.set_used(false);
|
requestMaterialDto.set_used(false);
|
||||||
return requestMaterialDto;
|
return requestMaterialDto;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import java.io.Serializable;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: lyd
|
* @Author: lyd
|
||||||
* @Description: 下拉框数据
|
* @Description: 反馈前端下拉框数据
|
||||||
* @Date: 2023/8/1
|
* @Date: 2023/8/1
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import org.nl.wms.pdm.record.service.dao.PdmBdRequestMaterialRecord;
|
|||||||
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
|
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@@ -56,4 +57,11 @@ public interface IPdmBdRequestMaterialRecordService extends IService<PdmBdReques
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
PdmBdRequestMaterialRecord recordData(PdmBdWorkorder workorder);
|
PdmBdRequestMaterialRecord recordData(PdmBdWorkorder workorder);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据工单优先级排序分配的料盅
|
||||||
|
* @param materialCode 物料
|
||||||
|
* @return 记录表
|
||||||
|
*/
|
||||||
|
List<PdmBdRequestMaterialRecord> getLeftJoinWorkOrderList(String materialCode);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,10 +3,13 @@ package org.nl.wms.pdm.record.service.dao.mapper;
|
|||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.nl.wms.pdm.record.service.dao.PdmBdRequestMaterialRecord;
|
import org.nl.wms.pdm.record.service.dao.PdmBdRequestMaterialRecord;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author lyd
|
* @author lyd
|
||||||
* @date 2023-07-05
|
* @date 2023-07-05
|
||||||
**/
|
**/
|
||||||
public interface PdmBdRequestMaterialRecordMapper extends BaseMapper<PdmBdRequestMaterialRecord> {
|
public interface PdmBdRequestMaterialRecordMapper extends BaseMapper<PdmBdRequestMaterialRecord> {
|
||||||
|
|
||||||
|
List<PdmBdRequestMaterialRecord> getLeftJoinWorkOrderList(String materialCode);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,4 +2,15 @@
|
|||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="org.nl.wms.pdm.record.service.dao.mapper.PdmBdRequestMaterialRecordMapper">
|
<mapper namespace="org.nl.wms.pdm.record.service.dao.mapper.PdmBdRequestMaterialRecordMapper">
|
||||||
|
|
||||||
|
<select id="getLeftJoinWorkOrderList"
|
||||||
|
resultType="org.nl.wms.pdm.record.service.dao.PdmBdRequestMaterialRecord">
|
||||||
|
SELECT
|
||||||
|
pdr.*
|
||||||
|
FROM
|
||||||
|
`pdm_bd_request_material_record` pdr
|
||||||
|
LEFT JOIN pdm_bd_workorder w ON w.workorder_code = pdr.workorder_id
|
||||||
|
WHERE pdr.material_id = #{materialCode}
|
||||||
|
AND pdr.is_delete = FALSE AND pdr.is_finish = FALSE
|
||||||
|
ORDER BY w.priority DESC, pdr.create_time
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@@ -98,4 +99,9 @@ public class PdmBdRequestMaterialRecordServiceImpl extends ServiceImpl<PdmBdRequ
|
|||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<PdmBdRequestMaterialRecord> getLeftJoinWorkOrderList(String materialCode) {
|
||||||
|
return pdmBdRequestMaterialRecordMapper.getLeftJoinWorkOrderList(materialCode);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,7 +95,6 @@ public class PdmBdWorkorder implements Serializable {
|
|||||||
@ApiModelProperty(value = "工单类型")
|
@ApiModelProperty(value = "工单类型")
|
||||||
private String workorder_type;
|
private String workorder_type;
|
||||||
|
|
||||||
// todo: 字段未放开
|
|
||||||
@ApiModelProperty(value = "生产订单号")
|
@ApiModelProperty(value = "生产订单号")
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String production_order;
|
private String production_order;
|
||||||
|
|||||||
@@ -158,4 +158,6 @@ public class SchBasePoint implements Serializable {
|
|||||||
private String material_model;
|
private String material_model;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String raw_material_code;
|
private String raw_material_code;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String task_warn;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
AND p.point_status = '3'
|
AND p.point_status = '3'
|
||||||
AND vg.is_firing = true
|
AND vg.is_firing = true
|
||||||
AND vg.material_id = #{materialId}
|
AND vg.material_id = #{materialId}
|
||||||
AND TIMESTAMPDIFF(MINUTE, vg.instorage_time, NOW()) >= ma.cooling_time
|
AND TIMESTAMPDIFF(HOUR, vg.instorage_time, NOW()) >= ma.cooling_time
|
||||||
AND p.region_code IN
|
AND p.region_code IN
|
||||||
<foreach collection="regionCode" item="code" separator="," open="(" close=")">
|
<foreach collection="regionCode" item="code" separator="," open="(" close=")">
|
||||||
#{code}
|
#{code}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import cn.hutool.core.util.ObjectUtil;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
import org.nl.system.service.notice.ISysNoticeService;
|
import org.nl.system.service.notice.ISysNoticeService;
|
||||||
import org.nl.wms.database.material.service.IMdBaseMaterialService;
|
import org.nl.wms.database.material.service.IMdBaseMaterialService;
|
||||||
@@ -49,6 +50,7 @@ import java.util.stream.Collectors;
|
|||||||
*/
|
*/
|
||||||
@Component(value = "HLMLTask")
|
@Component(value = "HLMLTask")
|
||||||
@TaskType("HLMLTask")
|
@TaskType("HLMLTask")
|
||||||
|
@Slf4j
|
||||||
public class HNMLTask extends AbstractTask {
|
public class HNMLTask extends AbstractTask {
|
||||||
private static final String TASK_CONFIG_CODE = "HLMLTask";
|
private static final String TASK_CONFIG_CODE = "HLMLTask";
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -120,6 +122,14 @@ public class HNMLTask extends AbstractTask {
|
|||||||
noticeService.createNotice(task.getRemark(), TASK_CONFIG_CODE + task.getTask_code(), NoticeTypeEnum.WARN.getCode());
|
noticeService.createNotice(task.getRemark(), TASK_CONFIG_CODE + task.getTask_code(), NoticeTypeEnum.WARN.getCode());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (ObjectUtil.isNotEmpty(point.getTask_warn())) {
|
||||||
|
task.setRemark(point.getTask_warn());
|
||||||
|
taskService.updateById(task);
|
||||||
|
// 消息通知
|
||||||
|
noticeService.createNotice("找不到困料点", TASK_CONFIG_CODE + task.getTask_code(), NoticeTypeEnum.WARN.getCode());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
log.info("任务【" + task.getTask_code() + "】叫料标识:{}", point.getRecord_id());
|
||||||
// 叫料完成
|
// 叫料完成
|
||||||
requestMaterialRecordService.callMaterialFinish(point.getRecord_id(), jsonObject.getBigDecimal("weight"));
|
requestMaterialRecordService.callMaterialFinish(point.getRecord_id(), jsonObject.getBigDecimal("weight"));
|
||||||
// 要料记录
|
// 要料记录
|
||||||
@@ -162,15 +172,12 @@ public class HNMLTask extends AbstractTask {
|
|||||||
String materialCode = requestParam.getString("material_code");
|
String materialCode = requestParam.getString("material_code");
|
||||||
Assert.notNull(materialCode, "物料编码不能为空!");
|
Assert.notNull(materialCode, "物料编码不能为空!");
|
||||||
materialCode = materialCode.substring(0, 12);
|
materialCode = materialCode.substring(0, 12);
|
||||||
// 获取要料表中的数据,获取对应物料(要料表存的是泥料)
|
// 获取要料表中的数据,获取对应物料(要料表存的是泥料) update: 先工单优先级后时间
|
||||||
List<PdmBdRequestMaterialRecord> list = requestMaterialRecordService.list(
|
List<PdmBdRequestMaterialRecord> list = requestMaterialRecordService.getLeftJoinWorkOrderList(materialCode);
|
||||||
new LambdaQueryWrapper<PdmBdRequestMaterialRecord>()
|
|
||||||
.eq(PdmBdRequestMaterialRecord::getMaterial_id, materialCode)
|
|
||||||
.eq(PdmBdRequestMaterialRecord::getIs_delete, false)
|
|
||||||
.eq(PdmBdRequestMaterialRecord::getIs_finish, false)
|
|
||||||
.orderByAsc(PdmBdRequestMaterialRecord::getCreate_time));
|
|
||||||
if (list.size() == 0) {
|
if (list.size() == 0) {
|
||||||
throw new BadRequestException("压机要料表找不到数据,请排查泥料号:[" + materialCode + "]");
|
SchBasePoint point = new SchBasePoint();
|
||||||
|
point.setTask_warn("压机要料表找不到数据,请排查泥料号:[" + materialCode + "]");
|
||||||
|
return point;
|
||||||
}
|
}
|
||||||
// 要料数据
|
// 要料数据
|
||||||
PdmBdRequestMaterialRecord requestMaterialRecord = list.get(0);
|
PdmBdRequestMaterialRecord requestMaterialRecord = list.get(0);
|
||||||
@@ -212,8 +219,10 @@ public class HNMLTask extends AbstractTask {
|
|||||||
String endPoint = taskObj.getPoint_code2();
|
String endPoint = taskObj.getPoint_code2();
|
||||||
SchBasePoint endPointObj = pointService.getById(endPoint);
|
SchBasePoint endPointObj = pointService.getById(endPoint);
|
||||||
String responseParam = taskObj.getResponse_param();
|
String responseParam = taskObj.getResponse_param();
|
||||||
|
String requestParam = taskObj.getRequest_param();
|
||||||
JSONObject responseObj = JSONObject.parseObject(responseParam);
|
JSONObject responseObj = JSONObject.parseObject(responseParam);
|
||||||
String recordId = responseObj.getString("record_id");
|
JSONObject requestObj = JSONObject.parseObject(requestParam);
|
||||||
|
String recordId = requestObj.getString("record_id");
|
||||||
// 要把数据存到组盘表。压制工单放进去,
|
// 要把数据存到组盘表。压制工单放进去,
|
||||||
SchBaseVehiclematerialgroup groupEntity = vehiclematerialgroupService.getOne(
|
SchBaseVehiclematerialgroup groupEntity = vehiclematerialgroupService.getOne(
|
||||||
new LambdaQueryWrapper<SchBaseVehiclematerialgroup>()
|
new LambdaQueryWrapper<SchBaseVehiclematerialgroup>()
|
||||||
@@ -302,6 +311,7 @@ public class HNMLTask extends AbstractTask {
|
|||||||
// 泥料编码: 吨袋号,泥料前
|
// 泥料编码: 吨袋号,泥料前
|
||||||
String packNo = param.getString("material_code");
|
String packNo = param.getString("material_code");
|
||||||
String materialCode = packNo.substring(0, 12);
|
String materialCode = packNo.substring(0, 12);
|
||||||
|
// todo: 如果没找到就报错,就不创建组盘信息
|
||||||
// 碾次
|
// 碾次
|
||||||
String mixTimes = packNo.substring(18, packNo.length());
|
String mixTimes = packNo.substring(18, packNo.length());
|
||||||
// 载具类型默认料盅
|
// 载具类型默认料盅
|
||||||
|
|||||||
@@ -0,0 +1,60 @@
|
|||||||
|
//package org.nl.wms.util;
|
||||||
|
//
|
||||||
|
//import org.apache.catalina.connector.Connector;
|
||||||
|
//import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;
|
||||||
|
//import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
|
||||||
|
//import org.springframework.context.ApplicationListener;
|
||||||
|
//import org.springframework.context.annotation.Bean;
|
||||||
|
//import org.springframework.context.annotation.Configuration;
|
||||||
|
//import org.springframework.context.event.ContextClosedEvent;
|
||||||
|
//
|
||||||
|
//import java.util.concurrent.Executor;
|
||||||
|
//import java.util.concurrent.ThreadPoolExecutor;
|
||||||
|
//import java.util.concurrent.TimeUnit;
|
||||||
|
//
|
||||||
|
///**
|
||||||
|
// * @Author: lyd
|
||||||
|
// * @Description: 优雅停机
|
||||||
|
// * @Date: 2023/12/21
|
||||||
|
// */
|
||||||
|
//@Configuration
|
||||||
|
//public class GracefulShutdownConfig {
|
||||||
|
// @Bean
|
||||||
|
// public GracefulShutdown gracefulShutdown() {
|
||||||
|
// return new GracefulShutdown();
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Bean
|
||||||
|
// public TomcatServletWebServerFactory webServerFactory(final GracefulShutdown gracefulShutdown) {
|
||||||
|
// TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
|
||||||
|
// factory.addConnectorCustomizers(gracefulShutdown);
|
||||||
|
// return factory;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// private static class GracefulShutdown implements TomcatConnectorCustomizer, ApplicationListener<ContextClosedEvent> {
|
||||||
|
// private volatile Connector connector;
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public void customize(Connector connector) {
|
||||||
|
// this.connector = connector;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public void onApplicationEvent(ContextClosedEvent event) {
|
||||||
|
// this.connector.pause();
|
||||||
|
// Executor executor = this.connector.getProtocolHandler().getExecutor();
|
||||||
|
// if (executor instanceof ThreadPoolExecutor) {
|
||||||
|
// ThreadPoolExecutor threadPoolExecutor = null;
|
||||||
|
// try {
|
||||||
|
// threadPoolExecutor = (ThreadPoolExecutor) executor;
|
||||||
|
// threadPoolExecutor.shutdown();
|
||||||
|
// if (!threadPoolExecutor.awaitTermination(30, TimeUnit.SECONDS)) {
|
||||||
|
// threadPoolExecutor.shutdownNow();
|
||||||
|
// }
|
||||||
|
// } catch (InterruptedException ex) {
|
||||||
|
// threadPoolExecutor.shutdownNow();
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//}
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
package org.nl.wms.util;
|
||||||
|
|
||||||
|
import ch.qos.logback.classic.AsyncAppender;
|
||||||
|
import ch.qos.logback.classic.Logger;
|
||||||
|
import ch.qos.logback.classic.LoggerContext;
|
||||||
|
import ch.qos.logback.core.Appender;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: lyd
|
||||||
|
* @Description:
|
||||||
|
* @Date: 2023/12/22
|
||||||
|
*/
|
||||||
|
public class LogbackQueueMonitor {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
// 获取 LoggerContext
|
||||||
|
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
|
||||||
|
|
||||||
|
// 获取 AsyncAppender
|
||||||
|
AsyncAppender asyncAppender = getAsyncAppender(loggerContext);
|
||||||
|
|
||||||
|
// 监控队列大小
|
||||||
|
monitorQueueSize(asyncAppender);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AsyncAppender getAsyncAppender(LoggerContext loggerContext) {
|
||||||
|
Logger rootLogger = loggerContext.getLogger(Logger.ROOT_LOGGER_NAME);
|
||||||
|
// 替换为你实际的 Appender 名称
|
||||||
|
Appender appender = rootLogger.getAppender("asyncFileAppender");
|
||||||
|
if (appender instanceof AsyncAppender) {
|
||||||
|
return (AsyncAppender) appender;
|
||||||
|
} else {
|
||||||
|
throw new IllegalStateException("AsyncAppender not found");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void monitorQueueSize(AsyncAppender asyncAppender) {
|
||||||
|
new Thread(() -> {
|
||||||
|
while (true) {
|
||||||
|
try {
|
||||||
|
// 每隔5秒监控一次
|
||||||
|
Thread.sleep(5000);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
int queueSize = asyncAppender.getQueueSize();
|
||||||
|
System.out.println("AsyncAppender Queue Size: " + queueSize);
|
||||||
|
}
|
||||||
|
}).start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -28,3 +28,4 @@
|
|||||||
记录自动要料信息
|
记录自动要料信息
|
||||||
自动下发混碾
|
自动下发混碾
|
||||||
下发混碾失败
|
下发混碾失败
|
||||||
|
看板【当月工单】日志
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
package org.nl.ext;
|
package org.nl.ext;
|
||||||
|
|
||||||
|
import ch.qos.logback.classic.AsyncAppender;
|
||||||
|
import ch.qos.logback.classic.Logger;
|
||||||
|
import ch.qos.logback.classic.LoggerContext;
|
||||||
|
import ch.qos.logback.core.Appender;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.NumberUtil;
|
import cn.hutool.core.util.NumberUtil;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
@@ -9,6 +13,7 @@ import org.nl.common.utils.CodeUtil;
|
|||||||
import org.nl.wms.ext.acs.service.dto.to.wms.ApplyDeviceDto;
|
import org.nl.wms.ext.acs.service.dto.to.wms.ApplyDeviceDto;
|
||||||
import org.nl.wms.ext.mes.service.WmsToMesService;
|
import org.nl.wms.ext.mes.service.WmsToMesService;
|
||||||
import org.nl.wms.ext.mes.service.dao.mapper.MesRequestMapper;
|
import org.nl.wms.ext.mes.service.dao.mapper.MesRequestMapper;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
|
||||||
@@ -151,9 +156,32 @@ public class TestDemo {
|
|||||||
}
|
}
|
||||||
@Test
|
@Test
|
||||||
void testNumberStr() {
|
void testNumberStr() {
|
||||||
System.out.println("1234564".matches("\\d+"));
|
// 获取 LoggerContext
|
||||||
System.out.println("1234你好564".matches("\\d+"));
|
ch.qos.logback.classic.LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
|
||||||
System.out.println(DateUtil.format(DateUtil.date(), "yyMMdd"));
|
|
||||||
System.out.println(String.format("%03d", 12));
|
// 获取 AsyncAppender
|
||||||
|
AsyncAppender asyncAppender = getAsyncAppender(loggerContext);
|
||||||
|
|
||||||
|
// 监控队列大小
|
||||||
|
monitorQueueSize(asyncAppender);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static AsyncAppender getAsyncAppender(LoggerContext loggerContext) {
|
||||||
|
Logger rootLogger = loggerContext.getLogger(Logger.ROOT_LOGGER_NAME);
|
||||||
|
// 替换为你实际的 Appender 名称
|
||||||
|
Appender appender = rootLogger.getAppender("asyncFileAppender");
|
||||||
|
if (appender instanceof AsyncAppender) {
|
||||||
|
return (AsyncAppender) appender;
|
||||||
|
} else {
|
||||||
|
throw new IllegalStateException("AsyncAppender not found");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void monitorQueueSize(AsyncAppender asyncAppender) {
|
||||||
|
while (true) {
|
||||||
|
int queueSize = asyncAppender.getQueueSize();
|
||||||
|
System.out.println("AsyncAppender Queue Size: " + queueSize);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -122,7 +122,7 @@
|
|||||||
style="width: 240px;"
|
style="width: 240px;"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="冷却时间(分钟)">
|
<el-form-item label="冷却时间(小时)">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
v-model.number="form.cooling_time"
|
v-model.number="form.cooling_time"
|
||||||
:min="0"
|
:min="0"
|
||||||
@@ -172,7 +172,7 @@
|
|||||||
<el-table-column prop="material_spec" label="物料规格" :min-width="flexWidth('material_spec',crud.data,'物料规格')" />
|
<el-table-column prop="material_spec" label="物料规格" :min-width="flexWidth('material_spec',crud.data,'物料规格')" />
|
||||||
<el-table-column prop="material_model" label="物料型号" :min-width="flexWidth('material_model',crud.data,'物料分类标识')" />
|
<el-table-column prop="material_model" label="物料型号" :min-width="flexWidth('material_model',crud.data,'物料分类标识')" />
|
||||||
<el-table-column prop="standing_time" label="静置时间(分钟)" :min-width="flexWidth('standing_time',crud.data,'静置时间(分钟)')" />
|
<el-table-column prop="standing_time" label="静置时间(分钟)" :min-width="flexWidth('standing_time',crud.data,'静置时间(分钟)')" />
|
||||||
<el-table-column prop="cooling_time" label="冷却时间(分钟)" :min-width="flexWidth('cooling_time',crud.data,'静置时间(分钟)')" />
|
<el-table-column prop="cooling_time" label="冷却时间(小时)" :min-width="flexWidth('cooling_time',crud.data,'静置时间(分钟)')" />
|
||||||
<!-- <el-table-column prop="workshop_code" label="车间编码" :min-width="flexWidth('workshop_code',crud.data,'车间编码')" />-->
|
<!-- <el-table-column prop="workshop_code" label="车间编码" :min-width="flexWidth('workshop_code',crud.data,'车间编码')" />-->
|
||||||
<el-table-column prop="remark" label="备注" :min-width="flexWidth('remark',crud.data,'备注')" />
|
<el-table-column prop="remark" label="备注" :min-width="flexWidth('remark',crud.data,'备注')" />
|
||||||
<el-table-column prop="is_used" label="是否启用" :min-width="flexWidth('is_used',crud.data,'是否启用')">
|
<el-table-column prop="is_used" label="是否启用" :min-width="flexWidth('is_used',crud.data,'是否启用')">
|
||||||
|
|||||||
75
lms/nladmin-ui/src/views/wms/sch/task/editTaskDialog.vue
Normal file
75
lms/nladmin-ui/src/views/wms/sch/task/editTaskDialog.vue
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog
|
||||||
|
title="任务编辑"
|
||||||
|
append-to-body
|
||||||
|
:visible.sync="dialogVisible"
|
||||||
|
destroy-on-close
|
||||||
|
width="750px"
|
||||||
|
@close="close"
|
||||||
|
@open="open"
|
||||||
|
>
|
||||||
|
<el-form label-width="180px">
|
||||||
|
<el-form-item v-for="(value, key) in jsonData" :label="key" :key="key">
|
||||||
|
<el-input v-model="jsonData[key]"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" @click="saveData">保存</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'EditTaskDialog',
|
||||||
|
props: {
|
||||||
|
dialogShow: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
rowData: {
|
||||||
|
type: Object,
|
||||||
|
default: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dialogVisible: false,
|
||||||
|
tableRadio: null,
|
||||||
|
jsonData: {},
|
||||||
|
tableData: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
dialogShow: {
|
||||||
|
handler(newValue) {
|
||||||
|
this.dialogVisible = newValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
saveData() {
|
||||||
|
|
||||||
|
},
|
||||||
|
clickChange(item) {
|
||||||
|
this.tableRadio = item
|
||||||
|
},
|
||||||
|
open() {
|
||||||
|
console.log(this.rowData)
|
||||||
|
this.jsonData = JSON.parse(this.rowData.request_param)
|
||||||
|
},
|
||||||
|
close() {
|
||||||
|
this.crud.resetQuery(false)
|
||||||
|
this.$emit('update:dialogShow', false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||||
|
::v-deep .el-dialog__body {
|
||||||
|
padding-top: 0px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
Reference in New Issue
Block a user