From f079ee5f034d2a264021bfc3b82bb46ac49bf719 Mon Sep 17 00:00:00 2001 From: jun Date: Wed, 20 Nov 2024 00:21:43 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E8=BF=87=E7=A8=8B=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E6=9F=A5=E8=AF=A2=E5=B7=A5=E5=8D=95=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=9F=A5=E8=AF=A2=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/pcn/api/base/IMesShiftService.java | 5 +++ .../busi/MesProdShiftRecordController.java | 23 ++++++++++---- .../serviceimpl/base/MesShiftServiceImpl.java | 37 ++++++++++++++++++++++ .../busi/MesBoxingErrorProofingService.java | 29 +++++++++++------ .../station/MesProductionNoSortModuleService.java | 34 ++++++-------------- 5 files changed, 87 insertions(+), 41 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesShiftService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesShiftService.java index b92c748..ba61f15 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesShiftService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesShiftService.java @@ -3,10 +3,12 @@ package cn.estsh.i3plus.ext.mes.pcn.api.base; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.mes.bean.MesProdShiftRecord; import cn.estsh.i3plus.pojo.mes.bean.MesShift; import io.swagger.annotations.ApiOperation; import java.util.List; +import java.util.Map; /** * @Description: 产线与班次的对应关系 @@ -23,4 +25,7 @@ public interface IMesShiftService { @ApiOperation(value = "查询产线与班次的对应关系") public List queryMesShift(String organizeCode, String workCenterCode); + + @ApiOperation(value = "获取当前班次时间日期") + Map getShiftTimeMap(MesProdShiftRecord record); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesProdShiftRecordController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesProdShiftRecordController.java index b0e2b55..12f01c5 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesProdShiftRecordController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesProdShiftRecordController.java @@ -1,9 +1,10 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.controller.busi; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesProdShiftRecordService; +import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesShiftService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionCustomContextStepService; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService; import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.mes.pcn.util.StationKvBeanUtil; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; @@ -18,12 +19,12 @@ import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ValidatorBean; import com.google.common.base.Objects; import io.swagger.annotations.ApiOperation; -import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; +import java.util.Map; /** * @Description: 开关班记录 @@ -39,6 +40,10 @@ public class MesProdShiftRecordController { @Autowired private IMesProductionCustomContextStepService productionCustomContextStepService; + + @Autowired + private IMesShiftService mesShiftService; + @GetMapping("/query-pager") @ApiOperation(value = "查询开关班记录") public ResultBean queryMesProdShiftRecordByPager(MesProdShiftRecord mesProdShiftRecord, Pager pager) { @@ -121,12 +126,18 @@ public class MesProdShiftRecordController { //封装展示组件班组班次内容 private List getProdShiftData(MesProdShiftRecord record) { - - return StationKvBeanUtil.addStationKvBeanList(new ArrayList<>(), + List stationKvBeans = StationKvBeanUtil.addStationKvBeanList(new ArrayList<>(), new StationKvBean("shiftGroup", "班组", record.getShiftGroup()), new StationKvBean("shiftGroupName", "班组名称", record.getShiftGroup()), new StationKvBean("shiftCode", "班次", record.getShiftCode()), - new StationKvBean("shiftName", "班次名称", record.getShiftName())) - ; + new StationKvBean("shiftName", "班次名称", record.getShiftName())); + //班次开始时间 ,班次结束时间 + Map shiftTimeMap = mesShiftService.getShiftTimeMap(record); + if (!java.util.Objects.isNull(shiftTimeMap)) { + StationKvBeanUtil.addStationKvBeanList(stationKvBeans, + new StationKvBean(MesPcnExtConstWords.START_TIME,"开始时间",shiftTimeMap.get(MesPcnExtConstWords.START_TIME)), + new StationKvBean(MesPcnExtConstWords.END_TIME,"结束时间",shiftTimeMap.get(MesPcnExtConstWords.END_TIME))); + } + return stationKvBeans; } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesShiftServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesShiftServiceImpl.java index e557d1e..687b13a 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesShiftServiceImpl.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesShiftServiceImpl.java @@ -1,19 +1,29 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesShiftService; +import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; +import cn.estsh.i3plus.mes.pcn.util.DateUtil; +import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.mes.bean.MesProdShiftRecord; import cn.estsh.i3plus.pojo.mes.bean.MesShift; import cn.estsh.i3plus.pojo.mes.repository.MesShiftRepository; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.Optional; /** @@ -49,4 +59,31 @@ public class MesShiftServiceImpl implements IMesShiftService { DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", packBean); return mesShiftRepository.findByHqlWhere(packBean); } + + @Override + public Map getShiftTimeMap(MesProdShiftRecord record) { + List shiftList = queryMesShift(record.getOrganizeCode(), record.getWorkCenterCode()); + if (CollectionUtils.isEmpty(shiftList)) { + return null; + } + Optional shiftOptional = shiftList.stream().filter(t -> t.getShiftCode().equals(record.getShiftCode())).findFirst(); + if (!shiftOptional.isPresent()) { + return null; + } + if (StringUtils.isEmpty(shiftOptional.get().getStartTime()) || StringUtils.isEmpty(shiftOptional.get().getEndTime()) || StringUtils.isEmpty(record.getStartTime())) { + return null; + } + String startData = TimeTool.parseStringFormat(record.getStartTime(), DateUtil.BASE_FORMAT, DateUtil.SHORT_FORMAT); + //白班 + String startTime = startData + " " + shiftOptional.get().getStartTime(); + String endTime = startData + " " + shiftOptional.get().getEndTime(); + //晚班 + if (MesExtEnumUtil.SHIFT_CODE.SHIFT_CODE_20.getValue().equals(record.getShiftCode())) { + endTime = TimeTool.getToday(DateUtil.addDays(record.getStartTime(), 1)) + " " + shiftOptional.get().getEndTime(); + } + Map shiftTimeMap = new HashMap<>(2); + shiftTimeMap.put(MesPcnExtConstWords.START_TIME, startTime); + shiftTimeMap.put(MesPcnExtConstWords.END_TIME, endTime); + return shiftTimeMap; + } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesBoxingErrorProofingService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesBoxingErrorProofingService.java index 87c8b97..918589a 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesBoxingErrorProofingService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesBoxingErrorProofingService.java @@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesBoxingErrorProofingService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesConfigService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionRecordService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.platform.common.convert.ConvertBean; @@ -67,6 +68,9 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer @Autowired private IMesProduceSnExtService mesProduceSnExtService; + @Autowired + private IMesProductionRecordService mesProductionRecordService; + @Override public ListPager queryMesPackageDetailByPager(MesPackage mesPackage, Pager pager) { @@ -371,16 +375,21 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer if (!MesExtEnumUtil.PRODUCE_SN_STATUS.checkAllowBoxingErrorProofing(nextMesProduceSn.getSnStatus()) || !MesExtEnumUtil.PRODUCE_QC_STATUS.checkAllowBoxingErrorProofing(nextMesProduceSn.getQcStatus())) { MesPcnException.throwMesBusiException("条码【%s】状态【%s】质量状态【%s】不允许操作装箱防错,请检查数据!", mesPackageDetail.getSerialNumber(), MesExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(nextMesProduceSn.getSnStatus()), MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(nextMesProduceSn.getQcStatus())); } - //工艺校验 - if(!Objects.isNull(packingDefine) && !Objects.isNull(packingDefine.getCheckCraftFlag()) && CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == packingDefine.getCheckCraftFlag()){ - if(StringUtils.isEmpty(packingDefine.getCraft())){ - MesPcnException.throwMesBusiException("条码【%s】校验装箱防错对应工艺为空,请检查数据!", mesPackageDetail.getSerialNumber()); - } - //校验条码是否经过该工艺 - Optional produceSnOptional = produceSnList.stream().filter(t -> !StringUtils.isEmpty(t.getCraftCode()) && packingDefine.getCraft().equals(t.getCraftCode())).findFirst(); - if(!produceSnOptional.isPresent()){ - MesPcnException.throwMesBusiException("条码【%s】校验装箱防错对应工艺【%s】失败,请检查数据!", mesPackageDetail.getSerialNumber(),packingDefine.getCraft()); - } + } + //查询加工记录 + List productionRecordList = mesProductionRecordService.findProductionRecordList(mesPackageDetail.getOrganizeCode(), mesPackageDetail.getSerialNumber()); + //工艺校验 + if(!Objects.isNull(packingDefine) && !Objects.isNull(packingDefine.getCheckCraftFlag()) && CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == packingDefine.getCheckCraftFlag()){ + if(CollectionUtils.isEmpty(productionRecordList)){ + MesPcnException.throwMesBusiException("条码【%s】校验装箱防错对应工艺失败,加工记录信息不存在,请检查数据!", mesPackageDetail.getSerialNumber()); + } + if(StringUtils.isEmpty(packingDefine.getCraft())){ + MesPcnException.throwMesBusiException("条码【%s】校验装箱防错对应工艺为空,请检查数据!", mesPackageDetail.getSerialNumber()); + } + //校验条码是否经过该工艺 + Optional productionRecordOptional = productionRecordList.stream().filter(t -> !StringUtils.isEmpty(t.getCraftCode()) && packingDefine.getCraft().equals(t.getCraftCode())).findFirst(); + if(!productionRecordOptional.isPresent()){ + MesPcnException.throwMesBusiException("条码【%s】校验装箱防错对应工艺【%s】失败,请检查数据!", mesPackageDetail.getSerialNumber(),packingDefine.getCraft()); } } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionNoSortModuleService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionNoSortModuleService.java index 3cde08f..c9dad0f 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionNoSortModuleService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionNoSortModuleService.java @@ -83,10 +83,6 @@ public class MesProductionNoSortModuleService extends BaseModuleService { this.sendMessage(reqBean, new StationResultBean().writeDbLog(), "请先开班!", MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT); MesPcnException.throwBusiException("请先开班!"); } - - //班次开始时间 ,班次结束时间 - getShiftTimeStationKvBean(reqBean, prodShiftDataContext); - // 发送班次班组和工单 StationResultBean resultBean = getStationResultBean(reqBean, moduleContentContext, prodShiftDataContext); this.sendMessage(reqBean, resultBean); @@ -112,25 +108,6 @@ public class MesProductionNoSortModuleService extends BaseModuleService { ((IStepService) SpringContextsUtil.getBean("mesEquipByPassReadStepService")).executeInState(reqBean); } - - private void getShiftTimeStationKvBean(StationRequestBean reqBean, List prodShiftDataContext) { - List shiftList = mesShiftService.queryMesShift(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode()); - if (CollectionUtils.isEmpty(shiftList)){ - return; - } - Optional shiftCodeOptional = prodShiftDataContext.stream().filter(shift -> MesPcnExtConstWords.SHIFT_CODE.equals(shift.getKey())).findFirst(); - if (!shiftCodeOptional.isPresent()) { - return; - } - Optional shiftOptional = shiftList.stream().filter(t -> t.getShiftCode().equals(shiftCodeOptional.get().getValue())).findFirst(); - if (!shiftOptional.isPresent()) { - return; - } - StationKvBeanUtil.addStationKvBeanList(prodShiftDataContext, - new StationKvBean(MesPcnExtConstWords.START_TIME, "班次开始时间", shiftOptional.get().getStartTime()), - new StationKvBean(MesPcnExtConstWords.END_TIME, "班次结束时间", shiftOptional.get().getEndTime())); - } - private List getShiftRecordStationKvBeans(StationRequestBean reqBean) { // 获取班次信息 redis List prodShiftDataContext = productionCustomContextStepService.getProdShiftDataContext(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode()); @@ -230,11 +207,18 @@ public class MesProductionNoSortModuleService extends BaseModuleService { //封装展示组件班组班次内容 private List getProdShiftData(MesProdShiftRecord record) { - - return StationKvBeanUtil.addStationKvBeanList(new ArrayList<>(), + List stationKvBeans = StationKvBeanUtil.addStationKvBeanList(new ArrayList<>(), new StationKvBean(MesPcnExtConstWords.SHIFT_GROUP, "班组", record.getShiftGroup()), new StationKvBean(MesPcnExtConstWords.SHIFT_GROUP_NAME, "班组名称", record.getShiftGroupName()), new StationKvBean(MesPcnExtConstWords.SHIFT_CODE, "班次", record.getShiftCode()), new StationKvBean(MesPcnExtConstWords.SHIFT_NAME, "班次名称", record.getShiftName())); + //班次开始时间 ,班次结束时间 + Map shiftTimeMap = mesShiftService.getShiftTimeMap(record); + if (!java.util.Objects.isNull(shiftTimeMap)) { + StationKvBeanUtil.addStationKvBeanList(stationKvBeans, + new StationKvBean(MesPcnExtConstWords.START_TIME,"开始时间",shiftTimeMap.get(MesPcnExtConstWords.START_TIME)), + new StationKvBean(MesPcnExtConstWords.END_TIME,"结束时间",shiftTimeMap.get(MesPcnExtConstWords.END_TIME))); + } + return stationKvBeans; } }