From 820efaa232915f8553b29860946b88cc6fbcd7d5 Mon Sep 17 00:00:00 2001 From: 86158 <461356067@qq.com> Date: Tue, 13 Jan 2026 18:10:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BA=86=E6=A8=A1=E5=85=B7?= =?UTF-8?q?=E7=82=B9=E6=A3=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/mold/vo/MoldPageReqVO.java | 9 +- .../admin/mold/vo/MoldSaveReqVO.java | 11 +- .../erp/dal/dataobject/mold/MoldDO.java | 3 + .../erp/dal/mysql/mold/MoldBrandMapper.java | 14 -- .../module/erp/dal/mysql/mold/MoldMapper.java | 15 +- .../MoldPlanMaintenanceController.java | 140 +++++++++++++ .../vo/MoldPlanMaintenancePageReqVO.java | 34 ++++ .../vo/MoldPlanMaintenanceRespVO.java | 42 ++++ .../vo/MoldPlanMaintenanceSaveReqVO.java | 28 +++ .../moldsubject/MoldSubjectController.java | 187 +++++++++++++++++ .../moldsubject/vo/MoldSubjectPageReqVO.java | 53 +++++ .../moldsubject/vo/MoldSubjectRespVO.java | 70 +++++++ .../moldsubject/vo/MoldSubjectSaveReqVO.java | 50 +++++ .../MoldTaskManagementController.java | 136 +++++++++++++ .../vo/MoldTaskManagementPageReqVO.java | 54 +++++ .../vo/MoldTaskManagementRespVO.java | 77 +++++++ .../vo/MoldTaskManagementSaveReqVO.java | 53 +++++ .../MoldTicketManagementController.java | 127 ++++++++++++ .../enums/MoldPlanTypeEnum.java | 87 ++++++++ .../MoldTicketManagementBatchUpdateReqVO.java | 20 ++ .../vo/MoldTicketManagementPageReqVO.java | 66 ++++++ .../vo/MoldTicketManagementRespVO.java | 92 +++++++++ .../vo/MoldTicketManagementSaveReqVO.java | 42 ++++ .../MoldTicketResultsController.java | 104 ++++++++++ .../enums/MoldJobResultEnum.java | 109 ++++++++++ .../vo/MoldTicketResultsPageReqVO.java | 47 +++++ .../vo/MoldTicketResultsRespVO.java | 56 +++++ .../vo/MoldTicketResultsSaveReqVO.java | 44 ++++ .../SubjectMoldPlanController.java | 95 +++++++++ .../vo/SubjectMoldPlanPageReqVO.java | 28 +++ .../vo/SubjectMoldPlanRespVO.java | 31 +++ .../vo/SubjectMoldPlanSaveReqVO.java | 23 +++ .../MoldPlanMaintenanceDO.java | 48 +++++ .../dataobject/moldsubject/MoldSubjectDO.java | 70 +++++++ .../MoldTaskManagementDO.java | 84 ++++++++ .../MoldTicketManagementDO.java | 91 +++++++++ .../MoldTicketResultsDO.java | 68 +++++++ .../subjectmoldplan/SubjectMoldPlanDO.java | 39 ++++ .../MoldPlanMaintenanceMapper.java | 47 +++++ .../mysql/moldsubject/MoldSubjectMapper.java | 52 +++++ .../MoldTaskManagementMapper.java | 53 +++++ .../MoldTicketManagementMapper.java | 63 ++++++ .../MoldTicketResultsMapper.java | 36 ++++ .../SubjectMoldPlanMapper.java | 35 ++++ .../MoldPlanMaintenanceService.java | 59 ++++++ .../MoldPlanMaintenanceServiceImpl.java | 192 ++++++++++++++++++ .../moldsubject/MoldSubjectService.java | 56 +++++ .../moldsubject/MoldSubjectServiceImpl.java | 101 +++++++++ .../MoldTaskManagementService.java | 56 +++++ .../MoldTaskManagementServiceImpl.java | 178 ++++++++++++++++ .../MoldTicketManagementService.java | 56 +++++ .../MoldTicketManagementServiceImpl.java | 107 ++++++++++ .../MoldTicketResultsService.java | 62 ++++++ .../MoldTicketResultsServiceImpl.java | 182 +++++++++++++++++ .../SubjectMoldPlanService.java | 55 +++++ .../SubjectMoldPlanServiceImpl.java | 75 +++++++ .../mapper/moldsubject/MoldSubjectMapper.xml | 12 ++ .../MoldTicketManagementMapper.xml | 21 ++ .../MoldTicketResultsMapper.xml | 30 +++ 59 files changed, 3852 insertions(+), 23 deletions(-) create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldplanmaintenance/MoldPlanMaintenanceController.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldplanmaintenance/vo/MoldPlanMaintenancePageReqVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldplanmaintenance/vo/MoldPlanMaintenanceRespVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldplanmaintenance/vo/MoldPlanMaintenanceSaveReqVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldsubject/MoldSubjectController.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldsubject/vo/MoldSubjectPageReqVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldsubject/vo/MoldSubjectRespVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldsubject/vo/MoldSubjectSaveReqVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/MoldTaskManagementController.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/vo/MoldTaskManagementPageReqVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/vo/MoldTaskManagementRespVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/vo/MoldTaskManagementSaveReqVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/MoldTicketManagementController.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/enums/MoldPlanTypeEnum.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/vo/MoldTicketManagementBatchUpdateReqVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/vo/MoldTicketManagementPageReqVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/vo/MoldTicketManagementRespVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/vo/MoldTicketManagementSaveReqVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketresults/MoldTicketResultsController.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketresults/enums/MoldJobResultEnum.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketresults/vo/MoldTicketResultsPageReqVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketresults/vo/MoldTicketResultsRespVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketresults/vo/MoldTicketResultsSaveReqVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/subjectmoldplan/SubjectMoldPlanController.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/subjectmoldplan/vo/SubjectMoldPlanPageReqVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/subjectmoldplan/vo/SubjectMoldPlanRespVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/subjectmoldplan/vo/SubjectMoldPlanSaveReqVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldplanmaintenance/MoldPlanMaintenanceDO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldsubject/MoldSubjectDO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldtaskmanagement/MoldTaskManagementDO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldticketmanagement/MoldTicketManagementDO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldticketresults/MoldTicketResultsDO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/subjectmoldplan/SubjectMoldPlanDO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldplanmaintenance/MoldPlanMaintenanceMapper.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldsubject/MoldSubjectMapper.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldtaskmanagement/MoldTaskManagementMapper.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldticketmanagement/MoldTicketManagementMapper.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldticketresults/MoldTicketResultsMapper.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/subjectmoldplan/SubjectMoldPlanMapper.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldplanmaintenance/MoldPlanMaintenanceService.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldplanmaintenance/MoldPlanMaintenanceServiceImpl.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldsubject/MoldSubjectService.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldsubject/MoldSubjectServiceImpl.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldtaskmanagement/MoldTaskManagementService.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldtaskmanagement/MoldTaskManagementServiceImpl.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldticketmanagement/MoldTicketManagementService.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldticketmanagement/MoldTicketManagementServiceImpl.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldticketresults/MoldTicketResultsService.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldticketresults/MoldTicketResultsServiceImpl.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/subjectmoldplan/SubjectMoldPlanService.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/subjectmoldplan/SubjectMoldPlanServiceImpl.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/moldsubject/MoldSubjectMapper.xml create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/moldticketmanagement/MoldTicketManagementMapper.xml create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/moldticketresults/MoldTicketResultsMapper.xml diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldPageReqVO.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldPageReqVO.java index fbeaffc7a8..fb721bc093 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldPageReqVO.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldPageReqVO.java @@ -29,7 +29,7 @@ public class MoldPageReqVO extends PageParam { @Schema(description = "机台ID", example = "24428") private Long machineId; - @Schema(description = "使用时间(小时)") + @Schema(description = "使用次数/次") private BigDecimal useTime; @Schema(description = "入库时间") @@ -58,7 +58,10 @@ public class MoldPageReqVO extends PageParam { @Schema(description = "id集合导出用") private String ids; -// @Schema(description = "机台名字") -// private String machineName; + @Schema(description = "机台名字") + private String machineName; + + @Schema(description = "附件地址") + private String fileUrl; } \ No newline at end of file diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldSaveReqVO.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldSaveReqVO.java index 4f19a0aae0..2cbee9216a 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldSaveReqVO.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldSaveReqVO.java @@ -24,13 +24,13 @@ public class MoldSaveReqVO { private String name; @Schema(description = "单位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19527") - @NotNull(message = "单位ID不能为空") +// @NotNull(message = "单位ID不能为空") private Long unitId; @Schema(description = "机台ID", example = "24428") private Long machineId; - @Schema(description = "使用时间(小时)") + @Schema(description = "使用次数/次") private BigDecimal useTime; @Schema(description = "入库时间", requiredMode = Schema.RequiredMode.REQUIRED) @@ -47,11 +47,14 @@ public class MoldSaveReqVO { private String remark; @Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "是否启用不能为空") +// @NotNull(message = "是否启用不能为空") private Boolean isEnable; @Schema(description = "型号id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15258") - @NotNull(message = "型号id不能为空") +// @NotNull(message = "型号id不能为空") private Long brandId; + @Schema(description = "附件地址") + private String fileUrl; + } \ No newline at end of file diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/mold/MoldDO.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/mold/MoldDO.java index 55b52f5b9c..92a1715df2 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/mold/MoldDO.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/mold/MoldDO.java @@ -76,4 +76,7 @@ public class MoldDO extends BaseDO { */ private Long brandId; + + private String fileUrl; + } \ No newline at end of file diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/mold/MoldBrandMapper.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/mold/MoldBrandMapper.java index 600066aafe..bed90f0819 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/mold/MoldBrandMapper.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/mold/MoldBrandMapper.java @@ -22,20 +22,6 @@ import java.util.stream.Collectors; public interface MoldBrandMapper extends BaseMapperX { default PageResult selectPage(MoldBrandPageReqVO reqVO) { -// return selectPage(reqVO, new LambdaQueryWrapperX() -// .eqIfPresent(MoldBrandDO::getCode, reqVO.getCode()) -// .likeIfPresent(MoldBrandDO::getName, reqVO.getName()) -// .eqIfPresent(MoldBrandDO::getMoldType, reqVO.getMoldType()) -// .eqIfPresent(MoldBrandDO::getProductId, reqVO.getProductId()) -// .eqIfPresent(MoldBrandDO::getUseTime, reqVO.getUseTime()) -// .eqIfPresent(MoldBrandDO::getMaintainType, reqVO.getMaintainType()) -// .eqIfPresent(MoldBrandDO::getMaintainTime, reqVO.getMaintainTime()) -// .eqIfPresent(MoldBrandDO::getMoldSize, reqVO.getMoldSize()) -// .eqIfPresent(MoldBrandDO::getRemark, reqVO.getRemark()) -// .eqIfPresent(MoldBrandDO::getIsEnable, reqVO.getIsEnable()) -// .eqIfPresent(MoldBrandDO::getOrgType, reqVO.getOrgType()) -// .betweenIfPresent(MoldBrandDO::getCreateTime, reqVO.getCreateTime()) -// .orderByDesc(MoldBrandDO::getId)); LambdaQueryWrapperX moldBrandDOLambdaQueryWrapperX = new LambdaQueryWrapperX<>(); moldBrandDOLambdaQueryWrapperX diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/mold/MoldMapper.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/mold/MoldMapper.java index 2f47c628c3..f20c5284eb 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/mold/MoldMapper.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/mold/MoldMapper.java @@ -6,6 +6,8 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.erp.dal.dataobject.mold.MoldDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -19,13 +21,14 @@ public interface MoldMapper extends BaseMapperX { default PageResult selectPage(PageParam reqVO, Long brandId) { return selectPage(reqVO, new LambdaQueryWrapperX() - .eq(MoldDO::getBrandId, brandId) - .orderByDesc(MoldDO::getId)); + .eq(MoldDO::getBrandId, brandId) + .orderByDesc(MoldDO::getId)); } default int deleteByBrandId(Long brandId) { return delete(MoldDO::getBrandId, brandId); } + default List selectBy(MoldDO reqVO) { return selectList(new LambdaQueryWrapperX() .eqIfPresent(MoldDO::getCode, reqVO.getCode()) @@ -33,4 +36,12 @@ public interface MoldMapper extends BaseMapperX { .eq(MoldDO::getBrandId, reqVO.getBrandId()) .orderByDesc(MoldDO::getId)); } + + default List selectBy(Long brandId) { + return selectList(new LambdaQueryWrapperX() + .eq(MoldDO::getBrandId, brandId) + .orderByDesc(MoldDO::getId)); + } + + } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldplanmaintenance/MoldPlanMaintenanceController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldplanmaintenance/MoldPlanMaintenanceController.java new file mode 100644 index 0000000000..2bb8e3ac47 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldplanmaintenance/MoldPlanMaintenanceController.java @@ -0,0 +1,140 @@ +package cn.iocoder.yudao.module.mes.controller.admin.moldplanmaintenance; + +import cn.iocoder.yudao.module.mes.controller.admin.ticketmanagement.vo.TicketManagementRespVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldsubject.MoldSubjectDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.subjectmoldplan.SubjectMoldPlanDO; +import cn.iocoder.yudao.module.mes.service.subjectmoldplan.SubjectMoldPlanService; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; +import java.util.stream.Collectors; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.mes.controller.admin.moldplanmaintenance.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldplanmaintenance.MoldPlanMaintenanceDO; +import cn.iocoder.yudao.module.mes.service.moldplanmaintenance.MoldPlanMaintenanceService; + +@Tag(name = "管理后台 - 方案维护") +@RestController +@RequestMapping("/mes/mold-plan-maintenance") +@Validated +public class MoldPlanMaintenanceController { + + @Resource + private MoldPlanMaintenanceService moldplanMaintenanceService; + + @Resource + private SubjectMoldPlanService subjectMoldPlanService; + + @Resource + private AdminUserApi adminUserApi; + + @PostMapping("/create") + @Operation(summary = "创建方案维护") + @PreAuthorize("@ss.hasPermission('mes:mold-plan-maintenance:create')") + public CommonResult createMoldPlanMaintenance(@Valid @RequestBody MoldPlanMaintenanceSaveReqVO createReqVO) { + return success(moldplanMaintenanceService.createMoldPlanMaintenance(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新方案维护") + @PreAuthorize("@ss.hasPermission('mes:mold-plan-maintenance:update')") + public CommonResult updateMoldPlanMaintenance(@Valid @RequestBody MoldPlanMaintenanceSaveReqVO updateReqVO) { + moldplanMaintenanceService.updateMoldPlanMaintenance(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除方案维护") + @Parameter(name = "ids", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('mes:mold-plan-maintenance:delete')") + public CommonResult deleteMoldPlanMaintenance(@RequestParam("ids") String ids) { + // 将逗号分隔的字符串转换为Long类型的List + List idList = Arrays.stream(ids.split(",")) + .map(String::trim) // 去除可能存在的空格 + .map(Long::valueOf) + .collect(Collectors.toList()); + moldplanMaintenanceService.deleteMoldPlanMaintenance(idList); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得方案维护") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('mes:mold-plan-maintenance:query')") + public CommonResult getMoldPlanMaintenance(@RequestParam("id") Long id) { + MoldPlanMaintenanceDO moldplanMaintenance = moldplanMaintenanceService.getMoldPlanMaintenance(id); + return success(BeanUtils.toBean(moldplanMaintenance, MoldPlanMaintenanceRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得方案维护分页") + @PreAuthorize("@ss.hasPermission('mes:mold-plan-maintenance:query')") + public CommonResult> getMoldPlanMaintenancePage(@Valid MoldPlanMaintenancePageReqVO pageReqVO) { + PageResult pageResult = moldplanMaintenanceService.getMoldPlanMaintenancePage(pageReqVO); + PageResult moldplanMaintenanceRespVOPageResult = BeanUtils.toBean(pageResult, MoldPlanMaintenanceRespVO.class); + + return success(buildPageCreatorName(moldplanMaintenanceRespVOPageResult)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出方案维护 Excel") + @PreAuthorize("@ss.hasPermission('mes:mold-plan-maintenance:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportMoldPlanMaintenanceExcel(@Valid MoldPlanMaintenancePageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = moldplanMaintenanceService.getMoldPlanMaintenancePage(pageReqVO).getList(); + + List moldplanMaintenanceRespVOS = BeanUtils.toBean(list, MoldPlanMaintenanceRespVO.class); + for (MoldPlanMaintenanceRespVO moldplanMaintenanceRespVO : moldplanMaintenanceRespVOS) { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(moldplanMaintenanceRespVO.getCreator())); + moldplanMaintenanceRespVO.setCreatorName( "(" + user.getUsername()+ ")" + user.getNickname()); + } + + // 导出 Excel + ExcelUtils.write(response, "方案维护.xls", "数据", MoldPlanMaintenanceRespVO.class,moldplanMaintenanceRespVOS); + } + + + @GetMapping("/getSubjectList") + @Operation(summary = "查询项目集合列表") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('mes:mold-plan-maintenance:query')") + public CommonResult> getSubjectList(@RequestParam("id") Long id) { + List subjectMoldPlanDOList = moldplanMaintenanceService.getSubjectList(id); + return success(subjectMoldPlanDOList); + } + + + private PageResult buildPageCreatorName(PageResult moldplanMaintenanceRespVOPageResult) { + for (MoldPlanMaintenanceRespVO moldplanMaintenanceRespVO : moldplanMaintenanceRespVOPageResult.getList()) { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(moldplanMaintenanceRespVO.getCreator())); + moldplanMaintenanceRespVO.setCreatorName( "(" + user.getUsername()+ ")" + user.getNickname()); + } + return moldplanMaintenanceRespVOPageResult; + } + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldplanmaintenance/vo/MoldPlanMaintenancePageReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldplanmaintenance/vo/MoldPlanMaintenancePageReqVO.java new file mode 100644 index 0000000000..1e0f07cb51 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldplanmaintenance/vo/MoldPlanMaintenancePageReqVO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.mes.controller.admin.moldplanmaintenance.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 方案维护分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class MoldPlanMaintenancePageReqVO extends PageParam { + + @Schema(description = "名称", example = "王五") + private String planName; + + @Schema(description = "名称", example = "1") + private Integer planType; + + @Schema(description = "描述", example = "你猜") + private String description; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + + @Schema(description = "id集合导出用") + private String ids; +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldplanmaintenance/vo/MoldPlanMaintenanceRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldplanmaintenance/vo/MoldPlanMaintenanceRespVO.java new file mode 100644 index 0000000000..e5cab10f70 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldplanmaintenance/vo/MoldPlanMaintenanceRespVO.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.mes.controller.admin.moldplanmaintenance.vo; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 方案维护 Response VO") +@Data +@ExcelIgnoreUnannotated +public class MoldPlanMaintenanceRespVO extends BaseDO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "19033") + @ExcelProperty("id") + private Long id; + + @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @ExcelProperty("名称") + private String planName; + + @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("名称") + private int planType; + + @Schema(description = "描述", example = "你猜") + @ExcelProperty("描述") + private String description; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "项目集合ids") + private List subjectIds; + + @Schema(description = "创建人名字") + @ExcelProperty("创建人名字") + private String creatorName; +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldplanmaintenance/vo/MoldPlanMaintenanceSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldplanmaintenance/vo/MoldPlanMaintenanceSaveReqVO.java new file mode 100644 index 0000000000..679c1a440f --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldplanmaintenance/vo/MoldPlanMaintenanceSaveReqVO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.mes.controller.admin.moldplanmaintenance.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 方案维护新增/修改 Request VO") +@Data +public class MoldPlanMaintenanceSaveReqVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "19033") + private Long id; + + @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @NotEmpty(message = "名称不能为空") + private String planName; + + @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotEmpty(message = "名称不能为空") + private String planType; + + @Schema(description = "描述") + private String description; + + @Schema(description = "项目id集合", example = "1") + private String subjectIdS; +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldsubject/MoldSubjectController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldsubject/MoldSubjectController.java new file mode 100644 index 0000000000..99e4e81c15 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldsubject/MoldSubjectController.java @@ -0,0 +1,187 @@ +package cn.iocoder.yudao.module.mes.controller.admin.moldsubject; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.module.mes.controller.admin.deviceledger.vo.DeviceLedgerRespVO; +import cn.iocoder.yudao.module.mes.controller.admin.moldsubject.vo.MoldSubjectPageReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.moldsubject.vo.MoldSubjectRespVO; +import cn.iocoder.yudao.module.mes.controller.admin.moldsubject.vo.MoldSubjectSaveReqVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldsubject.MoldSubjectDO; +import cn.iocoder.yudao.module.mes.service.moldsubject.MoldSubjectService; +import cn.iocoder.yudao.module.system.api.dict.DictDataApi; +import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +import com.alibaba.excel.util.StringUtils; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 维保项目") +@RestController +@RequestMapping("/mes/mold-subject") +@Validated +public class MoldSubjectController { + + @Resource + private MoldSubjectService moldSubjectService; + + @Resource + private AdminUserApi adminUserApi; + + @Resource + private DictDataApi dictDataApi; + + + + @PostMapping("/create") + @Operation(summary = "创建维保项目") + @PreAuthorize("@ss.hasPermission('mes:mold-subject:create')") + public CommonResult createMoldSubject(@Valid @RequestBody MoldSubjectSaveReqVO createReqVO) { + return success(moldSubjectService.createMoldSubject(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新维保项目") + @PreAuthorize("@ss.hasPermission('mes:mold-subject:update')") + public CommonResult updateMoldSubject(@Valid @RequestBody MoldSubjectSaveReqVO updateReqVO) { + moldSubjectService.updateMoldSubject(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除维保项目") + @Parameter(name = "ids", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('mes:mold-subject:delete')") + public CommonResult deleteMoldSubject(@RequestParam("ids") String ids) { + + // 将逗号分隔的字符串转换为Long类型的List + List idList = Arrays.stream(ids.split(",")) + .map(String::trim) // 去除可能存在的空格 + .map(Long::valueOf) + .collect(Collectors.toList()); + moldSubjectService.deleteMoldSubject(idList); + + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得维保项目") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('mes:mold-subject:query')") + public CommonResult getMoldSubject(@RequestParam("id") Long id) { + MoldSubjectDO moldSubject = moldSubjectService.getMoldSubject(id); + return success(BeanUtils.toBean(moldSubject, MoldSubjectRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得维保项目分页") + @PreAuthorize("@ss.hasPermission('mes:mold-subject:query')") + public CommonResult> getMoldSubjectPage(@Valid MoldSubjectPageReqVO pageReqVO) { + PageResult pageResult = moldSubjectService.getMoldSubjectPage(pageReqVO); + PageResult moldSubjectRespVOPageResult = BeanUtils.toBean(pageResult, MoldSubjectRespVO.class); + return success(buildCreatorName(moldSubjectRespVOPageResult)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出维保项目 Excel") + @PreAuthorize("@ss.hasPermission('mes:mold-subject:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportMoldSubjectExcel(@Valid MoldSubjectPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = moldSubjectService.getMoldSubjectPage(pageReqVO).getList(); + + List moldSubjectRespVOList = BeanUtils.toBean(list, MoldSubjectRespVO.class); + // 1. 获取字典数据 + Map> dictData = getDictData(); + + for (MoldSubjectRespVO moldSubjectRespVO : moldSubjectRespVOList) { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(moldSubjectRespVO.getCreator())); + moldSubjectRespVO.setCreatorName("(" + user.getUsername()+ ")" + user.getNickname()); + + // 转换检验方式字典值 + if (StringUtils.isNotBlank(moldSubjectRespVO.getInspectionMethod())) { + String inspectionMethodLabel = dictData.get("Inspection_method") + .get(moldSubjectRespVO.getInspectionMethod()); + if (StringUtils.isNotBlank(inspectionMethodLabel)) { + // 可以创建一个临时字段存储,或者直接替换原字段 + moldSubjectRespVO.setInspectionMethod(inspectionMethodLabel); + } + } + + // 转换值类型字典值 + if (StringUtils.isNotBlank(moldSubjectRespVO.getValueType())) { + String valueTypeLabel = dictData.get("value_types") + .get(moldSubjectRespVO.getValueType()); + if (StringUtils.isNotBlank(valueTypeLabel)) { + moldSubjectRespVO.setValueType(valueTypeLabel); + } + } + + } + // 导出 Excel + ExcelUtils.write(response, "维保项目.xls", "数据", MoldSubjectRespVO.class, + moldSubjectRespVOList ); + } + + + private PageResult buildCreatorName(PageResult moldSubjectRespVOPageResult) { + for (MoldSubjectRespVO moldSubjectRespVO : moldSubjectRespVOPageResult.getList()) { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(moldSubjectRespVO.getCreator())); + moldSubjectRespVO.setCreatorName("(" + user.getUsername()+ ")" + user.getNickname()); + } + + return moldSubjectRespVOPageResult; + } + + /** + * 获取字典数据 + */ + private Map> getDictData() { + Map> dictData = new HashMap<>(); + + try { + // 获取检验方式字典 + Map inspectionMethodDict = new HashMap<>(); + List inspectionMethods = dictDataApi.getDictDataList("Inspection_method"); + for (DictDataRespDTO dict : inspectionMethods) { + inspectionMethodDict.put(dict.getValue(), dict.getLabel()); + } + dictData.put("Inspection_method", inspectionMethodDict); + + // 获取值类型字典 + Map valueTypeDict = new HashMap<>(); + List valueTypes = dictDataApi.getDictDataList("value_types"); + for (DictDataRespDTO dict : valueTypes) { + valueTypeDict.put(dict.getValue(), dict.getLabel()); + } + dictData.put("value_types", valueTypeDict); + } catch (Exception e) { + throw new RuntimeException("获取字典数据异常:" + e); + } + + return dictData; + } + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldsubject/vo/MoldSubjectPageReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldsubject/vo/MoldSubjectPageReqVO.java new file mode 100644 index 0000000000..2baa87c670 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldsubject/vo/MoldSubjectPageReqVO.java @@ -0,0 +1,53 @@ +package cn.iocoder.yudao.module.mes.controller.admin.moldsubject.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 维保项目分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class MoldSubjectPageReqVO extends PageParam { + + @Schema(description = "项目编码") + private String subjectCode; + + @Schema(description = "项目名称", example = "李四") + private String subjectName; + + @Schema(description = "项目类型", example = "2") + private String subjectType; + + @Schema(description = "项目内容") + private String subjectContent; + + @Schema(description = "标准") + private String subjectStandard; + + @Schema(description = "是否启用") + private Boolean isEnable; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "检验方式") + private String inspectionMethod; + + @Schema(description = "值类型") + private String valueType; + + @Schema(description = "判定基准") + private String judgmentCriteria; + + @Schema(description = "id集合导出用") + private String ids; +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldsubject/vo/MoldSubjectRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldsubject/vo/MoldSubjectRespVO.java new file mode 100644 index 0000000000..0b584ac822 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldsubject/vo/MoldSubjectRespVO.java @@ -0,0 +1,70 @@ +package cn.iocoder.yudao.module.mes.controller.admin.moldsubject.vo; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; + +@Schema(description = "管理后台 - 维保项目 Response VO") +@Data +@ExcelIgnoreUnannotated +public class MoldSubjectRespVO extends BaseDO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24679") +// @ExcelProperty("ID") + private Long id; + + @Schema(description = "项目编码", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("项目编码") + private String subjectCode; + + @Schema(description = "项目名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") + @ExcelProperty("项目名称") + private String subjectName; + + @Schema(description = "项目类型", example = "2") +// @ExcelProperty("项目类型") + private String subjectType; + + @Schema(description = "项目内容", requiredMode = Schema.RequiredMode.REQUIRED) +// @ExcelProperty("项目内容") + private String subjectContent; + + @Schema(description = "标准") +// @ExcelProperty("标准") + private String subjectStandard; + + @Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty(value = "是否启用", converter = DictConvert.class) + @DictFormat("infra_boolean_string") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中 + private Boolean isEnable; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + @ColumnWidth(20) + private LocalDateTime createTime; + + @Schema(description = "检验方式") + @ExcelProperty("检验方式") + private String inspectionMethod; + + @Schema(description = "值类型") + @ExcelProperty("值类型") + private String valueType; + + @Schema(description = "判定基准") + @ExcelProperty("判定基准") + private String judgmentCriteria; + + @Schema(description = "创建人名字") + @ExcelProperty("创建人名字") + private String creatorName; + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldsubject/vo/MoldSubjectSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldsubject/vo/MoldSubjectSaveReqVO.java new file mode 100644 index 0000000000..5b1dfd2c38 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldsubject/vo/MoldSubjectSaveReqVO.java @@ -0,0 +1,50 @@ +package cn.iocoder.yudao.module.mes.controller.admin.moldsubject.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 维保项目新增/修改 Request VO") +@Data +public class MoldSubjectSaveReqVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24679") + private Long id; + + @Schema(description = "项目编码", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "项目编码不能为空") + private String subjectCode; + + @Schema(description = "项目名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") + @NotEmpty(message = "项目名称不能为空") + private String subjectName; + + @Schema(description = "项目类型", example = "2") + private String subjectType; + + @Schema(description = "项目内容", requiredMode = Schema.RequiredMode.REQUIRED) +// @NotEmpty(message = "项目内容不能为空") + private String subjectContent; + + @Schema(description = "标准") + private String subjectStandard; + + @Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "是否启用不能为空") + private Boolean isEnable; + + @Schema(description = "检验方式", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "检验方式") + private String inspectionMethod; + + @Schema(description = "值类型", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "值类型") + private String valueType; + + @Schema(description = "判定基准", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "判定基准") + private String judgmentCriteria; + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/MoldTaskManagementController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/MoldTaskManagementController.java new file mode 100644 index 0000000000..5d4dd8dd67 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/MoldTaskManagementController.java @@ -0,0 +1,136 @@ +package cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement; + +import cn.iocoder.yudao.module.mes.controller.admin.planmaintenance.vo.PlanMaintenanceRespVO; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; +import java.util.stream.Collectors; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldtaskmanagement.MoldTaskManagementDO; +import cn.iocoder.yudao.module.mes.service.moldtaskmanagement.MoldTaskManagementService; + +@Tag(name = "管理后台 - 任务管理") +@RestController +@RequestMapping("/mes/mold-task-management") +@Validated +public class MoldTaskManagementController { + + @Resource + private MoldTaskManagementService moldtaskManagementService; + @Resource + private AdminUserApi adminUserApi; + + + @PostMapping("/create") + @Operation(summary = "创建任务管理") + @PreAuthorize("@ss.hasPermission('mes:mold-task-management:create')") + public CommonResult createMoldTaskManagement(@Valid @RequestBody MoldTaskManagementSaveReqVO createReqVO) { + return success(moldtaskManagementService.createMoldTaskManagement(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新任务管理") + @PreAuthorize("@ss.hasPermission('mes:mold-task-management:update')") + public CommonResult updateMoldTaskManagement(@Valid @RequestBody MoldTaskManagementSaveReqVO updateReqVO) { + moldtaskManagementService.updateMoldTaskManagement(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除任务管理") + @Parameter(name = "ids", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('mes:mold-task-management:delete')") + public CommonResult deleteMoldTaskManagement(@RequestParam("ids") String ids) { + // 将逗号分隔的字符串转换为Long类型的List + List idList = Arrays.stream(ids.split(",")) + .map(String::trim) // 去除可能存在的空格 + .map(Long::valueOf) + .collect(Collectors.toList()); + moldtaskManagementService.deleteMoldTaskManagement(idList); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得任务管理") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('mes:mold-task-management:query')") + public CommonResult getMoldTaskManagement(@RequestParam("id") Long id) { + MoldTaskManagementDO moldtaskManagement = moldtaskManagementService.getMoldTaskManagement(id); + return success(BeanUtils.toBean(moldtaskManagement, MoldTaskManagementRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得任务管理分页") + @PreAuthorize("@ss.hasPermission('mes:mold-task-management:query')") + public CommonResult> getMoldTaskManagementPage(@Valid MoldTaskManagementPageReqVO pageReqVO) { + PageResult pageResult = moldtaskManagementService.getMoldTaskManagementPage(pageReqVO); + + PageResult moldtaskManagementRespVOPageResult = BeanUtils.toBean(pageResult, MoldTaskManagementRespVO.class); + buildPageCreatorName(moldtaskManagementRespVOPageResult); + return success(moldtaskManagementRespVOPageResult); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出任务管理 Excel") + @PreAuthorize("@ss.hasPermission('mes:mold-task-management:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportMoldTaskManagementExcel(@Valid MoldTaskManagementPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = moldtaskManagementService.getMoldTaskManagementPage(pageReqVO).getList(); + List moldtaskManagementRespVOList = BeanUtils.toBean(list, MoldTaskManagementRespVO.class); + + for (MoldTaskManagementRespVO planMaintenanceRespVO : moldtaskManagementRespVOList) { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(planMaintenanceRespVO.getCreator())); + planMaintenanceRespVO.setCreatorName( "(" + user.getUsername()+ ")" + user.getNickname()); + } + // 导出 Excel + ExcelUtils.write(response, "模具类型.xls", "数据", MoldTaskManagementRespVO.class,moldtaskManagementRespVOList); + } + + + @PostMapping("/createMoldTicket") + @Operation(summary = "创建工单管理") + @PreAuthorize("@ss.hasPermission('mes:mold-task-management:create')") + public CommonResult createTicket(@RequestParam("id") Long id) { + moldtaskManagementService.createMoldTicket(id); + return success(true); + } + + + private PageResult buildPageCreatorName(PageResult planMaintenanceRespVOPageResult) { + for (MoldTaskManagementRespVO planMaintenanceRespVO : planMaintenanceRespVOPageResult.getList()) { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(planMaintenanceRespVO.getCreator())); + planMaintenanceRespVO.setCreatorName( "(" + user.getUsername()+ ")" + user.getNickname()); + + } + + + return planMaintenanceRespVOPageResult; + } + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/vo/MoldTaskManagementPageReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/vo/MoldTaskManagementPageReqVO.java new file mode 100644 index 0000000000..b1eab71f91 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/vo/MoldTaskManagementPageReqVO.java @@ -0,0 +1,54 @@ +package cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 模具类型分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class MoldTaskManagementPageReqVO extends PageParam { + + @Schema(description = "名称", example = "李四") + private String name; + + @Schema(description = "类型(1-点检 2-保养)", example = "2") + private Integer taskType; + + @Schema(description = "模具列表") + private String moldList; + + @Schema(description = "项目表单") + private Long projectForm; + + @Schema(description = "起止开始日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] startDate; + + @Schema(description = "起止结束日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] endDate; + + @Schema(description = "cron表达式") + private String cronExpression; + + @Schema(description = "可操作人") + private String operableUsers; + + @Schema(description = "是否启用") + private Boolean enabled; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "id集合导出用") + private String ids; + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/vo/MoldTaskManagementRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/vo/MoldTaskManagementRespVO.java new file mode 100644 index 0000000000..7e9e94478f --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/vo/MoldTaskManagementRespVO.java @@ -0,0 +1,77 @@ +package cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.time.LocalDate; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 模具类型 Response VO") +@Data +@ExcelIgnoreUnannotated +public class MoldTaskManagementRespVO extends BaseDO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "26348") + @ExcelProperty("id") + private Long id; + + @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") + @ExcelProperty("名称") + private String name; + + @Schema(description = "类型(1-点检 2-保养)", example = "2") + @ExcelProperty("类型(1-点检 2-保养)") + private Integer taskType; + + @Schema(description = "模具列表") + @ExcelProperty("模具列表") + private String moldList; + + @Schema(description = "项目表单") + @ExcelProperty("项目表单") + private Long projectForm; + + @Schema(description = "起止开始日期") + @ExcelProperty("起止开始日期") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate startDate; + + @Schema(description = "起止结束日期") + @ExcelProperty("起止结束日期") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate endDate; + + @Schema(description = "cron表达式") + @ExcelProperty("cron表达式") + private String cronExpression; + + @Schema(description = "可操作人") + @ExcelProperty("可操作人") + private String operableUsers; + + @Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("是否启用") + private Boolean enabled; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "创建人名字") + @ExcelProperty("创建人名字") + private String creatorName; + + @Schema(description = "项目表单名称") + @ExcelProperty("项目表单名称") + private String projectFormName; + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/vo/MoldTaskManagementSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/vo/MoldTaskManagementSaveReqVO.java new file mode 100644 index 0000000000..6b02e2dfe5 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/vo/MoldTaskManagementSaveReqVO.java @@ -0,0 +1,53 @@ +package cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 模具类型新增/修改 Request VO") +@Data +public class MoldTaskManagementSaveReqVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "26348") + private Long id; + + @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") + @NotEmpty(message = "名称不能为空") + private String name; + + @Schema(description = "类型(1-点检 2-保养)", example = "2") + private Integer taskType; + + @Schema(description = "模具列表") + private String moldList; + + @Schema(description = "项目表单") + private Long projectForm; + + @Schema(description = "起止开始日期") + @JsonFormat(pattern = "yyyy-MM-dd") + private String startDate; + + @Schema(description = "起止结束日期") + @JsonFormat(pattern = "yyyy-MM-dd") + private String endDate; + + @Schema(description = "cron表达式") + private String cronExpression; + + @Schema(description = "可操作人") + private String operableUsers; + + @Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "是否启用不能为空") + private Boolean enabled; + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/MoldTicketManagementController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/MoldTicketManagementController.java new file mode 100644 index 0000000000..a67dfce9b4 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/MoldTicketManagementController.java @@ -0,0 +1,127 @@ +package cn.iocoder.yudao.module.mes.controller.admin.moldticketmanagement; + +import cn.iocoder.yudao.module.erp.controller.admin.mold.vo.MoldRespVO; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.mes.controller.admin.moldticketmanagement.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldticketmanagement.MoldTicketManagementDO; +import cn.iocoder.yudao.module.mes.service.moldticketmanagement.MoldTicketManagementService; + +@Tag(name = "管理后台 - 工单管理") +@RestController +@RequestMapping("/mes/mold-ticket-management") +@Validated +public class MoldTicketManagementController { + + @Resource + private MoldTicketManagementService moldticketManagementService; + + @Resource + private AdminUserApi adminUserApi; + + @PostMapping("/create") + @Operation(summary = "创建工单管理") + @PreAuthorize("@ss.hasPermission('mes:mold-ticket-management:create')") + public CommonResult createMoldTicketManagement(@Valid @RequestBody MoldTicketManagementSaveReqVO createReqVO) { + return success(moldticketManagementService.createMoldTicketManagement(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新工单管理") + @PreAuthorize("@ss.hasPermission('mes:mold-ticket-management:update')") + public CommonResult updateMoldTicketManagement(@Valid @RequestBody MoldTicketManagementSaveReqVO updateReqVO) { + moldticketManagementService.updateMoldTicketManagement(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除工单管理") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('mes:mold-ticket-management:delete')") + public CommonResult deleteMoldTicketManagement(@RequestParam("id") Long id) { + moldticketManagementService.deleteMoldTicketManagement(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得工单管理") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('mes:mold-ticket-management:query')") + public CommonResult getMoldTicketManagement(@RequestParam("id") Long id) { + MoldTicketManagementDO moldticketManagement = moldticketManagementService.getMoldTicketManagement(id); + return success(BeanUtils.toBean(moldticketManagement, MoldTicketManagementRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得工单管理分页") + @PreAuthorize("@ss.hasPermission('mes:mold-ticket-management:query')") + public CommonResult> getMoldTicketManagementPage(@Valid MoldTicketManagementPageReqVO pageReqVO) { + PageResult pageResult = moldticketManagementService.getMoldTicketManagementPage(pageReqVO); + return success(buildPageCreatorName(BeanUtils.toBean(pageResult, MoldTicketManagementRespVO.class))); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出工单管理 Excel") + @PreAuthorize("@ss.hasPermission('mes:mold-ticket-management:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportMoldTicketManagementExcel(@Valid MoldTicketManagementPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = moldticketManagementService.getMoldTicketManagementPage(pageReqVO).getList(); + List moldticketManagementRespVOList = BeanUtils.toBean(list, MoldTicketManagementRespVO.class); + for (MoldTicketManagementRespVO moldticketManagementRespVO : moldticketManagementRespVOList) { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(moldticketManagementRespVO.getCreator())); + moldticketManagementRespVO.setCreatorName( "(" + user.getUsername()+ ")" + user.getNickname()); + } + + // 导出 Excel + ExcelUtils.write(response, "工单管理.xls", "数据", MoldTicketManagementRespVO.class, + moldticketManagementRespVOList); + } + + + @PutMapping("/batchUpdateStatus") + @Operation(summary = "批量取消工单") + @PreAuthorize("@ss.hasPermission('mes:mold-ticket-management:update')") + public CommonResult batchUpdateMoldTicketStatus(@Valid @RequestBody MoldTicketManagementBatchUpdateReqVO reqVO) { + moldticketManagementService.batchUpdateJobStatus(reqVO); + return success(true); + } + + private PageResult buildPageCreatorName(PageResult moldticketManagementRespVOPageResult) { + for (MoldTicketManagementRespVO moldticketManagementRespVO : moldticketManagementRespVOPageResult.getList()) { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(moldticketManagementRespVO.getCreator())); + moldticketManagementRespVO.setCreatorName( "(" + user.getUsername()+ ")" + user.getNickname()); + if (moldticketManagementRespVO.getOperator()!=null){ + AdminUserRespDTO operator = adminUserApi.getUser(Long.valueOf(moldticketManagementRespVO.getOperator())); + moldticketManagementRespVO.setOperatorName("(" + operator.getUsername()+ ")" + operator.getNickname()); + } + } + return moldticketManagementRespVOPageResult; + } +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/enums/MoldPlanTypeEnum.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/enums/MoldPlanTypeEnum.java new file mode 100644 index 0000000000..964e28803d --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/enums/MoldPlanTypeEnum.java @@ -0,0 +1,87 @@ +package cn.iocoder.yudao.module.mes.controller.admin.moldticketmanagement.enums; + +import lombok.Getter; + +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 计划类型枚举 + * 1-点检 2-保养 + */ +@Getter +public enum MoldPlanTypeEnum { + + INSPECTION(1, "点检"), + MAINTENANCE(2, "保养"); + + private final Integer code; + private final String description; + + MoldPlanTypeEnum(Integer code, String description) { + this.code = code; + this.description = description; + } + + /** + * 根据code获取枚举 + */ + public static MoldPlanTypeEnum getByCode(Integer code) { + if (code == null) { + return null; + } + for (MoldPlanTypeEnum type : values()) { + if (type.getCode().equals(code)) { + return type; + } + } + return null; + } + + /** + * 根据code获取描述 + */ + public static String getDescriptionByCode(Integer code) { + MoldPlanTypeEnum type = getByCode(code); + return type != null ? type.getDescription() : "未知"; + } + + /** + * 检查code是否有效 + */ + public static boolean isValidCode(Integer code) { + return getByCode(code) != null; + } + + /** + * 获取所有code列表 + */ + public static List getAllCodes() { + return Arrays.stream(values()) + .map(MoldPlanTypeEnum::getCode) + .collect(Collectors.toList()); + } + + /** + * 获取所有描述列表 + */ + public static List getAllDescriptions() { + return Arrays.stream(values()) + .map(MoldPlanTypeEnum::getDescription) + .collect(Collectors.toList()); + } + + /** + * 获取code和描述的映射 + */ + public static Map getCodeDescriptionMap() { + Map map = new LinkedHashMap<>(); + for (MoldPlanTypeEnum type : values()) { + map.put(type.getCode(), type.getDescription()); + } + return map; + } +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/vo/MoldTicketManagementBatchUpdateReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/vo/MoldTicketManagementBatchUpdateReqVO.java new file mode 100644 index 0000000000..897e835d4a --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/vo/MoldTicketManagementBatchUpdateReqVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.mes.controller.admin.moldticketmanagement.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +// 1. 新增请求VO +@Data +public class MoldTicketManagementBatchUpdateReqVO { + + @Schema(description = "工单ID列表,用逗号分隔", example = "1,2,3") + @NotBlank(message = "工单ID不能为空") + private String ids; + + @Schema(description = "作业状态", example = "2") + @NotNull(message = "作业状态不能为空") + private Integer jobStatus ; // 默认值为2 +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/vo/MoldTicketManagementPageReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/vo/MoldTicketManagementPageReqVO.java new file mode 100644 index 0000000000..a4afba546b --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/vo/MoldTicketManagementPageReqVO.java @@ -0,0 +1,66 @@ +package cn.iocoder.yudao.module.mes.controller.admin.moldticketmanagement.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 项目方案关联分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class MoldTicketManagementPageReqVO extends PageParam { + + @Schema(description = "项目ID", example = "21368") + private Long taskId; + + @Schema(description = "方案ID", example = "20459") + private Long planId; + + @Schema(description = "单号") + private String planNo; + + @Schema(description = "设备名称", example = "张三") + private String moldName; + + @Schema(description = "类型(1-点检 2-保养)", example = "2") + private String planType; + + @Schema(description = "计划配置名称", example = "赵六") + private String configName; + + @Schema(description = "作业状态", example = "1") + private Integer jobStatus; + + @Schema(description = "作业结果") + private String jobResult; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + + @Schema(description = "id集合导出用") + private String ids; + + + /** + * 作业开始时间 + */ + private String taskTime; + + /** + * 作业结束时间 + */ + private String taskEndTime; + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/vo/MoldTicketManagementRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/vo/MoldTicketManagementRespVO.java new file mode 100644 index 0000000000..e0c6fe1c9d --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/vo/MoldTicketManagementRespVO.java @@ -0,0 +1,92 @@ +package cn.iocoder.yudao.module.mes.controller.admin.moldticketmanagement.vo; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; +import com.github.xiaoymin.knife4j.annotations.Ignore; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 项目方案关联 Response VO") +@Data +@ExcelIgnoreUnannotated +public class MoldTicketManagementRespVO extends BaseDO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6566") + @ExcelProperty("id") + private Long id; + + @Schema(description = "任务Id", example = "21368") +// @ExcelProperty("项目ID") + private Long taskId; + + @Schema(description = "方案ID", example = "20459") +// @ExcelProperty("方案ID") + private Long planId; + + @Schema(description = "单号") + @ExcelProperty("单号") + private String planNo; + + @Schema(description = "设备名称", example = "张三") + @ExcelProperty("设备名称") + private String moldName; + + @Schema(description = "类型", example = "2") + @ExcelProperty("类型") + private String planType; + + @Schema(description = "计划配置名称", example = "赵六") + @ExcelProperty("计划配置名称") + private String configName; + + @Schema(description = "作业状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("作业状态") + private Integer jobStatus; + + @Schema(description = "作业结果") + @ExcelProperty("作业结果") + private Integer jobResult; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + + + /** + * 作业开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonSerialize(using = LocalDateTimeSerializer.class) + @JsonDeserialize(using = LocalDateTimeDeserializer.class) + private LocalDateTime taskTime; + + /** + * 作业结束时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonSerialize(using = LocalDateTimeSerializer.class) + @JsonDeserialize(using = LocalDateTimeDeserializer.class) + private LocalDateTime taskEndTime; + + + @Schema(description = "创建人名字") + @ExcelProperty("创建人名字") + private String creatorName; + + @Schema(description = "作业人") + private String operator; + @Schema(description = "作业人名称") + @ExcelProperty("作业人名称") + private String operatorName; + + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/vo/MoldTicketManagementSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/vo/MoldTicketManagementSaveReqVO.java new file mode 100644 index 0000000000..e4c38de3b9 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/vo/MoldTicketManagementSaveReqVO.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.mes.controller.admin.moldticketmanagement.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 项目方案关联新增/修改 Request VO") +@Data +public class MoldTicketManagementSaveReqVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6566") + private Long id; + + @Schema(description = "项目ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21368") + @NotNull(message = "项目ID不能为空") + private Long subjectId; + + @Schema(description = "方案ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "20459") + @NotNull(message = "方案ID不能为空") + private Long planId; + + @Schema(description = "单号") + private String planNo; + + @Schema(description = "设备名称", example = "张三") + private String moldName; + + @Schema(description = "类型", example = "2") + private String planType; + + @Schema(description = "计划配置名称", example = "赵六") + private String configName; + + @Schema(description = "作业状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "作业状态不能为空") + private Integer jobStatus; + + @Schema(description = "作业结果") + private Integer jobResult; + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketresults/MoldTicketResultsController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketresults/MoldTicketResultsController.java new file mode 100644 index 0000000000..84e160f28d --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketresults/MoldTicketResultsController.java @@ -0,0 +1,104 @@ +package cn.iocoder.yudao.module.mes.controller.admin.moldticketresults; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.mes.controller.admin.moldticketresults.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldticketresults.MoldTicketResultsDO; +import cn.iocoder.yudao.module.mes.service.moldticketresults.MoldTicketResultsService; + +@Tag(name = "管理后台 - 工单检验结果") +@RestController +@RequestMapping("/mes/mold-ticket-results") +@Validated +public class MoldTicketResultsController { + + @Resource + private MoldTicketResultsService moldticketResultsService; + + @PostMapping("/create") + @Operation(summary = "创建工单检验结果") + @PreAuthorize("@ss.hasPermission('mes:mold-ticket-results:create')") + public CommonResult createMoldTicketResults(@Valid @RequestBody MoldTicketResultsSaveReqVO createReqVO) { + return success(moldticketResultsService.createMoldTicketResults(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新工单检验结果") + @PreAuthorize("@ss.hasPermission('mes:mold-ticket-results:update')") + public CommonResult updateMoldTicketResults(@Valid @RequestBody MoldTicketResultsSaveReqVO updateReqVO) { + moldticketResultsService.updateMoldTicketResults(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除工单检验结果") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('mes:mold-ticket-results:delete')") + public CommonResult deleteMoldTicketResults(@RequestParam("id") Long id) { + moldticketResultsService.deleteMoldTicketResults(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得工单检验结果") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('mes:mold-ticket-results:query')") + public CommonResult getMoldTicketResults(@RequestParam("id") Long id) { + MoldTicketResultsDO moldticketResults = moldticketResultsService.getMoldTicketResults(id); + return success(BeanUtils.toBean(moldticketResults, MoldTicketResultsRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得工单检验结果分页") + @PreAuthorize("@ss.hasPermission('mes:mold-ticket-results:query')") + public CommonResult> getMoldTicketResultsPage(@Valid MoldTicketResultsPageReqVO pageReqVO) { + PageResult pageResult = moldticketResultsService.getMoldTicketResultsPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, MoldTicketResultsRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出工单检验结果 Excel") + @PreAuthorize("@ss.hasPermission('mes:mold-ticket-results:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportMoldTicketResultsExcel(@Valid MoldTicketResultsPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = moldticketResultsService.getMoldTicketResultsPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "工单检验结果.xls", "数据", MoldTicketResultsRespVO.class, + BeanUtils.toBean(list, MoldTicketResultsRespVO.class)); + } + + @PutMapping("/batchUpdate") + @Operation(summary = "批量更新工单检验结果") + @PreAuthorize("@ss.hasPermission('mes:mold-ticket-results:update')") + public CommonResult batchUpdateMoldTicketResults( + @Valid @RequestBody List updateReqVOList) { + moldticketResultsService.batchUpdateMoldTicketResults(updateReqVOList); + return success(true); + } + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketresults/enums/MoldJobResultEnum.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketresults/enums/MoldJobResultEnum.java new file mode 100644 index 0000000000..7c9b3be922 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketresults/enums/MoldJobResultEnum.java @@ -0,0 +1,109 @@ +package cn.iocoder.yudao.module.mes.controller.admin.moldticketresults.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 作业结果枚举 + */ +@Getter +@AllArgsConstructor +public enum MoldJobResultEnum { + + /** + * 待完成 + */ + PENDING(0, "待完成"), + + /** + * 通过 + */ + PASS(1, "通过"), + + /** + * 不通过 + */ + FAIL(2, "不通过"); + + /** + * 结果编码 + */ + private final Integer code; + + /** + * 结果描述 + */ + private final String description; + + /** + * 根据编码获取枚举 + */ + public static MoldJobResultEnum getByCode(Integer code) { + if (code == null) { + return null; + } + for (MoldJobResultEnum status : values()) { + if (status.getCode().equals(code)) { + return status; + } + } + return null; + } + + /** + * 判断编码是否有效 + */ + public static boolean isValidCode(Integer code) { + return getByCode(code) != null; + } + + /** + * 获取所有编码 + */ + public static List getAllCodes() { + return Arrays.stream(values()) + .map(MoldJobResultEnum::getCode) + .collect(Collectors.toList()); + } + + /** + * 获取所有描述 + */ + public static List getAllDescriptions() { + return Arrays.stream(values()) + .map(MoldJobResultEnum::getDescription) + .collect(Collectors.toList()); + } + + /** + * 是否为待完成 + */ + public boolean isPending() { + return this == PENDING; + } + + /** + * 是否为通过 + */ + public boolean isPass() { + return this == PASS; + } + + /** + * 是否为不通过 + */ + public boolean isFail() { + return this == FAIL; + } + + /** + * 是否已完成(通过或不通过都算完成) + */ + public boolean isCompleted() { + return this == PASS || this == FAIL; + } +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketresults/vo/MoldTicketResultsPageReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketresults/vo/MoldTicketResultsPageReqVO.java new file mode 100644 index 0000000000..6465eef9f9 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketresults/vo/MoldTicketResultsPageReqVO.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.mes.controller.admin.moldticketresults.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 工单检验结果分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class MoldTicketResultsPageReqVO extends PageParam { + + @Schema(description = "检验项名称", example = "赵六") + private String inspectionItemName; + + @Schema(description = "检验方式") + private String inspectionMethod; + + @Schema(description = "判定基准") + private String judgmentCriteria; + + @Schema(description = "检验结果 0-待检测 1-检测通过 2-检测不通过") + private Integer inspectionResult; + + @Schema(description = "图片路径") + private String images; + + @Schema(description = "备注", example = "你说的对") + private String remark; + + @Schema(description = "检验时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] inspectionTime; + + @Schema(description = "工单管理Id") + private Long managementId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketresults/vo/MoldTicketResultsRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketresults/vo/MoldTicketResultsRespVO.java new file mode 100644 index 0000000000..0963ec6869 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketresults/vo/MoldTicketResultsRespVO.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.module.mes.controller.admin.moldticketresults.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 工单检验结果 Response VO") +@Data +@ExcelIgnoreUnannotated +public class MoldTicketResultsRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "30557") + @ExcelProperty("id") + private Long id; + + @Schema(description = "检验项名称", example = "赵六") + @ExcelProperty("检验项名称") + private String inspectionItemName; + + @Schema(description = "检验方式") + @ExcelProperty("检验方式") + private String inspectionMethod; + + @Schema(description = "判定基准") + @ExcelProperty("判定基准") + private String judgmentCriteria; + + @Schema(description = "检验结果 0-待检测 1-检测通过 2-检测不通过") + @ExcelProperty("检验结果 0-待检测 1-检测通过 2-检测不通过") + private Integer inspectionResult; + + @Schema(description = "图片路径") + @ExcelProperty("图片路径") + private String images; + + @Schema(description = "备注", example = "你说的对") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "检验时间") + @ExcelProperty("检验时间") + private LocalDateTime inspectionTime; + + @Schema(description = "工单管理Id") + private Long managementId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "模具Id") + private Long moldId; +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketresults/vo/MoldTicketResultsSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketresults/vo/MoldTicketResultsSaveReqVO.java new file mode 100644 index 0000000000..dd26428993 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketresults/vo/MoldTicketResultsSaveReqVO.java @@ -0,0 +1,44 @@ +package cn.iocoder.yudao.module.mes.controller.admin.moldticketresults.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 工单检验结果新增/修改 Request VO") +@Data +public class MoldTicketResultsSaveReqVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "30557") + private Long id; + + @Schema(description = "检验项名称", example = "赵六") + private String inspectionItemName; + + @Schema(description = "工单管理Id") + private Long managementId; + + @Schema(description = "检验方式") + private String inspectionMethod; + + @Schema(description = "判定基准") + private String judgmentCriteria; + + @Schema(description = "检验结果 0-待检测 1-检测通过 2-检测不通过") + private Integer inspectionResult; + + @Schema(description = "图片路径") + private String images; + + @Schema(description = "备注", example = "你说的对") + private String remark; + + @Schema(description = "检验时间") + private LocalDateTime inspectionTime; + + @Schema(description = "检验人") + private String inspector; + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/subjectmoldplan/SubjectMoldPlanController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/subjectmoldplan/SubjectMoldPlanController.java new file mode 100644 index 0000000000..c166400b44 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/subjectmoldplan/SubjectMoldPlanController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.mes.controller.admin.subjectmoldplan; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.mes.controller.admin.subjectmoldplan.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.subjectmoldplan.SubjectMoldPlanDO; +import cn.iocoder.yudao.module.mes.service.subjectmoldplan.SubjectMoldPlanService; + +@Tag(name = "管理后台 - 项目方案关联") +@RestController +@RequestMapping("/mes/subject-mold-plan") +@Validated +public class SubjectMoldPlanController { + + @Resource + private SubjectMoldPlanService subjectPlanService; + + @PostMapping("/create") + @Operation(summary = "创建项目方案关联") + @PreAuthorize("@ss.hasPermission('mes:subject-mold-plan:create')") + public CommonResult createSubjectMoldPlan(@Valid @RequestBody SubjectMoldPlanSaveReqVO createReqVO) { + return success(subjectPlanService.createSubjectMoldPlan(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新项目方案关联") + @PreAuthorize("@ss.hasPermission('mes:subject-mold-plan:update')") + public CommonResult updateSubjectMoldPlan(@Valid @RequestBody SubjectMoldPlanSaveReqVO updateReqVO) { + subjectPlanService.updateSubjectMoldPlan(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除项目方案关联") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('mes:subject-mold-plan:delete')") + public CommonResult deleteSubjectMoldPlan(@RequestParam("id") Long id) { + subjectPlanService.deleteSubjectMoldPlan(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得项目方案关联") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('mes:subject-mold-plan:query')") + public CommonResult getSubjectMoldPlan(@RequestParam("id") Long id) { + SubjectMoldPlanDO subjectPlan = subjectPlanService.getSubjectMoldPlan(id); + return success(BeanUtils.toBean(subjectPlan, SubjectMoldPlanRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得项目方案关联分页") + @PreAuthorize("@ss.hasPermission('mes:subject-mold-plan:query')") + public CommonResult> getSubjectMoldPlanPage(@Valid SubjectMoldPlanPageReqVO pageReqVO) { + PageResult pageResult = subjectPlanService.getSubjectMoldPlanPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, SubjectMoldPlanRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出项目方案关联 Excel") + @PreAuthorize("@ss.hasPermission('mes:subject-mold-plan:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportSubjectMoldPlanExcel(@Valid SubjectMoldPlanPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = subjectPlanService.getSubjectMoldPlanPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "项目方案关联.xls", "数据", SubjectMoldPlanRespVO.class, + BeanUtils.toBean(list, SubjectMoldPlanRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/subjectmoldplan/vo/SubjectMoldPlanPageReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/subjectmoldplan/vo/SubjectMoldPlanPageReqVO.java new file mode 100644 index 0000000000..fc6057560d --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/subjectmoldplan/vo/SubjectMoldPlanPageReqVO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.mes.controller.admin.subjectmoldplan.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 项目方案关联分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class SubjectMoldPlanPageReqVO extends PageParam { + + @Schema(description = "项目ID", example = "21197") + private String subjectId; + + @Schema(description = "方案ID", example = "19398") + private String planId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/subjectmoldplan/vo/SubjectMoldPlanRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/subjectmoldplan/vo/SubjectMoldPlanRespVO.java new file mode 100644 index 0000000000..20e165a15b --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/subjectmoldplan/vo/SubjectMoldPlanRespVO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.mes.controller.admin.subjectmoldplan.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 项目方案关联 Response VO") +@Data +@ExcelIgnoreUnannotated +public class SubjectMoldPlanRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29831") + @ExcelProperty("id") + private Long id; + + @Schema(description = "项目ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21197") + @ExcelProperty("项目ID") + private String subjectId; + + @Schema(description = "方案ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19398") + @ExcelProperty("方案ID") + private String planId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/subjectmoldplan/vo/SubjectMoldPlanSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/subjectmoldplan/vo/SubjectMoldPlanSaveReqVO.java new file mode 100644 index 0000000000..32c5638a80 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/subjectmoldplan/vo/SubjectMoldPlanSaveReqVO.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.mes.controller.admin.subjectmoldplan.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 项目方案关联新增/修改 Request VO") +@Data +public class SubjectMoldPlanSaveReqVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29831") + private Long id; + + @Schema(description = "项目ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21197") + @NotEmpty(message = "项目ID不能为空") + private String subjectId; + + @Schema(description = "方案ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19398") + @NotEmpty(message = "方案ID不能为空") + private String planId; + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldplanmaintenance/MoldPlanMaintenanceDO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldplanmaintenance/MoldPlanMaintenanceDO.java new file mode 100644 index 0000000000..a386a41173 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldplanmaintenance/MoldPlanMaintenanceDO.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.mes.dal.dataobject.moldplanmaintenance; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 方案维护 DO + * + * @author 内蒙必硕 + */ +@TableName("mes_mold_plan_maintenance") +@KeySequence("mes_mold_plan_maintenance_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MoldPlanMaintenanceDO extends BaseDO { + + /** + * id + */ + @TableId + private Long id; + /** + * 名称 + */ + private String planName; + /** + * 类型 1-保养 2-维护 + */ + private int planType; + /** + * 描述 + */ + private String description; + + /** + * 项目id集合 + */ + @TableField(exist = false) + private List subjectIds; +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldsubject/MoldSubjectDO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldsubject/MoldSubjectDO.java new file mode 100644 index 0000000000..c52d1ae06f --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldsubject/MoldSubjectDO.java @@ -0,0 +1,70 @@ +package cn.iocoder.yudao.module.mes.dal.dataobject.moldsubject; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 维保项目 DO + * + * @author 内蒙必硕 + */ +@TableName("mes_mold_subject") +@KeySequence("mes_mold_subject_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MoldSubjectDO extends BaseDO { + + /** + * ID + */ + @TableId + private Long id; + /** + * 项目编码 + */ + private String subjectCode; + /** + * 项目名称 + */ + private String subjectName; + /** + * 项目类型 + */ + private String subjectType; + /** + * 项目内容 + */ + private String subjectContent; + /** + * 标准 + */ + private String subjectStandard; + /** + * 是否启用 + * + * 枚举 {@link TODO infra_boolean_string 对应的类} + */ + private Boolean isEnable; + + /** + * 检验方式 + */ + private String inspectionMethod; + /** + * 值类型 + */ + private String valueType; + /** + * 判定基准 + */ + private String judgmentCriteria; + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldtaskmanagement/MoldTaskManagementDO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldtaskmanagement/MoldTaskManagementDO.java new file mode 100644 index 0000000000..d1694dd2e2 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldtaskmanagement/MoldTaskManagementDO.java @@ -0,0 +1,84 @@ +package cn.iocoder.yudao.module.mes.dal.dataobject.moldtaskmanagement; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; +import lombok.*; + +import java.time.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 模具类型 DO + * + * @author 内蒙必硕 + */ +@TableName("mes_mold_task_management") +@KeySequence("mes_mold_task_management_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MoldTaskManagementDO extends BaseDO { + + /** + * id + */ + @TableId + private Long id; + /** + * 名称 + */ + private String name; + /** + * 类型(1-点检 2-保养) + */ + private Integer taskType; + /** + * 模具列表 + */ + private String moldList; + /** + * 项目表单 + */ + private Long projectForm; + /** + * 起止开始日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @JsonSerialize(using = LocalDateTimeSerializer.class) + @JsonDeserialize(using = LocalDateTimeDeserializer.class) + private LocalDate startDate; + /** + * 起止结束日期 + */ + @JsonSerialize(using = LocalDateTimeSerializer.class) + @JsonDeserialize(using = LocalDateTimeDeserializer.class) + private LocalDate endDate; + /** + * cron表达式 + */ + private String cronExpression; + /** + * 可操作人 + */ + private String operableUsers; + /** + * 是否启用 + */ + private Boolean enabled; + + @TableField(exist = false) + private String projectFormName; + + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldticketmanagement/MoldTicketManagementDO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldticketmanagement/MoldTicketManagementDO.java new file mode 100644 index 0000000000..98f8ba13e2 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldticketmanagement/MoldTicketManagementDO.java @@ -0,0 +1,91 @@ +package cn.iocoder.yudao.module.mes.dal.dataobject.moldticketmanagement; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; +import lombok.*; + +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 工单管理 DO + * + * @author 内蒙必硕 + */ +@TableName("mes_mold_ticket_management") +@KeySequence("mes_mold_ticket_management_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MoldTicketManagementDO extends BaseDO { + + /** + * id + */ + @TableId + private Long id; + /** + * 任务ID + */ + private Long taskId; + /** + * 方案ID + */ + private Long planId; + /** + * 单号 + */ + private String planNo; + /** + * 模具名称 + */ + private String moldName; + /** + * 类型(1-点检 2-保养) + */ + private int planType; + /** + * 计划配置名称 + */ + private String configName; + /** + * 作业状态 0-待完成 1-已完成 2-已取消 + */ + private Integer jobStatus; + /** + * 作业结果 0-待完成 1-通过 2-不通过 + */ + private int jobResult; + /** + * 作业人 + */ + private String operator; + /** + * 作业开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonSerialize(using = LocalDateTimeSerializer.class) + @JsonDeserialize(using = LocalDateTimeDeserializer.class) + private LocalDateTime taskTime; + + /** + * 作业结束时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonSerialize(using = LocalDateTimeSerializer.class) + @JsonDeserialize(using = LocalDateTimeDeserializer.class) + private LocalDateTime taskEndTime; + + + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldticketresults/MoldTicketResultsDO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldticketresults/MoldTicketResultsDO.java new file mode 100644 index 0000000000..847a6c85d4 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldticketresults/MoldTicketResultsDO.java @@ -0,0 +1,68 @@ +package cn.iocoder.yudao.module.mes.dal.dataobject.moldticketresults; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 工单检验结果 DO + * + * @author 内蒙必硕 + */ +@TableName("mes_mold_ticket_results") +@KeySequence("mes_mold_ticket_results_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MoldTicketResultsDO extends BaseDO { + + /** + * id + */ + @TableId + private Long id; + /** + * 检验项名称 + */ + private String inspectionItemName; + /** + * 检验方式 + */ + private String inspectionMethod; + /** + * 判定基准 + */ + private String judgmentCriteria; + /** + * 检验结果 0-待检测 1-检测通过 2-检测不通过 + */ + private Integer inspectionResult; + /** + * 图片路径 + */ + private String images; + /** + * 备注 + */ + private String remark; + /** + * 检验时间 + */ + private LocalDateTime inspectionTime; + /** + * 检验人 + */ + private Long managementId; + /** + * 模具id + */ + private Long moldId; + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/subjectmoldplan/SubjectMoldPlanDO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/subjectmoldplan/SubjectMoldPlanDO.java new file mode 100644 index 0000000000..220b9e1a1e --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/subjectmoldplan/SubjectMoldPlanDO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.mes.dal.dataobject.subjectmoldplan; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 项目方案关联 DO + * + * @author 内蒙必硕 + */ +@TableName("mes_subject_mold_plan") +@KeySequence("mes_subject_mold_plan_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SubjectMoldPlanDO extends BaseDO { + + /** + * id + */ + @TableId + private Long id; + /** + * 项目ID + */ + private Long subjectId; + /** + * 方案ID + */ + private Long planId; + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldplanmaintenance/MoldPlanMaintenanceMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldplanmaintenance/MoldPlanMaintenanceMapper.java new file mode 100644 index 0000000000..e14795434b --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldplanmaintenance/MoldPlanMaintenanceMapper.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.mes.dal.mysql.moldplanmaintenance; + +import java.util.*; +import java.util.stream.Collectors; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.mes.dal.dataobject.dvsubject.DvSubjectDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldplanmaintenance.MoldPlanMaintenanceDO; +import com.alibaba.excel.util.StringUtils; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.mes.controller.admin.moldplanmaintenance.vo.*; + +/** + * 方案维护 Mapper + * + * @author 内蒙必硕 + */ +@Mapper +public interface MoldPlanMaintenanceMapper extends BaseMapperX { + + default PageResult selectPage(MoldPlanMaintenancePageReqVO reqVO) { + + LambdaQueryWrapperX moldplanMaintenanceDOLambdaQueryWrapperX = new LambdaQueryWrapperX<>(); + moldplanMaintenanceDOLambdaQueryWrapperX + .likeIfPresent(MoldPlanMaintenanceDO::getPlanName, reqVO.getPlanName()) + .eqIfPresent(MoldPlanMaintenanceDO::getPlanType, reqVO.getPlanType()) + .eqIfPresent(MoldPlanMaintenanceDO::getDescription, reqVO.getDescription()) + .betweenIfPresent(MoldPlanMaintenanceDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(MoldPlanMaintenanceDO::getCreateTime); + + // 单独处理 ids 条件 + if (StringUtils.isNotBlank(reqVO.getIds())) { + List idList = Arrays.stream(reqVO.getIds().split(",")) + .map(String::trim) + .map(Long::valueOf) + .collect(Collectors.toList()); + moldplanMaintenanceDOLambdaQueryWrapperX.in(MoldPlanMaintenanceDO::getId, idList); + } + PageResult moldplanMaintenanceDOPageResult = selectPage(reqVO, moldplanMaintenanceDOLambdaQueryWrapperX); + + + return moldplanMaintenanceDOPageResult; + } + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldsubject/MoldSubjectMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldsubject/MoldSubjectMapper.java new file mode 100644 index 0000000000..bc2c5420f6 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldsubject/MoldSubjectMapper.java @@ -0,0 +1,52 @@ +package cn.iocoder.yudao.module.mes.dal.mysql.moldsubject; + +import java.util.*; +import java.util.stream.Collectors; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.mes.dal.dataobject.deviceledger.DeviceLedgerDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldsubject.MoldSubjectDO; +import com.alibaba.excel.util.StringUtils; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.mes.controller.admin.moldsubject.vo.*; + +/** + * 维保项目 Mapper + * + * @author 内蒙必硕 + */ +@Mapper +public interface MoldSubjectMapper extends BaseMapperX { + + default PageResult selectPage(MoldSubjectPageReqVO reqVO) { + + + LambdaQueryWrapperX moldSubjectDOLambdaQueryWrapperX = new LambdaQueryWrapperX<>(); + moldSubjectDOLambdaQueryWrapperX + .likeIfPresent(MoldSubjectDO::getInspectionMethod, reqVO.getInspectionMethod()) + .likeIfPresent(MoldSubjectDO::getValueType, reqVO.getValueType()) + .likeIfPresent(MoldSubjectDO::getJudgmentCriteria, reqVO.getJudgmentCriteria()) + .likeIfPresent(MoldSubjectDO::getSubjectCode, reqVO.getSubjectCode()) + .likeIfPresent(MoldSubjectDO::getSubjectName, reqVO.getSubjectName()) + .eqIfPresent(MoldSubjectDO::getSubjectType, reqVO.getSubjectType()) + .eqIfPresent(MoldSubjectDO::getSubjectContent, reqVO.getSubjectContent()) + .eqIfPresent(MoldSubjectDO::getSubjectStandard, reqVO.getSubjectStandard()) + .eqIfPresent(MoldSubjectDO::getIsEnable, reqVO.getIsEnable()) + .betweenIfPresent(MoldSubjectDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(MoldSubjectDO::getCreateTime); + + // 单独处理 ids 条件 + if (StringUtils.isNotBlank(reqVO.getIds())) { + List idList = Arrays.stream(reqVO.getIds().split(",")) + .map(String::trim) + .map(Long::valueOf) + .collect(Collectors.toList()); + moldSubjectDOLambdaQueryWrapperX.in(MoldSubjectDO::getId, idList); + } + + return selectPage(reqVO, moldSubjectDOLambdaQueryWrapperX); + } + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldtaskmanagement/MoldTaskManagementMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldtaskmanagement/MoldTaskManagementMapper.java new file mode 100644 index 0000000000..e8a8299d6c --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldtaskmanagement/MoldTaskManagementMapper.java @@ -0,0 +1,53 @@ +package cn.iocoder.yudao.module.mes.dal.mysql.moldtaskmanagement; + +import java.util.*; +import java.util.stream.Collectors; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldplanmaintenance.MoldPlanMaintenanceDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldtaskmanagement.MoldTaskManagementDO; +import com.alibaba.excel.util.StringUtils; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo.*; + +/** + * 模具类型 Mapper + * + * @author 内蒙必硕 + */ +@Mapper +public interface MoldTaskManagementMapper extends BaseMapperX { + + default PageResult selectPage(MoldTaskManagementPageReqVO reqVO) { + + + LambdaQueryWrapperX moldtaskManagementDOLambdaQueryWrapperX = new LambdaQueryWrapperX<>(); + moldtaskManagementDOLambdaQueryWrapperX + .likeIfPresent(MoldTaskManagementDO::getName, reqVO.getName()) + .eqIfPresent(MoldTaskManagementDO::getTaskType, reqVO.getTaskType()) + .eqIfPresent(MoldTaskManagementDO::getMoldList, reqVO.getMoldList()) + .eqIfPresent(MoldTaskManagementDO::getProjectForm, reqVO.getProjectForm()) + .betweenIfPresent(MoldTaskManagementDO::getStartDate, reqVO.getStartDate()) + .betweenIfPresent(MoldTaskManagementDO::getEndDate, reqVO.getEndDate()) + .eqIfPresent(MoldTaskManagementDO::getCronExpression, reqVO.getCronExpression()) + .eqIfPresent(MoldTaskManagementDO::getOperableUsers, reqVO.getOperableUsers()) + .eqIfPresent(MoldTaskManagementDO::getEnabled, reqVO.getEnabled()) + .betweenIfPresent(MoldTaskManagementDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(MoldTaskManagementDO::getId); + + // 单独处理 ids 条件 + if (StringUtils.isNotBlank(reqVO.getIds())) { + List idList = Arrays.stream(reqVO.getIds().split(",")) + .map(String::trim) + .map(Long::valueOf) + .collect(Collectors.toList()); + moldtaskManagementDOLambdaQueryWrapperX.in(MoldTaskManagementDO::getId, idList); + } + + + return selectPage(reqVO, moldtaskManagementDOLambdaQueryWrapperX); + } + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldticketmanagement/MoldTicketManagementMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldticketmanagement/MoldTicketManagementMapper.java new file mode 100644 index 0000000000..9fc3001949 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldticketmanagement/MoldTicketManagementMapper.java @@ -0,0 +1,63 @@ +package cn.iocoder.yudao.module.mes.dal.mysql.moldticketmanagement; + +import java.util.*; +import java.util.stream.Collectors; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldtaskmanagement.MoldTaskManagementDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldticketmanagement.MoldTicketManagementDO; +import com.alibaba.excel.util.StringUtils; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.mes.controller.admin.moldticketmanagement.vo.*; +import org.apache.ibatis.annotations.Param; + +/** + * 项目方案关联 Mapper + * + * @author 内蒙必硕 + */ +@Mapper +public interface MoldTicketManagementMapper extends BaseMapperX { + + default PageResult selectPage(MoldTicketManagementPageReqVO reqVO) { + + LambdaQueryWrapperX ticketManagementDOLambdaQueryWrapperX = new LambdaQueryWrapperX<>(); + ticketManagementDOLambdaQueryWrapperX + .eqIfPresent(MoldTicketManagementDO::getTaskId, reqVO.getTaskId()) + .eqIfPresent(MoldTicketManagementDO::getPlanId, reqVO.getPlanId()) + .eqIfPresent(MoldTicketManagementDO::getPlanNo, reqVO.getPlanNo()) + .likeIfPresent(MoldTicketManagementDO::getMoldName, reqVO.getMoldName()) + .eqIfPresent(MoldTicketManagementDO::getPlanType, reqVO.getPlanType()) + .likeIfPresent(MoldTicketManagementDO::getConfigName, reqVO.getConfigName()) + .eqIfPresent(MoldTicketManagementDO::getJobStatus, reqVO.getJobStatus()) + .eqIfPresent(MoldTicketManagementDO::getJobResult, reqVO.getJobResult()) + .orderByDesc(MoldTicketManagementDO::getCreateTime); + + + // 单独处理 ids 条件 + if (StringUtils.isNotBlank(reqVO.getIds())) { + List idList = Arrays.stream(reqVO.getIds().split(",")) + .map(String::trim) + .map(Long::valueOf) + .collect(Collectors.toList()); + ticketManagementDOLambdaQueryWrapperX.in(MoldTicketManagementDO::getId, idList); + } + + + return selectPage(reqVO,ticketManagementDOLambdaQueryWrapperX); + } + + + /** + * 批量更新作业状态 + * + * @param idList 工单ID列表 + * @param jobStatus 作业状态 + * @return 更新记录数 + */ + int batchUpdateJobStatus(@Param("idList") List idList, + @Param("jobStatus") Integer jobStatus); + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldticketresults/MoldTicketResultsMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldticketresults/MoldTicketResultsMapper.java new file mode 100644 index 0000000000..4511b61bd7 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldticketresults/MoldTicketResultsMapper.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.mes.dal.mysql.moldticketresults; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldticketresults.MoldTicketResultsDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.mes.controller.admin.moldticketresults.vo.*; +import org.apache.ibatis.annotations.Param; + +/** + * 工单检验结果 Mapper + * + * @author 内蒙必硕 + */ +@Mapper +public interface MoldTicketResultsMapper extends BaseMapperX { + + default PageResult selectPage(MoldTicketResultsPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(MoldTicketResultsDO::getInspectionItemName, reqVO.getInspectionItemName()) + .eqIfPresent(MoldTicketResultsDO::getInspectionMethod, reqVO.getInspectionMethod()) + .eqIfPresent(MoldTicketResultsDO::getJudgmentCriteria, reqVO.getJudgmentCriteria()) + .eqIfPresent(MoldTicketResultsDO::getInspectionResult, reqVO.getInspectionResult()) + .eqIfPresent(MoldTicketResultsDO::getImages, reqVO.getImages()) + .eqIfPresent(MoldTicketResultsDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(MoldTicketResultsDO::getInspectionTime, reqVO.getInspectionTime()) + .eqIfPresent(MoldTicketResultsDO::getManagementId, reqVO.getManagementId()) + .betweenIfPresent(MoldTicketResultsDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(MoldTicketResultsDO::getId)); + } + + List findByDeviceIdAndPlanType(@Param("deviceId") Long deviceId,@Param("planType") Integer planType); +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/subjectmoldplan/SubjectMoldPlanMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/subjectmoldplan/SubjectMoldPlanMapper.java new file mode 100644 index 0000000000..ef0a613b6d --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/subjectmoldplan/SubjectMoldPlanMapper.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.mes.dal.mysql.subjectmoldplan; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.mes.dal.dataobject.subjectmoldplan.SubjectMoldPlanDO; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.mes.controller.admin.subjectmoldplan.vo.*; + +/** + * 项目方案关联 Mapper + * + * @author 内蒙必硕 + */ +@Mapper +public interface SubjectMoldPlanMapper extends BaseMapperX { + + default PageResult selectPage(SubjectMoldPlanPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(SubjectMoldPlanDO::getSubjectId, reqVO.getSubjectId()) + .eqIfPresent(SubjectMoldPlanDO::getPlanId, reqVO.getPlanId()) + .betweenIfPresent(SubjectMoldPlanDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(SubjectMoldPlanDO::getId)); + } + + /** + * 物理删除指定计划的关联 + * + * @param planId 计划ID + */ + @Delete("DELETE FROM besure.mes_subject_mold_plan WHERE plan_id = #{planId}") + void deleteByPlanId(Long planId); + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldplanmaintenance/MoldPlanMaintenanceService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldplanmaintenance/MoldPlanMaintenanceService.java new file mode 100644 index 0000000000..736e2b552a --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldplanmaintenance/MoldPlanMaintenanceService.java @@ -0,0 +1,59 @@ +package cn.iocoder.yudao.module.mes.service.moldplanmaintenance; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.mes.controller.admin.moldplanmaintenance.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldsubject.MoldSubjectDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldplanmaintenance.MoldPlanMaintenanceDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.module.mes.dal.dataobject.subjectmoldplan.SubjectMoldPlanDO; + +/** + * 方案维护 Service 接口 + * + * @author 内蒙必硕 + */ +public interface MoldPlanMaintenanceService { + + /** + * 创建方案维护 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createMoldPlanMaintenance(@Valid MoldPlanMaintenanceSaveReqVO createReqVO); + + /** + * 更新方案维护 + * + * @param updateReqVO 更新信息 + */ + void updateMoldPlanMaintenance(@Valid MoldPlanMaintenanceSaveReqVO updateReqVO); + + /** + * 删除方案维护 + * + * @param id 编号 + */ + void deleteMoldPlanMaintenance( List idList); + + /** + * 获得方案维护 + * + * @param id 编号 + * @return 方案维护 + */ + MoldPlanMaintenanceDO getMoldPlanMaintenance(Long id); + + /** + * 获得方案维护分页 + * + * @param pageReqVO 分页查询 + * @return 方案维护分页 + */ + PageResult getMoldPlanMaintenancePage(MoldPlanMaintenancePageReqVO pageReqVO); + + List getSubjectList(Long id); + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldplanmaintenance/MoldPlanMaintenanceServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldplanmaintenance/MoldPlanMaintenanceServiceImpl.java new file mode 100644 index 0000000000..93410d4d96 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldplanmaintenance/MoldPlanMaintenanceServiceImpl.java @@ -0,0 +1,192 @@ +package cn.iocoder.yudao.module.mes.service.moldplanmaintenance; + +import cn.iocoder.yudao.module.mes.dal.dataobject.moldsubject.MoldSubjectDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.subjectmoldplan.SubjectMoldPlanDO; +import cn.iocoder.yudao.module.mes.dal.mysql.moldsubject.MoldSubjectMapper; +import cn.iocoder.yudao.module.mes.dal.mysql.subjectmoldplan.SubjectMoldPlanMapper; +import cn.iocoder.yudao.module.mes.service.moldplanmaintenance.MoldPlanMaintenanceService; +import cn.iocoder.yudao.module.mes.service.subjectmoldplan.SubjectMoldPlanService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import java.util.stream.Collectors; + +import cn.iocoder.yudao.module.mes.controller.admin.moldplanmaintenance.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldplanmaintenance.MoldPlanMaintenanceDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.mes.dal.mysql.moldplanmaintenance.MoldPlanMaintenanceMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; + +/** + * 方案维护 Service 实现类 + * + * @author 内蒙必硕 + */ +@Service +@Validated +public class MoldPlanMaintenanceServiceImpl implements MoldPlanMaintenanceService { + + @Resource + private MoldPlanMaintenanceMapper moldplanMaintenanceMapper; + @Resource + private SubjectMoldPlanMapper subjectMoldPlanMapper; + + @Resource + private MoldSubjectMapper moldSubjectMapper; + + + @Override + @Transactional(rollbackFor = Exception.class) + public Long createMoldPlanMaintenance(MoldPlanMaintenanceSaveReqVO createReqVO) { + // 插入 + MoldPlanMaintenanceDO moldplanMaintenance = BeanUtils.toBean(createReqVO, MoldPlanMaintenanceDO.class); + moldplanMaintenanceMapper.insert(moldplanMaintenance); + + if (StringUtils.isNotBlank(createReqVO.getSubjectIdS())){ + + // 将逗号分隔的字符串转换为Long类型的List + List idList = Arrays.stream( createReqVO.getSubjectIdS().split(",")) + .map(String::trim) // 去除可能存在的空格 + .map(Long::valueOf) + .collect(Collectors.toList()); + + + //插入关联表 + insertSubjectMoldPlan(moldplanMaintenance.getId(),idList); + } + // 返回 + return moldplanMaintenance.getId(); + } + + private void insertSubjectMoldPlan(Long id, List idList) { + + List subjectMoldPlanDOArrayList = new ArrayList<>(); + for (Long subjectId : idList) { + SubjectMoldPlanDO subjectMoldPlanDO = new SubjectMoldPlanDO(); + subjectMoldPlanDO.setPlanId(id); + subjectMoldPlanDO.setSubjectId(subjectId); + subjectMoldPlanDOArrayList.add(subjectMoldPlanDO); + } + subjectMoldPlanMapper.insertBatch(subjectMoldPlanDOArrayList); + + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateMoldPlanMaintenance(MoldPlanMaintenanceSaveReqVO updateReqVO) { + // 校验存在 + validateMoldPlanMaintenanceExists(updateReqVO.getId()); + // 更新 + MoldPlanMaintenanceDO updateObj = BeanUtils.toBean(updateReqVO, MoldPlanMaintenanceDO.class); + moldplanMaintenanceMapper.updateById(updateObj); + + + if (StringUtils.isNotBlank(updateReqVO.getSubjectIdS())) { + // 将逗号分隔的字符串转换为Long类型的List + List idList = Arrays.stream( updateReqVO.getSubjectIdS().split(",")) + .map(String::trim) // 去除可能存在的空格 + .map(Long::valueOf) + .collect(Collectors.toList()); + //更新关联表 + updateSubjectMoldPlan(updateObj.getId(),idList); + } + } + + private void updateSubjectMoldPlan(Long id, List idList) { + + subjectMoldPlanMapper.deleteByPlanId(id); + List subjectMoldPlanDOArrayList = new ArrayList<>(); + for (Long subjectId : idList) { + SubjectMoldPlanDO subjectMoldPlanDO = new SubjectMoldPlanDO(); + subjectMoldPlanDO.setPlanId(id); + subjectMoldPlanDO.setSubjectId(subjectId); + subjectMoldPlanDOArrayList.add(subjectMoldPlanDO); + } + subjectMoldPlanMapper.insertBatch(subjectMoldPlanDOArrayList); + + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteMoldPlanMaintenance( List idList) { + for (Long id : idList) { + // 校验存在 + validateMoldPlanMaintenanceExists(id); + + } + // 删除 + moldplanMaintenanceMapper.deleteByIds(idList); + //删除关联表数据 + deleteSubjectMoldPlan(idList); + + } + + private void deleteSubjectMoldPlan(List idList) { + for (Long id : idList) { + if (id != null ){ + subjectMoldPlanMapper.delete(Wrappers.lambdaQuery() + .eq(SubjectMoldPlanDO::getPlanId, id)); + } + } + + } + + private void validateMoldPlanMaintenanceExists(Long id) { + if (moldplanMaintenanceMapper.selectById(id) == null) { + throw exception(PLAN_MAINTENANCE_NOT_EXISTS); + } + } + + @Override + public MoldPlanMaintenanceDO getMoldPlanMaintenance(Long id) { + return moldplanMaintenanceMapper.selectById(id); + } + + @Override + public PageResult getMoldPlanMaintenancePage(MoldPlanMaintenancePageReqVO pageReqVO) { + PageResult moldplanMaintenanceDOPageResult = moldplanMaintenanceMapper.selectPage(pageReqVO); + for (MoldPlanMaintenanceDO moldplanMaintenanceDO : moldplanMaintenanceDOPageResult.getList()) { + List ids = new ArrayList<>(); + List subjectMoldPlanDOList = subjectMoldPlanMapper.selectList(Wrappers.lambdaQuery() + .eq(SubjectMoldPlanDO::getPlanId, moldplanMaintenanceDO.getId())); + for (SubjectMoldPlanDO subjectMoldPlanDO : subjectMoldPlanDOList) { + ids.add(subjectMoldPlanDO.getSubjectId()); + } + moldplanMaintenanceDO.setSubjectIds(ids); + } + + + return moldplanMaintenanceDOPageResult; + } + + @Override + public List getSubjectList(Long id) { + if (id == null ){ + throw exception(SUBJECT_ID_NOT_EXISTS); + } + //查询对应的设备列表 + List moldSubjectDOList = new ArrayList<>(); + List subjectMoldPlanDOList = subjectMoldPlanMapper.selectList(Wrappers.lambdaQuery() + .eq(SubjectMoldPlanDO::getPlanId, id)); + for (SubjectMoldPlanDO subjectMoldPlanDO : subjectMoldPlanDOList) { + MoldSubjectDO moldSubjectDO = moldSubjectMapper.selectById(subjectMoldPlanDO.getSubjectId()); + if (moldSubjectDO!=null){ + moldSubjectDOList.add(moldSubjectDO); + } + } + + return moldSubjectDOList; + } + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldsubject/MoldSubjectService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldsubject/MoldSubjectService.java new file mode 100644 index 0000000000..69c0aeb4cb --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldsubject/MoldSubjectService.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.module.mes.service.moldsubject; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.mes.controller.admin.moldsubject.vo.MoldSubjectPageReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.moldsubject.vo.MoldSubjectSaveReqVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldsubject.MoldSubjectDO; + +import javax.validation.Valid; +import java.util.List; + +/** + * 维保项目 Service 接口 + * + * @author 内蒙必硕 + */ +public interface MoldSubjectService { + + /** + * 创建维保项目 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createMoldSubject(@Valid MoldSubjectSaveReqVO createReqVO); + + /** + * 更新维保项目 + * + * @param updateReqVO 更新信息 + */ + void updateMoldSubject(@Valid MoldSubjectSaveReqVO updateReqVO); + + /** + * 删除维保项目 + * + * @param id 编号 + */ + void deleteMoldSubject(List idList); + + /** + * 获得维保项目 + * + * @param id 编号 + * @return 维保项目 + */ + MoldSubjectDO getMoldSubject(Long id); + + /** + * 获得维保项目分页 + * + * @param pageReqVO 分页查询 + * @return 维保项目分页 + */ + PageResult getMoldSubjectPage(MoldSubjectPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldsubject/MoldSubjectServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldsubject/MoldSubjectServiceImpl.java new file mode 100644 index 0000000000..37993f26b8 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldsubject/MoldSubjectServiceImpl.java @@ -0,0 +1,101 @@ +package cn.iocoder.yudao.module.mes.service.moldsubject; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.iot.dal.dataobject.devicemodel.DeviceModelDO; +import cn.iocoder.yudao.module.mes.controller.admin.moldsubject.vo.MoldSubjectPageReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.moldsubject.vo.MoldSubjectSaveReqVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.devicetype.DeviceTypeDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldsubject.MoldSubjectDO; +import cn.iocoder.yudao.module.mes.dal.mysql.moldsubject.MoldSubjectMapper; +import cn.iocoder.yudao.module.mes.service.moldsubject.MoldSubjectService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; + +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.DEVICE_MODEL_CODE_EXISTS; +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; + +/** + * 维保项目 Service 实现类 + * + * @author 内蒙必硕 + */ +@Service +@Validated +public class MoldSubjectServiceImpl implements MoldSubjectService { + + @Resource + private MoldSubjectMapper moldSubjectMapper; + + @Override + public Long createMoldSubject(MoldSubjectSaveReqVO createReqVO) { + + validateCodeOnly(createReqVO.getSubjectCode()); + // 插入 + MoldSubjectDO moldSubject = BeanUtils.toBean(createReqVO, MoldSubjectDO.class); + moldSubjectMapper.insert(moldSubject); + // 返回 + return moldSubject.getId(); + } + + private void validateCodeOnly( String code) { + if (moldSubjectMapper.exists(Wrappers.lambdaQuery() + .eq(MoldSubjectDO::getSubjectCode, code))) { + throw exception(SUBJECT_EXISTS); + } + } + + @Override + public void updateMoldSubject(MoldSubjectSaveReqVO updateReqVO) { + // 校验存在 + validateMoldSubjectExists(updateReqVO.getId()); + + //编码重复判断 + Long count = moldSubjectMapper.selectCount(new LambdaQueryWrapper() + .eq(MoldSubjectDO::getSubjectCode, updateReqVO.getSubjectCode()) + .ne(MoldSubjectDO::getId, updateReqVO.getId()) + ); + if (count > 0) { + throw exception(SUBJECT_EXISTS); + } + // 更新 + MoldSubjectDO updateObj = BeanUtils.toBean(updateReqVO, MoldSubjectDO.class); + moldSubjectMapper.updateById(updateObj); + } + + @Override + public void deleteMoldSubject(List idList) { + + for (Long id : idList) { + // 校验存在 + validateMoldSubjectExists(id); + } + + // 删除 + moldSubjectMapper.deleteByIds(idList); + } + + private void validateMoldSubjectExists(Long id) { + if (moldSubjectMapper.selectById(id) == null) { + throw exception(DV_SUBJECT_NOT_EXISTS); + } + } + + @Override + public MoldSubjectDO getMoldSubject(Long id) { + return moldSubjectMapper.selectById(id); + } + + @Override + public PageResult getMoldSubjectPage(MoldSubjectPageReqVO pageReqVO) { + return moldSubjectMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldtaskmanagement/MoldTaskManagementService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldtaskmanagement/MoldTaskManagementService.java new file mode 100644 index 0000000000..5f1023103d --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldtaskmanagement/MoldTaskManagementService.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.module.mes.service.moldtaskmanagement; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldtaskmanagement.MoldTaskManagementDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 设备类型 Service 接口 + * + * @author 内蒙必硕 + */ +public interface MoldTaskManagementService { + + /** + * 创建设备类型 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createMoldTaskManagement(@Valid MoldTaskManagementSaveReqVO createReqVO); + + /** + * 更新设备类型 + * + * @param updateReqVO 更新信息 + */ + void updateMoldTaskManagement(@Valid MoldTaskManagementSaveReqVO updateReqVO); + + /** + * 删除设备类型 + * + * @param id 编号 + */ + void deleteMoldTaskManagement(List idList ); + + /** + * 获得设备类型 + * + * @param id 编号 + * @return 设备类型 + */ + MoldTaskManagementDO getMoldTaskManagement(Long id); + + /** + * 获得设备类型分页 + * + * @param pageReqVO 分页查询 + * @return 设备类型分页 + */ + PageResult getMoldTaskManagementPage(MoldTaskManagementPageReqVO pageReqVO); + + void createMoldTicket(Long id); +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldtaskmanagement/MoldTaskManagementServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldtaskmanagement/MoldTaskManagementServiceImpl.java new file mode 100644 index 0000000000..0fed43f2c7 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldtaskmanagement/MoldTaskManagementServiceImpl.java @@ -0,0 +1,178 @@ +package cn.iocoder.yudao.module.mes.service.moldtaskmanagement; + +import cn.iocoder.yudao.module.erp.dal.dataobject.mold.MoldDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.dvsubject.DvSubjectDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldplanmaintenance.MoldPlanMaintenanceDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.subjectplan.SubjectPlanDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldticketmanagement.MoldTicketManagementDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldticketresults.MoldTicketResultsDO; +import cn.iocoder.yudao.module.erp.dal.mysql.mold.MoldMapper; +import cn.iocoder.yudao.module.mes.dal.mysql.dvsubject.DvSubjectMapper; +import cn.iocoder.yudao.module.mes.dal.mysql.moldplanmaintenance.MoldPlanMaintenanceMapper; +import cn.iocoder.yudao.module.mes.dal.mysql.subjectplan.SubjectPlanMapper; +import cn.iocoder.yudao.module.mes.dal.mysql.moldticketmanagement.MoldTicketManagementMapper; +import cn.iocoder.yudao.module.mes.dal.mysql.moldticketresults.MoldTicketResultsMapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + +import cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldtaskmanagement.MoldTaskManagementDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.mes.dal.mysql.moldtaskmanagement.MoldTaskManagementMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; + +/** + * 设备类型 Service 实现类 + * + * @author 内蒙必硕 + */ +@Service +@Validated +public class MoldTaskManagementServiceImpl implements MoldTaskManagementService { + + @Resource + private MoldTaskManagementMapper moldtaskManagementMapper; + + @Resource + private MoldTicketManagementMapper moldticketManagementMapper; + + @Resource + private MoldTicketResultsMapper moldticketResultsMapper; + + @Resource + private MoldMapper moldMapper; + + @Resource + private MoldPlanMaintenanceMapper moldplanMaintenanceMapper; + + @Resource + private SubjectPlanMapper subjectPlanMapper; + + + @Resource + private DvSubjectMapper dvSubjectMapper; + + @Override + public Long createMoldTaskManagement(MoldTaskManagementSaveReqVO createReqVO) { + // 插入 + MoldTaskManagementDO moldtaskManagement = BeanUtils.toBean(createReqVO, MoldTaskManagementDO.class); + moldtaskManagementMapper.insert(moldtaskManagement); + // 返回 + return moldtaskManagement.getId(); + } + + @Override + public void updateMoldTaskManagement(MoldTaskManagementSaveReqVO updateReqVO) { + // 校验存在 + validateMoldTaskManagementExists(updateReqVO.getId()); + // 更新 + MoldTaskManagementDO updateObj = BeanUtils.toBean(updateReqVO, MoldTaskManagementDO.class); + moldtaskManagementMapper.updateById(updateObj); + } + + @Override + public void deleteMoldTaskManagement(List idList ) { + for (Long id : idList) { + // 校验存在 + validateMoldTaskManagementExists(id); + } + // 删除 + moldtaskManagementMapper.deleteByIds(idList); + } + + private void validateMoldTaskManagementExists(Long id) { + if (moldtaskManagementMapper.selectById(id) == null) { + throw exception(TASK_MANAGEMENT_NOT_EXISTS); + } + } + + @Override + public MoldTaskManagementDO getMoldTaskManagement(Long id) { + return moldtaskManagementMapper.selectById(id); + } + + @Override + public PageResult getMoldTaskManagementPage(MoldTaskManagementPageReqVO pageReqVO) { + + PageResult moldtaskManagementDOPageResult = moldtaskManagementMapper.selectPage(pageReqVO); + for (MoldTaskManagementDO moldtaskManagementDO : moldtaskManagementDOPageResult.getList()) { + MoldPlanMaintenanceDO moldplanMaintenanceDO = moldplanMaintenanceMapper.selectById(moldtaskManagementDO.getProjectForm()); + moldtaskManagementDO.setProjectFormName(moldplanMaintenanceDO.getPlanName()); + } + + + return moldtaskManagementDOPageResult; + } + + @Override + public void createMoldTicket(Long id) { + + List moldticketManagementDOS = new ArrayList<>(); + + //检验数据是否存在 + validateMoldTaskManagementExists(id); + MoldTaskManagementDO moldtaskManagementDO = moldtaskManagementMapper.selectById(id); + if (moldtaskManagementDO == null){ + throw exception(TASK_MANAGEMENT_NOT_EXISTS); + } + + // 将逗号分隔的字符串转换为Long类型的List + List idList = Arrays.stream(moldtaskManagementDO.getMoldList().split(",")) + .map(String::trim) // 去除可能存在的空格 + .map(Long::valueOf) + .collect(Collectors.toList()); + + + for (Long moldId : idList) { + MoldTicketManagementDO moldticketManagementDO = new MoldTicketManagementDO(); + MoldDO moldDO = moldMapper.selectById(moldId); + moldticketManagementDO.setTaskId(moldtaskManagementDO.getId()); + moldticketManagementDO.setPlanNo(generatePrefixedOrderNo()); + moldticketManagementDO.setPlanId(moldtaskManagementDO.getProjectForm()); + moldticketManagementDO.setMoldName(moldDO.getName()); + moldticketManagementDO.setPlanType(moldtaskManagementDO.getTaskType()); + moldticketManagementDO.setConfigName(moldtaskManagementDO.getName()); + moldticketManagementDO.setTaskEndTime(moldtaskManagementDO.getEndDate().atStartOfDay()); + moldticketManagementMapper.insert(moldticketManagementDO); + + List dvSubjectDOList = new ArrayList<>(); + List subjectPlanDOList = subjectPlanMapper.selectList(Wrappers.lambdaQuery().eq(SubjectPlanDO::getPlanId, moldticketManagementDO.getPlanId())); + for (SubjectPlanDO subjectPlanDO : subjectPlanDOList) { + DvSubjectDO dvSubjectDO = dvSubjectMapper.selectById(subjectPlanDO.getSubjectId()); + + MoldTicketResultsDO moldticketResultsDO = new MoldTicketResultsDO(); + moldticketResultsDO.setInspectionItemName(dvSubjectDO.getSubjectName()); + moldticketResultsDO.setInspectionMethod(dvSubjectDO.getInspectionMethod()); + moldticketResultsDO.setJudgmentCriteria(dvSubjectDO.getJudgmentCriteria()); + moldticketResultsDO.setManagementId(moldticketManagementDO.getId()); + moldticketResultsDO.setMoldId(moldId); + moldticketResultsMapper.insert(moldticketResultsDO); + } + + } + + } + + + /** + * 带前缀的时间戳单号 + */ + public static String generatePrefixedOrderNo() { + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + String date = sdf.format(new Date()); + String randomNum = String.format("%06d", new Random().nextInt(1000000)); + return "E" + date + randomNum; + } +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldticketmanagement/MoldTicketManagementService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldticketmanagement/MoldTicketManagementService.java new file mode 100644 index 0000000000..454271fbc5 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldticketmanagement/MoldTicketManagementService.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.module.mes.service.moldticketmanagement; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.mes.controller.admin.moldticketmanagement.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldticketmanagement.MoldTicketManagementDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 项目方案关联 Service 接口 + * + * @author 内蒙必硕 + */ +public interface MoldTicketManagementService { + + /** + * 创建项目方案关联 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createMoldTicketManagement(@Valid MoldTicketManagementSaveReqVO createReqVO); + + /** + * 更新项目方案关联 + * + * @param updateReqVO 更新信息 + */ + void updateMoldTicketManagement(@Valid MoldTicketManagementSaveReqVO updateReqVO); + + /** + * 删除项目方案关联 + * + * @param id 编号 + */ + void deleteMoldTicketManagement(Long id); + + /** + * 获得项目方案关联 + * + * @param id 编号 + * @return 项目方案关联 + */ + MoldTicketManagementDO getMoldTicketManagement(Long id); + + /** + * 获得项目方案关联分页 + * + * @param pageReqVO 分页查询 + * @return 项目方案关联分页 + */ + PageResult getMoldTicketManagementPage(MoldTicketManagementPageReqVO pageReqVO); + + void batchUpdateJobStatus(@Valid MoldTicketManagementBatchUpdateReqVO reqVO); +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldticketmanagement/MoldTicketManagementServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldticketmanagement/MoldTicketManagementServiceImpl.java new file mode 100644 index 0000000000..3b59884286 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldticketmanagement/MoldTicketManagementServiceImpl.java @@ -0,0 +1,107 @@ +package cn.iocoder.yudao.module.mes.service.moldticketmanagement; + +import cn.iocoder.yudao.module.mes.service.moldticketmanagement.MoldTicketManagementService; +import com.alibaba.excel.util.StringUtils; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import java.util.stream.Collectors; + +import cn.iocoder.yudao.module.mes.controller.admin.moldticketmanagement.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldticketmanagement.MoldTicketManagementDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.mes.dal.mysql.moldticketmanagement.MoldTicketManagementMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; + +/** + * 项目方案关联 Service 实现类 + * + * @author 内蒙必硕 + */ +@Service +@Validated +public class MoldTicketManagementServiceImpl implements MoldTicketManagementService { + + @Resource + private MoldTicketManagementMapper moldticketManagementMapper; + + @Override + public Long createMoldTicketManagement(MoldTicketManagementSaveReqVO createReqVO) { + // 插入 + MoldTicketManagementDO moldticketManagement = BeanUtils.toBean(createReqVO, MoldTicketManagementDO.class); + moldticketManagementMapper.insert(moldticketManagement); + // 返回 + return moldticketManagement.getId(); + } + + @Override + public void updateMoldTicketManagement(MoldTicketManagementSaveReqVO updateReqVO) { + // 校验存在 + validateMoldTicketManagementExists(updateReqVO.getId()); + // 更新 + MoldTicketManagementDO updateObj = BeanUtils.toBean(updateReqVO, MoldTicketManagementDO.class); + moldticketManagementMapper.updateById(updateObj); + } + + @Override + public void deleteMoldTicketManagement(Long id) { + // 校验存在 + validateMoldTicketManagementExists(id); + // 删除 + moldticketManagementMapper.deleteById(id); + } + + private void validateMoldTicketManagementExists(Long id) { + if (moldticketManagementMapper.selectById(id) == null) { + throw exception(TICKET_MANAGEMENT_NOT_EXISTS); + } + } + + @Override + public MoldTicketManagementDO getMoldTicketManagement(Long id) { + return moldticketManagementMapper.selectById(id); + } + + @Override + public PageResult getMoldTicketManagementPage(MoldTicketManagementPageReqVO pageReqVO) { + return moldticketManagementMapper.selectPage(pageReqVO); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void batchUpdateJobStatus(MoldTicketManagementBatchUpdateReqVO reqVO) { + // 1. 解析ID列表 + List idList = parseIds(reqVO.getIds()); + if (idList.isEmpty()) { + throw exception(TICKET_MANAGEMENT_NOT_EXISTS); + } + + // 2. 批量更新 + moldticketManagementMapper.batchUpdateJobStatus(idList, reqVO.getJobStatus()); + } + + /** + * 解析逗号分隔的ID字符串 + */ + private List parseIds(String ids) { + if (StringUtils.isBlank(ids)) { + return Collections.emptyList(); + } + + return Arrays.stream(ids.split(",")) + .map(String::trim) + .filter(StringUtils::isNotBlank) + .map(Long::valueOf) + .distinct() + .collect(Collectors.toList()); + } + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldticketresults/MoldTicketResultsService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldticketresults/MoldTicketResultsService.java new file mode 100644 index 0000000000..a3553c0ddb --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldticketresults/MoldTicketResultsService.java @@ -0,0 +1,62 @@ +package cn.iocoder.yudao.module.mes.service.moldticketresults; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.mes.controller.admin.moldticketresults.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldticketresults.MoldTicketResultsDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 工单检验结果 Service 接口 + * + * @author 内蒙必硕 + */ +public interface MoldTicketResultsService { + + /** + * 创建工单检验结果 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createMoldTicketResults(@Valid MoldTicketResultsSaveReqVO createReqVO); + + /** + * 更新工单检验结果 + * + * @param updateReqVO 更新信息 + */ + void updateMoldTicketResults(@Valid MoldTicketResultsSaveReqVO updateReqVO); + + /** + * 删除工单检验结果 + * + * @param id 编号 + */ + void deleteMoldTicketResults(Long id); + + /** + * 获得工单检验结果 + * + * @param id 编号 + * @return 工单检验结果 + */ + MoldTicketResultsDO getMoldTicketResults(Long id); + + /** + * 获得工单检验结果分页 + * + * @param pageReqVO 分页查询 + * @return 工单检验结果分页 + */ + PageResult getMoldTicketResultsPage(MoldTicketResultsPageReqVO pageReqVO); + + /** + * 工单检验结果批量更新 + * + * @param updateReqVOList 批量更新 + * @return 工单检验结果批量更新 + */ + void batchUpdateMoldTicketResults(@Valid List updateReqVOList); +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldticketresults/MoldTicketResultsServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldticketresults/MoldTicketResultsServiceImpl.java new file mode 100644 index 0000000000..0c60ec24e3 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldticketresults/MoldTicketResultsServiceImpl.java @@ -0,0 +1,182 @@ +package cn.iocoder.yudao.module.mes.service.moldticketresults; + +import cn.iocoder.yudao.framework.security.core.LoginUser; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.module.mes.controller.admin.moldticketresults.enums.MoldJobResultEnum; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldticketmanagement.MoldTicketManagementDO; +import cn.iocoder.yudao.module.mes.dal.mysql.moldticketmanagement.MoldTicketManagementMapper; +import cn.iocoder.yudao.module.mes.service.moldticketresults.MoldTicketResultsService; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.*; +import cn.iocoder.yudao.module.mes.controller.admin.moldticketresults.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldticketresults.MoldTicketResultsDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.mes.dal.mysql.moldticketresults.MoldTicketResultsMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; + +/** + * 工单检验结果 Service 实现类 + * + * @author 内蒙必硕 + */ +@Service +@Validated +public class MoldTicketResultsServiceImpl implements MoldTicketResultsService { + + @Resource + private MoldTicketResultsMapper moldticketResultsMapper; + + @Resource + @Lazy + private MoldTicketManagementMapper moldticketManagementMapper; + + + @Override + public Long createMoldTicketResults(MoldTicketResultsSaveReqVO createReqVO) { + // 插入 + MoldTicketResultsDO moldticketResults = BeanUtils.toBean(createReqVO, MoldTicketResultsDO.class); + moldticketResultsMapper.insert(moldticketResults); + // 返回 + return moldticketResults.getId(); + } + + @Override + public void updateMoldTicketResults(MoldTicketResultsSaveReqVO updateReqVO) { + // 校验存在 + validateMoldTicketResultsExists(updateReqVO.getId()); + // 更新 + MoldTicketResultsDO updateObj = BeanUtils.toBean(updateReqVO, MoldTicketResultsDO.class); + moldticketResultsMapper.updateById(updateObj); + } + + @Override + public void deleteMoldTicketResults(Long id) { + // 校验存在 + validateMoldTicketResultsExists(id); + // 删除 + moldticketResultsMapper.deleteById(id); + } + + private void validateMoldTicketResultsExists(Long id) { + if (moldticketResultsMapper.selectById(id) == null) { + throw exception(TICKET_RESULTS_NOT_EXISTS); + } + } + + @Override + public MoldTicketResultsDO getMoldTicketResults(Long id) { + return moldticketResultsMapper.selectById(id); + } + + @Override + public PageResult getMoldTicketResultsPage(MoldTicketResultsPageReqVO pageReqVO) { + return moldticketResultsMapper.selectPage(pageReqVO); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void batchUpdateMoldTicketResults(List updateReqVOList) { + if (CollectionUtils.isEmpty(updateReqVOList)) { + return; + } + + // 1. 数据验证 + validateBatchUpdateData(updateReqVOList); + + // 2. 批量更新 + List updateList = new ArrayList<>(); + LocalDateTime now = LocalDateTime.now(); + + for (MoldTicketResultsSaveReqVO vo : updateReqVOList) { + // 转换为DO + MoldTicketResultsDO updateDO = BeanUtils.toBean(vo, MoldTicketResultsDO.class); + updateDO.setUpdateTime(now); + updateList.add(updateDO); + } + + // 3. 执行批量更新 + moldticketResultsMapper.updateBatch(updateList); + + //4. 判断是否全部已检验 + handleInspectionResult(updateReqVOList); + + + } + + /** + * 验证批量更新数据 + */ + private void validateBatchUpdateData(List updateReqVOList) { + if (CollectionUtils.isEmpty(updateReqVOList)) { + return; + } + + Set idSet = new HashSet<>(); + + for (int i = 0; i < updateReqVOList.size(); i++) { + MoldTicketResultsSaveReqVO vo = updateReqVOList.get(i); + + // 验证ID不能为空 + if (vo.getId() == null) { + throw exception(TICKET_RESULTS_ID_NOT_NULL); + } + + idSet.add(vo.getId()); + + // 调用单个验证逻辑 + validateMoldTicketResultsExists(vo.getId()); + } + } + + + /** + * 处理检验结果 + */ + private void handleInspectionResult(List updateReqVOList) { + if (CollectionUtils.isEmpty(updateReqVOList)) { + return; + } + + // 检查是否有未填写的 + boolean hasPending = updateReqVOList.stream() + .anyMatch(vo -> vo.getInspectionResult() == null || vo.getInspectionResult().equals(MoldJobResultEnum.PENDING.getCode())); + + if (hasPending) { + return; + } + MoldTicketManagementDO moldticketManagementDO = moldticketManagementMapper.selectById(updateReqVOList.get(0).getManagementId()); + if (moldticketManagementDO == null ){ + throw exception(TICKET_MANAGEMENT_NOT_EXISTS); + } + moldticketManagementDO.setTaskTime(LocalDateTime.now()); + //设置为已完成 + moldticketManagementDO.setJobStatus(1); + // 检查是否有不通过的 + boolean hasFail = updateReqVOList.stream() + .anyMatch(vo -> vo.getInspectionResult() != null && vo.getInspectionResult().equals(MoldJobResultEnum.FAIL.getCode())); + if (hasFail) { + moldticketManagementDO.setJobResult(MoldJobResultEnum.FAIL.getCode()); + + } else { + moldticketManagementDO.setJobResult(MoldJobResultEnum.PASS.getCode()); + } + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + moldticketManagementDO.setOperator(String.valueOf(loginUser.getId())); + + moldticketManagementMapper.updateById(moldticketManagementDO); + + } + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/subjectmoldplan/SubjectMoldPlanService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/subjectmoldplan/SubjectMoldPlanService.java new file mode 100644 index 0000000000..9f30881df1 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/subjectmoldplan/SubjectMoldPlanService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.mes.service.subjectmoldplan; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.mes.controller.admin.subjectmoldplan.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.subjectmoldplan.SubjectMoldPlanDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 项目方案关联 Service 接口 + * + * @author 内蒙必硕 + */ +public interface SubjectMoldPlanService { + + /** + * 创建项目方案关联 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createSubjectMoldPlan(@Valid SubjectMoldPlanSaveReqVO createReqVO); + + /** + * 更新项目方案关联 + * + * @param updateReqVO 更新信息 + */ + void updateSubjectMoldPlan(@Valid SubjectMoldPlanSaveReqVO updateReqVO); + + /** + * 删除项目方案关联 + * + * @param id 编号 + */ + void deleteSubjectMoldPlan(Long id); + + /** + * 获得项目方案关联 + * + * @param id 编号 + * @return 项目方案关联 + */ + SubjectMoldPlanDO getSubjectMoldPlan(Long id); + + /** + * 获得项目方案关联分页 + * + * @param pageReqVO 分页查询 + * @return 项目方案关联分页 + */ + PageResult getSubjectMoldPlanPage(SubjectMoldPlanPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/subjectmoldplan/SubjectMoldPlanServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/subjectmoldplan/SubjectMoldPlanServiceImpl.java new file mode 100644 index 0000000000..cc4cf9e76c --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/subjectmoldplan/SubjectMoldPlanServiceImpl.java @@ -0,0 +1,75 @@ +package cn.iocoder.yudao.module.mes.service.subjectmoldplan; + +import cn.iocoder.yudao.module.mes.service.subjectmoldplan.SubjectMoldPlanService; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.mes.controller.admin.subjectmoldplan.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.subjectmoldplan.SubjectMoldPlanDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.mes.dal.mysql.subjectmoldplan.SubjectMoldPlanMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; + +/** + * 项目方案关联 Service 实现类 + * + * @author 内蒙必硕 + */ +@Service +@Validated +public class SubjectMoldPlanServiceImpl implements SubjectMoldPlanService { + + @Resource + private SubjectMoldPlanMapper subjectMoldPlanMapper; + + @Override + public Long createSubjectMoldPlan(SubjectMoldPlanSaveReqVO createReqVO) { + // 插入 + SubjectMoldPlanDO subjectMoldPlan = BeanUtils.toBean(createReqVO, SubjectMoldPlanDO.class); + subjectMoldPlanMapper.insert(subjectMoldPlan); + // 返回 + return subjectMoldPlan.getId(); + } + + @Override + public void updateSubjectMoldPlan(SubjectMoldPlanSaveReqVO updateReqVO) { + // 校验存在 + validateSubjectMoldPlanExists(updateReqVO.getId()); + // 更新 + SubjectMoldPlanDO updateObj = BeanUtils.toBean(updateReqVO, SubjectMoldPlanDO.class); + subjectMoldPlanMapper.updateById(updateObj); + } + + @Override + public void deleteSubjectMoldPlan(Long id) { + // 校验存在 + validateSubjectMoldPlanExists(id); + // 删除 + subjectMoldPlanMapper.deleteById(id); + } + + private void validateSubjectMoldPlanExists(Long id) { + if (subjectMoldPlanMapper.selectById(id) == null) { + throw exception(SUBJECT_PLAN_NOT_EXISTS); + } + } + + @Override + public SubjectMoldPlanDO getSubjectMoldPlan(Long id) { + return subjectMoldPlanMapper.selectById(id); + } + + @Override + public PageResult getSubjectMoldPlanPage(SubjectMoldPlanPageReqVO pageReqVO) { + return subjectMoldPlanMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/moldsubject/MoldSubjectMapper.xml b/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/moldsubject/MoldSubjectMapper.xml new file mode 100644 index 0000000000..402d1a1139 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/moldsubject/MoldSubjectMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/moldticketmanagement/MoldTicketManagementMapper.xml b/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/moldticketmanagement/MoldTicketManagementMapper.xml new file mode 100644 index 0000000000..6c3dc38784 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/moldticketmanagement/MoldTicketManagementMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + UPDATE mes_mold_ticket_management + SET job_status = #{jobStatus}, + update_time = NOW() + WHERE id IN + + #{id} + + \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/moldticketresults/MoldTicketResultsMapper.xml b/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/moldticketresults/MoldTicketResultsMapper.xml new file mode 100644 index 0000000000..17217e3e3d --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/moldticketresults/MoldTicketResultsMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + \ No newline at end of file