合并 dev-wuhan master(工位扫描监控日志去除分表配置,直接使用动态sql写入生产线对应的分表)

tags/yfai-pcn-ext-v2.3
王杰 7 months ago
commit b4e500dd6d

@ -0,0 +1,21 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.dao;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsOutContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesScanMonitorContext;
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
import io.swagger.annotations.ApiOperation;
import java.util.List;
public interface IMesWorkCellScanMonitorLogDao {
@ApiOperation(value = "写入工位扫描监控信息")
void insertWorkCellScanMonitorLog(StationResultBean resultBean, MesScanMonitorContext scanMonitorContext);
@ApiOperation(value = "修改工位扫描监控信息")
Integer updateWorkCellScanMonitorLog(String organizeCode, String workCenterCode, String workCellCode, Long mouldRecordId);
@ApiOperation(value = "修改工位扫描监控信息")
Integer updateWorkCellScanMonitorLog(String organizeCode, String workCenterCode, String userInfo, Long mouldRecordId, List<MesProductionPsOutContext> productionPsOutContextList);
}

@ -0,0 +1,167 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.daoimpl;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.dao.IMesWorkCellScanMonitorLogDao;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsOutContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesScanMonitorContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import java.util.List;
import java.util.StringJoiner;
import java.util.stream.Collectors;
@Service
public class MesWorkCellScanMonitorLogDao implements IMesWorkCellScanMonitorLogDao {
@Autowired
private EntityManager entityManager;
@Autowired
private SnowflakeIdMaker snowflakeIdMaker;
@Override
public void insertWorkCellScanMonitorLog(StationResultBean resultBean, MesScanMonitorContext scanMonitorContext) {
if (null == resultBean || null == scanMonitorContext) return;
StringBuffer builder = new StringBuffer();
builder.append(" insert into mes_work_cell_scan_monitor_");
builder.append(resultBean.getWorkCenterCode().toLowerCase());
builder.append("( id, organize_code, is_valid, is_deleted, create_user, create_date_time, modify_user, modify_date_time,");
builder.append("( description, remark, system_sync_date_time, system_sync_status,");
builder.append(" area_code, work_center_code, work_cell_code, equipment_code, equipment_name, process_code, process_name, craft_code, craft_name,");
builder.append(" mould_record_id, scan_info, work_order_no, serial_number, product_sn, cust_sn, part_no, part_name,");
builder.append(" step_code, log_type, message, message_type, deal_status, org_work_code)");
builder.append(" values ( :id , :organizeCode , :isValid , :isDeleted , :createUser , :createDatetime , :modifyUser , :modifyDatetime ,");
builder.append(" :description , :remark , :systemSyncDatetime , :systemSyncStatus ,");
builder.append(" :areaCode , :workCenterCode , :workCellCode , :equipmentCode , :equipmentName , :processCode , :processName , :craftCode , :craftName ,");
builder.append(" :mouldRecordId , :scanInfo , :workOrderNo , :serialNumber , :productSn , :custSn , :partNo , :partName ,");
builder.append(" :stepCode , :logType , :message , :messageType , :dealStatus , :orgWorkCode )");
Query insert = entityManager.createNativeQuery(builder.toString());
insert.setParameter(MesPcnExtConstWords.ID, snowflakeIdMaker.nextId());
insert.setParameter(MesPcnExtConstWords.ORGANIZE_CODE, resultBean.getOrganizeCode());
insert.setParameter(MesPcnExtConstWords.IS_VALID, CommonEnumUtil.IS_VAILD.VAILD.getValue());
insert.setParameter(MesPcnExtConstWords.IS_DELETED, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
insert.setParameter(MesPcnExtConstWords.CREATE_USER, resultBean.getUserInfo());
insert.setParameter(MesPcnExtConstWords.CREATE_DATE_TIME, TimeTool.getNowTime(true));
insert.setParameter(MesPcnExtConstWords.MODIFY_USER, resultBean.getUserInfo());
insert.setParameter(MesPcnExtConstWords.MODIFY_DATE_TIME, TimeTool.getNowTime(true));
insert.setParameter(MesPcnExtConstWords.DESCRIPTION, null);
insert.setParameter(MesPcnExtConstWords.REMARK, null);
insert.setParameter(MesPcnExtConstWords.SYSTEM_SYNC_DATE_TIME, null);
insert.setParameter(MesPcnExtConstWords.AREA_CODE, resultBean.getAreaCode());
insert.setParameter(MesPcnExtConstWords.WORK_CENTER_CODE, resultBean.getWorkCenterCode());
insert.setParameter(MesPcnExtConstWords.WORK_CELL_CODE, resultBean.getWorkCellCode());
insert.setParameter(MesPcnExtConstWords.EQUIPMENT_CODE, scanMonitorContext.getEquipmentCode());
insert.setParameter(MesPcnExtConstWords.EQUIPMENT_NAME, scanMonitorContext.getEquipmentName());
insert.setParameter(MesPcnExtConstWords.PROCESS_CODE, scanMonitorContext.getProcessCode());
insert.setParameter(MesPcnExtConstWords.PROCESS_NAME, scanMonitorContext.getProcessName());
insert.setParameter(MesPcnExtConstWords.CRAFT_CODE, scanMonitorContext.getCraftCode());
insert.setParameter(MesPcnExtConstWords.CRAFT_NAME, scanMonitorContext.getCraftName());
insert.setParameter(MesPcnExtConstWords.MOULD_RECORD_ID, scanMonitorContext.getMouldRecordId());
insert.setParameter(MesPcnExtConstWords.SCAN_INFO, resultBean.getScanInfo());
insert.setParameter(MesPcnExtConstWords.WORK_ORDER_NO, null);
insert.setParameter(MesPcnExtConstWords.SERIAL_NUMBER, null);
insert.setParameter(MesPcnExtConstWords.PRODUCT_SN, null);
insert.setParameter(MesPcnExtConstWords.CUST_SN, null);
insert.setParameter(MesPcnExtConstWords.PART_NO, null);
insert.setParameter(MesPcnExtConstWords.PART_NAME, null);
insert.setParameter(MesPcnExtConstWords.STEP_CODE, resultBean.getStepCode());
insert.setParameter(MesPcnExtConstWords.LOG_TYPE, resultBean.getLogType());
insert.setParameter(MesPcnExtConstWords.MESSAGE, resultBean.getMessage());
insert.setParameter(MesPcnExtConstWords.MESSAGE_TYPE, MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_MESSAGE_TYPE.codeOfValue(resultBean.getDataType()));
insert.setParameter(MesPcnExtConstWords.ORG_WORK_CODE, new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(resultBean.getOrganizeCode()).add(resultBean.getWorkCenterCode()).toString());
//存在开模ID的记录延迟同步
if (!StringUtils.isEmpty(scanMonitorContext.getMouldRecordId())) {
insert.setParameter(MesPcnExtConstWords.SYSTEM_SYNC_STATUS, CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
insert.setParameter(MesPcnExtConstWords.DEAL_STATUS, MesExtEnumUtil.MES_LOG_DEAL_STATUS.UNDEAL.getValue());
} else {
insert.setParameter(MesPcnExtConstWords.SYSTEM_SYNC_STATUS, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
insert.setParameter(MesPcnExtConstWords.DEAL_STATUS, MesExtEnumUtil.MES_LOG_DEAL_STATUS.DEAL_SUCCESS.getValue());
}
insert.executeUpdate();
}
@Override
public Integer updateWorkCellScanMonitorLog(String organizeCode, String workCenterCode, String workCellCode, Long mouldRecordId) {
if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workCenterCode) || StringUtils.isEmpty(workCellCode)) return MesPcnExtConstWords.ZERO;
StringBuffer builder = new StringBuffer();
builder.append(" update mes_work_cell_scan_monitor_");
builder.append(workCenterCode.toLowerCase());
builder.append(" set system_sync_status = :systemSyncStatus , deal_status = :dealStatus1 ");
builder.append(" where organize_code = :organizeCode and deal_status = :dealStatus2 and work_cell_code = :workCellCode ");
if (!StringUtils.isEmpty(mouldRecordId)) builder.append(" and mould_record_id != :mouldRecordId ");
Query update = entityManager.createNativeQuery(builder.toString());
update.setParameter(MesPcnExtConstWords.SYSTEM_SYNC_STATUS, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
update.setParameter("dealStatus1", MesExtEnumUtil.MES_LOG_DEAL_STATUS.DEAL_SUCCESS.getValue());
update.setParameter(MesPcnExtConstWords.ORGANIZE_CODE, organizeCode);
update.setParameter("dealStatus2", MesExtEnumUtil.MES_LOG_DEAL_STATUS.UNDEAL.getValue());
update.setParameter(MesPcnExtConstWords.WORK_CELL_CODE, workCellCode);
if (!StringUtils.isEmpty(mouldRecordId)) update.setParameter(MesPcnExtConstWords.MOULD_RECORD_ID, mouldRecordId);
return update.executeUpdate();
}
@Override
public Integer updateWorkCellScanMonitorLog(String organizeCode, String workCenterCode, String userInfo, Long mouldRecordId, List<MesProductionPsOutContext> productionPsOutContextList) {
if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workCenterCode) || StringUtils.isEmpty(mouldRecordId) || CollectionUtils.isEmpty(productionPsOutContextList)) return MesPcnExtConstWords.ZERO;
String workOrderNo = productionPsOutContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getWorkOrderNo()))).map(MesProductionPsOutContext::getWorkOrderNo).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON));
String serialNumber = productionPsOutContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getSerialNumber()))).map(MesProductionPsOutContext::getSerialNumber).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON));
String productSn = productionPsOutContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getProductSn()))).map(MesProductionPsOutContext::getProductSn).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON));
String custSn = productionPsOutContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCustSn()))).map(MesProductionPsOutContext::getCustSn).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON));
String partNo = productionPsOutContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getPartNo()))).map(MesProductionPsOutContext::getPartNo).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON));
String partName = productionPsOutContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getPartName()))).map(MesProductionPsOutContext::getPartName).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON));
StringBuffer builder = new StringBuffer();
builder.append(" update mes_work_cell_scan_monitor_");
builder.append(workCenterCode.toLowerCase());
builder.append(" set work_order_no = :workOrderNo , serial_number = :serialNumber , product_sn = :productSn , cust_sn = :custSn , part_no = :partNo , part_name = :partName ,");
builder.append(" modify_user = :modifyUser , modify_date_time = :modifyDatetime , system_sync_status = :systemSyncStatus , deal_status = :dealStatus1 ");
builder.append(" where organize_code = :organizeCode and mould_record_id = :mouldRecordId ");
Query update = entityManager.createNativeQuery(builder.toString());
update.setParameter(MesPcnExtConstWords.WORK_ORDER_NO, workOrderNo);
update.setParameter(MesPcnExtConstWords.SERIAL_NUMBER, serialNumber);
update.setParameter(MesPcnExtConstWords.PRODUCT_SN, productSn);
update.setParameter(MesPcnExtConstWords.CUST_SN, custSn);
update.setParameter(MesPcnExtConstWords.PART_NO, partNo);
update.setParameter(MesPcnExtConstWords.PART_NAME, partName);
update.setParameter(MesPcnExtConstWords.MODIFY_USER, userInfo);
update.setParameter(MesPcnExtConstWords.MODIFY_DATE_TIME, TimeTool.getNowTime(true));
update.setParameter(MesPcnExtConstWords.SYSTEM_SYNC_STATUS, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
update.setParameter(MesPcnExtConstWords.DEAL_STATUS, MesExtEnumUtil.MES_LOG_DEAL_STATUS.DEAL_SUCCESS.getValue());
update.setParameter(MesPcnExtConstWords.ORGANIZE_CODE, organizeCode);
update.setParameter(MesPcnExtConstWords.MOULD_RECORD_ID, mouldRecordId);
return update.executeUpdate();
}
}

@ -257,7 +257,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
partInspection = createPartInspection(model, MesExtEnumUtil.PART_INSPECTION_STATUS.QUALIFIED.getValue(), org); partInspection = createPartInspection(model, MesExtEnumUtil.PART_INSPECTION_STATUS.QUALIFIED.getValue(), org);
if (model.getOptType() != null && model.getOptType() == 2) { if (model.getOptType() != null && model.getOptType() == 2) {
partInspection .setRefundFlag(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); partInspection.setRefundFlag(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
} }
partInspectionRepository.save(partInspection); partInspectionRepository.save(partInspection);
@ -360,6 +360,11 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
if (StringUtils.isEmpty(model.getPartInspection())) { if (StringUtils.isEmpty(model.getPartInspection())) {
partInspection = createPartInspection(model, MesExtEnumUtil.PART_INSPECTION_STATUS.FAIL.getValue(), org); partInspection = createPartInspection(model, MesExtEnumUtil.PART_INSPECTION_STATUS.FAIL.getValue(), org);
if (model.getOptType() != null && model.getOptType() == 2) {
partInspection.setRefundFlag(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
}
model.setPartInspection(partInspectionRepository.save(partInspection)); model.setPartInspection(partInspectionRepository.save(partInspection));
List<String> defectTypeNoExitList = new ArrayList<>(); List<String> defectTypeNoExitList = new ArrayList<>();

@ -201,6 +201,8 @@ public class MesProduceSnPrintService implements IMesProduceSnPrintService {
resultModel.getMesProduceSnList().forEach(mesProduceSn -> { resultModel.getMesProduceSnList().forEach(mesProduceSn -> {
mesProduceSn.setWorkCenterCode(workCenterCode); mesProduceSn.setWorkCenterCode(workCenterCode);
mesProduceSn.setPrintCount(MesPcnExtConstWords.ONE);
mesProduceSn.setPrintStatus(MesExtEnumUtil.PRINT_STATUS.PRINTED.getValue());
mesProduceSn.setFid(UUID.randomUUID().toString()); mesProduceSn.setFid(UUID.randomUUID().toString());
//保存条码 //保存条码
mesProduceSnRDao.insert(mesProduceSn); mesProduceSnRDao.insert(mesProduceSn);

@ -2,23 +2,15 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.equiplog;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesEquipmentExtService; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesEquipmentExtService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.dao.IMesWorkCellScanMonitorLogDao;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsOutContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsOutContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesScanMonitorContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesScanMonitorContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.swslog.ISwsWriteDbLogService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.swslog.ISwsWriteDbLogService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesWcEquipment; import cn.estsh.i3plus.pojo.mes.bean.MesWcEquipment;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCellScanMonitorLog;
import cn.estsh.i3plus.pojo.mes.model.StationResultBean; import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
import cn.estsh.i3plus.pojo.mes.repository.MesWorkCellScanMonitorLogRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
@ -26,10 +18,8 @@ import org.springframework.util.StringUtils;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.StringJoiner;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArrayList;
import java.util.stream.Collectors;
@Slf4j @Slf4j
@Service @Service
@ -42,7 +32,7 @@ public class MesWorkCellScanMonitorLogExtService implements ISwsWriteDbLogServic
private IMesEquipmentExtService equipmentExtService; private IMesEquipmentExtService equipmentExtService;
@Autowired @Autowired
private MesWorkCellScanMonitorLogRepository workCellScanMonitorLogRepository; private IMesWorkCellScanMonitorLogDao workCellScanMonitorLogDao;
private final static Map<String, List<String>> cellMsg2RepeatMap = new ConcurrentHashMap(); private final static Map<String, List<String>> cellMsg2RepeatMap = new ConcurrentHashMap();
@ -54,36 +44,18 @@ public class MesWorkCellScanMonitorLogExtService implements ISwsWriteDbLogServic
if (checkRepeat(resultBean, scanMonitorContext)) return; if (checkRepeat(resultBean, scanMonitorContext)) return;
MesWorkCellScanMonitorLog workCellScanMonitorLog = new MesWorkCellScanMonitorLog(); if (null == scanMonitorContext) scanMonitorContext = new MesScanMonitorContext();
if (null != scanMonitorContext) BeanUtils.copyProperties(scanMonitorContext, workCellScanMonitorLog); if (StringUtils.isEmpty(scanMonitorContext.getEquipmentCode())) {
else log.info("工厂{}生产线{}工位{}: MesWorkCellScanMonitorLogExtService --- 上下文当前不存在工位扫描监控信息 --- {}", resultBean.getOrganizeCode(), resultBean.getWorkCenterCode(), resultBean.getWorkCellCode(), resultBean.toWriteDbString());
BeanUtils.copyProperties(resultBean, workCellScanMonitorLog);
workCellScanMonitorLog.setMessageType(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_MESSAGE_TYPE.codeOfValue(resultBean.getDataType()));
workCellScanMonitorLog.setOrgWorkCode(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(workCellScanMonitorLog.getOrganizeCode()).add(workCellScanMonitorLog.getWorkCenterCode()).toString());
if (StringUtils.isEmpty(workCellScanMonitorLog.getEquipmentCode())) {
MesWcEquipment wcEquipment = equipmentExtService.getWcEquipment(resultBean.getOrganizeCode(), resultBean.getWorkCenterCode(), resultBean.getWorkCellCode()); MesWcEquipment wcEquipment = equipmentExtService.getWcEquipment(resultBean.getOrganizeCode(), resultBean.getWorkCenterCode(), resultBean.getWorkCellCode());
workCellScanMonitorLog.setEquipmentCode(null != wcEquipment ? wcEquipment.getEquipmentCode() : null); scanMonitorContext.setEquipmentCode(null != wcEquipment ? wcEquipment.getEquipmentCode() : null);
workCellScanMonitorLog.setEquipmentName(null != wcEquipment ? wcEquipment.getEquipmentName() : null); scanMonitorContext.setEquipmentName(null != wcEquipment ? wcEquipment.getEquipmentName() : null);
} }
ConvertBean.serviceModelInitialize(workCellScanMonitorLog, resultBean.getUserInfo()); if (null == scanMonitorContext)
workCellScanMonitorLog.setCreateDatetime(resultBean.getCreateDatetime()); log.info("工厂{}生产线{}工位{}: MesWorkCellScanMonitorLogExtService --- 上下文当前不存在工位扫描监控信息 --- {}", resultBean.getOrganizeCode(), resultBean.getWorkCenterCode(), resultBean.getWorkCellCode(), resultBean.toWriteDbString());
//存在开模ID的记录延迟同步
if (!StringUtils.isEmpty(workCellScanMonitorLog.getMouldRecordId())) {
workCellScanMonitorLog.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
workCellScanMonitorLog.setDealStatus(MesExtEnumUtil.MES_LOG_DEAL_STATUS.UNDEAL.getValue());
} else {
workCellScanMonitorLog.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
workCellScanMonitorLog.setDealStatus(MesExtEnumUtil.MES_LOG_DEAL_STATUS.DEAL_SUCCESS.getValue());
}
workCellScanMonitorLogRepository.insert(workCellScanMonitorLog); workCellScanMonitorLogDao.insertWorkCellScanMonitorLog(resultBean, scanMonitorContext);
} }
@ -91,22 +63,15 @@ public class MesWorkCellScanMonitorLogExtService implements ISwsWriteDbLogServic
initCellMsg2RepeatMap(resultBean); initCellMsg2RepeatMap(resultBean);
Long mouldRecordId = null != scanMonitorContext ? scanMonitorContext.getMouldRecordId() : null; Long mouldRecordId = (null != scanMonitorContext && !StringUtils.isEmpty(scanMonitorContext.getMouldRecordId())) ? scanMonitorContext.getMouldRecordId() : null;
String mouldRecordIdStr = !StringUtils.isEmpty(mouldRecordId) ? mouldRecordId.toString() : MesPcnExtConstWords.EMPTY; String mouldRecordIdStr = !StringUtils.isEmpty(mouldRecordId) ? mouldRecordId.toString() : MesPcnExtConstWords.EMPTY;
if (!cellMsg2RepeatMap.get(resultBean.getClientInfo()).get(0).equals(mouldRecordIdStr)) { if (!cellMsg2RepeatMap.get(resultBean.getClientInfo()).get(0).equals(mouldRecordIdStr)) {
cellMsg2RepeatMap.get(resultBean.getClientInfo()).clear(); cellMsg2RepeatMap.get(resultBean.getClientInfo()).clear();
cellMsg2RepeatMap.get(resultBean.getClientInfo()).add(0, mouldRecordIdStr); cellMsg2RepeatMap.get(resultBean.getClientInfo()).add(0, mouldRecordIdStr);
//补偿数据 //补偿数据: 将工位排除当前开模ID的未处理的的数据改成已处理,未同步
DdlPackBean packBean = DdlPackBean.getDdlPackBean(resultBean.getOrganizeCode()); Integer count = workCellScanMonitorLogDao.updateWorkCellScanMonitorLog(resultBean.getOrganizeCode(), resultBean.getWorkCenterCode(), resultBean.getWorkCellCode(), mouldRecordId);
DdlPreparedPack.getStringEqualPack(resultBean.getWorkCenterCode(), MesPcnExtConstWords.WORK_CENTER_CODE, packBean);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.MES_LOG_DEAL_STATUS.UNDEAL.getValue(), MesPcnExtConstWords.DEAL_STATUS, packBean);
if (!StringUtils.isEmpty(mouldRecordId)) DdlPreparedPack.getNumNOEqualPack(mouldRecordId, MesPcnExtConstWords.MOULD_RECORD_ID, packBean);
int count = workCellScanMonitorLogRepository.updateByPropertiesNoSync(
new String[]{MesPcnExtConstWords.SYSTEM_SYNC_STATUS, MesPcnExtConstWords.DEAL_STATUS},
new Object[]{CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), MesExtEnumUtil.MES_LOG_DEAL_STATUS.DEAL_SUCCESS.getValue()},
packBean);
log.info("工厂{}生产线{}工位{}: MesWorkCellScanMonitorLogExtService --- 补偿同步条数:{} ---", resultBean.getOrganizeCode(), resultBean.getWorkCenterCode(), resultBean.getWorkCellCode(), count); log.info("工厂{}生产线{}工位{}: MesWorkCellScanMonitorLogExtService --- 补偿同步条数:{} ---", resultBean.getOrganizeCode(), resultBean.getWorkCenterCode(), resultBean.getWorkCellCode(), count);
@ -155,23 +120,7 @@ public class MesWorkCellScanMonitorLogExtService implements ISwsWriteDbLogServic
List<MesProductionPsOutContext> productionPsOutContextList = resultBean.getResultList(); List<MesProductionPsOutContext> productionPsOutContextList = resultBean.getResultList();
String workOrderNo = productionPsOutContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getWorkOrderNo()))).map(MesProductionPsOutContext::getWorkOrderNo).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON)); workCellScanMonitorLogDao.updateWorkCellScanMonitorLog(resultBean.getOrganizeCode(), resultBean.getWorkCenterCode(), resultBean.getUserInfo(), Long.valueOf(resultBean.getScanInfo()), productionPsOutContextList);
String serialNumber = productionPsOutContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getSerialNumber()))).map(MesProductionPsOutContext::getSerialNumber).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON));
String productSn = productionPsOutContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getProductSn()))).map(MesProductionPsOutContext::getProductSn).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON));
String custSn = productionPsOutContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCustSn()))).map(MesProductionPsOutContext::getCustSn).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON));
String partNo = productionPsOutContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getPartNo()))).map(MesProductionPsOutContext::getPartNo).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON));
String partName = productionPsOutContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getPartName()))).map(MesProductionPsOutContext::getPartName).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON));
DdlPackBean packBean = DdlPackBean.getDdlPackBean(resultBean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(resultBean.getWorkCenterCode(), MesPcnExtConstWords.WORK_CENTER_CODE, packBean);
DdlPreparedPack.getNumEqualPack(Long.valueOf(resultBean.getScanInfo()), MesPcnExtConstWords.MOULD_RECORD_ID, packBean);
workCellScanMonitorLogRepository.updateByProperties(
new String[]{MesPcnExtConstWords.WORK_ORDER_NO, MesPcnExtConstWords.SERIAL_NUMBER, MesPcnExtConstWords.PRODUCT_SN, MesPcnExtConstWords.CUST_SN,
MesPcnExtConstWords.PART_NO, MesPcnExtConstWords.PART_NAME, MesPcnExtConstWords.MODIFY_DATE_TIME, MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.DEAL_STATUS},
new Object[]{workOrderNo, serialNumber, productSn, custSn,
partNo, partName, TimeTool.getNowTime(true), resultBean.getUserInfo(), MesExtEnumUtil.MES_LOG_DEAL_STATUS.DEAL_SUCCESS.getValue()},
packBean);
} }

@ -63,6 +63,10 @@ public class MesPcnExtConstWords {
public static final String USER_NAME = "userName"; public static final String USER_NAME = "userName";
// 修改人 // 修改人
public static final String MODIFY_USER = "modifyUser"; public static final String MODIFY_USER = "modifyUser";
// 描述
public static final String DESCRIPTION = "description";
// 备注
public static final String REMARK = "remark";
// 修改人 // 修改人
public static final String USER_INFO = "userInfo"; public static final String USER_INFO = "userInfo";
// 同步标志 // 同步标志
@ -111,8 +115,12 @@ public class MesPcnExtConstWords {
public static final String SHIFT_GROUP_NAME = "shiftGroupName"; public static final String SHIFT_GROUP_NAME = "shiftGroupName";
// 工序代码 // 工序代码
public static final String PROCESS_CODE = "processCode"; public static final String PROCESS_CODE = "processCode";
// 工序名称
public static final String PROCESS_NAME = "processName";
// 工艺代码 // 工艺代码
public static final String CRAFT_CODE = "craftCode"; public static final String CRAFT_CODE = "craftCode";
// 工艺名称
public static final String CRAFT_NAME = "craftName";
// 生产工单号 // 生产工单号
public static final String WORK_ORDER_NO = "workOrderNo"; public static final String WORK_ORDER_NO = "workOrderNo";
// 数据来源 // 数据来源
@ -199,10 +207,6 @@ public class MesPcnExtConstWords {
public static final String PACKAGE_TYPE_CODE = "packageTypeCode"; public static final String PACKAGE_TYPE_CODE = "packageTypeCode";
//零件生产组代码 //零件生产组代码
public static final String PART_PROD_GROUP_CODE = "partProdGroupCode"; public static final String PART_PROD_GROUP_CODE = "partProdGroupCode";
//描述
public static final String DESCRIPTION = "description";
//描述
public static final String REMARK = "remark";
//状态 //状态
public static final String STATUS = "status"; public static final String STATUS = "status";
//上线时间 //上线时间
@ -215,6 +219,12 @@ public class MesPcnExtConstWords {
// 客制化条码长度:通用 // 客制化条码长度:通用
public static final Integer CUSTOMER_SN_LENGTH_GM = 58; public static final Integer CUSTOMER_SN_LENGTH_GM = 58;
// 日志类型
public static final String LOG_TYPE = "logType";
// 信息类型
public static final String MESSAGE_TYPE = "messageType";
// 工厂_工作中心
public static final String ORG_WORK_CODE = "orgWorkCode";
// 时间格式 // 时间格式
public static final String DATE_FORMAT_SSS = "yyyy-MM-dd HH:mm:ss.SSS"; public static final String DATE_FORMAT_SSS = "yyyy-MM-dd HH:mm:ss.SSS";

Loading…
Cancel
Save