Merge branch 'master' of http://121.40.234.130:8899/root/rl_mg
This commit is contained in:
@@ -13,6 +13,7 @@ import org.nl.wms.database.brick.service.IMdBaseBrickInfoService;
|
||||
import org.nl.wms.database.brick.service.dao.MdBaseBrickInfo;
|
||||
import org.nl.wms.database.brick.service.dao.mapper.MdBaseBrickInfoMapper;
|
||||
import org.nl.wms.ext.acs.service.dto.BrickInfoDto;
|
||||
import org.nl.wms.ext.mes.service.WmsToMesService;
|
||||
import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService;
|
||||
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -34,6 +35,8 @@ public class MdBaseBrickInfoServiceImpl extends ServiceImpl<MdBaseBrickInfoMappe
|
||||
private MdBaseBrickInfoMapper mdBaseBrickInfoMapper;
|
||||
@Autowired
|
||||
private IPdmBdWorkorderService workorderService;
|
||||
@Autowired
|
||||
private WmsToMesService wmsToMesService;
|
||||
|
||||
@Override
|
||||
public IPage<MdBaseBrickInfo> queryAll(Map whereJson, PageQuery page) {
|
||||
@@ -66,6 +69,8 @@ public class MdBaseBrickInfoServiceImpl extends ServiceImpl<MdBaseBrickInfoMappe
|
||||
public void addBrickInfo(BrickInfoDto dto) {
|
||||
MdBaseBrickInfo brickInfo = toBrickInfoMapper(dto);
|
||||
mdBaseBrickInfoMapper.insert(brickInfo);
|
||||
// todo:上传mes
|
||||
wmsToMesService.reportBrickInfo(brickInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -62,6 +62,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
@@ -438,10 +439,15 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
GroupBindMaterialStatusEnum.UNBOUND.getValue());
|
||||
String materialId = groupInfo.getMaterial_id();
|
||||
MdBaseMaterial baseMaterial = materialService.getById(materialId);
|
||||
BigDecimal materialWeight = ObjectUtil.isNotEmpty(groupInfo.getMaterial_weight())
|
||||
? groupInfo.getMaterial_weight() : BigDecimal.valueOf(0);
|
||||
String singleWeightStr = baseMaterial.getSingle_weight();
|
||||
BigDecimal singleWeight = BigDecimal.valueOf(Double.parseDouble(singleWeightStr));
|
||||
BigDecimal multiply = materialWeight.multiply(singleWeight);
|
||||
// 组合
|
||||
sb.append(baseRequest.getVehicle_code()).append("##")
|
||||
.append(baseMaterial.getMaterial_code()).append("##")
|
||||
.append("吨量").append("##")
|
||||
.append(multiply).append("##")
|
||||
.append(DateUtil.format(DateUtil.parse(DateUtil.today()), "yyyyMMdd"));
|
||||
return ApplyTaskResponse.responseOk(requestNo, sb.toString());
|
||||
}
|
||||
@@ -664,7 +670,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
processTracking.setProcess_location(baseRequest.getDevice_code());
|
||||
processTracking.setRecord_time(DateUtil.now());
|
||||
processTrackingService.create(processTracking);
|
||||
return ApplyTaskResponse.responseOk(baseRequest.getRequestNo());
|
||||
return ApplyTaskResponse.responseOk(baseRequest.getRequestNo(), "扫码成功申请");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
package org.nl.wms.ext.mes.autotask;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.system.service.notice.ISysNoticeService;
|
||||
import org.nl.wms.ext.mes.service.WmsToMesService;
|
||||
import org.nl.wms.ext.mes.service.dto.MesShelfInfo;
|
||||
import org.nl.wms.sch.task_manage.GeneralDefinition;
|
||||
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Description: 实时同步货架数据
|
||||
* @Date: 2023/10/11
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@Order(value = 1)
|
||||
public class AutoSaveShelfInformation {
|
||||
@Autowired
|
||||
private WmsToMesService wmsToMesService;
|
||||
@Autowired
|
||||
private ISysNoticeService noticeService;
|
||||
@SneakyThrows
|
||||
public void run() {
|
||||
// 获取所有货架上的信息
|
||||
List<MesShelfInfo> mesShelfInfos = wmsToMesService.getAllShelfInfos();
|
||||
AtomicInteger successNum = new AtomicInteger();
|
||||
long startTime = System.currentTimeMillis();
|
||||
String now = DateUtil.now();
|
||||
mesShelfInfos.forEach(shelfInfo -> {
|
||||
shelfInfo.setMSGID(IdUtil.getSnowflake(1,1).nextIdStr());
|
||||
shelfInfo.setCREATE_TM(now);
|
||||
shelfInfo.setSEND_TM(now);
|
||||
shelfInfo.setOP_FLAG(GeneralDefinition.NO);
|
||||
// 插入数据
|
||||
try {
|
||||
wmsToMesService.saveShelfInfoBatchToMes(shelfInfo);
|
||||
successNum.getAndIncrement();
|
||||
} catch (Exception e) {
|
||||
log.error("插入货架数据失败的数据: {}", shelfInfo);
|
||||
log.error("插入货架数据失败的信息:{}", e.getMessage());
|
||||
// notice通知
|
||||
noticeService.createNotice(e.getMessage(), "货架数据同步失败" + shelfInfo.getGROUP_ID(),
|
||||
NoticeTypeEnum.NOTIFICATION.getCode());
|
||||
}
|
||||
});
|
||||
long endTime = System.currentTimeMillis();
|
||||
log.info("滚筒线数据有" + mesShelfInfos.size() + "条,成功" + successNum.get() + "条, 消耗时长:" + (endTime - startTime) + "ms");
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,9 @@
|
||||
package org.nl.wms.ext.mes.service;
|
||||
|
||||
import org.nl.wms.database.brick.service.dao.MdBaseBrickInfo;
|
||||
import org.nl.wms.ext.acs.service.dto.BrickInfoDto;
|
||||
import org.nl.wms.ext.mes.autotask.AutoSaveWaitGdyInfo;
|
||||
import org.nl.wms.ext.mes.service.dto.MesGdyInfoDto;
|
||||
import org.nl.wms.ext.mes.service.dto.MesGdyInfoWaitDto;
|
||||
import org.nl.wms.ext.mes.service.dto.MesMudConsumptionDto;
|
||||
import org.nl.wms.ext.mes.service.dto.MesSemiProductionInfo;
|
||||
import org.nl.wms.ext.mes.service.dto.*;
|
||||
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
|
||||
|
||||
import java.util.List;
|
||||
@@ -75,4 +74,22 @@ public interface WmsToMesService {
|
||||
* @return
|
||||
*/
|
||||
List<MesGdyInfoWaitDto> getAllWaitIntoGdyInfos();
|
||||
|
||||
/**
|
||||
* 上报mes砖块检测信息
|
||||
* @param brickInfo
|
||||
*/
|
||||
void reportBrickInfo(MdBaseBrickInfo brickInfo);
|
||||
|
||||
/**
|
||||
* 获取货架所有数据
|
||||
* @return
|
||||
*/
|
||||
List<MesShelfInfo> getAllShelfInfos();
|
||||
|
||||
/**
|
||||
* 插入货架信息
|
||||
* @param shelfInfo
|
||||
*/
|
||||
void saveShelfInfoBatchToMes(MesShelfInfo shelfInfo);
|
||||
}
|
||||
|
||||
@@ -53,4 +53,10 @@ public interface MesRequestMapper {
|
||||
List<MesGdyInfoWaitDto> getAllWaitIntoGdyInfos();
|
||||
@DS("oracle")
|
||||
void insertGdyMaterialWait(MesGdyInfoWaitDto mesGdyInfoWaitDto);
|
||||
@DS("oracle")
|
||||
void insertQSPressMonitorData(MesQSPressMonitorData mesQSPressMonitorData);
|
||||
@DS("mysql")
|
||||
List<MesShelfInfo> getAllShelfInfos();
|
||||
@DS("oracle")
|
||||
void saveShelfInfoBatchToMes(MesShelfInfo shelfInfo);
|
||||
}
|
||||
|
||||
@@ -70,6 +70,24 @@
|
||||
VALUES (#{MSGID}, #{SEND_TM}, #{TRAY_NO}, #{FPRODUCT_MATERIAL_ID}, #{FPRODUCT_MATERIAL_NAME}, #{FMATSPEC}
|
||||
, #{FMATMODEL}, #{BATCHNO}, #{PRESSUNIT}, #{PRO_SUBNUM}, #{PRO_SUBUNIT}, #{CREATE_TM}, #{OP_FLAG})
|
||||
</insert>
|
||||
<insert id="insertQSPressMonitorData" parameterType="org.nl.wms.ext.mes.service.dto.MesQSPressMonitorData">
|
||||
INSERT INTO "LMSTELCOM"."RECEIVE_QS_PRESS_MONITORDATA"(BRICK_ID, GET_STATION, PUT_STATION, IS_QUALIFIED, LASER_MARKING_CODE
|
||||
, WEIGHT, HEIGHT1, HEIGHT2, HEIGHT3, HEIGHT4, WIDTH1, WIDTH2, LEN, VOLUME, FLATNESS, UNQUALIFIED_QTY, WORKORDER_CODE
|
||||
, CREATE_TM, OP_FLAG) VALUES (#{BRICK_ID}, #{GET_STATION}, #{PUT_STATION}, #{IS_QUALIFIED}, #{LASER_MARKING_CODE}
|
||||
, #{WEIGHT}, #{HEIGHT1}, #{HEIGHT2}, #{HEIGHT3}, #{HEIGHT4}, #{WIDTH1}, #{WIDTH2}, #{LEN}, #{VOLUME}, #{FLATNESS}
|
||||
, #{UNQUALIFIED_QTY}, #{WORKORDER_CODE}, #{CREATE_TM}, #{OP_FLAG})
|
||||
</insert>
|
||||
<insert id="saveShelfInfoBatchToMes" parameterType="org.nl.wms.ext.mes.service.dto.MesShelfInfo">
|
||||
INSERT INTO "LMSTELCOM"."RECEIVE_LMS_BINSTA"(MSGID, SEND_TM, GROUP_ID, VEHICLE_TYPE, VEHICLE_CODE, MATERIAL_ID
|
||||
, MATERIAL_NAME, MATSPEC, MATMODEL, SOURCE_VEHICLE_CODE, POINT_CODE, POINT_NAME, IS_FIRING, IS_FULL, PCSN
|
||||
, INSTORAGE_TIME, STANDING_TIME, MATERIAL_QTY, MATERIAL_WEIGHT, WORKORDER_CODE, GROUP_NUMBER
|
||||
, GROUP_BIND_MATERIAL_STATUS, MOVE_WAY, REMARK, UPDATE_TIME, OUT_KILN_TIME, INTO_KILN_TIME, CREATE_TM, OP_FLAG)
|
||||
VALUES (#{MSGID}, #{SEND_TM}, #{GROUP_ID}, #{VEHICLE_TYPE}, #{VEHICLE_CODE}, #{MATERIAL_ID}, #{MATERIAL_NAME}
|
||||
, #{MATSPEC}, #{MATMODEL}, #{SOURCE_VEHICLE_CODE}, #{POINT_CODE}, #{POINT_NAME}, #{IS_FIRING}, #{IS_FULL}, #{PCSN}
|
||||
, #{INSTORAGE_TIME}, #{STANDING_TIME}, #{MATERIAL_QTY}, #{MATERIAL_WEIGHT}, #{WORKORDER_CODE}, #{GROUP_NUMBER}
|
||||
, #{GROUP_BIND_MATERIAL_STATUS}, #{MOVE_WAY}, #{REMARK}, #{UPDATE_TIME}, #{OUT_KILN_TIME}, #{INTO_KILN_TIME}
|
||||
, #{CREATE_TM}, #{OP_FLAG})
|
||||
</insert>
|
||||
<update id="updateWorkOrderRead" parameterType="java.util.List">
|
||||
UPDATE "LMSTELCOM"."SEND_POP_SCHEDULE_PRESS"
|
||||
SET OP_FLAG = '1'
|
||||
@@ -227,4 +245,38 @@
|
||||
vg.point_code IN ( 'HCSSX01', 'HCSSX63' )
|
||||
AND pw.workorder_code IS NOT NULL
|
||||
</select>
|
||||
<select id="getAllShelfInfos" resultType="org.nl.wms.ext.mes.service.dto.MesShelfInfo">
|
||||
SELECT
|
||||
vg.group_id AS GROUP_ID,
|
||||
vg.vehicle_code AS VEHICLE_CODE,
|
||||
vg.vehicle_type AS VEHICLE_TYPE,
|
||||
IF(p1.point_status = '2','-',mm.material_code) AS MATERIAL_ID,
|
||||
mm.material_name AS MATERIAL_NAME,
|
||||
mm.material_spec AS MATSPEC,
|
||||
mm.material_model AS MATMODEL,
|
||||
p2.ext_point_code AS SOURCE_VEHICLE_CODE,
|
||||
p1.point_code AS POINT_CODE,
|
||||
p1.point_name AS POINT_NAME,
|
||||
vg.is_firing AS IS_FIRING,
|
||||
vg.is_full AS IS_FULL,
|
||||
vg.pcsn AS PCSN,
|
||||
vg.instorage_time AS INSTORAGE_TIME,
|
||||
vg.standing_time AS STANDING_TIME,
|
||||
vg.material_qty AS MATERIAL_QTY,
|
||||
vg.material_weight AS MATERIAL_WEIGHT,
|
||||
vg.workorder_code AS WORKORDER_CODE,
|
||||
vg.group_number AS GROUP_NUMBER,
|
||||
vg.group_bind_material_status AS GROUP_BIND_MATERIAL_STATUS,
|
||||
vg.move_way AS MOVE_WAY,
|
||||
vg.remark AS REMARK,
|
||||
vg.update_time AS UPDATE_TIME,
|
||||
vg.out_kiln_time AS OUT_KILN_TIME,
|
||||
vg.into_kiln_time AS INTO_KILN_TIME
|
||||
FROM
|
||||
`sch_base_point` p1
|
||||
LEFT JOIN sch_base_vehiclematerialgroup vg ON p1.vehicle_code = vg.vehicle_code AND p1.vehicle_type = vg.vehicle_type AND vg.group_bind_material_status = '2'
|
||||
LEFT JOIN md_base_material mm ON mm.material_id = vg.material_id
|
||||
LEFT JOIN sch_base_point p2 ON p2.point_code = vg.source_vehicle_code
|
||||
WHERE p1.region_code = 'GTPHC'
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
package org.nl.wms.ext.mes.service.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Description: 压机检测数据
|
||||
* @Date: 2023/10/11
|
||||
* 唯一标识
|
||||
* 当前抓取工位
|
||||
* 当前放置工位
|
||||
* 是否合格
|
||||
* 激光标刻码
|
||||
* 重量
|
||||
* 高度1
|
||||
* 高度2
|
||||
* 高度3
|
||||
* 高度4
|
||||
* 宽度1
|
||||
* 宽度2
|
||||
* 长度
|
||||
* 体积
|
||||
* 平面度
|
||||
* 缺陷个数
|
||||
* 工单标识
|
||||
* 写入时间
|
||||
* 读取标志,0未读取,1已读取
|
||||
* 读取时间
|
||||
*/
|
||||
@Data
|
||||
public class MesQSPressMonitorData {
|
||||
private String BRICK_ID;
|
||||
private String GET_STATION;
|
||||
private String PUT_STATION;
|
||||
private Boolean IS_QUALIFIED;
|
||||
private String LASER_MARKING_CODE;
|
||||
private String WEIGHT;
|
||||
private String HEIGHT1;
|
||||
private String HEIGHT2;
|
||||
private String HEIGHT3;
|
||||
private String HEIGHT4;
|
||||
private String WIDTH1;
|
||||
private String WIDTH2;
|
||||
private String LEN;
|
||||
private String VOLUME;
|
||||
private String FLATNESS;
|
||||
private String UNQUALIFIED_QTY;
|
||||
private String WORKORDER_CODE;
|
||||
private String CREATE_TM;
|
||||
private String OP_FLAG;
|
||||
private String OP_TM;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
package org.nl.wms.ext.mes.service.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Description: 三层货架信息
|
||||
* @Date: 2023/10/11
|
||||
* 唯一ID - 新生成
|
||||
* 发送时间 - 新生成
|
||||
* 仓库号 - 不录入
|
||||
* 组盘标识
|
||||
* 载具类型
|
||||
* 载具编码
|
||||
* 物料标识
|
||||
* 物料名称
|
||||
* 规格
|
||||
* 型号
|
||||
* 来源载具编码/载具的来源点位(压机)
|
||||
* 货位号
|
||||
* 点位名称
|
||||
* 是否已烧制
|
||||
* 是否满托
|
||||
* 批次
|
||||
* 入库时间
|
||||
* 静置时间(分钟)
|
||||
* 物料数量
|
||||
* 物料重量
|
||||
* 搬运工单编码
|
||||
* 组盘次数
|
||||
* 组盘绑定物料状态
|
||||
* 位置跟踪
|
||||
* 备注
|
||||
* 修改时间
|
||||
* 出窑时间
|
||||
* 入窑时间
|
||||
* 写入时间
|
||||
* 读取标识
|
||||
* 读取时间
|
||||
*/
|
||||
@Data
|
||||
public class MesShelfInfo {
|
||||
private String MSGID;
|
||||
private String SEND_TM;
|
||||
private String LOGT;
|
||||
private String GROUP_ID;
|
||||
private String VEHICLE_TYPE;
|
||||
private String VEHICLE_CODE;
|
||||
private String MATERIAL_ID;
|
||||
private String MATERIAL_NAME;
|
||||
private String MATSPEC;
|
||||
private String MATMODEL;
|
||||
private String SOURCE_VEHICLE_CODE;
|
||||
private String POINT_CODE;
|
||||
private String POINT_NAME;
|
||||
private Boolean IS_FIRING;
|
||||
private Boolean IS_FULL;
|
||||
private String PCSN;
|
||||
private String INSTORAGE_TIME;
|
||||
private String STANDING_TIME;
|
||||
private int MATERIAL_QTY;
|
||||
private BigDecimal MATERIAL_WEIGHT;
|
||||
private String WORKORDER_CODE;
|
||||
private String GROUP_NUMBER;
|
||||
private String GROUP_BIND_MATERIAL_STATUS;
|
||||
private String MOVE_WAY;
|
||||
private String REMARK;
|
||||
private String UPDATE_TIME;
|
||||
private String OUT_KILN_TIME;
|
||||
private String INTO_KILN_TIME;
|
||||
private String CREATE_TM;
|
||||
private String OP_FLAG;
|
||||
private String OP_TM;
|
||||
|
||||
}
|
||||
@@ -9,8 +9,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.system.service.notice.ISysNoticeService;
|
||||
import org.nl.wms.database.brick.service.dao.MdBaseBrickInfo;
|
||||
import org.nl.wms.database.material.service.IMdBaseMaterialService;
|
||||
import org.nl.wms.database.material.service.dao.MdBaseMaterial;
|
||||
import org.nl.wms.ext.acs.service.dto.BrickInfoDto;
|
||||
import org.nl.wms.ext.mes.autotask.AutoSaveWaitGdyInfo;
|
||||
import org.nl.wms.ext.mes.service.WmsToMesService;
|
||||
import org.nl.wms.ext.mes.service.dao.mapper.MesRequestMapper;
|
||||
@@ -36,7 +38,7 @@ import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Description:
|
||||
* @Description: wms请求mes的实现类
|
||||
* @Date: 2023/8/3
|
||||
*/
|
||||
@Slf4j
|
||||
@@ -140,7 +142,8 @@ public class WmsToMesServiceImpl implements WmsToMesService {
|
||||
mesProductDataDto.setPRO_SUBNUM(BigDecimal.valueOf(vehiclematerialgroup.getMaterial_qty()));// 数量
|
||||
mesProductDataDto.setPRO_SUBUNIT("块");
|
||||
mesProductDataDto.setCHECKERIN_TIM(DateUtil.now());
|
||||
mesProductDataDto.setPRODATE(ObjectUtil.isNotEmpty(workorder.getProduce_date()) ? workorder.getProduce_date() : DateUtil.now());
|
||||
mesProductDataDto.setPRODATE(ObjectUtil.isNotEmpty(workorder.getProduce_date())
|
||||
? workorder.getProduce_date() : DateUtil.now());
|
||||
mesProductDataDto.setCREATE_TM(DateUtil.now());
|
||||
mesProductDataDto.setOP_FLAG(GeneralDefinition.NO);
|
||||
log.info("压机产出返给MES的数据:{}", mesProductDataDto);
|
||||
@@ -150,8 +153,8 @@ public class WmsToMesServiceImpl implements WmsToMesService {
|
||||
} catch (Exception e) {
|
||||
log.error("反馈压机产出插入mes数据库失败:{}", e.getMessage());
|
||||
// 发送通知
|
||||
noticeService.createNotice("反馈压机产出插入mes数据库失败", "压机产出" + mesProductDataDto.getPRESSUNIT(),
|
||||
NoticeTypeEnum.EXCEPTION.getCode());
|
||||
noticeService.createNotice("反馈压机产出插入mes数据库失败", "压机产出"
|
||||
+ mesProductDataDto.getPRESSUNIT(), NoticeTypeEnum.EXCEPTION.getCode());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -192,8 +195,8 @@ public class WmsToMesServiceImpl implements WmsToMesService {
|
||||
} catch (Exception e) {
|
||||
log.error("半成品入库插入mes数据库失败:{}", e.getMessage());
|
||||
// todo:发送通知
|
||||
noticeService.createNotice("半成品入库插入mes数据库失败", "半成品入库" + semiProductionInfoInDto.getMSGID(),
|
||||
NoticeTypeEnum.EXCEPTION.getCode());
|
||||
noticeService.createNotice("半成品入库插入mes数据库失败", "半成品入库"
|
||||
+ semiProductionInfoInDto.getMSGID(), NoticeTypeEnum.EXCEPTION.getCode());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -364,6 +367,9 @@ public class WmsToMesServiceImpl implements WmsToMesService {
|
||||
mesRequestMapper.insertMesUnusedInfo(mesUnusedDto);
|
||||
} catch (Exception e) {
|
||||
log.error("插入机口判废失败:{}", e.getMessage());
|
||||
// todo:发送通知
|
||||
noticeService.createNotice("机口判废插入mes数据库失败", "机口判废" + mesUnusedDto.getMSGID(),
|
||||
NoticeTypeEnum.EXCEPTION.getCode());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -372,6 +378,67 @@ public class WmsToMesServiceImpl implements WmsToMesService {
|
||||
return mesRequestMapper.getAllWaitIntoGdyInfos();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reportBrickInfo(MdBaseBrickInfo brickInfo) {
|
||||
// 转换成mes字段
|
||||
MesQSPressMonitorData mesQSPressMonitorData = toPressMonitorMapper(brickInfo);
|
||||
// 插入mes数据库
|
||||
try {
|
||||
mesRequestMapper.insertQSPressMonitorData(mesQSPressMonitorData);
|
||||
} catch (Exception e) {
|
||||
log.error("插入压机检测失败:{}", e.getMessage());
|
||||
// todo:发送通知
|
||||
noticeService.createNotice("压机检测插入mes数据库失败", "压机检测"
|
||||
+ mesQSPressMonitorData.getBRICK_ID(), NoticeTypeEnum.EXCEPTION.getCode());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MesShelfInfo> getAllShelfInfos() {
|
||||
return mesRequestMapper.getAllShelfInfos();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveShelfInfoBatchToMes(MesShelfInfo shelfInfo) {
|
||||
mesRequestMapper.saveShelfInfoBatchToMes(shelfInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 转换
|
||||
* @param brickInfo:lms的砖块检测信息
|
||||
* @return 上报mes的砖块检测信息
|
||||
*/
|
||||
private MesQSPressMonitorData toPressMonitorMapper(MdBaseBrickInfo brickInfo) {
|
||||
// 获取mes的设备
|
||||
SchBasePoint device = pointService.getById(brickInfo.getGet_station());
|
||||
MesQSPressMonitorData monitorData = new MesQSPressMonitorData();
|
||||
monitorData.setBRICK_ID(brickInfo.getBrick_id());
|
||||
monitorData.setGET_STATION(device.getExt_point_code());
|
||||
monitorData.setPUT_STATION(brickInfo.getPut_station());
|
||||
monitorData.setIS_QUALIFIED(brickInfo.getIs_qualified());
|
||||
monitorData.setLASER_MARKING_CODE(brickInfo.getLaser_marking_code());
|
||||
monitorData.setWEIGHT(brickInfo.getWeight());
|
||||
monitorData.setHEIGHT1(brickInfo.getHeight1());
|
||||
monitorData.setHEIGHT2(brickInfo.getHeight2());
|
||||
monitorData.setHEIGHT3(brickInfo.getHeight3());
|
||||
monitorData.setHEIGHT4(brickInfo.getHeight4());
|
||||
monitorData.setWIDTH1(brickInfo.getWidth1());
|
||||
monitorData.setWIDTH2(brickInfo.getWidth2());
|
||||
monitorData.setLEN(brickInfo.getLen());
|
||||
monitorData.setVOLUME(brickInfo.getVolume());
|
||||
monitorData.setFLATNESS(brickInfo.getFlatness());
|
||||
monitorData.setUNQUALIFIED_QTY(brickInfo.getUnqualified_qty());
|
||||
monitorData.setWORKORDER_CODE(brickInfo.getWorkorder_code());
|
||||
monitorData.setCREATE_TM(DateUtil.now());
|
||||
monitorData.setOP_FLAG(GeneralDefinition.NO);
|
||||
return monitorData;
|
||||
}
|
||||
|
||||
/**
|
||||
* 转换
|
||||
* @param mesWorkOrderInfos: mes的工单
|
||||
* @return lms工单
|
||||
*/
|
||||
public List<PdmBdWorkorder> toWorkOrderList(List<MesWorkOrderDto> mesWorkOrderInfos) {
|
||||
List<PdmBdWorkorder> list = new CopyOnWriteArrayList<>();
|
||||
mesWorkOrderInfos.forEach(mesWorkOrderDto -> {
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
package org.nl.wms.util;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Description:
|
||||
* @Date: 2023/10/8
|
||||
*/
|
||||
public class Tes {
|
||||
public static void main(String[] args) {
|
||||
String videoFilePath = "video.mp4";
|
||||
String audioFilePath = "audio.wav";
|
||||
|
||||
String ffmpegCommand = "ffmpeg -i " + videoFilePath + " -vn -acodec pcm_s16le -ar 44100 -ac 2 " + audioFilePath;
|
||||
|
||||
try {
|
||||
Process process = Runtime.getRuntime().exec(ffmpegCommand);
|
||||
int exitCode = process.waitFor();
|
||||
if (exitCode == 0) {
|
||||
System.out.println("音频提取完成");
|
||||
} else {
|
||||
System.err.println("音频提取失败");
|
||||
}
|
||||
} catch (IOException | InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user