From 04ef88cee361ec8730c400d96250a6c1cd9f9d80 Mon Sep 17 00:00:00 2001
From: “linengliang” <vanSuperEnergy@163.com>
Date: 星期五, 08 九月 2023 16:23:47 +0800
Subject: [PATCH] 设备台账 1.ABC标识变更记录功能 2.质保日期变更记录功能 3.质保到期提醒 4.ABC标识与关键设备标识联动 5.设备质保期字段添加

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EquipmentUpdateInfoServiceImpl.java |   78 +++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EquipmentUpdateInfoMapper.java            |   14 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipmentUpdateVo.java                        |   16 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentUpdateInfo.java                  |   95 +++++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEquipmentUpdateInfoService.java         |   20 ++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentImportVo.java                    |    3 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/EquipmentWarrantyEndDateAlertJob.java        |   52 +++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentUpdateInfoController.java    |  188 ++++++++++++++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EquipmentUpdateInfoMapper.xml         |    5 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java           |  111 ++++++-----
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/Equipment.java                            |   15 +
 11 files changed, 544 insertions(+), 53 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
index 92d335d..4d588b7 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
@@ -589,12 +589,8 @@
 						 exceptionInfo = exceptionInfo+"绗�"+(i+2)+"琛屽鍏ュけ璐�,鍘熷洜:璐ㄤ繚寮�濮嬫棩鏈熺己澶�,璇峰~鍐欏繀濉」鍚庡啀瀵煎叆;";
 						 exceptionNum++;
 					 }
-					 else if(ObjectUtils.isNotNull(equipmentImportVo.getWarrantyEnd())){
-						 exceptionInfo = exceptionInfo+"绗�"+(i+2)+"琛屽鍏ュけ璐�,鍘熷洜:璐ㄤ繚缁撴潫鏃ユ湡缂哄け,璇峰~鍐欏繀濉」鍚庡啀瀵煎叆;";
-						 exceptionNum++;
-					 }
-					 else if(StringUtils.isBlank(equipmentImportVo.getKeyEquipmentIdentification())){
-						 exceptionInfo = exceptionInfo+"绗�"+(i+2)+"琛屽鍏ュけ璐�,鍘熷洜:鍏抽敭璁惧鏍囪瘑缂哄け,璇峰~鍐欏繀濉」鍚庡啀瀵煎叆;";
+					 else if(StringUtils.isBlank(equipmentImportVo.getPropertyStatus())){
+						 exceptionInfo = exceptionInfo+"绗�"+(i+2)+"琛屽鍏ュけ璐�,鍘熷洜:璧勪骇鐘舵�佺己澶�,璇峰~鍐欏繀濉」鍚庡啀瀵煎叆;";
 						 exceptionNum++;
 					 }
                      //闈炲繀濉」
@@ -651,52 +647,65 @@
 							  exceptionInfo = exceptionInfo+"绗�"+(i+2)+"琛屽鍏ュけ璐�,鍘熷洜:璇ヨ澶囨墍灞炵被鍒笉瀛樺湪锛岃鍏堢淮鎶よ澶囩被鍒�;";
 							  exceptionNum++;
 						   }
-                      else{
-						 Equipment oriEquipment = equipmentService.getOne(new QueryWrapper<Equipment>().eq("num",equipmentImportVo.getNum()),false);
-						 if(ObjectUtils.isNull(oriEquipment)){
-							 Equipment equipment = new Equipment();
-							 equipment.setNum(equipmentImportVo.getNum())
-									 .setName(equipmentImportVo.getName())
-									 .setUseId(equipmentImportVo.getUseId())
-									 .setEquipmentUda1(equipmentImportVo.getEquipmentUda1())
-									 .setManageId(equipmentImportVo.getManageId())
-									 .setTeamId(equipmentImportVo.getTeamId())
-									 .setTechnologyStatus(equipmentImportVo.getTechnologyStatus())
-									 .setEquipmentImportanceId(equipmentImportVo.getEquipmentImportanceId())
-									 .setEquipmentCategoryId(equipmentCategory.getId())
-									 .setSpecificEquipment(equipmentImportVo.getKeyEquipmentIdentification())
-									 .setSecurityConfiguration(equipmentImportVo.getSecurityConfiguration())
-									 .setCoolingSystem(equipmentImportVo.getCoolingSystem())
-									 .setFireExtinguisher(equipmentImportVo.getFireExtinguisher())
-									 .setFireExtinguisherValidityPeriod(equipmentImportVo.getFireExtinguisherValidityPeriod())
-									 .setOperatingSystem(equipmentImportVo.getOperatingSystem())
-									 .setSystem(equipmentImportVo.getSystem())
-									 .setPort(equipmentImportVo.getPort())
-									 .setCoordinateNum(equipmentImportVo.getCoordinateNum())
-									 .setEquipmentStatus(equipmentImportVo.getEquipmentStatus())
-									 .setEquipmentUda3(equipmentImportVo.getEquipmentUda3())
-									 .setEquipmentUda4(equipmentImportVo.getEquipmentUda4())
-									 .setEquipmentUda5(equipmentImportVo.getEquipmentUda5())
-									 .setLocation(equipmentImportVo.getLocation())
-									 .setLastVerificationDate(equipmentImportVo.getLeaveFactoryDate())
-									 .setProjectApprovalNo(equipmentImportVo.getProjectApprovalNo())
-									 .setFundSource(equipmentImportVo.getFundSource())
-									 .setAcceptanceCheckDate(equipmentImportVo.getAcceptanceCheckDate())
-									 .setFactoryNumber(equipmentImportVo.getFactoryNumber())
-									 .setConstructorId(equipmentImportVo.getConstructorId())
-									 .setSourceCountry(equipmentImportVo.getSourceCountry())
-									 .setModel(equipmentImportVo.getModel())
-									 .setSpecification(equipmentImportVo.getSpecification())
-									 .setFactoryModelId(equipmentImportVo.getFactoryModelId())
-									 .setWorkCenterId(equipmentImportVo.getWorkCenterId())
-									 .setWarrantyStart(equipmentImportVo.getWarrantyStart())
-									 .setWarrantyEnd(equipmentImportVo.getWarrantyEnd())
-									 .setGpo(equipmentImportVo.getGpo());
-							 equipmentService.save(equipment);
-						 }else {
-							 exceptionInfo = exceptionInfo+"绗�"+(i+2)+"琛屽鍏ュけ璐ワ紝鍘熷洜锛氱粺涓�缂栫爜宸插瓨鍦紝鏁版嵁閲嶅瀵煎叆;";
-							 exceptionNum++;
+					 else{
+                         if(equipmentImportVo.getPropertyStatus().equals("warranty")){
+							 if(
+							 		ObjectUtils.isNull(equipmentImportVo.getWarrantyStart())
+									 ||ObjectUtils.isNull(equipmentImportVo.getWarrantyEnd())
+							 ){
+								 exceptionInfo = exceptionInfo+"绗�"+(i+2)+"琛屽鍏ュけ璐�,鍘熷洜:璇ヨ澶囧浜庤川淇濇湡锛岃川淇濅俊鎭己澶憋紝璇峰厛缁存姢璐ㄤ繚寮�濮嬫椂闂存垨缁撴潫鏃堕棿;";
+								 exceptionNum++;
+							 }
+
+						 }else{
+							 Equipment oriEquipment = equipmentService.getOne(new QueryWrapper<Equipment>().eq("num",equipmentImportVo.getNum()),false);
+							 if(ObjectUtils.isNull(oriEquipment)){
+								 Equipment equipment = new Equipment();
+								 equipment.setNum(equipmentImportVo.getNum())
+										 .setName(equipmentImportVo.getName())
+										 .setUseId(equipmentImportVo.getUseId())
+										 .setEquipmentUda1(equipmentImportVo.getEquipmentUda1())
+										 .setManageId(equipmentImportVo.getManageId())
+										 .setTeamId(equipmentImportVo.getTeamId())
+										 .setTechnologyStatus(equipmentImportVo.getTechnologyStatus())
+										 .setEquipmentImportanceId(equipmentImportVo.getEquipmentImportanceId())
+										 .setEquipmentCategoryId(equipmentCategory.getId())
+										 .setSpecificEquipment(equipmentImportVo.getKeyEquipmentIdentification())
+										 .setSecurityConfiguration(equipmentImportVo.getSecurityConfiguration())
+										 .setCoolingSystem(equipmentImportVo.getCoolingSystem())
+										 .setFireExtinguisher(equipmentImportVo.getFireExtinguisher())
+										 .setFireExtinguisherValidityPeriod(equipmentImportVo.getFireExtinguisherValidityPeriod())
+										 .setOperatingSystem(equipmentImportVo.getOperatingSystem())
+										 .setSystem(equipmentImportVo.getSystem())
+										 .setPort(equipmentImportVo.getPort())
+										 .setCoordinateNum(equipmentImportVo.getCoordinateNum())
+										 .setEquipmentStatus(equipmentImportVo.getEquipmentStatus())
+										 .setEquipmentUda3(equipmentImportVo.getEquipmentUda3())
+										 .setEquipmentUda4(equipmentImportVo.getEquipmentUda4())
+										 .setEquipmentUda5(equipmentImportVo.getEquipmentUda5())
+										 .setLocation(equipmentImportVo.getLocation())
+										 .setLastVerificationDate(equipmentImportVo.getLeaveFactoryDate())
+										 .setProjectApprovalNo(equipmentImportVo.getProjectApprovalNo())
+										 .setFundSource(equipmentImportVo.getFundSource())
+										 .setAcceptanceCheckDate(equipmentImportVo.getAcceptanceCheckDate())
+										 .setFactoryNumber(equipmentImportVo.getFactoryNumber())
+										 .setConstructorId(equipmentImportVo.getConstructorId())
+										 .setSourceCountry(equipmentImportVo.getSourceCountry())
+										 .setModel(equipmentImportVo.getModel())
+										 .setSpecification(equipmentImportVo.getSpecification())
+										 .setFactoryModelId(equipmentImportVo.getFactoryModelId())
+										 .setWorkCenterId(equipmentImportVo.getWorkCenterId())
+										 .setPropertyStatus(equipmentImportVo.getPropertyStatus())
+										 .setWarrantyStart(equipmentImportVo.getWarrantyStart())
+										 .setWarrantyEnd(equipmentImportVo.getWarrantyEnd())
+										 .setGpo(equipmentImportVo.getGpo());
+								 equipmentService.save(equipment);
+							 }else {
+								 exceptionInfo = exceptionInfo+"绗�"+(i+2)+"琛屽鍏ュけ璐ワ紝鍘熷洜锛氱粺涓�缂栫爜宸插瓨鍦紝鏁版嵁閲嶅瀵煎叆;";
+								 exceptionNum++;
+							 }
 						 }
+
 					 }
 				 }
 				 if(exceptionNum!=0){
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentUpdateInfoController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentUpdateInfoController.java
new file mode 100644
index 0000000..9f5a3cf
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentUpdateInfoController.java
@@ -0,0 +1,188 @@
+package org.jeecg.modules.eam.controller;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.modules.eam.entity.Equipment;
+import org.jeecg.modules.eam.entity.EquipmentUpdateInfo;
+import org.jeecg.modules.eam.service.IEamEquipmentService;
+import org.jeecg.modules.eam.service.IEquipmentUpdateInfoService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.modules.eam.vo.EquipmentUpdateVo;
+import org.jeecg.modules.system.entity.SysUser;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+
+ /**
+ * @Description: 璁惧淇℃伅鍙樻洿璁板綍
+ * @Author: jeecg-boot
+ * @Date:   2023-09-07
+ * @Version: V1.0
+ */
+@Api(tags="璁惧淇℃伅鍙樻洿璁板綍")
+@RestController
+@RequestMapping("/eam/equipmentUpdateInfo")
+@Slf4j
+public class EquipmentUpdateInfoController extends JeecgController<EquipmentUpdateInfo, IEquipmentUpdateInfoService> {
+
+	@Autowired
+	private IEquipmentUpdateInfoService equipmentUpdateInfoService;
+	@Autowired
+	private IEamEquipmentService equipmentService;
+
+
+	/**
+	 * 鍒嗛〉鍒楄〃鏌ヨ
+	 *
+	 * @param equipmentUpdateInfo
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "璁惧淇℃伅鍙樻洿璁板綍-鍒嗛〉鍒楄〃鏌ヨ")
+	@ApiOperation(value="璁惧淇℃伅鍙樻洿璁板綍-鍒嗛〉鍒楄〃鏌ヨ", notes="璁惧淇℃伅鍙樻洿璁板綍-鍒嗛〉鍒楄〃鏌ヨ")
+	@GetMapping(value = "/list")
+	public Result<IPage<EquipmentUpdateInfo>> queryPageList(EquipmentUpdateInfo equipmentUpdateInfo,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<EquipmentUpdateInfo> queryWrapper = QueryGenerator.initQueryWrapper(equipmentUpdateInfo, req.getParameterMap());
+		queryWrapper.orderByDesc("update_date");
+		Page<EquipmentUpdateInfo> page = new Page<EquipmentUpdateInfo>(pageNo, pageSize);
+		IPage<EquipmentUpdateInfo> pageList = equipmentUpdateInfoService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+
+	/**
+	 *   娣诲姞
+	 *
+	 * @param equipmentUpdateInfo
+	 * @return
+	 */
+	@AutoLog(value = "璁惧淇℃伅鍙樻洿璁板綍-娣诲姞")
+	@ApiOperation(value="璁惧淇℃伅鍙樻洿璁板綍-娣诲姞", notes="璁惧淇℃伅鍙樻洿璁板綍-娣诲姞")
+	//@RequiresPermissions("org.jeecg.modules.mdc:mom_eam_equipment_update_info:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody EquipmentUpdateInfo equipmentUpdateInfo) {
+		equipmentUpdateInfoService.save(equipmentUpdateInfo);
+		return Result.OK("娣诲姞鎴愬姛锛�");
+	}
+
+	/**
+	 *  缂栬緫
+	 *
+	 * @param equipmentUpdateInfo
+	 * @return
+	 */
+	@AutoLog(value = "璁惧淇℃伅鍙樻洿璁板綍-缂栬緫")
+	@ApiOperation(value="璁惧淇℃伅鍙樻洿璁板綍-缂栬緫", notes="璁惧淇℃伅鍙樻洿璁板綍-缂栬緫")
+	//@RequiresPermissions("org.jeecg.modules.mdc:mom_eam_equipment_update_info:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody EquipmentUpdateInfo equipmentUpdateInfo) {
+		equipmentUpdateInfoService.updateById(equipmentUpdateInfo);
+		return Result.OK("缂栬緫鎴愬姛!");
+	}
+
+	/**
+	 *   閫氳繃id鍒犻櫎
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "璁惧淇℃伅鍙樻洿璁板綍-閫氳繃id鍒犻櫎")
+	@ApiOperation(value="璁惧淇℃伅鍙樻洿璁板綍-閫氳繃id鍒犻櫎", notes="璁惧淇℃伅鍙樻洿璁板綍-閫氳繃id鍒犻櫎")
+	//@RequiresPermissions("org.jeecg.modules.mdc:mom_eam_equipment_update_info:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		equipmentUpdateInfoService.removeById(id);
+		return Result.OK("鍒犻櫎鎴愬姛!");
+	}
+
+	/**
+	 *  鎵归噺鍒犻櫎
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "璁惧淇℃伅鍙樻洿璁板綍-鎵归噺鍒犻櫎")
+	@ApiOperation(value="璁惧淇℃伅鍙樻洿璁板綍-鎵归噺鍒犻櫎", notes="璁惧淇℃伅鍙樻洿璁板綍-鎵归噺鍒犻櫎")
+	//@RequiresPermissions("org.jeecg.modules.mdc:mom_eam_equipment_update_info:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.equipmentUpdateInfoService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
+	}
+
+	/**
+	 * 閫氳繃id鏌ヨ
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "璁惧淇℃伅鍙樻洿璁板綍-閫氳繃id鏌ヨ")
+	@ApiOperation(value="璁惧淇℃伅鍙樻洿璁板綍-閫氳繃id鏌ヨ", notes="璁惧淇℃伅鍙樻洿璁板綍-閫氳繃id鏌ヨ")
+	@GetMapping(value = "/queryById")
+	public Result<EquipmentUpdateInfo> queryById(@RequestParam(name="id",required=true) String id) {
+		EquipmentUpdateInfo equipmentUpdateInfo = equipmentUpdateInfoService.getById(id);
+		if(equipmentUpdateInfo==null) {
+			return Result.error("鏈壘鍒板搴旀暟鎹�");
+		}
+		return Result.OK(equipmentUpdateInfo);
+	}
+
+    /**
+    * 瀵煎嚭excel
+    *
+    * @param request
+    * @param equipmentUpdateInfo
+    */
+    //@RequiresPermissions("org.jeecg.modules.mdc:mom_eam_equipment_update_info:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, EquipmentUpdateInfo equipmentUpdateInfo) {
+        return super.exportXls(request, equipmentUpdateInfo, EquipmentUpdateInfo.class, "璁惧淇℃伅鍙樻洿璁板綍");
+    }
+
+    /**
+      * 閫氳繃excel瀵煎叆鏁版嵁
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("mom_eam_equipment_update_info:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, EquipmentUpdateInfo.class);
+    }
+    @PostMapping("updateABC")
+    public Result<?> updateABC(@RequestBody EquipmentUpdateVo equipmentUpdateVo){
+		equipmentUpdateInfoService.updateABC(equipmentUpdateVo);
+		return Result.OK("鎿嶄綔鎴愬姛");
+	}
+	 @PostMapping("updateWarranty")
+	 public Result<?> updateWarranty(@RequestBody EquipmentUpdateVo equipmentUpdateVo){
+		 equipmentUpdateInfoService.updateWarranty(equipmentUpdateVo);
+		 return Result.OK("鎿嶄綔鎴愬姛");
+	 }
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/Equipment.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/Equipment.java
index 06619c1..2101d60 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/Equipment.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/Equipment.java
@@ -311,6 +311,17 @@
     @Excel(name = "璐ㄤ繚缁撴潫鏃ユ湡", width = 15,orderNum = "38",format = "yyyy-MM-dd")
     @DateTimeFormat(pattern="yyyy-MM-dd")
     private Date warrantyEnd;
-
-
+    @Dict(dicCode = "property_status")
+    @Excel(width = 15,orderNum = "41",dicCode = "property_status",name = "璧勪骇鐘舵��")
+    private String 	propertyStatus;
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @TableField(exist = false)
+    private Date newStart;
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @TableField(exist = false)
+    private Date newEnd;
+    @TableField(exist = false)
+    private String newABCTag;
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentImportVo.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentImportVo.java
index 1e1ce19..b2b8041 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentImportVo.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentImportVo.java
@@ -125,6 +125,9 @@
     @Excel(name = "璐ㄤ繚缁撴潫鏃ユ湡",format = "yyyyMMdd")
     private Date warrantyEnd;
 
+    @Excel(dicCode = "property_status",name = "璧勪骇鐘舵��")
+    private String 	propertyStatus;
+
 
 
 
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentUpdateInfo.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentUpdateInfo.java
new file mode 100644
index 0000000..d5e77ed
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentUpdateInfo.java
@@ -0,0 +1,95 @@
+package org.jeecg.modules.eam.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: 璁惧淇℃伅鍙樻洿璁板綍
+ * @Author: jeecg-boot
+ * @Date:   2023-09-07
+ * @Version: V1.0
+ */
+@Data
+@TableName("mom_eam_equipment_update_info")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="mom_eam_equipment_update_info瀵硅薄", description="璁惧淇℃伅鍙樻洿璁板綍")
+public class EquipmentUpdateInfo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**涓婚敭ID*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "涓婚敭ID")
+    private java.lang.String id;
+	/**缁存姢绫诲瀷锛堟暟鎹瓧鍏革細equipment_update_type锛�*/
+	@Excel(name = "缁存姢绫诲瀷锛堟暟鎹瓧鍏革細equipment_update_type锛�", width = 15)
+    @ApiModelProperty(value = "缁存姢绫诲瀷锛堟暟鎹瓧鍏革細equipment_update_type锛�")
+    @Dict(dicCode = "equipment_update_type")
+    private java.lang.String updateType;
+	/**鍙樻洿浜�*/
+	@Excel(name = "鍙樻洿浜�", width = 15)
+    @ApiModelProperty(value = "鍙樻洿浜�")
+    @Dict(dicCode = "id",dictTable = "sys_user",dicText = "realname")
+    private java.lang.String updatePerson;
+	/**鍙樻洿鏃ユ湡*/
+	@Excel(name = "鍙樻洿鏃ユ湡", width = 15, format = "yyyy-MM-dd HH:mm:ss")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "鍙樻洿鏃ユ湡")
+    private java.util.Date updateDate;
+	/**璁惧ID*/
+	@Excel(name = "璁惧ID", width = 15)
+    @ApiModelProperty(value = "璁惧ID")
+    private java.lang.String equipmentId;
+	/**鏃bc鏍囪瘑*/
+	@Excel(name = "鏃bc鏍囪瘑", width = 15)
+    @ApiModelProperty(value = "鏃bc鏍囪瘑")
+    @Dict(dicCode = "ABC-standard-result")
+    private java.lang.String oldAbcTag;
+	/**鏂癮bc鏍囪瘑*/
+	@Excel(name = "鏂癮bc鏍囪瘑", width = 15)
+    @ApiModelProperty(value = "鏂癮bc鏍囪瘑")
+    @Dict(dicCode = "ABC-standard-result")
+    private java.lang.String newAbcTag;
+	/**鏃ц川淇濆紑濮嬫棩鏈�*/
+	@Excel(name = "鏃ц川淇濆紑濮嬫棩鏈�", width = 15, format = "yyyy-MM-dd")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鏃ц川淇濆紑濮嬫棩鏈�")
+    private java.util.Date oldStart;
+	/**鏂拌川淇濆紑濮嬫棩鏈�*/
+	@Excel(name = "鏂拌川淇濆紑濮嬫棩鏈�", width = 15, format = "yyyy-MM-dd")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鏂拌川淇濆紑濮嬫棩鏈�")
+    private java.util.Date newStart;
+	/**鏃ц川淇濈粨鏉熸棩鏈�*/
+	@Excel(name = "鏃ц川淇濈粨鏉熸棩鏈�", width = 15, format = "yyyy-MM-dd")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鏃ц川淇濈粨鏉熸棩鏈�")
+    private java.util.Date oldEnd;
+	/**鏂拌川淇濈粨鏉熸棩鏈�*/
+	@Excel(name = "鏂拌川淇濈粨鏉熸棩鏈�", width = 15, format = "yyyy-MM-dd")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鏂拌川淇濈粨鏉熸棩鏈�")
+    private java.util.Date newEnd;
+    @ApiModelProperty(value = "澶囨敞")
+	private String remark;
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/EquipmentWarrantyEndDateAlertJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/EquipmentWarrantyEndDateAlertJob.java
new file mode 100644
index 0000000..5a9e7d1
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/EquipmentWarrantyEndDateAlertJob.java
@@ -0,0 +1,52 @@
+package org.jeecg.modules.eam.job;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.dto.message.MessageDTO;
+import org.jeecg.common.system.api.ISysBaseAPI;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.modules.eam.entity.Equipment;
+import org.jeecg.modules.eam.service.IEamEquipmentService;
+import org.jeecg.modules.eam.service.IEquipmentUpdateInfoService;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author lnl
+ */
+public class EquipmentWarrantyEndDateAlertJob implements Job {
+    @Autowired
+    private IEamEquipmentService equipmentService;
+    @Autowired
+    private ISysBaseAPI sysBaseApi;
+    @Override
+    public void execute(JobExecutionContext context) throws JobExecutionException {
+        Calendar currentDate = Calendar.getInstance();
+        currentDate.add(Calendar.DATE, 30);
+        Date finalDay = currentDate.getTime();
+        QueryWrapper<Equipment> queryWrapper = new QueryWrapper<Equipment>()
+                .lt("warranty_end",finalDay).gt("warranty_end",new Date()).eq("del_flag",0);
+        List<Equipment> equipmentList = equipmentService.list(queryWrapper);
+        String title = "璁惧璐ㄤ繚鍒版湡鎻愰啋!";
+        String msg = "缁熶竴缂栫爜涓猴細";
+        for(Equipment equipment:equipmentList){
+            msg = msg+"銆�"+equipment.getNum()+"銆�";
+        }
+        msg = msg+"鐨勮澶囪川淇濈粨鏉熸棩鏈熷皬浜�30澶╋紝璇峰強鏃跺鐞�";
+        MessageDTO messageDTO = new MessageDTO();
+        messageDTO.setTitle(title);
+        messageDTO.setContent(msg);
+        messageDTO.setCategory("绯荤粺娑堟伅");
+        messageDTO.setFromUser("鍒版湡鎻愰啋灏忓姪鎵�-灏忛啋");
+        messageDTO.setToUser("admin");
+        if(equipmentList.size()!=0){
+            sysBaseApi.sendSysAnnouncement(messageDTO);
+        }
+    }
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EquipmentUpdateInfoMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EquipmentUpdateInfoMapper.java
new file mode 100644
index 0000000..a22631d
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EquipmentUpdateInfoMapper.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.eam.mapper;
+
+import org.jeecg.modules.eam.entity.EquipmentUpdateInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 璁惧淇℃伅鍙樻洿璁板綍
+ * @Author: jeecg-boot
+ * @Date:   2023-09-07
+ * @Version: V1.0
+ */
+public interface EquipmentUpdateInfoMapper extends BaseMapper<EquipmentUpdateInfo> {
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EquipmentUpdateInfoMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EquipmentUpdateInfoMapper.xml
new file mode 100644
index 0000000..6269326
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EquipmentUpdateInfoMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-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.EquipmentUpdateInfoMapper">
+
+</mapper>
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEquipmentUpdateInfoService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEquipmentUpdateInfoService.java
new file mode 100644
index 0000000..dcc1b8f
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEquipmentUpdateInfoService.java
@@ -0,0 +1,20 @@
+package org.jeecg.modules.eam.service;
+
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.eam.entity.EquipmentUpdateInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.eam.vo.EquipmentUpdateVo;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * @Description: 璁惧淇℃伅鍙樻洿璁板綍
+ * @Author: jeecg-boot
+ * @Date:   2023-09-07
+ * @Version: V1.0
+ */
+public interface IEquipmentUpdateInfoService extends IService<EquipmentUpdateInfo> {
+    public void updateABC(EquipmentUpdateVo equipmentUpdateVo);
+    public void updateWarranty(EquipmentUpdateVo equipmentUpdateVo);
+
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EquipmentUpdateInfoServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EquipmentUpdateInfoServiceImpl.java
new file mode 100644
index 0000000..325f082
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EquipmentUpdateInfoServiceImpl.java
@@ -0,0 +1,78 @@
+package org.jeecg.modules.eam.service.impl;
+
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.modules.eam.entity.Equipment;
+import org.jeecg.modules.eam.entity.EquipmentUpdateInfo;
+import org.jeecg.modules.eam.mapper.EamEquipmentMapper;
+import org.jeecg.modules.eam.mapper.EquipmentUpdateInfoMapper;
+import org.jeecg.modules.eam.service.IEquipmentUpdateInfoService;
+import org.jeecg.modules.eam.vo.EquipmentUpdateVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Description: 璁惧淇℃伅鍙樻洿璁板綍
+ * @Author: jeecg-boot
+ * @Date:   2023-09-07
+ * @Version: V1.0
+ */
+@Service
+public class EquipmentUpdateInfoServiceImpl extends ServiceImpl<EquipmentUpdateInfoMapper, EquipmentUpdateInfo> implements IEquipmentUpdateInfoService {
+    @Autowired
+    private EamEquipmentMapper equipmentMapper;
+    private  final String UPDATE_TYPE_ABC = "ABC";
+    private  final String UPDATE_TYPE_WARRANTY = "warranty";
+    @Override
+    @Transactional(rollbackFor = {Exception.class})
+    public void updateABC(EquipmentUpdateVo equipmentUpdateVo) {
+        List<Equipment> list = equipmentUpdateVo.getUpdateABCEditTableList();
+        LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        List<EquipmentUpdateInfo> equipmentUpdateInfos = new ArrayList<>();
+        for(Equipment equipment:list) {
+            EquipmentUpdateInfo equipmentUpdateInfo = new EquipmentUpdateInfo();
+            equipmentUpdateInfo.setEquipmentId(equipment.getId())
+                    .setOldAbcTag(equipment.getEquipmentImportanceId())
+                    .setNewAbcTag(equipment.getNewABCTag())
+                    .setUpdateDate(new Date())
+                    .setUpdateType(UPDATE_TYPE_ABC)
+                    .setRemark(equipment.getRemark())
+                    .setUpdatePerson(user.getId());
+            equipmentUpdateInfos.add(equipmentUpdateInfo);
+            baseMapper.insert(equipmentUpdateInfo);
+            equipment.setEquipmentImportanceId(equipment.getNewABCTag());
+            equipmentMapper.updateById(equipment);
+        }
+    }
+
+    @Override
+    @Transactional(rollbackFor = {Exception.class})
+    public void updateWarranty(EquipmentUpdateVo equipmentUpdateVo) {
+        List<Equipment> list = equipmentUpdateVo.getWarrantyUpdateTableList();
+        LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        for(Equipment equipment:list){
+            EquipmentUpdateInfo equipmentUpdateInfo = new EquipmentUpdateInfo();
+            equipmentUpdateInfo.setEquipmentId(equipment.getId())
+                    .setOldStart(equipment.getWarrantyStart())
+                    .setNewStart(equipment.getNewStart())
+                    .setOldEnd(equipment.getWarrantyEnd())
+                    .setNewEnd(equipment.getNewEnd())
+                    .setUpdateDate(new Date())
+                    .setUpdateType(UPDATE_TYPE_WARRANTY)
+                    .setRemark(equipment.getRemark())
+                    .setUpdatePerson(user.getId());
+            baseMapper.insert(equipmentUpdateInfo);
+            equipment.setWarrantyStart(equipment.getNewStart())
+                    .setWarrantyEnd(equipment.getNewEnd());
+            equipmentMapper.updateById(equipment);
+        }
+    }
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipmentUpdateVo.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipmentUpdateVo.java
new file mode 100644
index 0000000..ed6f952
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipmentUpdateVo.java
@@ -0,0 +1,16 @@
+package org.jeecg.modules.eam.vo;
+
+import lombok.Data;
+import org.jeecg.modules.eam.entity.Equipment;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author lnl
+ */
+@Data
+public class EquipmentUpdateVo implements Serializable {
+    private List<Equipment> updateABCEditTableList;
+    private List<Equipment> warrantyUpdateTableList;
+}

--
Gitblit v1.9.3