Revert "实现设备中心模块编辑,删除,查看详情,查看"

This reverts commit 3ebacd55c1.
This commit is contained in:
Mr.j 2025-08-04 22:47:56 +08:00
parent d388bbe4a4
commit facf7a8f51
6 changed files with 7 additions and 382 deletions

View File

@ -10,27 +10,11 @@ import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class CustomLocalDateTimeDeserializer extends JsonDeserializer<LocalDateTime> {
private static final DateTimeFormatter FORMATTER1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
private static final DateTimeFormatter FORMATTER2 = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm");
private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
@Override
public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
String date = p.getText();
if (date == null || date.trim().isEmpty()) {
return null;
}
try {
// 尝试第一种格式 yyyy-MM-dd HH:mm:ss
return LocalDateTimeUtil.parse(date, FORMATTER1);
} catch (Exception e1) {
try {
// 尝试第二种格式 yyyy/MM/dd HH:mm
return LocalDateTimeUtil.parse(date, FORMATTER2);
} catch (Exception e2) {
// 如果都失败尝试自动解析
return LocalDateTimeUtil.parse(date);
}
}
return LocalDateTimeUtil.parse(date, FORMATTER);
}
}

View File

@ -125,63 +125,6 @@ public class EquipmentEntity extends AuditableEntity implements Serializable {
@ApiModelProperty("资产备注")
private String assetRemark;
@ApiModelProperty("使用部门/人")
private String usingDepartment;
@ApiModelProperty("领用时间")
private LocalDateTime borrowingTime;
@ApiModelProperty("归还时间")
private LocalDateTime returnTime;
@ApiModelProperty("出库时间")
private LocalDateTime outStockTime;
@ApiModelProperty("总使用时间")
private String totalUsageTime;
@ApiModelProperty("折旧率")
private BigDecimal depreciationRate;
@ApiModelProperty("折旧方法说明")
private String depreciationMethodDesc;
@ApiModelProperty("发票")
private String invoice;
@ApiModelProperty("发票状态")
private String invoiceStatus;
@ApiModelProperty("附件")
private String attachments;
@ApiModelProperty("照片")
private String photos;
@ApiModelProperty("条码")
private String barcode;
@ApiModelProperty("导入人")
private String importer;
@ApiModelProperty("盘库时间/状态1")
private String inventoryTimeStatus1;
@ApiModelProperty("盘库时间/状态2")
private String inventoryTimeStatus2;
@ApiModelProperty("盘库时间/状态3")
private String inventoryTimeStatus3;
@ApiModelProperty("盘点时间/状态1")
private String inventoryCheckTimeStatus1;
@ApiModelProperty("盘点时间/状态2")
private String inventoryCheckTimeStatus2;
@ApiModelProperty("盘点时间/状态3")
private String inventoryCheckTimeStatus3;
@ApiModelProperty("当前使用记录id")
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String useRecordId;

View File

@ -76,18 +76,6 @@ public class EquipmentListReq implements Serializable {
@ApiModelProperty("资产备注")
private String assetRemark;
@ApiModelProperty("使用部门/人")
private String usingDepartment;
@ApiModelProperty("发票")
private String invoice;
@ApiModelProperty("条码")
private String barcode;
@ApiModelProperty("导入人")
private String importer;
@ApiModelProperty("采购时间开始")
private LocalDateTime purchaseTimeStart;

View File

@ -134,76 +134,4 @@ public class EquipmentReq implements Serializable {
@ApiModelProperty("资产备注")
@Size(max = 1000, message = "资产备注长度不能超过1000个字")
private String assetRemark;
@ApiModelProperty("使用部门/人")
@Size(max = 200, message = "使用部门/人长度不能超过200个字")
private String usingDepartment;
@ApiModelProperty("领用时间")
private LocalDateTime borrowingTime;
@ApiModelProperty("归还时间")
private LocalDateTime returnTime;
@ApiModelProperty("出库时间")
private LocalDateTime outStockTime;
@ApiModelProperty("总使用时间")
@Size(max = 100, message = "总使用时间长度不能超过100个字")
private String totalUsageTime;
@ApiModelProperty("折旧率")
private BigDecimal depreciationRate;
@ApiModelProperty("折旧方法说明")
@Size(max = 500, message = "折旧方法说明长度不能超过500个字")
private String depreciationMethodDesc;
@ApiModelProperty("发票")
@Size(max = 100, message = "发票长度不能超过100个字")
private String invoice;
@ApiModelProperty("发票状态")
@Size(max = 50, message = "发票状态长度不能超过50个字")
private String invoiceStatus;
@ApiModelProperty("附件")
@Size(max = 500, message = "附件长度不能超过500个字")
private String attachments;
@ApiModelProperty("照片")
@Size(max = 500, message = "照片长度不能超过500个字")
private String photos;
@ApiModelProperty("条码")
@Size(max = 100, message = "条码长度不能超过100个字")
private String barcode;
@ApiModelProperty("导入人")
@Size(max = 100, message = "导入人长度不能超过100个字")
private String importer;
@ApiModelProperty("盘库时间/状态1")
@Size(max = 100, message = "盘库时间/状态1长度不能超过100个字")
private String inventoryTimeStatus1;
@ApiModelProperty("盘库时间/状态2")
@Size(max = 100, message = "盘库时间/状态2长度不能超过100个字")
private String inventoryTimeStatus2;
@ApiModelProperty("盘库时间/状态3")
@Size(max = 100, message = "盘库时间/状态3长度不能超过100个字")
private String inventoryTimeStatus3;
@ApiModelProperty("盘点时间/状态1")
@Size(max = 100, message = "盘点时间/状态1长度不能超过100个字")
private String inventoryCheckTimeStatus1;
@ApiModelProperty("盘点时间/状态2")
@Size(max = 100, message = "盘点时间/状态2长度不能超过100个字")
private String inventoryCheckTimeStatus2;
@ApiModelProperty("盘点时间/状态3")
@Size(max = 100, message = "盘点时间/状态3长度不能超过100个字")
private String inventoryCheckTimeStatus3;
}

View File

@ -131,63 +131,6 @@ public class EquipmentResp implements Serializable {
@ApiModelProperty("资产备注")
private String assetRemark;
@ApiModelProperty("使用部门/人")
private String usingDepartment;
@ApiModelProperty("领用时间")
private LocalDateTime borrowingTime;
@ApiModelProperty("归还时间")
private LocalDateTime returnTime;
@ApiModelProperty("出库时间")
private LocalDateTime outStockTime;
@ApiModelProperty("总使用时间")
private String totalUsageTime;
@ApiModelProperty("折旧率")
private BigDecimal depreciationRate;
@ApiModelProperty("折旧方法说明")
private String depreciationMethodDesc;
@ApiModelProperty("发票")
private String invoice;
@ApiModelProperty("发票状态")
private String invoiceStatus;
@ApiModelProperty("附件")
private String attachments;
@ApiModelProperty("照片")
private String photos;
@ApiModelProperty("条码")
private String barcode;
@ApiModelProperty("导入人")
private String importer;
@ApiModelProperty("盘库时间/状态1")
private String inventoryTimeStatus1;
@ApiModelProperty("盘库时间/状态2")
private String inventoryTimeStatus2;
@ApiModelProperty("盘库时间/状态3")
private String inventoryTimeStatus3;
@ApiModelProperty("盘点时间/状态1")
private String inventoryCheckTimeStatus1;
@ApiModelProperty("盘点时间/状态2")
private String inventoryCheckTimeStatus2;
@ApiModelProperty("盘点时间/状态3")
private String inventoryCheckTimeStatus3;
@ApiModelProperty("项目id")
private String projectId;

View File

@ -1,12 +1,11 @@
package com.dite.znpt.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dite.znpt.constant.Message;
// 移除EquipmentConverts导入使用手动转换
import com.dite.znpt.converts.EquipmentConverts;
import com.dite.znpt.domain.entity.EquipmentEntity;
import com.dite.znpt.domain.vo.EquipmentListReq;
import com.dite.znpt.domain.vo.EquipmentReq;
@ -23,10 +22,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.time.LocalDateTime;
import java.util.List;
import java.util.stream.Collectors;
import com.dite.znpt.constant.Constants;
/**
* @author Bear.G
@ -46,7 +43,7 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
// 构建查询条件
LambdaQueryWrapper<EquipmentEntity> queryWrapper = new LambdaQueryWrapper<>();
// 不需要手动添加 del_flag 条件@TableLogic 注解会自动处理
queryWrapper.eq(EquipmentEntity::getDelFlag, "0");
// 添加搜索条件并记录日志
int conditionCount = 0;
@ -139,28 +136,6 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
conditionCount++;
}
// 新增字段查询条件
if (StringUtils.hasText(req.getUsingDepartment())) {
queryWrapper.like(EquipmentEntity::getUsingDepartment, req.getUsingDepartment());
log.info("添加使用部门/人查询条件: {}", req.getUsingDepartment());
conditionCount++;
}
if (StringUtils.hasText(req.getInvoice())) {
queryWrapper.like(EquipmentEntity::getInvoice, req.getInvoice());
log.info("添加发票查询条件: {}", req.getInvoice());
conditionCount++;
}
if (StringUtils.hasText(req.getBarcode())) {
queryWrapper.like(EquipmentEntity::getBarcode, req.getBarcode());
log.info("添加条码查询条件: {}", req.getBarcode());
conditionCount++;
}
if (StringUtils.hasText(req.getImporter())) {
queryWrapper.like(EquipmentEntity::getImporter, req.getImporter());
log.info("添加导入人查询条件: {}", req.getImporter());
conditionCount++;
}
// 时间范围查询
if (req.getPurchaseTimeStart() != null) {
queryWrapper.ge(EquipmentEntity::getPurchaseTime, req.getPurchaseTimeStart());
@ -358,7 +333,7 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
@Transactional(rollbackFor = Exception.class)
@Override
public void save(EquipmentReq req) {
EquipmentEntity entity = convertToEntity(req);
EquipmentEntity entity = EquipmentConverts.INSTANCE.toEquipmentEntity(req);
if (getByEquipmentSn(entity.getEquipmentSn()) != null) {
throw new ServiceException(Message.EQUIPMENT_SN_EXIST);
}
@ -381,7 +356,7 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
if (!equipment.getEquipmentSn().equals(req.getEquipmentSn()) && getByEquipmentSn(req.getEquipmentSn()) != null) {
throw new ServiceException(Message.EQUIPMENT_SN_EXIST);
}
EquipmentEntity entity = convertToEntity(req);
EquipmentEntity entity = EquipmentConverts.INSTANCE.toEquipmentEntity(req);
entity.setEquipmentId(equipmentId);
this.updateById(entity);
}
@ -389,125 +364,11 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
@Transactional(rollbackFor = Exception.class)
@Override
public void deleteById(String equipmentId) {
log.info("开始删除设备设备ID: {}", equipmentId);
// 查询设备信息
EquipmentEntity equipment = this.getById(equipmentId);
if (equipment == null) {
log.error("设备不存在设备ID: {}", equipmentId);
throw new ServiceException(Message.EQUIPMENT_ID_NOT_EXIST);
}
// 检查设备是否已被删除
if (!Constants.DEL_FLAG_0.equals(equipment.getDelFlag())) {
log.error("设备已被删除设备ID: {}", equipmentId);
throw new ServiceException("设备已被删除");
}
// 检查设备使用状态如果设备正在使用中不允许删除
if ("1".equals(equipment.getUseStatus())) {
log.error("设备正在使用中无法删除设备ID: {}, 设备名称: {}", equipmentId, equipment.getEquipmentName());
throw new ServiceException("设备正在使用中,请先归还设备后再进行删除操作");
}
// 检查设备位置状态如果设备已分配或外借中不允许删除
if ("allocated".equals(equipment.getLocationStatus()) || "borrowed".equals(equipment.getLocationStatus())) {
log.error("设备已分配或外借中无法删除设备ID: {}, 设备名称: {}, 位置状态: {}",
equipmentId, equipment.getEquipmentName(), equipment.getLocationStatus());
throw new ServiceException("设备已分配或外借中,请先归还设备后再进行删除操作");
}
// 检查设备是否在维修中
if ("repair".equals(equipment.getLocationStatus()) || "repair".equals(equipment.getEquipmentStatus())) {
log.error("设备正在维修中无法删除设备ID: {}, 设备名称: {}", equipmentId, equipment.getEquipmentName());
throw new ServiceException("设备正在维修中,请等待维修完成后再进行删除操作");
}
// 先更新设备状态为已报废
LambdaUpdateWrapper<EquipmentEntity> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(EquipmentEntity::getEquipmentId, equipmentId)
.set(EquipmentEntity::getEquipmentStatus, "scrap")
.set(EquipmentEntity::getLocationStatus, "scrapped")
.set(EquipmentEntity::getActualScrapTime, LocalDateTime.now())
.set(EquipmentEntity::getStatusChangeTime, LocalDateTime.now());
boolean updateResult = this.update(updateWrapper);
if (!updateResult) {
log.error("设备状态更新失败设备ID: {}", equipmentId);
throw new ServiceException("设备状态更新失败,请稍后重试");
}
// 执行软删除 - 使用 MyBatis-Plus 的逻辑删除方法
boolean deleteResult = this.removeById(equipmentId);
if (deleteResult) {
log.info("设备删除成功设备ID: {}, 设备名称: {}", equipmentId, equipment.getEquipmentName());
} else {
log.error("设备删除失败设备ID: {}", equipmentId);
throw new ServiceException("设备删除失败,请稍后重试");
}
}
/**
* 将EquipmentReq转换为EquipmentEntity
*/
private EquipmentEntity convertToEntity(EquipmentReq req) {
EquipmentEntity entity = new EquipmentEntity();
entity.setAssetCode(req.getAssetCode());
entity.setEquipmentName(req.getEquipmentName());
entity.setEquipmentModel(req.getEquipmentModel());
entity.setEquipmentType(req.getEquipmentType());
entity.setEquipmentStatus(req.getEquipmentStatus());
entity.setUseStatus(req.getUseStatus());
entity.setEquipmentSn(req.getEquipmentSn());
entity.setBrand(req.getBrand());
entity.setSpecification(req.getSpecification());
entity.setLocationStatus(req.getLocationStatus());
entity.setPhysicalLocation(req.getPhysicalLocation());
entity.setResponsiblePerson(req.getResponsiblePerson());
entity.setHealthStatus(req.getHealthStatus());
entity.setPurchaseTime(req.getPurchaseTime());
entity.setInStockTime(req.getInStockTime());
entity.setActivationTime(req.getActivationTime());
entity.setExpectedScrapTime(req.getExpectedScrapTime());
entity.setActualScrapTime(req.getActualScrapTime());
entity.setStatusChangeTime(req.getStatusChangeTime());
entity.setPurchaseOrder(req.getPurchaseOrder());
entity.setSupplierName(req.getSupplierName());
entity.setPurchasePrice(req.getPurchasePrice());
entity.setCurrentNetValue(req.getCurrentNetValue());
entity.setDepreciationMethod(req.getDepreciationMethod());
entity.setDepreciationYears(req.getDepreciationYears());
entity.setSalvageValue(req.getSalvageValue());
entity.setWarrantyExpireDate(req.getWarrantyExpireDate());
entity.setLastMaintenanceDate(req.getLastMaintenanceDate());
entity.setNextMaintenanceDate(req.getNextMaintenanceDate());
entity.setMaintenancePerson(req.getMaintenancePerson());
entity.setInventoryBarcode(req.getInventoryBarcode());
entity.setAssetRemark(req.getAssetRemark());
// 新增字段转换
entity.setUsingDepartment(req.getUsingDepartment());
entity.setBorrowingTime(req.getBorrowingTime());
entity.setReturnTime(req.getReturnTime());
entity.setOutStockTime(req.getOutStockTime());
entity.setTotalUsageTime(req.getTotalUsageTime());
entity.setDepreciationRate(req.getDepreciationRate());
entity.setDepreciationMethodDesc(req.getDepreciationMethodDesc());
entity.setInvoice(req.getInvoice());
entity.setInvoiceStatus(req.getInvoiceStatus());
entity.setAttachments(req.getAttachments());
entity.setPhotos(req.getPhotos());
entity.setBarcode(req.getBarcode());
entity.setImporter(req.getImporter());
entity.setInventoryTimeStatus1(req.getInventoryTimeStatus1());
entity.setInventoryTimeStatus2(req.getInventoryTimeStatus2());
entity.setInventoryTimeStatus3(req.getInventoryTimeStatus3());
entity.setInventoryCheckTimeStatus1(req.getInventoryCheckTimeStatus1());
entity.setInventoryCheckTimeStatus2(req.getInventoryCheckTimeStatus2());
entity.setInventoryCheckTimeStatus3(req.getInventoryCheckTimeStatus3());
return entity;
this.removeById(equipmentId);
}
/**
@ -552,28 +413,6 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
resp.setMaintenancePerson(entity.getMaintenancePerson());
resp.setInventoryBarcode(entity.getInventoryBarcode());
resp.setAssetRemark(entity.getAssetRemark());
// 新增字段转换
resp.setUsingDepartment(entity.getUsingDepartment());
resp.setBorrowingTime(entity.getBorrowingTime());
resp.setReturnTime(entity.getReturnTime());
resp.setOutStockTime(entity.getOutStockTime());
resp.setTotalUsageTime(entity.getTotalUsageTime());
resp.setDepreciationRate(entity.getDepreciationRate());
resp.setDepreciationMethodDesc(entity.getDepreciationMethodDesc());
resp.setInvoice(entity.getInvoice());
resp.setInvoiceStatus(entity.getInvoiceStatus());
resp.setAttachments(entity.getAttachments());
resp.setPhotos(entity.getPhotos());
resp.setBarcode(entity.getBarcode());
resp.setImporter(entity.getImporter());
resp.setInventoryTimeStatus1(entity.getInventoryTimeStatus1());
resp.setInventoryTimeStatus2(entity.getInventoryTimeStatus2());
resp.setInventoryTimeStatus3(entity.getInventoryTimeStatus3());
resp.setInventoryCheckTimeStatus1(entity.getInventoryCheckTimeStatus1());
resp.setInventoryCheckTimeStatus2(entity.getInventoryCheckTimeStatus2());
resp.setInventoryCheckTimeStatus3(entity.getInventoryCheckTimeStatus3());
resp.setCreateTime(entity.getCreateTime());
resp.setUpdateTime(entity.getUpdateTime());