From 8904f9e6005e7e1f3cc06f415fdcde0033c32332 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期一, 21 七月 2025 20:33:53 +0800 Subject: [PATCH] art: 技术状态鉴定工单-生成逻辑优化 --- lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentExtendServiceImpl.java | 29 +++++++++ db/430设备管理数据库设计.pdma.json | 38 ++++++++++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java | 8 ++ lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentExtend.java | 6 ++ lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml | 4 + lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentExtendService.java | 12 ++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnicalStatusEvaluationGenerateJob.java | 18 +++-- lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java | 9 +++ lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java | 27 +++++++-- 9 files changed, 134 insertions(+), 17 deletions(-) diff --git "a/db/430\350\256\276\345\244\207\347\256\241\347\220\206\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json" "b/db/430\350\256\276\345\244\207\347\256\241\347\220\206\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json" index 6a7bcf1..99ef71c 100644 --- "a/db/430\350\256\276\345\244\207\347\256\241\347\220\206\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json" +++ "b/db/430\350\256\276\345\244\207\347\256\241\347\220\206\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json" @@ -4,7 +4,7 @@ "avatar": "", "version": "4.9.2", "createdTime": "2025-3-10 16:38:19", - "updatedTime": "2025-7-18 10:53:30", + "updatedTime": "2025-7-21 18:29:46", "dbConns": [], "profile": { "default": { @@ -2326,6 +2326,42 @@ "extProps": {}, "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E", "id": "951E3090-8A27-4E30-A5F0-308B3E9F8E6D" + }, + { + "defKey": "technology_genarate_flag", + "defName": "鎶�鏈姸鎬侀壌瀹氱敓鎴愭爣璁�", + "comment": "1 宸茬敓鎴� 0 涓嬫寰呯敓鎴�", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792", + "id": "0F8E5A79-4399-42B0-B893-254A6D9DEFAD" + }, + { + "defKey": "third_maintenance_genarate_flag", + "defName": "涓変繚鐢熸垚鏍囪", + "comment": "1 宸茬敓鎴� 0 涓嬫寰呯敓鎴�", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792", + "id": "0BACB829-115B-472B-B205-812ABA028344" } ], "correlations": [], diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java index cb79bf1..c702b27 100644 --- a/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java +++ b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java @@ -688,6 +688,7 @@ calendar.setTime(getDate()); return calendar.get(Calendar.YEAR); } + public static String getDayStr(Date date) { Calendar calendar = getCalendar(); calendar.setTime(date);// 鎶婂綋鍓嶆椂闂磋祴缁欐棩鍘� @@ -695,15 +696,16 @@ String dayStr = day < 10 ? "0" + day : day + ""; return dayStr; } + /** * 灏嗗瓧绗︿覆杞垚鏃堕棿 * @param str * @return */ - public static Date parseDatetime(String str){ + public static Date parseDatetime(String str) { try { return datetimeFormat.get().parse(str); - }catch (Exception e){ + } catch (Exception e) { } return null; } @@ -711,7 +713,7 @@ /** * 鑾峰彇鎸囧畾鏃堕棿涔嬪悗鐨勫嚑骞� qsw */ - public static Date getYearAfter(Date data,int number) { + public static Date getYearAfter(Date data, int number) { Calendar c = Calendar.getInstance(); c.setTime(data); c.add(Calendar.YEAR, number); @@ -724,7 +726,7 @@ /** * 鑾峰彇鎸囧畾鏃堕棿涔嬪悗鐨勫嚑澶� qsw */ - public static Date getDayAfter(Date data,int number) { + public static Date getDayAfter(Date data, int number) { Calendar c = Calendar.getInstance(); c.setTime(data); c.add(Calendar.DAY_OF_MONTH, number); @@ -737,7 +739,7 @@ /** * 鑾峰彇鎸囧畾鏃堕棿涔嬪悗鐨勫嚑鍒嗛挓 qsw */ - public static Date getMinAfter(Date data,int number) { + public static Date getMinAfter(Date data, int number) { Calendar c = Calendar.getInstance(); c.setTime(data); c.add(Calendar.MINUTE, number); @@ -748,7 +750,7 @@ /** * 鑾峰彇鎸囧畾鏃堕棿涔嬪悗鐨勫嚑灏忔椂 qsw */ - public static Date getHourAfter(Date data,int number) { + public static Date getHourAfter(Date data, int number) { Calendar c = Calendar.getInstance(); c.setTime(data); c.add(Calendar.HOUR_OF_DAY, number); @@ -780,4 +782,17 @@ public static Date localDateToDate(LocalDate localDate) { return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); } + + /** + * 鏃ユ湡鍔犲勾 + * @param date + * @param year + * @return + */ + public static Date addYear(Date date, int year) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.YEAR, year); + return calendar.getTime(); + } } \ No newline at end of file diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java index 8723d08..3aded91 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java @@ -453,6 +453,15 @@ @ApiModelProperty(value = "澶囨敞") private String remark; + /** 鎶�鏈姸鎬侀壌瀹氱敓鎴愭爣璁� 1 宸茬敓鎴� 0 鏈敓鎴� */ + @ApiModelProperty(value = "鎶�鏈姸鎬侀壌瀹氱敓鎴愭爣璁� 1 宸茬敓鎴� 0 鏈敓鎴�") + @TableField(exist = false) + private String technologyGenerateFlag; + /** 涓変繚鐢熸垚鏍囪 1 宸茬敓鎴� 0 鏈敓鎴� */ + @ApiModelProperty(value = "涓変繚鐢熸垚鏍囪 1 宸茬敓鎴� 0 鏈敓鎴�") + @TableField(exist = false) + private String thirdMaintenanceGenerateFlag; + public void setFactoryOrgCode(String factoryOrgCode){ this.factoryOrgCode = factoryOrgCode; diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentExtend.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentExtend.java index a843e8f..630c58e 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentExtend.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentExtend.java @@ -91,4 +91,10 @@ /**鎶�鏈壌瀹氬懆鏈�(骞�)*/ @ApiModelProperty(value = "鎶�鏈壌瀹氬懆鏈�(骞�)") private Integer technologyCheckPeriod; + /** 鎶�鏈姸鎬侀壌瀹氱敓鎴愭爣璁� 1 宸茬敓鎴� 0 鏈敓鎴� */ + @ApiModelProperty(value = "鎶�鏈姸鎬侀壌瀹氱敓鎴愭爣璁� 1 宸茬敓鎴� 0 鏈敓鎴�") + private String technologyGenerateFlag; + /** 涓変繚鐢熸垚鏍囪 1 宸茬敓鎴� 0 鏈敓鎴� */ + @ApiModelProperty(value = "涓変繚鐢熸垚鏍囪 1 宸茬敓鎴� 0 鏈敓鎴�") + private String thirdMaintenanceGenerateFlag; } diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml index d59e70e..c6a96e2 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml @@ -52,7 +52,9 @@ ext.third_maintenance_period, ext.technology_check_period, ext.latest_technology_check, - ext.next_technology_check + ext.next_technology_check, + ext.technology_genarate_flag, + ext.third_maintenance_genarate_flag from eam_equipment e left join eam_equipment_extend ext on e.id = ext.id diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentExtendService.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentExtendService.java index c886331..098f1eb 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentExtendService.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentExtendService.java @@ -3,6 +3,8 @@ import org.jeecg.modules.eam.entity.EamEquipmentExtend; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Date; + /** * @Description: 璁惧鍙拌处鎵╁睍琛� * @Author: jeecg-boot @@ -25,4 +27,14 @@ * @return */ boolean updateEquipmentRepairStatus(String equipmentId, String status); + + /** + * 鏇存柊璁惧鎶�鏈姸鎬佸強閴村畾鏃ユ湡 + * @param equipmentId 璁惧ID + * @param status 鎶�鏈姸鎬� + * @param evaluationDate 閴村畾瀹屾垚鏃ユ湡 + * @param technologyGenerateFlag 鎶�鏈姸鎬侀壌瀹氬伐鍗曠敓鎴愭爣璇� + * @return + */ + boolean updateTechnologyParam(String equipmentId, String status, Date evaluationDate, String technologyGenerateFlag); } diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentExtendServiceImpl.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentExtendServiceImpl.java index b7c322d..98dce3f 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentExtendServiceImpl.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentExtendServiceImpl.java @@ -1,5 +1,9 @@ package org.jeecg.modules.eam.service.impl; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import org.apache.commons.lang3.StringUtils; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.util.DateUtils; import org.jeecg.modules.eam.entity.EamEquipmentExtend; import org.jeecg.modules.eam.mapper.EamEquipmentExtendMapper; import org.jeecg.modules.eam.service.IEamEquipmentExtendService; @@ -9,6 +13,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.Date; /** * @Description: 璁惧鍙拌处鎵╁睍琛� @@ -45,4 +50,28 @@ eamEquipmentExtendMapper.updateById(entity); return true; } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean updateTechnologyParam(String equipmentId, String status, Date evaluationDate, String technologyGenerateFlag) { + if (StringUtils.isBlank(status) && StringUtils.isBlank(technologyGenerateFlag) && evaluationDate == null) { + return false; + } + EamEquipmentExtend entity = this.getBaseMapper().selectById(equipmentId); + UpdateWrapper<EamEquipmentExtend> updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id", equipmentId); + if (StringUtils.isNotBlank(status)) { + entity.setTechnologyStatus(status); + } + if (StringUtils.isNotBlank(technologyGenerateFlag)) { + entity.setTechnologyGenerateFlag(technologyGenerateFlag); + } + if (evaluationDate != null) { + entity.setLatestTechnologyCheck(evaluationDate); + if (entity.getTechnologyCheckPeriod() != null) { + entity.setNextTechnologyCheck(DateUtils.addYear(entity.getLatestTechnologyCheck(), entity.getTechnologyCheckPeriod())); + } + } + return this.getBaseMapper().updateById(entity) > 0; + } } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnicalStatusEvaluationGenerateJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnicalStatusEvaluationGenerateJob.java index 6aeba9e..e712bce 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnicalStatusEvaluationGenerateJob.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnicalStatusEvaluationGenerateJob.java @@ -2,11 +2,13 @@ import cn.hutool.core.collection.CollectionUtil; import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.util.DateUtils; import org.jeecg.modules.eam.constant.OrderCreationMethodEnum; import org.jeecg.modules.eam.entity.EamEquipment; import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationStandard; import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderRequest; +import org.jeecg.modules.eam.service.IEamEquipmentExtendService; import org.jeecg.modules.eam.service.IEamEquipmentService; import org.jeecg.modules.eam.service.IEamTechnicalStatusEvaluationOrderService; import org.jeecg.modules.eam.service.IEamTechnicalStatusEvaluationStandardService; @@ -21,7 +23,6 @@ import org.quartz.JobExecutionException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; import java.time.LocalDate; import java.util.Date; @@ -44,9 +45,10 @@ private ISysQuartzLogService sysQuartzLogService; @Autowired private IQuartzJobService quartzJobService; + @Autowired + private IEamEquipmentExtendService equipmentExtendService; @Override - @Transactional(rollbackFor = Exception.class) public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { //浠诲姟鏃ュ織 SysQuartzLog quartzLog = new SysQuartzLog(); @@ -127,7 +129,7 @@ } } quartzLog.setIsSuccess(0); - if(failCount.get() > 0) { + if (failCount.get() > 0) { quartzLog.setIsSuccess(-1); } sb.append("鎶�鏈姸鎬侀壌瀹氬伐鍗曠敓鎴愶細銆愭垚鍔燂細").append(successCount.get()).append("锛屽け璐ワ細").append(failCount.get()).append("銆�"); @@ -141,10 +143,10 @@ LocalDate nextTechnologyCheckDate = DateUtils.dateToLocalDate(equipment.getNextTechnologyCheck()); LocalDate generateDate = nextTechnologyCheckDate.minusDays(orderPreGenerationDays); LocalDate lockDate = nextTechnologyCheckDate.minusDays(orderPreLockDays); - if (LocalDate.now().equals(generateDate)) { + if (!LocalDate.now().isBefore(generateDate) && !CommonConstant.STATUS_1.equals(equipment.getTechnologyGenerateFlag())) { //璁$畻褰撳ぉ闇�瑕佺敓鎴� EamTechnicalStatusEvaluationStandard standard = evaluationStandardService.queryEnableStandard(equipment.getId()); - if(standard == null) { + if (standard == null) { log.warn("璁惧锛歿}锛屾湭閰嶇疆鎶�鏈姸鎬侀壌瀹氳鑼冿紝鏃犳硶鐢熸垚鎶�鏈壌瀹氬伐鍗曪紒鏃ユ湡锛歿}", equipment.getEquipmentCode(), DateUtils.date2Str(DateUtils.date_sdf.get())); failCount.incrementAndGet(); sb.append("璁惧锛�").append(equipment.getEquipmentCode()).append("锛屾湭閰嶇疆鎶�鏈姸鎬侀壌瀹氳鑼冿紝鏃犳硶鐢熸垚鎶�鏈壌瀹氬伐鍗曪紒"); @@ -160,10 +162,12 @@ try { evaluationOrderService.addTechnicalStatusEvaluationOrder(request); successCount.incrementAndGet(); + //鏇存柊鎵╁睍琛ㄤ腑鐨勭敓鎴愭爣璇� + equipmentExtendService.updateTechnologyParam(equipment.getId(), null, null, CommonConstant.STATUS_1); } catch (Exception e) { - log.error("鐢熸垚鎶�鏈姸鎬侀壌瀹氬伐鍗曞け璐ワ紝鍘熷洜锛歿}", e.getMessage(), e); + log.error("璁惧锛歿}锛岀敓鎴愭妧鏈姸鎬侀壌瀹氬伐鍗曞け璐ワ紝鍘熷洜锛歿}", equipment.getEquipmentCode(), e.getMessage(), e); failCount.incrementAndGet(); - sb.append("鐢熸垚鎶�鏈姸鎬侀壌瀹氬伐鍗曞け璐ワ紝鍘熷洜锛�").append(e.getMessage()).append("锛�"); + sb.append("璁惧锛�").append(equipment.getEquipmentCode()).append("锛岀敓鎴愭妧鏈姸鎬侀壌瀹氬伐鍗曞け璐ワ紝鍘熷洜锛�").append(e.getMessage()).append("锛�"); } } } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java index 1c68444..4fa6923 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java @@ -17,6 +17,7 @@ import org.jeecg.common.constant.DataBaseConstant; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.eam.constant.*; import org.jeecg.modules.eam.entity.*; @@ -501,8 +502,6 @@ values.put("NextAssignee", userApprovalList); entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.REPAIRER_SIGNING.name()); } -// //鏇存柊璁惧淇濆吇鐘舵�� -// eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name()); break; case PROCESS_TECHNICIAN_SIGNING: //宸ヨ壓鍛樼瀛� @@ -562,6 +561,11 @@ entity.setInspectorComment(request.getInspectorComment()); entity.setEvaluationResult(request.getEvaluationResult()); entity.setEvaluationReason(request.getEvaluationReason()); + //鏇存柊璁惧鎶�鏈姸鎬� + // 鎸夌収濉姤瀹屾垚鏃ユ湡璁$畻鏈涓変繚鏃ユ湡锛屽幓闄ゆ椂鍒嗙 + Date evaluationDate = DateUtils.localDateToDate(DateUtils.dateToLocalDate(entity.getActualEndTime())); + equipmentExtendService.updateTechnologyParam(equipment.getId(), entity.getEvaluationResult(), + evaluationDate, CommonConstant.STATUS_0); break; } request.setValues(values); -- Gitblit v1.9.3