From 42d170e952da0a012c1e82508a2516fcd6e56c6d Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期五, 04 七月 2025 19:51:08 +0800 Subject: [PATCH] 保养规范全部代码新增流程处理 --- lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java | 3 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java | 18 + lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/MaintenanceStandardStatusEnum.java | 7 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java | 70 ++++ lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java | 25 ++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java | 307 ++++++++++++++++++++----- lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java | 5 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java | 6 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml | 3 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EamMaintenanceStandardVo.java | 95 +++++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/SecondMaintenanceOrderGenerateJob.java | 8 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java | 9 lxzn-boot-base-core/src/main/java/org/jeecg/common/aspect/DictAspect.java | 5 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java | 34 +- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceStandardRequest.java | 13 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java | 18 + lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java | 11 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenanceOrderGenerateJob.java | 28 +- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java | 46 +- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderGenerateJob.java | 6 20 files changed, 546 insertions(+), 171 deletions(-) diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/common/aspect/DictAspect.java b/lxzn-boot-base-core/src/main/java/org/jeecg/common/aspect/DictAspect.java index ee72256..1d479ed 100644 --- a/lxzn-boot-base-core/src/main/java/org/jeecg/common/aspect/DictAspect.java +++ b/lxzn-boot-base-core/src/main/java/org/jeecg/common/aspect/DictAspect.java @@ -52,8 +52,9 @@ /** * 瀹氫箟鍒囩偣Pointcut */ - @Pointcut("execution(public * org.jeecg.modules.base.*Controller.*(..)) || @annotation(org.jeecg.common.aspect.annotation.AutoDict)") - public void excudeService() { + @Pointcut("(execution(public * org.jeecg.modules..*Controller.*(..)) " + + "&& !execution(public * org.jeecg.modules.eam..*.*Controller.*(..)) ) " + + "|| @annotation(org.jeecg.common.aspect.annotation.AutoDict)") public void excudeService() { } @Around("excudeService()") diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java index 0ab95d0..d615687 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java @@ -68,5 +68,8 @@ String PCR0006 = "PCR0006"; //澶囦欢绠$悊鍛� String PCR0007 = "PCR0007"; - + //缁翠慨瀹や富浠� + String PCR0008 = "PCR0008"; + //鎶�鏈富绠� + String PCR0009 = "PCR0009"; } diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/MaintenanceStandardStatusEnum.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/MaintenanceStandardStatusEnum.java index 709577c..4526256 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/MaintenanceStandardStatusEnum.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/MaintenanceStandardStatusEnum.java @@ -4,6 +4,9 @@ * 淇濆吇鏍囧噯鐘舵�� */ public enum MaintenanceStandardStatusEnum { - NORMAL, - ABOLISH,; + WAIT_SUBMIT, + WAIT_REPAIR_DIRECTOR, + WAIT_TECHNICAL_DIRECTOR, + START, + ABOLISH; } diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java index efd0f47..755b231 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java @@ -8,6 +8,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import org.jeecg.common.aspect.annotation.Dict; import org.jeecg.modules.eam.dto.MaintenanceStandardImport; import org.jeecg.modules.eam.dto.SecondMaintenanceStandardImport; import org.jeecg.modules.eam.dto.ThirdMaintenanceStandardImport; @@ -27,7 +28,7 @@ @Accessors(chain = true) @ApiModel(value="eam_maintenance_standard_detail瀵硅薄", description="淇濆吇鏍囧噯鏄庣粏") public class EamMaintenanceStandardDetail implements Serializable { - + /**涓婚敭*/ @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "涓婚敭") @@ -44,30 +45,26 @@ /**鏇存柊鏃堕棿*/ @ApiModelProperty(value = "鏇存柊鏃堕棿") private Date updateTime; - /**淇濆吇鏍囧噯ID*/ - @ApiModelProperty(value = "淇濆吇鏍囧噯ID") + /**瑙勮寖id*/ + @ApiModelProperty(value = "瑙勮寖id") private String standardId; - /**淇濆吇椤瑰簭鍙�*/ - @ApiModelProperty(value = "淇濆吇椤瑰簭鍙�") + /**淇濆吇椤瑰垎绫�*/ + @ApiModelProperty(value = "淇濆吇椤瑰垎绫�") + @Dict(dicCode = "maintenance_item_category") + private String itemCategory; + /**椤圭洰搴忓彿*/ + @ApiModelProperty(value = "椤圭洰搴忓彿") private Integer itemCode; /**閮ㄤ綅*/ @ApiModelProperty(value = "閮ㄤ綅") private String itemPart; - /**淇濆吇椤�*/ - @ApiModelProperty(value = "淇濆吇椤�") + /**淇濆吇椤圭洰*/ + @ApiModelProperty(value = "淇濆吇椤圭洰") private String itemName; - /**瀛愪繚鍏婚」*/ - @ApiModelProperty(value = "瀛愪繚鍏婚」") - private String subItemName; /**妫�鏌ユ爣鍑嗘垨瑕佹眰*/ @ApiModelProperty(value = "妫�鏌ユ爣鍑嗘垨瑕佹眰") private String itemDemand; - /**淇濆吇瑕佹眰2*/ - @ApiModelProperty(value = "淇濆吇瑕佹眰2") - private String itemDemandAlias; - /**妫�鏌ユ柟娉�*/ - @ApiModelProperty(value = "妫�鏌ユ柟娉�") - private String checkMethod; + public EamMaintenanceStandardDetail(){} @@ -82,7 +79,6 @@ public EamMaintenanceStandardDetail(WeekMaintenanceStandardImport dto) { this.itemCode = dto.getItemCode(); this.itemName = dto.getItemName(); - this.subItemName = dto.getSubItemName() + " " + (dto.getItemPart() == null ? "" : dto.getItemPart()); this.itemDemand = dto.getItemDemand(); } @@ -91,8 +87,6 @@ this.itemName = dto.getItemName(); this.itemPart = dto.getItemPart(); this.itemDemand = dto.getItemDemand(); - this.itemDemandAlias = dto.getItemDemandAlias(); - this.checkMethod = dto.getCheckMethod(); } public EamMaintenanceStandardDetail(ThirdMaintenanceStandardImport dto) { @@ -100,7 +94,5 @@ this.itemName = dto.getItemName(); this.itemPart = dto.getItemPart(); this.itemDemand = dto.getItemDemand(); - this.itemDemandAlias = dto.getItemDemandAlias(); - this.checkMethod = dto.getCheckMethod(); } } diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java index 0d010bb..c8de2a8 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java @@ -23,7 +23,7 @@ @Accessors(chain = true) @ApiModel(value="eam_week_maintenance_order_detail瀵硅薄", description="鍛ㄤ繚宸ュ崟鏄庣粏") public class EamWeekMaintenanceOrderDetail implements Serializable { - + /**涓婚敭*/ @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "涓婚敭") @@ -70,7 +70,6 @@ public EamWeekMaintenanceOrderDetail(EamMaintenanceStandardDetail detail) { this.itemCode = detail.getItemCode(); this.itemName = detail.getItemName(); - this.subItemName = detail.getSubItemName(); this.itemDemand = detail.getItemDemand(); } } diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java index 570ee6a..cfb5b96 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java @@ -148,7 +148,6 @@ List<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getFactoryCode).collect(Collectors.toList()); queryWrapper.in("e.factory_code", factoryCode); } - } //鏌ヨ鏉′欢杩囨护 if (eamEquipment != null) { @@ -224,14 +223,21 @@ if (sysUser == null) { return Collections.emptyList(); } - if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) { + if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { //閫夋嫨浜嗚澶囷紝鏍规嵁璁惧id杩囨护璁惧 - List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(",")); - queryWrapper.in("equipment_code", equipArr); + List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); + queryWrapper.in("e.equipment_code", equipArr); } else { - //娌℃湁閫夋嫨璁惧锛屾牴鎹溅闂磋繃婊よ澶� - queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=org_id", sysUser.getId()); + //娌℃湁閫夋嫨璁惧锛屾牴鎹腑蹇冭繃婊よ澶� + List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService. + list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId())); + if(!CollectionUtils.isEmpty(baseFactoryUserList)){ + List<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toList()); + List<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getFactoryCode).collect(Collectors.toList()); + queryWrapper.in("e.factory_code", factoryCode); + } } + if (StringUtils.isNotBlank(keyword)) { queryWrapper.like("equipment_code", keyword); queryWrapper.or().like("equipment_name", keyword); diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java index 48d0bef..f714e0a 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java @@ -32,6 +32,7 @@ import org.jeecg.modules.eam.request.EamMaintenanceStandardRequest; import org.jeecg.modules.eam.service.IEamEquipmentService; import org.jeecg.modules.eam.service.IEamMaintenanceStandardService; +import org.jeecg.modules.eam.vo.EamMaintenanceStandardVo; import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.entity.ImportParams; @@ -65,6 +66,28 @@ private ISysBusinessCodeRuleService businessCodeRuleService; @Autowired private IEamEquipmentService eamEquipmentService; + + /** + * 娴佺▼鍚姩,淇濆瓨瀵瑰簲鐨勬暟鎹� + * @param id + * @return + */ + @ApiOperation(value = "淇濆吇鏍囧噯-娴佺▼鍚姩淇濆瓨瀵瑰簲鐨勬暟鎹�", notes = "淇濆吇鏍囧噯-娴佺▼鍚姩淇濆瓨瀵瑰簲鐨勬暟鎹�") + @GetMapping(value = "/saveEamMaintenanceStandardProcess") + public Result<?> saveEamMaintenanceStandardProcess(String id){ + return Result.OK(eamMaintenanceStandardService.saveEamMaintenanceStandardProcess(id)); + } + + /** + * 娴佺▼瀹℃牳 + * @param eamMaintenanceStandardVo + * @return + */ + @ApiOperation(value = "淇濆吇鏍囧噯-娴佺▼瀹℃牳", notes = "淇濆吇鏍囧噯-娴佺▼瀹℃牳") + @PostMapping(value = "/audit") + public Result<?> auditEamMaintenanceStandard(EamMaintenanceStandardVo eamMaintenanceStandardVo){ + return Result.OK(eamMaintenanceStandardService.auditEamMaintenanceStandard(eamMaintenanceStandardVo)); + } /** * 鍒嗛〉鍒楄〃鏌ヨ @@ -541,29 +564,6 @@ //鏂囦欢缂栫爜 Cell fileCode = row.getCell(13); request.setFileCode(fileCode.getStringCellValue()); - - Map<String, PictureData> pictures; - if (isXSSFWorkbook) { - pictures = PoiPublicUtil.getSheetPictrues07((XSSFSheet) book.getSheetAt(0), (XSSFWorkbook) book); - } else { - pictures = PoiPublicUtil.getSheetPictrues03((HSSFSheet) book.getSheetAt(0), (HSSFWorkbook) book); - } - - if (CollectionUtil.isNotEmpty(pictures)) { - //鍙細瀛樺湪涓�寮犲浘鐗� - PictureData pictureData = pictures.get(pictures.keySet().iterator().next()); - byte[] data = pictureData.getData(); - String fileName = request.getEquipmentCode() + "[" + request.getFileCode() + "]" + "." + pictureData.suggestFileExtension(); - FileUploadResult fileUploadResult = FileUtil.uploadFile(data, fileName); - if(fileUploadResult != null) { - List<FileUploadResult> fileList = request.getFileList(); - if(fileList == null) { - fileList = new ArrayList<FileUploadResult>(); - } - fileList.add(fileUploadResult); - request.setFileList(fileList); - } - } } catch (Exception e) { log.error("璇诲彇Excel淇℃伅澶辫触锛歿}", e.getMessage(), e); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java index 5dabd18..b6be351 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java @@ -11,6 +11,7 @@ import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.jeecg.common.aspect.annotation.Dict; +import org.jeecgframework.poi.excel.annotation.Excel; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; @@ -76,6 +77,12 @@ @ApiModelProperty(value = "淇濆吇鍛ㄦ湡;鍗曚綅:澶�") private Integer maintenancePeriod; /** + * 淇濆吇鍛ㄦ湡鍗曚綅 + */ + @ApiModelProperty(value = "淇濆吇鍛ㄦ湡鍗曚綅") + @Dict(dicCode = "period_unit") + private String periodUnit; + /** * 鍒濆鏃ユ湡 浠庡摢涓�澶╁紑濮嬭绠椾笅娆′繚鍏绘棩鏈� */ @ApiModelProperty(value = "鍒濆鏃ユ湡") @@ -106,22 +113,61 @@ @ApiModelProperty(value = "鏍囧噯鐗堟湰") private Integer standardVersion; /** - * 鏂囦欢缂栧彿 + * 缂栧埗浜� */ - @ApiModelProperty(value = "鏂囦欢缂栧彿") - private String fileCode; + @ApiModelProperty(value = "缂栧埗浜�") + private String designer; /** - * 鍙傝�冩枃浠� + * 缂栧埗鏃ユ湡 */ - @ApiModelProperty(value = "鍙傝�冩枃浠�") - private String referenceFile; + @ApiModelProperty(value = "缂栧埗鏃ユ湡") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date designTime; /** - * 鏈�鏂扮敓鎴愬伐鍗曟椂闂� - * 涓嬩竴娆$敓鎴愭椂闂翠负姝ゆ椂闂� + 淇濆吇鍛ㄦ湡 + * 缁翠慨涓讳换 */ - @ApiModelProperty(value = "鏈�鏂扮敓鎴愬伐鍗曟椂闂�") - private Date lastGenerateTime; - + @ApiModelProperty(value = "缁翠慨涓讳换") + private String repairManager; + /** + * 缁翠慨涓讳换瀹℃壒缁撴灉 + */ + @ApiModelProperty(value = "缁翠慨涓讳换瀹℃壒缁撴灉") + private String repairManagerApproveResult; + /** + * 缁翠慨涓讳换瀹℃壒鏃堕棿 + */ + @ApiModelProperty(value = "缁翠慨涓讳换瀹℃壒鏃堕棿") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date repairManagerApproveTime; + /** + * 缁翠慨涓讳换瀹℃壒鎰忚 + */ + @ApiModelProperty(value = "缁翠慨涓讳换瀹℃壒鎰忚") + private String repairManagerApproveComment; + /** + * 鎶�鏈富绠� + */ + @ApiModelProperty(value = "鎶�鏈富绠�") + private String technicalManager; + /** + * 鎶�鏈富绠″鎵圭粨鏋� + */ + @ApiModelProperty(value = "鎶�鏈富绠″鎵圭粨鏋�") + private String technicalManagerApproveResult; + /** + * 鎶�鏈富绠″鎵规椂闂� + */ + @ApiModelProperty(value = "鎶�鏈富绠″鎵规椂闂�") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date technicalManagerApproveTime; + /** + * 鎶�鏈富绠″鎵规剰瑙� + */ + @ApiModelProperty(value = "鎶�鏈富绠″鎵规剰瑙�") + private String technicalManagerApproveComment; //鍒楄〃灞曠ず @TableField(exist = false) private String equipmentCode; @@ -129,6 +175,8 @@ private String equipmentName; @TableField(exist = false) private String keyword; + @TableField(exist = false) + private String equipmentModel; /** * 璁惧缂栧彿鎷兼帴 */ diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderGenerateJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderGenerateJob.java index 3d105e1..c0ada13 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderGenerateJob.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderGenerateJob.java @@ -85,9 +85,9 @@ standard.setInitialDate(DateUtils.localDateToDate(now.minusDays(1))); } LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate()); - if (standard.getLastGenerateTime() != null) { - generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime()); - } +// if (standard.getLastGenerateTime() != null) { +// generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime()); +// } //鍔犲懆鏈� do { //鍒濆鏃ユ湡璁剧疆鐨勬瘮杈冩棭锛屾垨浠诲姟闀挎椂闂存病鎵ц锛屽繀椤诲懆鏈熷埌浠婂ぉ鎵嶄細鐢熸垚宸ュ崟 diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/SecondMaintenanceOrderGenerateJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/SecondMaintenanceOrderGenerateJob.java index 17ae5d6..be828db 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/SecondMaintenanceOrderGenerateJob.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/SecondMaintenanceOrderGenerateJob.java @@ -82,9 +82,9 @@ standard.setInitialDate(DateUtils.localDateToDate(now.minusDays(1))); } LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate()); - if (standard.getLastGenerateTime() != null) { - generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime()); - } +// if (standard.getLastGenerateTime() != null) { +// generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime()); +// } //鍔犲懆鏈� do { //鍒濆鏃ユ湡璁剧疆鐨勬瘮杈冩棭锛屾垨浠诲姟闀挎椂闂存病鎵ц锛屽繀椤诲懆鏈熷埌浠婂ぉ鎵嶄細鐢熸垚宸ュ崟 @@ -122,7 +122,7 @@ request.setTableDetailList(tableDetailList); eamSecondMaintenanceOrderService.addMaintenance(request); - standard.setLastGenerateTime(new Date()); +// standard.setLastGenerateTime(new Date()); eamMaintenanceStandardService.updateById(standard); } quartzLog.setIsSuccess(0); diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenanceOrderGenerateJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenanceOrderGenerateJob.java index 389b45f..b57a350 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenanceOrderGenerateJob.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenanceOrderGenerateJob.java @@ -81,19 +81,19 @@ //璁剧疆鍒濆鏃ユ湡涓哄墠涓�澶� standard.setInitialDate(DateUtils.localDateToDate(now.minusDays(1))); } - LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate()); - if (standard.getLastGenerateTime() != null) { - generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime()); - } +// LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate()); +// if (standard.getLastGenerateTime() != null) { +// generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime()); +// } //鍔犲懆鏈� - do { - //鍒濆鏃ユ湡璁剧疆鐨勬瘮杈冩棭锛屾垨浠诲姟闀挎椂闂存病鎵ц锛屽繀椤诲懆鏈熷埌浠婂ぉ鎵嶄細鐢熸垚宸ュ崟 - generateDate = generateDate.plusDays(standard.getMaintenancePeriod()); - } while (now.isAfter(generateDate)); - if(!now.isEqual(generateDate)) { - //杩樻湭鍒扮敓鎴愭棩鏈燂紝璺宠繃鎵ц - continue; - } +// do { +// //鍒濆鏃ユ湡璁剧疆鐨勬瘮杈冩棭锛屾垨浠诲姟闀挎椂闂存病鎵ц锛屽繀椤诲懆鏈熷埌浠婂ぉ鎵嶄細鐢熸垚宸ュ崟 +// generateDate = generateDate.plusDays(standard.getMaintenancePeriod()); +// } while (now.isAfter(generateDate)); +// if(!now.isEqual(generateDate)) { +// //杩樻湭鍒扮敓鎴愭棩鏈燂紝璺宠繃鎵ц +// continue; +// } //鑾峰彇淇濆吇椤规槑缁� List<EamMaintenanceStandardDetail> standardDetailList = eamMaintenanceStandardDetailService.selectByStandardId(standard.getId()); if(CollectionUtil.isEmpty(standardDetailList)) { @@ -105,7 +105,7 @@ EamThirdMaintenanceRequest request = new EamThirdMaintenanceRequest(); request.setEquipmentId(standard.getEquipmentId()); request.setStandardId(standard.getId()); - request.setMaintenanceDate(DateUtils.localDateToDate(generateDate)); +// request.setMaintenanceDate(DateUtils.localDateToDate(generateDate)); String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.THIRD_MAINTENANCE_CODE_RULE); request.setOrderNum(codeSeq); request.setCreationMethod(OrderCreationMethodEnum.AUTO.name()); @@ -138,7 +138,7 @@ } eamThirdMaintenanceOrderService.addMaintenance(request); - standard.setLastGenerateTime(new Date()); +// standard.setLastGenerateTime(new Date()); eamMaintenanceStandardService.updateById(standard); } quartzLog.setIsSuccess(0); diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java index 76c5711..806c6af 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java @@ -85,9 +85,9 @@ standard.setInitialDate(DateUtils.localDateToDate(now.minusDays(1))); } LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate()); - if (standard.getLastGenerateTime() != null) { - generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime()); - } +// if (standard.getLastGenerateTime() != null) { +// generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime()); +// } //鍔犲懆鏈� do { //鍒濆鏃ユ湡璁剧疆鐨勬瘮杈冩棭锛屾垨浠诲姟闀挎椂闂存病鎵ц锛屽繀椤诲懆鏈熷埌浠婂ぉ鎵嶄細鐢熸垚宸ュ崟 diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml index 68f0ef2..ddec816 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml @@ -2,7 +2,8 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.jeecg.modules.eam.mapper.EamMaintenanceStandardMapper"> <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamMaintenanceStandard"> - select ems.*, e.equipment_code, e.equipment_name + select ems.*, e.equipment_code, e.equipment_name, + e.equipment_model from eam_maintenance_standard ems inner join eam_equipment e on ems.equipment_id = e.id diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceStandardRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceStandardRequest.java index d12e2ff..c392904 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceStandardRequest.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceStandardRequest.java @@ -7,6 +7,7 @@ import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.jeecg.common.api.vo.FileUploadResult; +import org.jeecg.common.aspect.annotation.Dict; import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail; import org.springframework.format.annotation.DateTimeFormat; @@ -52,12 +53,12 @@ /**鏂囦欢缂栧彿*/ @ApiModelProperty(value = "鏂囦欢缂栧彿") private String fileCode; - /**鍙傝�冩枃浠�*/ - @ApiModelProperty(value = "鍙傝�冩枃浠�") - private String referenceFile; - /**涓婁紶鏂囦欢瀵圭郴*/ - @ApiModelProperty(value = "涓婁紶鏂囦欢瀵硅薄") - private List<FileUploadResult> fileList; + /** + * 淇濆吇鍛ㄦ湡鍗曚綅 + */ + @ApiModelProperty(value = "淇濆吇鍛ㄦ湡鍗曚綅") + @Dict(dicCode = "period_unit") + private String periodUnit; /**鍒楄〃 淇濆吇椤规槑缁�*/ @ApiModelProperty(value = "鍒楄〃 淇濆吇椤规槑缁�") private List<EamMaintenanceStandardDetail> tableDetailList; diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java index c136e81..ba2d94e 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java @@ -3,8 +3,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.common.api.vo.Result; import org.jeecg.modules.eam.entity.EamMaintenanceStandard; import org.jeecg.modules.eam.request.EamMaintenanceStandardRequest; +import org.jeecg.modules.eam.vo.EamMaintenanceStandardVo; import java.util.List; @@ -64,4 +66,20 @@ * @return */ List<EamMaintenanceStandard> queryListByCategory(String maintenanceCategory); + + /** + * 娴佺▼鍚姩,淇濆瓨瀵瑰簲鐨勬暟鎹� + * @param id + * @return + */ + Result<?> saveEamMaintenanceStandardProcess(String id); + + + /** + * 瀹℃壒鎿嶄綔 + * @param eamMaintenanceStandardVo + * @return + */ + Result<?> auditEamMaintenanceStandard(EamMaintenanceStandardVo eamMaintenanceStandardVo); + } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java index 14dfe0a..24de739 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java @@ -166,17 +166,6 @@ }); eamInspectionOrderDetailService.saveBatch(eamInspectionOrderRequest.getTableDetailList()); } - //澶勭悊闄勪欢 - if (CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getFileList())) { - FileUploadResult fileUploadResult = eamInspectionOrderRequest.getFileList().get(0); - ObjectMapper mapper = new ObjectMapper(); - try { - String referenceFile = mapper.writeValueAsString(fileUploadResult); - eamInspectionOrder.setImageFiles(referenceFile); - } catch (JsonProcessingException e) { - log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e); - } - } if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())) { triggerProcess(eamInspectionOrder); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java index 6d30e4b..d69efd8 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java @@ -1,35 +1,55 @@ package org.jeecg.modules.eam.service.impl; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; +import org.flowable.engine.TaskService; +import org.flowable.task.api.Task; import org.jeecg.common.api.vo.FileUploadResult; +import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.eam.base.entity.BaseFactory; +import org.jeecg.modules.eam.base.entity.BaseFactoryUser; +import org.jeecg.modules.eam.base.service.IBaseFactoryService; +import org.jeecg.modules.eam.base.service.IBaseFactoryUserService; +import org.jeecg.modules.eam.constant.BusinessCodeConst; import org.jeecg.modules.eam.constant.MaintenanceStandardStatusEnum; +import org.jeecg.modules.eam.entity.EamEquipment; import org.jeecg.modules.eam.entity.EamMaintenanceStandard; import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail; import org.jeecg.modules.eam.mapper.EamMaintenanceStandardMapper; import org.jeecg.modules.eam.request.EamMaintenanceStandardRequest; +import org.jeecg.modules.eam.service.IEamEquipmentService; import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService; import org.jeecg.modules.eam.service.IEamMaintenanceStandardService; +import org.jeecg.modules.eam.vo.EamMaintenanceStandardVo; +import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness; +import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService; +import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI; +import org.jeecg.modules.flowable.apithird.service.FlowCommonService; +import org.jeecg.modules.flowable.service.IFlowDefinitionService; +import org.jeecg.modules.flowable.service.IFlowTaskService; +import org.jeecg.modules.system.service.ISysUserService; +import org.jeecg.modules.system.vo.UserSelector; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -38,15 +58,31 @@ * @Date: 2025-03-26 * @Version: V1.0 */ -@Service -public class EamMaintenanceStandardServiceImpl extends ServiceImpl<EamMaintenanceStandardMapper, EamMaintenanceStandard> implements IEamMaintenanceStandardService { +@Service("IEamMaintenanceStandardService") +public class EamMaintenanceStandardServiceImpl extends ServiceImpl<EamMaintenanceStandardMapper, EamMaintenanceStandard> implements IEamMaintenanceStandardService , FlowCallBackServiceI { @Resource private EamMaintenanceStandardMapper eamMaintenanceStandardMapper; - @Autowired private IEamMaintenanceStandardDetailService eamMaintenanceStandardDetailService; - + @Autowired + private IBaseFactoryUserService baseFactoryUserService; + @Autowired + private IBaseFactoryService baseFactoryService; + @Resource + private FlowCommonService flowCommonService; + @Resource + private IFlowDefinitionService flowDefinitionService; + @Autowired + private IFlowTaskService flowTaskService; + @Autowired + private TaskService taskService; + @Autowired + private IFlowMyBusinessService flowMyBusinessService; + @Autowired + private ISysUserService sysUserService; + @Autowired + private IEamEquipmentService eamEquipmentService; @Override public IPage<EamMaintenanceStandard> queryPageList(Page<EamMaintenanceStandard> page, EamMaintenanceStandard eamMaintenanceStandard) { QueryWrapper<EamMaintenanceStandard> queryWrapper = new QueryWrapper<>(); @@ -56,13 +92,19 @@ if (sysUser == null) { return page; } - if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) { + if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { //閫夋嫨浜嗚澶囷紝鏍规嵁璁惧id杩囨护璁惧 - List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(",")); + List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); queryWrapper.in("e.equipment_code", equipArr); } else { - //娌℃湁閫夋嫨璁惧锛屾牴鎹溅闂磋繃婊よ澶� - queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id ", sysUser.getId()); + //娌℃湁閫夋嫨璁惧锛屾牴鎹腑蹇冭繃婊よ澶� + List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService. + list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId())); + if(!CollectionUtils.isEmpty(baseFactoryUserList)){ + List<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toList()); + List<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getFactoryCode).collect(Collectors.toList()); + queryWrapper.in("e.factory_code", factoryCode); + } } if(eamMaintenanceStandard != null) { //缂栫爜 妯$硦鏌ヨ @@ -71,7 +113,7 @@ } //鍚嶇О 妯$硦鏌ヨ if(StringUtils.isNotBlank(eamMaintenanceStandard.getStandardName())) { - queryWrapper.like("ems.standard_name", eamMaintenanceStandard.getStandardCode()); + queryWrapper.like("ems.standard_name", eamMaintenanceStandard.getStandardName()); } //璁惧 if(StringUtils.isNotBlank(eamMaintenanceStandard.getEquipmentId())) { @@ -100,13 +142,8 @@ @Transactional(rollbackFor = Exception.class) public boolean addMaintenanceStandard(EamMaintenanceStandardRequest standardRequest) { EamMaintenanceStandard entity = new EamMaintenanceStandard(); - entity.setStandardCode(standardRequest.getStandardCode()); - entity.setStandardName(standardRequest.getStandardName()); - entity.setMaintenanceCategory(standardRequest.getMaintenanceCategory()); - entity.setMaintenancePeriod(standardRequest.getMaintenancePeriod()); - entity.setInitialDate(standardRequest.getInitialDate()); - entity.setFileCode(standardRequest.getFileCode()); - entity.setStandardStatus(MaintenanceStandardStatusEnum.NORMAL.name()); + BeanUtils.copyProperties(standardRequest, entity); + entity.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name()); //鐗堟湰閫掑 entity.setStandardVersion(CommonConstant.OPERATE_TYPE_1); //璁惧澶勭悊 @@ -117,17 +154,6 @@ EamMaintenanceStandard exist = checkDuplicate(entity.getEquipmentId(), entity.getMaintenanceCategory()); if(exist != null){ throw new JeecgBootException("璁惧鏍囧噯宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�"); - } - //澶勭悊闄勪欢 - if(CollectionUtil.isNotEmpty(standardRequest.getFileList())) { - FileUploadResult fileUploadResult = standardRequest.getFileList().get(0); - ObjectMapper mapper = new ObjectMapper(); - try { - String referenceFile = mapper.writeValueAsString(fileUploadResult); - entity.setReferenceFile(referenceFile); - } catch (JsonProcessingException e) { - log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e); - } } eamMaintenanceStandardMapper.insert(entity); //澶勭悊鏄庣粏鏁版嵁 @@ -149,20 +175,6 @@ } entity.setStandardName(standardRequest.getStandardName()); entity.setMaintenancePeriod(standardRequest.getMaintenancePeriod()); - entity.setFileCode(standardRequest.getFileCode()); - //澶勭悊闄勪欢 - if(CollectionUtil.isNotEmpty(standardRequest.getFileList())) { - FileUploadResult fileUploadResult = standardRequest.getFileList().get(0); - ObjectMapper mapper = new ObjectMapper(); - try { - String referenceFile = mapper.writeValueAsString(fileUploadResult); - entity.setReferenceFile(referenceFile); - } catch (JsonProcessingException e) { - log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e); - } - }else { - entity.setReferenceFile(null); - } eamMaintenanceStandardMapper.updateById(entity); //澶勭悊璇︽儏 if(CollectionUtil.isNotEmpty(standardRequest.getTableDetailList())) { @@ -208,8 +220,7 @@ newEntity.setMaintenanceCategory(standardRequest.getMaintenanceCategory()); newEntity.setMaintenancePeriod(standardRequest.getMaintenancePeriod()); newEntity.setInitialDate(standardRequest.getInitialDate()); - newEntity.setFileCode(standardRequest.getFileCode()); - newEntity.setStandardStatus(MaintenanceStandardStatusEnum.NORMAL.name()); + newEntity.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name()); //鐗堟湰閫掑 newEntity.setStandardVersion(entity.getStandardVersion() + 1); //璁惧澶勭悊 @@ -220,17 +231,6 @@ EamMaintenanceStandard exist = checkDuplicate(newEntity.getEquipmentId(), newEntity.getMaintenanceCategory()); if(exist != null){ throw new JeecgBootException("璁惧鏍囧噯宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�"); - } - //澶勭悊闄勪欢 - if(CollectionUtil.isNotEmpty(standardRequest.getFileList())) { - FileUploadResult fileUploadResult = standardRequest.getFileList().get(0); - ObjectMapper mapper = new ObjectMapper(); - try { - String referenceFile = mapper.writeValueAsString(fileUploadResult); - newEntity.setReferenceFile(referenceFile); - } catch (JsonProcessingException e) { - log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e); - } } eamMaintenanceStandardMapper.insert(newEntity); //澶勭悊鏄庣粏鏁版嵁 @@ -254,7 +254,7 @@ queryWrapper.eq(EamMaintenanceStandard::getEquipmentId, equipmentId); queryWrapper.eq(EamMaintenanceStandard::getMaintenanceCategory, maintenanceCategory); queryWrapper.eq(EamMaintenanceStandard::getDelFlag, CommonConstant.DEL_FLAG_0); - queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.NORMAL.name()); + queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.WAIT_SUBMIT.name()); queryWrapper.orderByDesc(EamMaintenanceStandard::getStandardVersion); List<EamMaintenanceStandard> list = eamMaintenanceStandardMapper.selectList(queryWrapper); @@ -277,7 +277,7 @@ query.setEquipmentId(equipmentId); query.setKeyword(keyword); query.setMaintenanceCategory(maintenanceCategory); - query.setStandardStatus(MaintenanceStandardStatusEnum.NORMAL.name()); + query.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name()); IPage<EamMaintenanceStandard> pageData = this.queryPageList(page, query); return pageData.getRecords(); } @@ -287,7 +287,192 @@ LambdaQueryWrapper<EamMaintenanceStandard> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(EamMaintenanceStandard::getDelFlag, CommonConstant.DEL_FLAG_0); queryWrapper.eq(EamMaintenanceStandard::getMaintenanceCategory, maintenanceCategory); - queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.NORMAL.name()); + queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.WAIT_SUBMIT.name()); return eamMaintenanceStandardMapper.selectList(queryWrapper); } + + + /*娴佺▼涓氬姟浠g爜--------------------------寮�濮�*/ + + /** + * 娴佺▼鍚姩,淇濆瓨瀵瑰簲鐨勬暟鎹� + * @param id + * @return + */ + @Override + public Result<?> saveEamMaintenanceStandardProcess(String id){ + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + EamMaintenanceStandard maintenanceStandard=this.getById(id); + if (maintenanceStandard==null){ + return Result.error("鏈壘鍒板搴斾繚鍏绘爣鍑�"); + } + System.out.println("淇濆吇瑙勮寖娴佺▼锛�" + maintenanceStandard.getId()); + flowCommonService.initActBusiness(maintenanceStandard.getStandardName()+"瑙勮寖杩涜娴佺▼瀹℃牳", + maintenanceStandard.getId(), "IEamMaintenanceStandardService", "eam_maintenance_standard", null); + Map<String, Object> variables = new HashMap<>(); + variables.put("dataId", maintenanceStandard.getId()); + variables.put("organization", "淇濆吇瑙勮寖鍚姩娴佺▼"); + variables.put("comment", "淇濆吇瑙勮寖鍚姩娴佺▼"); + variables.put("proofreading",true); + Result result= flowDefinitionService.startProcessInstanceByKey("eam_maintenance_standard", variables); + if (!result.isSuccess()) { + super.removeById(maintenanceStandard.getId()); + }else { + maintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_REPAIR_DIRECTOR.name()); + maintenanceStandard.setDesigner(user.getUsername()); + maintenanceStandard.setDesignTime(new Date()); + eamMaintenanceStandardMapper.updateById(maintenanceStandard); + //鑾峰彇flow鐨勬祦绋嬪疄渚媔d,璁剧疆涓嬩竴姝ョ殑澶勭悊浜哄憳 + List<FlowMyBusiness> businessList = flowMyBusinessService.list( + new QueryWrapper<FlowMyBusiness>() + .eq("data_id", maintenanceStandard.getId()) + ); + if (businessList.isEmpty()) { + return Result.error("娴佺▼璁板綍涓嶅瓨鍦�"); + } + FlowMyBusiness flowMyBusiness = businessList.get(0); + EamEquipment eamEquipment=eamEquipmentService.getById(maintenanceStandard.getEquipmentId()); + BaseFactory baseFactory=baseFactoryService.getOne(new QueryWrapper<BaseFactory>().eq("org_code", eamEquipment.getFactoryOrgCode())); + List<UserSelector> userSelectorList=sysUserService.selectOperatorFactoryList(eamEquipment.getEquipmentCode(),baseFactory.getId(), BusinessCodeConst.PCR0007); + if (!CollectionUtils.isEmpty(userSelectorList)) { + List<String> usernameList=userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + flowMyBusiness.setTodoUsers(JSON.toJSONString(usernameList)); + flowMyBusinessService.updateById(flowMyBusiness); + } + } + return result; + } + + /** + * 瀹℃壒鎿嶄綔 + * @param eamMaintenanceStandardVo + * @return + */ + @Override + public Result<?> auditEamMaintenanceStandard(EamMaintenanceStandardVo eamMaintenanceStandardVo){ + try { + // 鍙傛暟鏍¢獙 + if (StrUtil.isEmpty(eamMaintenanceStandardVo.getTaskId()) || StrUtil.isEmpty(eamMaintenanceStandardVo.getDataId())) { + return Result.error("鍙傛暟閿欒"); + } + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String userId = user.getId(); + eamMaintenanceStandardVo.setAssignee(user.getUsername()); + if (StrUtil.isEmpty(userId)) { + return Result.error("鏈壘鍒板搴旂敤鎴�"); + } + + // 鏁版嵁鏌ヨ + EamMaintenanceStandard eamMaintenanceStandard = this.getById(eamMaintenanceStandardVo.getDataId()); + if (eamMaintenanceStandard == null) { + return Result.error("鏈壘鍒板搴斾繚鍏绘爣鍑�"); + } + + // 2. 鏌ヨ娴佺▼涓氬姟璁板綍锛堝鐞嗙┖缁撴灉锛� + List<FlowMyBusiness> businessList = flowMyBusinessService.list( + new QueryWrapper<FlowMyBusiness>() + .eq("process_instance_id", eamMaintenanceStandardVo.getInstanceId()) + ); + if (businessList.isEmpty()) { + return Result.error("娴佺▼璁板綍涓嶅瓨鍦�"); + } + FlowMyBusiness flowMyBusiness = businessList.get(0); + + // 3. 鏍¢獙鐢ㄦ埛鏄惁涓哄�欓�夊鐞嗕汉 + List<String> todoUsers = JSON.parseArray(flowMyBusiness.getTodoUsers(), String.class); + if (todoUsers == null || !todoUsers.contains(user.getUsername())) { + return Result.error("鐢ㄦ埛鏃犳潈鎿嶄綔姝や换鍔�"); + } + + // 4. 璁ら浠诲姟锛堝鐞嗗凡琚棰嗙殑鎯呭喌锛� + String taskId = flowMyBusiness.getTaskId(); + Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); + if (task == null) { + return Result.error("浠诲姟涓嶅瓨鍦ㄦ垨宸插畬鎴�"); + } + if (task.getAssignee() != null && !task.getAssignee().equals(user.getUsername())) { + return Result.error("浠诲姟宸茶浠栦汉璁ら"); + } + taskService.claim(taskId, user.getUsername()); + + // 璁剧疆娴佺▼鍙橀噺 + Map<String, Object> values = setProcessVariables(eamMaintenanceStandard, userId, eamMaintenanceStandardVo); + eamMaintenanceStandardVo.setValues(values); + + // 瀹屾垚娴佺▼浠诲姟 + Result result = flowTaskService.complete(eamMaintenanceStandardVo); + if (result.isSuccess()) { + if (eamMaintenanceStandardVo.getRepairManagerApproveResult() != null) { + if (eamMaintenanceStandardVo.getRepairManagerApproveResult().equals("1")){ + eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_TECHNICAL_DIRECTOR.name()); + }else { + eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name()); + } + eamMaintenanceStandard.setRepairManager(user.getUsername()); + eamMaintenanceStandard.setRepairManagerApproveResult(eamMaintenanceStandardVo.getRepairManagerApproveResult()); + eamMaintenanceStandard.setRepairManagerApproveTime(new Date()); + eamMaintenanceStandard.setRepairManagerApproveComment(eamMaintenanceStandardVo.getComment()); + } + if (eamMaintenanceStandardVo.getTechnicalManagerApproveResult() != null) { + if (eamMaintenanceStandardVo.getTechnicalManagerApproveResult().equals("1")){ + eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.START.name()); + }else { + eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name()); + } + eamMaintenanceStandard.setTechnicalManager(user.getUsername()); + eamMaintenanceStandard.setTechnicalManagerApproveResult(eamMaintenanceStandardVo.getTechnicalManagerApproveResult()); + eamMaintenanceStandard.setTechnicalManagerApproveTime(new Date()); + eamMaintenanceStandard.setTechnicalManagerApproveComment(eamMaintenanceStandardVo.getComment()); + } + this.updateById(eamMaintenanceStandard); + } else { + return result; + } + + return Result.OK("鎿嶄綔鎴愬姛"); + } catch (Exception e) { + return Result.error("鎿嶄綔澶辫触锛�" + e.getMessage()); + } + } + + private Map<String, Object> setProcessVariables(EamMaintenanceStandard eamMaintenanceStandard, String userId, EamMaintenanceStandardVo eamMaintenanceStandardVo) { + Map<String, Object> values = new HashMap<>(); + values.put("dataId", eamMaintenanceStandard.getId()); + values.put("assignee", userId); + values.put("organization", eamMaintenanceStandardVo.getComment()); + values.put("comment", eamMaintenanceStandardVo.getComment()); + if (eamMaintenanceStandardVo.getRepairManagerApproveResult() != null) { + values.put("repairManagerApproveResult", eamMaintenanceStandardVo.getRepairManagerApproveResult()); + } + if (eamMaintenanceStandardVo.getTechnicalManagerApproveResult() != null) { + values.put("technicalManagerApproveResult", eamMaintenanceStandardVo.getTechnicalManagerApproveResult()); + } + return values; + } + + + @Override + public void afterFlowHandle(FlowMyBusiness business) { + business.getTaskNameId();//鎺ヤ笅鏉ュ鎵圭殑鑺傜偣 + business.getValues();//鍓嶇浼犺繘鏉ョ殑鍙傛暟 + business.getActStatus(); + } + + @Override + public Object getBusinessDataById(String dataId) { + return this.getById(dataId); + } + + @Override + public Map<String, Object> flowValuesOfTask(String taskNameId, Map<String, Object> values) { + return null; + } + + @Override + public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) { + //涓氬姟鏄惁骞查娴佺▼锛屼笟鍔″共棰勶紝娴佺▼骞查锛屾寚瀹氫汉鍛樿繘琛屽鐞� + return null; + } + + /*娴佺▼涓氬姟浠g爜--------------------------缁撴潫*/ } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EamMaintenanceStandardVo.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EamMaintenanceStandardVo.java new file mode 100644 index 0000000..f29eeff --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EamMaintenanceStandardVo.java @@ -0,0 +1,95 @@ +package org.jeecg.modules.eam.vo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecg.common.aspect.annotation.Dict; +import org.jeecg.modules.flowable.domain.vo.FlowTaskVo; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Description: 淇濆吇鏍囧噯 + * @Author: jeecg-boot + * @Date: 2025-03-26 + * @Version: V1.0 + */ +@Data +@ApiModel(description = "淇濆吇鏍囧噯---宸ヤ綔娴佺浉鍏�") +public class EamMaintenanceStandardVo extends FlowTaskVo { + + /** + * 缂栧埗浜� + */ + @ApiModelProperty(value = "缂栧埗浜�") + private String designer; + /** + * 缂栧埗鏃ユ湡 + */ + @ApiModelProperty(value = "缂栧埗鏃ユ湡") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date designTime; + /** + * 缁翠慨涓讳换 + */ + @ApiModelProperty(value = "缁翠慨涓讳换") + private String repairManager; + /** + * 缁翠慨涓讳换瀹℃壒缁撴灉 + */ + @ApiModelProperty(value = "缁翠慨涓讳换瀹℃壒缁撴灉") + private String repairManagerApproveResult; + /** + * 缁翠慨涓讳换瀹℃壒鏃堕棿 + */ + @ApiModelProperty(value = "缁翠慨涓讳换瀹℃壒鏃堕棿") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date repairManagerApproveTime; + /** + * 缁翠慨涓讳换瀹℃壒鎰忚 + */ + @ApiModelProperty(value = "缁翠慨涓讳换瀹℃壒鎰忚") + private String repairManagerApproveComment; + /** + * 鎶�鏈富绠� + */ + @ApiModelProperty(value = "鎶�鏈富绠�") + private String technicalManager; + /** + * 鎶�鏈富绠″鎵圭粨鏋� + */ + @ApiModelProperty(value = "鎶�鏈富绠″鎵圭粨鏋�") + private String technicalManagerApproveResult; + /** + * 鎶�鏈富绠″鎵规椂闂� + */ + @ApiModelProperty(value = "鎶�鏈富绠″鎵规椂闂�") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date technicalManagerApproveTime; + /** + * 鎶�鏈富绠″鎵规剰瑙� + */ + @ApiModelProperty(value = "鎶�鏈富绠″鎵规剰瑙�") + private String technicalManagerApproveComment; + //鍒楄〃灞曠ず + @TableField(exist = false) + private String equipmentCode; + @TableField(exist = false) + private String equipmentName; + @TableField(exist = false) + private String keyword; + @TableField(exist = false) + private String equipmentModel; +} diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java index 573a864..7f4bc94 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java @@ -352,6 +352,15 @@ /** * 閫夋嫨鐢ㄦ埛 + * @param equipmentCode 閫夋嫨鐨勮澶嘔D + * @param factoryId 閫夋嫨鐨勮溅闂碔D + * @param positionCode 宀椾綅缂栧彿 + * @return + */ + List<UserSelector> selectOperatorFactoryList(String equipmentCode, String factoryId, String positionCode); + + /** + * 閫夋嫨鐢ㄦ埛 * @param positionCode 宀椾綅缂栧彿 * @return */ diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java index 064343b..7f1e65b 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java @@ -791,6 +791,31 @@ return collect; } + /** + * 閫夋嫨鐢ㄦ埛 + * @param equipmentCode 閫夋嫨鐨勮澶嘔D + * @param factoryId 閫夋嫨鐨勫伐鍘侷D + * @param positionCode 宀椾綅缂栧彿 + * @return + */ + @Override + public List<UserSelector> selectOperatorFactoryList(String equipmentCode, String factoryId, String positionCode){ + LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysUser::getPost, positionCode); +// if(StringUtils.isNotBlank(equipmentCode)) { +// queryWrapper.and(q -> q.isNull(SysUser::getEquipmentIds).or().eq(SysUser::getEquipmentIds, "").or().like(SysUser::getEquipmentIds, equipmentCode)); +// } +// if(StringUtils.isNotBlank(factoryId)) { +// queryWrapper.exists("select 1 from eam_base_factory_user t where t.user_id=sys_user.id and t.factory_id={0}", factoryId); +// } + queryWrapper.eq(SysUser::getDelFlag, CommonConstant.DEL_FLAG_0); + queryWrapper.eq(SysUser::getStatus, CommonConstant.DEL_FLAG_1); + queryWrapper.orderByDesc(SysUser::getId); + List<SysUser> sysUsers = userMapper.selectList(queryWrapper); + List<UserSelector> collect = sysUsers.stream().map(user -> new UserSelector(user.getId(), user.getUsername(), user.getRealname())).collect(Collectors.toList()); + return collect; + } + @Override public List<UserSelector> selectOperatorList(String positionCode) { LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>(); -- Gitblit v1.9.3