add: mes对接压机产出数据、lucene日志查询时间排序
This commit is contained in:
@@ -6,6 +6,8 @@ package org.nl.config.lucene;
|
||||
* @Date: 2023/8/25
|
||||
*/
|
||||
public class LogMessageConstant {
|
||||
/** */
|
||||
public final static String SORT_NAME = "time";
|
||||
/** 级别 */
|
||||
public final static String FIELD_LEVEL = "level";
|
||||
/** 时间 */
|
||||
|
||||
@@ -53,7 +53,10 @@ public class LuceneAppender extends AppenderBase<ILoggingEvent> {
|
||||
String message = event.getFormattedMessage();
|
||||
Map<String, String> mdcPropertyMap = event.getMDCPropertyMap();
|
||||
Document doc = new Document();
|
||||
String formattedDateTime = DateUtil.format(new java.util.Date(event.getTimeStamp()), "yyyy-MM-dd HH:mm:ss.SSS");
|
||||
long timeStamp = event.getTimeStamp();
|
||||
String formattedDateTime = DateUtil.format(new java.util.Date(timeStamp), "yyyy-MM-dd HH:mm:ss.SSS");
|
||||
doc.add(new LongPoint(LogMessageConstant.SORT_NAME, timeStamp));
|
||||
doc.add(new NumericDocValuesField(LogMessageConstant.SORT_NAME, timeStamp));
|
||||
doc.add(new StringField(LogMessageConstant.FIELD_LEVEL, event.getLevel().toString(), Field.Store.YES));
|
||||
doc.add(new StringField(LogMessageConstant.FIELD_TIMESTAMP, formattedDateTime,Field.Store.YES));
|
||||
doc.add(new StoredField(LogMessageConstant.FIELD_CLASS_NAME, event.getLoggerName()));
|
||||
|
||||
@@ -46,7 +46,7 @@ public class Searcher {
|
||||
int start = pageNum * pageSize;// 当前页的起始条数
|
||||
int end = start + pageSize;// 当前页的结束条数(不能包含)
|
||||
// 创建排序对象,需要排序字段SortField,参数:字段的名称、字段的类型、是否反转如果是false,升序。true降序
|
||||
Sort sort = new Sort(new SortField(LogMessageConstant.FIELD_TIMESTAMP, SortField.Type.DOC,true));
|
||||
Sort sort = new Sort(new SortField(LogMessageConstant.SORT_NAME, SortField.Type.LONG,true));
|
||||
|
||||
TopDocs docs = null;
|
||||
BooleanQuery.Builder booleanQueryBuilder = new BooleanQuery.Builder();
|
||||
|
||||
@@ -492,6 +492,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
if (bdWorkorder == null) {
|
||||
return BaseResponse.responseError(requestNo, "未找到工单号[" + workorderCode + "]的记录!");
|
||||
}
|
||||
// todo: 统计当前设备的不合格位置的数量作为不合格数,并标记是否组盘为true
|
||||
bdWorkorder.setWorkorder_status(WorkOrderStatusEnum.COMPLETE.getCode());
|
||||
bdWorkorder.setRealproduceend_date(DateUtil.now());
|
||||
TaskUtils.setWorkOrderUpdateByAcs(bdWorkorder);
|
||||
|
||||
@@ -21,4 +21,10 @@ public interface WmsToMesService {
|
||||
* 同步工单数据
|
||||
*/
|
||||
void synchronizeWorkOrderInfo();
|
||||
|
||||
/**
|
||||
* wms上报产出数据给mes
|
||||
* @param groupId
|
||||
*/
|
||||
void reportProductData(String groupId);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.nl.wms.database.material.service.dao.MdBaseMaterial;
|
||||
import org.nl.wms.ext.mes.service.dto.MesProductDataDto;
|
||||
import org.nl.wms.ext.mes.service.dto.MesWorkOrderDto;
|
||||
import org.nl.wms.ext.mes.service.dto.MesMudConsumptionDto;
|
||||
|
||||
@@ -27,4 +28,6 @@ public interface MesRequestMapper {
|
||||
void updateWorkOrderRead(@Param("list") List<String> list);
|
||||
@DS("oracle")
|
||||
void insertMudConsumptionInfo(MesMudConsumptionDto mudObject);
|
||||
@DS("oracle")
|
||||
void insertProductData(MesProductDataDto mesProductDataDto);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,13 @@
|
||||
, CREATE_TM, OP_FLAG) VALUES (#{MSGID}, #{PWORKSCHE_ID}, #{OUT_FINNUM}, #{PRESSUNIT}, #{FBAGCODE}, #{LOGT}
|
||||
, #{SENDTIM}, #{CREATE_TM}, #{OP_FLAG})
|
||||
</insert>
|
||||
<insert id="insertProductData" parameterType="org.nl.wms.ext.mes.service.dto.MesProductDataDto">
|
||||
INSERT INTO "LMSTELCOM"."RECEIVE_R_SEMIPRODUCT"(MSGID, FORDER_NO, PWORKSCHE_ID, FPRODUCT_MATERIAL_ID
|
||||
, FPRODUCT_MATERIAL_NAME, FMATSPEC, FMATMODEL, BATCHNO, PRESSUNIT, FTEAM, TRAY_NO, PRO_SUBNUM
|
||||
, PRO_SUBUNIT, CHECKERIN_TIM, PRODATE, CREATE_TM, OP_FLAG) VALUES (#{MSGID}, #{FORDER_NO}, #{PWORKSCHE_ID}
|
||||
, #{FPRODUCT_MATERIAL_ID}, #{FPRODUCT_MATERIAL_NAME}, #{FMATSPEC}, #{FMATMODEL}, #{BATCHNO}, #{PRESSUNIT}
|
||||
, #{FTEAM}, #{TRAY_NO}, #{PRO_SUBNUM}, #{PRO_SUBUNIT}, #{CHECKERIN_TIM}, #{PRODATE}, #{CREATE_TM}, #{OP_FLAG})
|
||||
</insert>
|
||||
<update id="updateWorkOrderRead" parameterType="java.util.List">
|
||||
UPDATE "LMSTELCOM"."SEND_POP_SCHEDULE_PRESS"
|
||||
SET OP_FLAG = '1'
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
package org.nl.wms.ext.mes.service.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Description: 压机产出数据
|
||||
* @Date: 2023/9/12
|
||||
*/
|
||||
@Data
|
||||
public class MesProductDataDto implements Serializable {
|
||||
private String MSGID;
|
||||
private String FORDER_NO;
|
||||
private String PWORKSCHE_ID;
|
||||
private String FSCHEDULE_ID;
|
||||
private String FPRODUCT_MATERIAL_ID;
|
||||
private String FPRODUCT_MATERIAL_NAME;
|
||||
private String FMATSPEC;
|
||||
private String FMATMODEL;
|
||||
private String BATCHNO;
|
||||
private String PRESSUNIT;
|
||||
private String FTEAM;
|
||||
private String TRAY_NO;
|
||||
private String PRO_NUM;
|
||||
private String PRO_UNIT;
|
||||
private String PRO_SUBNUM;
|
||||
private String PRO_SUBUNIT;
|
||||
private String FP_SUBUNIT;
|
||||
private String FP_REASON;
|
||||
private String FP_JJFLAG;
|
||||
private String FP_JJMATERIAL_ID;
|
||||
private String LDLNUM;
|
||||
private String CHECKERIN;
|
||||
private String CHECKERIN_TIM;
|
||||
private String PRODATE;
|
||||
private String CREATE_TM;
|
||||
private String OP_FLAG;
|
||||
private String OP_TM;
|
||||
|
||||
}
|
||||
@@ -11,6 +11,7 @@ import org.nl.wms.database.material.service.IMdBaseMaterialService;
|
||||
import org.nl.wms.database.material.service.dao.MdBaseMaterial;
|
||||
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.dto.MesProductDataDto;
|
||||
import org.nl.wms.ext.mes.service.dto.MesWorkOrderDto;
|
||||
import org.nl.wms.ext.mes.service.dto.MesMudConsumptionDto;
|
||||
import org.nl.wms.ext.record.service.ISysInteractRecordService;
|
||||
@@ -18,6 +19,8 @@ import org.nl.wms.pdm.consumption.service.dao.PdmBdMudConsumption;
|
||||
import org.nl.wms.pdm.consumption.service.dao.mapper.PdmBdMudConsumptionMapper;
|
||||
import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService;
|
||||
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
|
||||
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
||||
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
|
||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch.task_manage.GeneralDefinition;
|
||||
@@ -49,6 +52,8 @@ public class WmsToMesServiceImpl implements WmsToMesService {
|
||||
private ISchBasePointService pointService;
|
||||
@Autowired
|
||||
private IPdmBdWorkorderService pdmBdWorkorderService;
|
||||
@Autowired
|
||||
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
|
||||
@Override
|
||||
public void reportMudConsumption(MesMudConsumptionDto mudObject) {
|
||||
log.info("上报mes消耗泥料记录的信息: {}", mudObject);
|
||||
@@ -100,6 +105,45 @@ public class WmsToMesServiceImpl implements WmsToMesService {
|
||||
mesRequestMapper.updateWorkOrderRead(collect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reportProductData(String groupId) {
|
||||
log.info("压机产出数据记录");
|
||||
// 获取组盘信息
|
||||
SchBaseVehiclematerialgroup vehiclematerialgroup = vehiclematerialgroupService.getById(groupId);
|
||||
String workorderCode = vehiclematerialgroup.getWorkorder_code();
|
||||
// 获取工单
|
||||
PdmBdWorkorder workorder = pdmBdWorkorderService.getByCode(workorderCode);
|
||||
String extData = workorder.getExt_data();
|
||||
MesWorkOrderDto mesWorkOrderDto = JSON.parseObject(extData, MesWorkOrderDto.class);
|
||||
log.info("获取mes给的工单数据:{}", mesWorkOrderDto);
|
||||
SchBasePoint basePoint = pointService.getById(workorder.getPoint_code());
|
||||
MesProductDataDto mesProductDataDto = new MesProductDataDto();
|
||||
mesProductDataDto.setMSGID(IdUtil.simpleUUID());
|
||||
mesProductDataDto.setFORDER_NO(mesWorkOrderDto.getFORDER_NO());
|
||||
mesProductDataDto.setPWORKSCHE_ID(mesWorkOrderDto.getPWORKSCHE_ID());
|
||||
mesProductDataDto.setFPRODUCT_MATERIAL_ID(mesWorkOrderDto.getFPRODUCT_MATERIAL_ID());
|
||||
mesProductDataDto.setFPRODUCT_MATERIAL_NAME(mesWorkOrderDto.getFPRODUCT_MATERIAL_NAME());
|
||||
mesProductDataDto.setFMATSPEC(mesProductDataDto.getFMATSPEC());
|
||||
mesProductDataDto.setFMATMODEL(mesProductDataDto.getFMATMODEL());
|
||||
mesProductDataDto.setBATCHNO(workorder.getBatch_no());
|
||||
mesProductDataDto.setPRESSUNIT(basePoint.getExt_point_code());
|
||||
mesProductDataDto.setFTEAM(workorder.getTeam());
|
||||
mesProductDataDto.setTRAY_NO(vehiclematerialgroup.getVehicle_code());
|
||||
mesProductDataDto.setPRO_SUBNUM(String.valueOf(vehiclematerialgroup.getMaterial_qty()));// 数量
|
||||
mesProductDataDto.setPRO_SUBUNIT("块");
|
||||
mesProductDataDto.setCHECKERIN_TIM(DateUtil.now());
|
||||
mesProductDataDto.setPRODATE(workorder.getProduce_date());
|
||||
mesProductDataDto.setCREATE_TM(DateUtil.now());
|
||||
mesProductDataDto.setOP_FLAG("0");
|
||||
log.info("返给MES的数据:{}", mesProductDataDto);
|
||||
// 插入mes数据库
|
||||
try {
|
||||
mesRequestMapper.insertProductData(mesProductDataDto);
|
||||
} catch (Exception e) {
|
||||
log.error("反馈压机产出插入mes数据库失败: {}", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public List<PdmBdWorkorder> toWorkOrderList(List<MesWorkOrderDto> mesWorkOrderInfos) {
|
||||
List<PdmBdWorkorder> list = new CopyOnWriteArrayList<>();
|
||||
mesWorkOrderInfos.forEach(mesWorkOrderDto -> {
|
||||
|
||||
@@ -274,8 +274,8 @@ public class HNMLTask extends AbstractTask {
|
||||
String vehicleCode = TaskUtils.defaultVehicleCode(param.getString("vehicle_code"));
|
||||
String vehicleType = param.getString("vehicle_type");
|
||||
// 泥料物料对应不出物料标识
|
||||
String materialCode = param.getString("material_code"); // 泥料编码: 吨袋号,泥料前
|
||||
// String substring = materialCode.substring(0, 12);
|
||||
String packNo = param.getString("material_code"); // 泥料编码: 吨袋号,泥料前
|
||||
String materialCode = packNo.substring(0, 12);
|
||||
// String mixTimes = param.getString("mix_number"); // 碾次
|
||||
// 载具类型默认料盅
|
||||
if (vehicleType == null || vehicleType.equals(GeneralDefinition.NO)) {
|
||||
@@ -320,6 +320,7 @@ public class HNMLTask extends AbstractTask {
|
||||
groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); // 待绑定
|
||||
groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); // 暂时不维护。
|
||||
groupEntity.setIs_delete(false);
|
||||
groupEntity.setExt_data(packNo);// todo: 对于混碾的组盘 暂时存吨袋号
|
||||
vehiclematerialgroupService.saveOrUpdate(groupEntity);
|
||||
return groupEntity.getGroup_id();
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.system.service.notice.ISysNoticeService;
|
||||
import org.nl.wms.database.brick.service.IMdBaseBrickInfoService;
|
||||
import org.nl.wms.ext.mes.service.WmsToMesService;
|
||||
import org.nl.wms.pdm.track.service.IPdmBdProductionProcessTrackingService;
|
||||
import org.nl.wms.pdm.track.service.dao.PdmBdProductionProcessTracking;
|
||||
import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService;
|
||||
@@ -69,7 +70,8 @@ public class YZSLTask extends AbstractTask {
|
||||
private IMdBaseBrickInfoService baseBrickInfoService;
|
||||
@Autowired
|
||||
private IPdmBdProductionProcessTrackingService processTrackingService;
|
||||
|
||||
@Autowired
|
||||
private WmsToMesService wmsToMesService;
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
protected void create() throws BadRequestException {
|
||||
@@ -181,6 +183,8 @@ public class YZSLTask extends AbstractTask {
|
||||
taskObj.setRemark("执行中");
|
||||
TaskUtils.setUpdateByAcs(taskObj);
|
||||
taskService.updateById(taskObj);
|
||||
// todo:暂时现在执行中的时候将满托上给mes
|
||||
wmsToMesService.reportProductData(taskObj.getGroup_id());
|
||||
}
|
||||
if (status.equals(TaskStatus.FINISHED)) { // 完成
|
||||
this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS);
|
||||
|
||||
@@ -10,12 +10,12 @@ spring:
|
||||
datasource:
|
||||
mysql:
|
||||
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
|
||||
url: jdbc:log4jdbc:mysql://${DB_HOST:10.93.41.198}:${DB_PORT:3306}/${DB_NAME:rl_mg_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||
username: ${DB_USER:root}
|
||||
password: ${DB_PWD:123456}
|
||||
# url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:rtmg_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||
# url: jdbc:log4jdbc:mysql://${DB_HOST:10.93.41.198}:${DB_PORT:3306}/${DB_NAME:rl_mg_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||
# username: ${DB_USER:root}
|
||||
# password: ${DB_PWD:12356}
|
||||
# password: ${DB_PWD:123456}
|
||||
url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:rtmg_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||
username: ${DB_USER:root}
|
||||
password: ${DB_PWD:12356}
|
||||
type: com.alibaba.druid.pool.DruidDataSource
|
||||
oracle:
|
||||
driver-class-name: oracle.jdbc.OracleDriver
|
||||
|
||||
@@ -50,7 +50,7 @@ https://juejin.cn/post/6844903775631572999
|
||||
<appender name="luceneAppender" class="org.nl.config.lucene.LuceneAppender" />
|
||||
<appender name="asyncLuceneAppender" class="ch.qos.logback.classic.AsyncAppender">
|
||||
<appender-ref ref="luceneAppender" />
|
||||
<!-- 设置队列大小,根据您的需求调整 -->
|
||||
<!-- 设置队列大小 -->
|
||||
<queueSize>512</queueSize>
|
||||
</appender>
|
||||
|
||||
@@ -62,7 +62,7 @@ https://juejin.cn/post/6844903775631572999
|
||||
</appender>
|
||||
<!--开发环境:打印控制台-->
|
||||
<springProfile name="dev">
|
||||
<root level="INFO">
|
||||
<root level="DEBUG">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="asyncLuceneAppender"/>
|
||||
</root>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.nl.ext;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
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.dto.MesMudConsumptionDto;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -16,9 +17,10 @@ import org.springframework.boot.test.context.SpringBootTest;
|
||||
public class TestDemo {
|
||||
@Autowired
|
||||
private MesRequestMapper mesRequestMapper;
|
||||
@Autowired
|
||||
private WmsToMesService wmsToMesService;
|
||||
@Test
|
||||
public void test01() {
|
||||
MesMudConsumptionDto mudObject = mesRequestMapper.getMudConsumption("1699671959522119680");
|
||||
System.out.println(mudObject);
|
||||
wmsToMesService.reportProductData("1701105828406366210");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user