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