From 19893a311987657e9354625786683fc364841bc2 Mon Sep 17 00:00:00 2001 From: "logic.fang" <[logic.fang@estsh.com]> Date: Wed, 19 Jun 2024 17:14:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A7=E7=BA=BF=E7=9C=8B=E6=9D=BF-=E9=83=A8?= =?UTF-8?q?=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/api/busi/board/IMesYfBoardService.java | 34 +++++ .../board/MesWorkCenterBoardController.java | 160 +++++++++++++++++++++ .../serviceimpl/board/IMesYfBoardServiceImpl.java | 58 ++++++++ .../board/MesWorkCenterBoardConditionModel.java | 29 ++++ .../model/board/MesWorkCenterBoardResultModel.java | 96 +++++++++++++ 5 files changed, 377 insertions(+) create mode 100644 modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/board/IMesYfBoardService.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/board/MesWorkCenterBoardController.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/board/IMesYfBoardServiceImpl.java create mode 100644 modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/board/MesWorkCenterBoardConditionModel.java create mode 100644 modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/board/MesWorkCenterBoardResultModel.java diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/board/IMesYfBoardService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/board/IMesYfBoardService.java new file mode 100644 index 0000000..54b1da3 --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/board/IMesYfBoardService.java @@ -0,0 +1,34 @@ +package cn.estsh.i3plus.ext.mes.api.busi.board; + +import cn.estsh.i3plus.ext.mes.pojo.model.board.MesWorkCenterBoardConditionModel; +import cn.estsh.i3plus.ext.mes.pojo.model.board.MesWorkCenterBoardResultModel; + +import java.util.List; + +/** + * @Description : 看板-业务方法 + * @Reference : + * @Author : logic + * @CreateDate : 2024/6/19 11:08 + * @Modify: + **/ +public interface IMesYfBoardService { + + /** + * 产线看板 + */ + List queryWorkCenterStatus(MesWorkCenterBoardConditionModel conditionModel); + + MesWorkCenterBoardResultModel queryWorkCenterProductionCompletionRate(MesWorkCenterBoardConditionModel conditionModel); + + List queryWorkCenterWorkOrderCompletionStatus(MesWorkCenterBoardConditionModel conditionModel); + + List queryUnitHourCompletionRate(MesWorkCenterBoardConditionModel conditionModel); + + List queryWorkCenterFirstTimeOfflineQualificationRate(MesWorkCenterBoardConditionModel conditionModel); + + List queryInspectionResults(MesWorkCenterBoardConditionModel conditionModel); + + MesWorkCenterBoardResultModel queryAbnormalDowntime(MesWorkCenterBoardConditionModel conditionModel); + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/board/MesWorkCenterBoardController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/board/MesWorkCenterBoardController.java new file mode 100644 index 0000000..b1ea7d3 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/board/MesWorkCenterBoardController.java @@ -0,0 +1,160 @@ +package cn.estsh.i3plus.ext.mes.apiservice.controller.board; + +import cn.estsh.i3plus.ext.mes.api.busi.board.IMesYfBoardService; +import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.ext.mes.pojo.model.board.MesWorkCenterBoardConditionModel; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.impp.framework.boot.auth.AuthUtil; +import cn.estsh.impp.framework.boot.exception.ImppBusiException; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.util.ResultBean; +import cn.estsh.impp.framework.boot.util.ValidatorBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Description : 产线看板 + * @Reference : + * @Author : logic + * @CreateDate : 2024/6/19 11:10 + * @Modify: + **/ +@Api("产线看板") +@RestController +@RequestMapping(MesCommonConstant.MES_YANFEN + "/work-center-board") +public class MesWorkCenterBoardController { + + @Autowired + private IMesYfBoardService mesYfBoardService; + + @ApiOperation(value = "查询产线状态", notes = "查询产线状态") + @PostMapping("/query-work-center-status") + public ResultBean queryWorkCenterStatus(MesWorkCenterBoardConditionModel conditionModel){ + try { + ValidatorBean.beginValid(conditionModel) + .notNull("workCenterCodeList", conditionModel.getWorkCenterCodeList()) + .notNull("timeRangeIdentification", conditionModel.getTimeRangeIdentification()); + String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + conditionModel.setOrganizeCode(organizeCode); + return ResultBean.success("查询产线状态").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()). + setResultList(mesYfBoardService.queryWorkCenterStatus(conditionModel)); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @ApiOperation(value = "查询产线生产完成率", notes = "查询产线生产完成率") + @PostMapping("/query-work-center-production-completion-rate") + public ResultBean queryWorkCenterProductionCompletionRate(MesWorkCenterBoardConditionModel conditionModel){ + try { + ValidatorBean.beginValid(conditionModel) + .notNull("workCenterCodeList", conditionModel.getWorkCenterCodeList()) + .notNull("timeRangeIdentification", conditionModel.getTimeRangeIdentification()); + String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + conditionModel.setOrganizeCode(organizeCode); + return ResultBean.success("查询产线生产完成率").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()). + setResultObject(mesYfBoardService.queryWorkCenterProductionCompletionRate(conditionModel)); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @ApiOperation(value = "查询产线工单完成情况", notes = "查询产线工单完成情况") + @PostMapping("/query-work-center-work-order-completion-status") + public ResultBean queryWorkCenterWorkOrderCompletionStatus(MesWorkCenterBoardConditionModel conditionModel){ + try { + ValidatorBean.beginValid(conditionModel) + .notNull("workCenterCodeList", conditionModel.getWorkCenterCodeList()) + .notNull("timeRangeIdentification", conditionModel.getTimeRangeIdentification()); + String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + conditionModel.setOrganizeCode(organizeCode); + return ResultBean.success("查询产线工单完成情况").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()). + setResultList(mesYfBoardService.queryWorkCenterWorkOrderCompletionStatus(conditionModel)); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @ApiOperation(value = "查询单位小时完工数", notes = "查询单位小时完工数") + @PostMapping("/query-unit-hour-completion-rate") + public ResultBean queryUnitHourCompletionRate(MesWorkCenterBoardConditionModel conditionModel){ + try { + ValidatorBean.beginValid(conditionModel) + .notNull("workCenterCodeList", conditionModel.getWorkCenterCodeList()) + .notNull("timeRangeIdentification", conditionModel.getTimeRangeIdentification()); + String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + conditionModel.setOrganizeCode(organizeCode); + return ResultBean.success("查询单位小时完工数").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()). + setResultList(mesYfBoardService.queryUnitHourCompletionRate(conditionModel)); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @ApiOperation(value = "查询产线一次下线合格率", notes = "查询产线一次下线合格率") + @PostMapping("/query-work-center-first-time-offline-qualification-rate") + public ResultBean queryWorkCenterFirstTimeOfflineQualificationRate(MesWorkCenterBoardConditionModel conditionModel){ + try { + ValidatorBean.beginValid(conditionModel) + .notNull("workCenterCodeList", conditionModel.getWorkCenterCodeList()) + .notNull("timeRangeIdentification", conditionModel.getTimeRangeIdentification()); + String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + conditionModel.setOrganizeCode(organizeCode); + return ResultBean.success("查询产线一次下线合格率").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()). + setResultList(mesYfBoardService.queryWorkCenterFirstTimeOfflineQualificationRate(conditionModel)); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @ApiOperation(value = "查询点检结果", notes = "查询点检结果") + @PostMapping("/query-inspection-results") + public ResultBean queryInspectionResults(MesWorkCenterBoardConditionModel conditionModel){ + try { + ValidatorBean.beginValid(conditionModel) + .notNull("workCenterCodeList", conditionModel.getWorkCenterCodeList()) + .notNull("timeRangeIdentification", conditionModel.getTimeRangeIdentification()); + String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + conditionModel.setOrganizeCode(organizeCode); + return ResultBean.success("查询点检结果").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()). + setResultList(mesYfBoardService.queryInspectionResults(conditionModel)); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @ApiOperation(value = "查询异常停线时间", notes = "查询异常停线时间") + @PostMapping("/query-abnormal-downtime") + public ResultBean queryAbnormalDowntime(MesWorkCenterBoardConditionModel conditionModel){ + try { + ValidatorBean.beginValid(conditionModel) + .notNull("workCenterCodeList", conditionModel.getWorkCenterCodeList()) + .notNull("timeRangeIdentification", conditionModel.getTimeRangeIdentification()); + String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + conditionModel.setOrganizeCode(organizeCode); + return ResultBean.success("查询异常停线时间").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()). + setResultObject(mesYfBoardService.queryAbnormalDowntime(conditionModel)); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/board/IMesYfBoardServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/board/IMesYfBoardServiceImpl.java new file mode 100644 index 0000000..6be95a3 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/board/IMesYfBoardServiceImpl.java @@ -0,0 +1,58 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.board; + +import cn.estsh.i3plus.ext.mes.api.busi.board.IMesYfBoardService; +import cn.estsh.i3plus.ext.mes.pojo.model.board.MesWorkCenterBoardConditionModel; +import cn.estsh.i3plus.ext.mes.pojo.model.board.MesWorkCenterBoardResultModel; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Description : 看板-业务方法实现 + * @Reference : + * @Author : logic + * @CreateDate : 2024/6/19 11:08 + * @Modify: + **/ +@Service +public class IMesYfBoardServiceImpl implements IMesYfBoardService { + + /** + * 产线看板 + */ + @Override + public List queryWorkCenterStatus(MesWorkCenterBoardConditionModel conditionModel) { + return null; + } + + @Override + public MesWorkCenterBoardResultModel queryWorkCenterProductionCompletionRate(MesWorkCenterBoardConditionModel conditionModel) { + return null; + } + + @Override + public List queryWorkCenterWorkOrderCompletionStatus(MesWorkCenterBoardConditionModel conditionModel) { + return null; + } + + @Override + public List queryUnitHourCompletionRate(MesWorkCenterBoardConditionModel conditionModel) { + return null; + } + + @Override + public List queryWorkCenterFirstTimeOfflineQualificationRate(MesWorkCenterBoardConditionModel conditionModel) { + return null; + } + + @Override + public List queryInspectionResults(MesWorkCenterBoardConditionModel conditionModel) { + return null; + } + + @Override + public MesWorkCenterBoardResultModel queryAbnormalDowntime(MesWorkCenterBoardConditionModel conditionModel) { + return null; + } + +} diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/board/MesWorkCenterBoardConditionModel.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/board/MesWorkCenterBoardConditionModel.java new file mode 100644 index 0000000..a3560a2 --- /dev/null +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/board/MesWorkCenterBoardConditionModel.java @@ -0,0 +1,29 @@ +package cn.estsh.i3plus.ext.mes.pojo.model.board; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiParam; +import lombok.Data; + +import java.util.List; + +/** + * @Description : 产线看板-查询条件封装 + * @Reference : + * @Author : logic + * @CreateDate : 2024/6/19 11:13 + * @Modify: + **/ +@Data +@ApiModel("产线看板-查询条件封装") +public class MesWorkCenterBoardConditionModel { + + @ApiParam(value = "组织代码") + private String organizeCode; + + @ApiParam(value = "产线代码集合") + private List workCenterCodeList; + + @ApiParam(value = "时间范围标识") + private Integer timeRangeIdentification; + +} diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/board/MesWorkCenterBoardResultModel.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/board/MesWorkCenterBoardResultModel.java new file mode 100644 index 0000000..f447a57 --- /dev/null +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/board/MesWorkCenterBoardResultModel.java @@ -0,0 +1,96 @@ +package cn.estsh.i3plus.ext.mes.pojo.model.board; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiParam; +import lombok.Data; + +/** + * @Description : 产线看板-查询结果封装 + * @Reference : + * @Author : logic + * @CreateDate : 2024/6/19 15:26 + * @Modify: + **/ +@Data +@ApiModel("产线看板-查询结果封装") +public class MesWorkCenterBoardResultModel { + + /** + * 查询产线状态 + */ + @ApiParam(value = "产线代码") + private String workCenterCode; + + @ApiParam(value = "产线状态") + private Integer workCenterCodeStatus; + + /** + * 查询产线生产完成率 + */ + @ApiParam(value = "产线完成数") + private Integer workCenterCompletedQuantity; + + @ApiParam(value = "产线计划数") + private Integer workCenterPlannedQuantity; + + @ApiParam(value = "产线完成率") + private Double workCenterCompletionRate; + + /** + * 查询产线工单完成情况 + */ + @ApiParam(value = "工单号") + private String workOrderNo; + + @ApiParam(value = "零件号") + private String partNo; + + @ApiParam(value = "零件描述") + private String partDescription; + + @ApiParam(value = "工单完成数") + private Integer workOrderCompletedQuantity; + + @ApiParam(value = "工单计划数") + private Integer workOrderPlannedQuantity; + + @ApiParam(value = "工单一次合格率") + private Double workOrderFirstPassRate; + + /** + * 查询单位小时完工数 + */ + @ApiParam(value = "单位小时完工数目标值") + private Double unitHourCompletionRateTargetValue; + + @ApiParam(value = "单位小时完工数") + private Integer unitHourCompletionRate; + + @ApiParam(value = "单位小时完工数-时间段") + private String unitHourCompletionRateTimePeriod; + + /** + * 查询产线一次下线合格率 + */ + @ApiParam(value = "产线一次下线合格率") + private Double workCenterFirstTimeOfflineQualificationRate; + + @ApiParam(value = "产线一次下线合格率-时间段") + private String workCenterFirstTimeOfflineQualificationRateTimePeriod; + + /** + * 查询点检结果 + */ + @ApiParam(value = "点检项") + private String inspectionItems; + + @ApiParam(value = "点检结果") + private Integer inspectionResults; + + /** + * 查询异常停线时间 + */ + @ApiParam(value = "异常停机时间") + private Double abnormalDowntime; + +}