diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesEquipmentExtService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesEquipmentExtService.java index 91c22c9..d86d540 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesEquipmentExtService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesEquipmentExtService.java @@ -11,6 +11,12 @@ public interface IMesEquipmentExtService { @ApiOperation(value = "根据生产线代码,工位代码查询工位设备集合") List getCellEquipmentList(String organizeCode, String workCenterCode, String workCellCode); + @ApiOperation(value = "根据生产线代码,工位代码查询工位设备集合") + List getWcEquipmentList(String organizeCode, String workCenterCode, String workCellCode); + + @ApiOperation(value = "根据生产线代码,工位代码查询工位设备") + MesWcEquipment getWcEquipment(String organizeCode, String workCenterCode, String workCellCode); + @ApiOperation(value = "根据设备变量配置类型查询设备数据变量接口逻辑集合") List getEquipmentVariableCfgList(String organizeCode, String variableCfgType); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesEquipmentExtService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesEquipmentExtService.java index 4950c6f..e63a7b2 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesEquipmentExtService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesEquipmentExtService.java @@ -16,6 +16,7 @@ import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; @@ -44,9 +45,7 @@ public class MesEquipmentExtService implements IMesEquipmentExtService { @Override public List getCellEquipmentList(String organizeCode, String workCenterCode, String workCellCode) { if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workCenterCode) || StringUtils.isEmpty(workCellCode)) return null; - List wcEquipmentDbList = wcEquipmentRepository.findByProperty( - new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.WORK_CENTER_CODE, MesPcnExtConstWords.WORK_CELL_CODE}, - new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workCenterCode, workCellCode}); + List wcEquipmentDbList = getWcEquipmentList(organizeCode, workCenterCode, workCellCode); if (CollectionUtils.isEmpty(wcEquipmentDbList)) return null; List cellEquipmentContextList = null; for (MesWcEquipment wcEquipmentDb : wcEquipmentDbList) { @@ -65,6 +64,22 @@ public class MesEquipmentExtService implements IMesEquipmentExtService { } @Override + public List getWcEquipmentList(String organizeCode, String workCenterCode, String workCellCode) { + return wcEquipmentRepository.findByProperty( + new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.WORK_CENTER_CODE, MesPcnExtConstWords.WORK_CELL_CODE}, + new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workCenterCode, workCellCode}); + } + + @Override + public MesWcEquipment getWcEquipment(String organizeCode, String workCenterCode, String workCellCode) { + List wcEquipmentDbList = getWcEquipmentList(organizeCode, workCenterCode, workCellCode); + if (CollectionUtils.isEmpty(wcEquipmentDbList)) return null; + if (wcEquipmentDbList.size() == 1) return wcEquipmentDbList.get(0); + List wcEquipmentDbListSort = wcEquipmentDbList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getSeq()))).sorted(Comparator.comparing(MesWcEquipment::getSeq)).collect(Collectors.toList()); + return !CollectionUtils.isEmpty(wcEquipmentDbListSort) ? wcEquipmentDbListSort.get(0) : wcEquipmentDbList.get(0); + } + + @Override public List getEquipmentVariableCfgList(String organizeCode, String variableCfgType) { if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(variableCfgType)) return null; return equipmentVariableCfgRepository.findByProperty( diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java index d1c9f37..29f8d73 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java @@ -256,6 +256,9 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService if (StringUtils.isEmpty(model.getPartInspection())) { partInspection = createPartInspection(model, MesExtEnumUtil.PART_INSPECTION_STATUS.QUALIFIED.getValue(), org); + if (model.getOptType() != null && model.getOptType() == 2) { + partInspection .setRefundFlag(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + } partInspectionRepository.save(partInspection); if (model.getSourceType() == MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue()) { @@ -281,6 +284,10 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService if (model.getPartInspection().getInspectionStatus() == MesExtEnumUtil.PART_INSPECTION_STATUS.FAIL.getValue()) { model.getPartInspection().setInspectionStatus(MesExtEnumUtil.PART_INSPECTION_STATUS.QUALIFIED.getValue()); ConvertBean.serviceModelUpdate(model.getPartInspection(), AuthUtil.getSessionUser().getUserName()); + + if (model.getOptType() != null && model.getOptType() == 2) { + model.getPartInspection().setRefundFlag(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + } partInspectionRepository.save(model.getPartInspection()); //查询当前单据明细 @@ -414,6 +421,9 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService model.getPartInspection().setInspectionStatus(MesExtEnumUtil.PART_INSPECTION_STATUS.FAIL.getValue()); ConvertBean.serviceModelUpdate(model.getPartInspection(), AuthUtil.getSessionUser().getUserName()); + if (model.getOptType() != null && model.getOptType() == 2) { + model.getPartInspection().setRefundFlag(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + } partInspectionRepository.save(model.getPartInspection()); //查询当前单据明细 List resultDetailList = queryResultDetailList(model, org); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesNcProcessingService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesNcProcessingService.java index e2e873f..cd930d3 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesNcProcessingService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesNcProcessingService.java @@ -123,6 +123,7 @@ public class MesNcProcessingService implements IMesNcProcessingService { DdlPreparedPack.getNumEqualPack(partInspection.getQty(), "qty", packBean); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.PART_INSPECTION_STATUS.FAIL.getValue(), "inspectionStatus", packBean); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.PART_INSPECTION_NC_STATUS.CREATE.getValue(), "ncStatus", packBean); + DdlPreparedPack.getNumEqualPack(partInspection.getRefundFlag(), "refundFlag", packBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean); pager = PagerHelper.getPager(pager, partInspectionRepository.findByHqlWhereCount(packBean)); @@ -387,11 +388,15 @@ public class MesNcProcessingService implements IMesNcProcessingService { model.getPartInspection().setInspectionStatus(MesExtEnumUtil.PART_INSPECTION_STATUS.QUALIFIED.getValue()); model.getPartInspection().setNcStatus(MesExtEnumUtil.PART_INSPECTION_NC_STATUS.NORMAL.getValue()); ConvertBean.serviceModelUpdate(model.getPartInspection(), model.getUserName()); - partInspectionRepository.save(model.getPartInspection()); String sourceValue = configService.getCfgValue(org, "UMLGO"); + if (model.getOptType() == 2) { sourceValue = refundSource; + model.getPartInspection().setRefundFlag(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); } + + partInspectionRepository.save(model.getPartInspection()); + //移库 转正常、放行:8000移至2000 MesMove move = createMove(model, sourceValue, configService.getCfgValue(org, "LGORT"), org, null == sn ? workCenterCode : sn.getWorkCenterCode(), MesExtEnumUtil.MOVE_TYPE.NORMAL_MOVE); ConvertBean.serviceModelInitialize(move,model.getUserName()); @@ -444,12 +449,15 @@ public class MesNcProcessingService implements IMesNcProcessingService { model.getPartInspection().setNcStatus(MesExtEnumUtil.PART_INSPECTION_NC_STATUS.REWORK.getValue()); model.getPartInspection().setReworkTaskId(reworkTask.getId()); ConvertBean.serviceModelUpdate(model.getPartInspection(),model.getUserName()); - partInspectionRepository.save(model.getPartInspection()); - String sourceValue = configService.getCfgValue(org, "UMLGO"); + if (model.getOptType() == 2) { sourceValue = refundSource; + model.getPartInspection().setRefundFlag(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); } + partInspectionRepository.save(model.getPartInspection()); + + MesMove move = createMove(model, sourceValue, areaCode, org, null == sn ? workCenterCode : sn.getWorkCenterCode(), MesExtEnumUtil.MOVE_TYPE.RETURN_MOVE); ConvertBean.serviceModelInitialize(move,model.getUserName()); @@ -484,6 +492,11 @@ public class MesNcProcessingService implements IMesNcProcessingService { model.getPartInspection().setNcStatus(MesExtEnumUtil.PART_INSPECTION_NC_STATUS.SCRAP.getValue()); model.getPartInspection().setRejectQty(model.getPartInspection().getQty()); ConvertBean.serviceModelUpdate(model.getPartInspection(), model.getUserName()); + + if (model.getOptType() == 2) { + model.getPartInspection().setRefundFlag(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + } + partInspectionRepository.save(model.getPartInspection()); if (isOrder) { String sourceValue = source; @@ -531,12 +544,15 @@ public class MesNcProcessingService implements IMesNcProcessingService { model.getPartInspection().setInspectionStatus(MesExtEnumUtil.PART_INSPECTION_STATUS.QUALIFIED.getValue()); model.getPartInspection().setNcStatus(MesExtEnumUtil.PART_INSPECTION_NC_STATUS.RELEASE.getValue()); ConvertBean.serviceModelUpdate(model.getPartInspection(), model.getUserName()); - partInspectionRepository.save(model.getPartInspection()); - String sourceValue = configService.getCfgValue(org, "UMLGO"); + if (model.getOptType() == 2) { sourceValue = refundSource; + + model.getPartInspection().setRefundFlag(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); } + partInspectionRepository.save(model.getPartInspection()); + //移库 转正常、放行:8000移至2000 MesMove move = createMove(model, sourceValue, configService.getCfgValue(org, "LGORT"), org, null == sn ? workCenterCode : sn.getWorkCenterCode(), MesExtEnumUtil.MOVE_TYPE.NORMAL_MOVE); ConvertBean.serviceModelInitialize(move,model.getUserName()); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/equiplog/MesWorkCellScanMonitorLogExtService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/equiplog/MesWorkCellScanMonitorLogExtService.java index 250bf53..26e90d1 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/equiplog/MesWorkCellScanMonitorLogExtService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/equiplog/MesWorkCellScanMonitorLogExtService.java @@ -1,5 +1,6 @@ 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.busi.IMesProductionProcessContextStepService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsOutContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesScanMonitorContext; @@ -11,6 +12,7 @@ import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; 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.MesWorkCellScanMonitorLog; import cn.estsh.i3plus.pojo.mes.model.StationResultBean; import cn.estsh.i3plus.pojo.mes.repository.MesWorkCellScanMonitorLogRepository; @@ -37,6 +39,9 @@ public class MesWorkCellScanMonitorLogExtService implements ISwsWriteDbLogServic private IMesProductionProcessContextStepService productionProcessContextStepService; @Autowired + private IMesEquipmentExtService equipmentExtService; + + @Autowired private MesWorkCellScanMonitorLogRepository workCellScanMonitorLogRepository; private final static Map> cellMsg2RepeatMap = new ConcurrentHashMap(); @@ -60,6 +65,12 @@ public class MesWorkCellScanMonitorLogExtService implements ISwsWriteDbLogServic 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()); + workCellScanMonitorLog.setEquipmentCode(null != wcEquipment ? wcEquipment.getEquipmentCode() : null); + workCellScanMonitorLog.setEquipmentName(null != wcEquipment ? wcEquipment.getEquipmentName() : null); + } + ConvertBean.serviceModelInitialize(workCellScanMonitorLog, resultBean.getUserInfo()); workCellScanMonitorLog.setCreateDatetime(resultBean.getCreateDatetime());