设备相关实体

This commit is contained in:
2024-03-04 16:09:42 +08:00
parent 33bb119b6f
commit 393bf3de31
28 changed files with 1031 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
package cn.lihongjie.coal.device.controller;
import cn.lihongjie.coal.annotation.OrgScope;
import cn.lihongjie.coal.annotation.SysLog;
import cn.lihongjie.coal.base.dto.CommonQuery;
import cn.lihongjie.coal.base.dto.IdRequest;
import cn.lihongjie.coal.device.dto.CreateDeviceDto;
import cn.lihongjie.coal.device.dto.DeviceDto;
import cn.lihongjie.coal.device.dto.UpdateDeviceDto;
import cn.lihongjie.coal.device.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/device")
@SysLog(module = "设备管理")
@Slf4j
@OrgScope
public class DeviceController {
@Autowired private DeviceService service;
@PostMapping("/create")
public DeviceDto create(@RequestBody CreateDeviceDto request) {
return this.service.create(request);
}
@PostMapping("/update")
public DeviceDto update(@RequestBody UpdateDeviceDto request) {
return this.service.update(request);
}
@PostMapping("/delete")
public Object delete(@RequestBody IdRequest request) {
this.service.delete(request);
return true;
}
@PostMapping("/getById")
public DeviceDto getById(@RequestBody IdRequest request) {
return this.service.getById(request.getId());
}
@PostMapping("/list")
public Page<DeviceDto> list(@RequestBody CommonQuery request) {
return this.service.list(request);
}
@PostMapping("/archive")
public Object archive(@RequestBody IdRequest request) {
this.service.archive(request);
return true;
}
@PostMapping("/unarchive")
public Object unarchive(@RequestBody IdRequest request) {
this.service.unarchive(request);
return true;
}
}

View File

@@ -0,0 +1,8 @@
package cn.lihongjie.coal.device.dto;
import cn.lihongjie.coal.base.dto.OrgCommonDto;
import lombok.Data;
@Data
public class CreateDeviceDto extends OrgCommonDto {}

View File

@@ -0,0 +1,12 @@
package cn.lihongjie.coal.device.dto;
import cn.lihongjie.coal.base.dto.OrgCommonDto;
import lombok.Data;
@Data
public class DeviceDto extends OrgCommonDto {
private String archiveStatus;
private String archiveStatusName;
}

View File

@@ -0,0 +1,8 @@
package cn.lihongjie.coal.device.dto;
import cn.lihongjie.coal.base.dto.OrgCommonDto;
import lombok.Data;
@Data
public class UpdateDeviceDto extends OrgCommonDto {}

View File

@@ -0,0 +1,68 @@
package cn.lihongjie.coal.device.entity;
import cn.lihongjie.coal.base.entity.OrgCommonEntity;
import cn.lihongjie.coal.deviceCategory.entity.DeviceCategoryEntity;
import cn.lihongjie.coal.deviceSupplier.entity.DeviceSupplierEntity;
import cn.lihongjie.coal.user.entity.UserEntity;
import jakarta.persistence.Entity;
import jakarta.persistence.ManyToOne;
import lombok.Data;
import org.hibernate.annotations.ColumnDefault;
import org.hibernate.annotations.Comment;
import org.hibernate.annotations.Formula;
@Data
@Entity
public class DeviceEntity extends OrgCommonEntity {
@Comment("设备型号")
private String model;
@Comment("设备参数")
private String parameter;
@ManyToOne
private DeviceSupplierEntity supplier;
@ManyToOne
private DeviceCategoryEntity category;
@Comment("设备位置")
private String location;
@ManyToOne
private UserEntity manager;
@Comment("归档状态")
@ColumnDefault("'0'")
private String archiveStatus;
@Formula(
"(select i.name\n"
+ "from t_dictionary d,\n"
+ " t_dictionary_item i\n"
+ "where d.id = i.dictionary_id\n"
+ " and d.code = 'archiveStatus'\n"
+ " and i.code = archive_status)")
private String archiveStatusName;
}

View File

@@ -0,0 +1,19 @@
package cn.lihongjie.coal.device.mapper;
import cn.lihongjie.coal.base.mapper.BaseMapper;
import cn.lihongjie.coal.base.mapper.CommonEntityMapper;
import cn.lihongjie.coal.base.mapper.CommonMapper;
import cn.lihongjie.coal.device.dto.CreateDeviceDto;
import cn.lihongjie.coal.device.dto.DeviceDto;
import cn.lihongjie.coal.device.dto.UpdateDeviceDto;
import cn.lihongjie.coal.device.entity.DeviceEntity;
import org.mapstruct.Mapper;
import org.mapstruct.control.DeepClone;
@Mapper(
componentModel = org.mapstruct.MappingConstants.ComponentModel.SPRING,
uses = {CommonMapper.class, CommonEntityMapper.class},
mappingControl = DeepClone.class)
public interface DeviceMapper
extends BaseMapper<DeviceEntity, DeviceDto, CreateDeviceDto, UpdateDeviceDto> {}

View File

@@ -0,0 +1,9 @@
package cn.lihongjie.coal.device.repository;
import cn.lihongjie.coal.base.dao.BaseRepository;
import cn.lihongjie.coal.device.entity.DeviceEntity;
import org.springframework.stereotype.Repository;
@Repository
public interface DeviceRepository extends BaseRepository<DeviceEntity> {}

View File

@@ -0,0 +1,117 @@
package cn.lihongjie.coal.device.service;
import cn.lihongjie.coal.base.dto.CommonQuery;
import cn.lihongjie.coal.base.dto.IdRequest;
import cn.lihongjie.coal.base.service.BaseService;
import cn.lihongjie.coal.common.ArchiveUtils;
import cn.lihongjie.coal.device.dto.CreateDeviceDto;
import cn.lihongjie.coal.device.dto.DeviceDto;
import cn.lihongjie.coal.device.dto.UpdateDeviceDto;
import cn.lihongjie.coal.device.entity.DeviceEntity;
import cn.lihongjie.coal.device.mapper.DeviceMapper;
import cn.lihongjie.coal.device.repository.DeviceRepository;
import cn.lihongjie.coal.exception.BizException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.convert.ConversionService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@Slf4j
@Transactional
public class DeviceService extends BaseService<DeviceEntity, DeviceRepository> {
@Autowired private DeviceRepository repository;
@Autowired private DeviceMapper mapper;
@Autowired private ConversionService conversionService;
public DeviceDto create(CreateDeviceDto request) {
DeviceEntity entity = mapper.toEntity(request);
this.repository.save(entity);
return getById(entity.getId());
}
public DeviceDto update(UpdateDeviceDto request) {
DeviceEntity entity = this.repository.get(request.getId());
ArchiveUtils.checkArchiveStatus(
entity,
DeviceEntity::getArchiveStatus,
x -> "0",
(e, actual, expected) -> {
throw new BizException("数据 " + "已归档,无法编辑");
});
this.mapper.updateEntity(entity, request);
this.repository.save(entity);
return getById(entity.getId());
}
public void delete(IdRequest request) {
ArchiveUtils.checkArchiveStatus(
this.repository::findAllById,
request.getIds(),
DeviceEntity::getArchiveStatus,
x -> "0",
(e, actual, expected) -> {
throw new BizException("数据 " + "已归档,无法删除");
});
this.repository.deleteAllById(request.getIds());
}
public DeviceDto getById(String id) {
DeviceEntity entity = repository.get(id);
return mapper.toDto(entity);
}
public Page<DeviceDto> list(CommonQuery query) {
Page<DeviceEntity> page =
repository.findAll(
query.specification(conversionService),
PageRequest.of(
query.getPageNo(),
query.getPageSize(),
Sort.by(query.getOrders())));
return page.map(this.mapper::toDto);
}
public void archive(IdRequest dto) {
this.repository.findAllById(dto.getIds()).stream()
.peek(
x ->
ArchiveUtils.checkArchiveStatus(
x,
DeviceEntity::getArchiveStatus,
y -> "0",
(e, actual, expected) -> {
throw new BizException("数据 " + "已归档,无法再次归档");
}))
.peek(x -> x.setArchiveStatus("1"))
.forEach(this.repository::save);
}
public void unarchive(IdRequest dto) {
this.repository.findAllById(dto.getIds()).stream()
.peek(
x ->
ArchiveUtils.checkArchiveStatus(
x,
DeviceEntity::getArchiveStatus,
y -> "1",
(e, actual, expected) -> {
throw new BizException("数据" + "未归档,无法取消归档");
}))
.peek(x -> x.setArchiveStatus("0"))
.forEach(this.repository::save);
}
}

View File

@@ -0,0 +1,66 @@
package cn.lihongjie.coal.deviceWorkOrder.controller;
import cn.lihongjie.coal.annotation.OrgScope;
import cn.lihongjie.coal.annotation.SysLog;
import cn.lihongjie.coal.base.dto.CommonQuery;
import cn.lihongjie.coal.base.dto.IdRequest;
import cn.lihongjie.coal.deviceWorkOrder.dto.CreateDeviceWorkOrderDto;
import cn.lihongjie.coal.deviceWorkOrder.dto.DeviceWorkOrderDto;
import cn.lihongjie.coal.deviceWorkOrder.dto.UpdateDeviceWorkOrderDto;
import cn.lihongjie.coal.deviceWorkOrder.service.DeviceWorkOrderService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/deviceWorkOrder")
@SysLog(module = "设备工单")
@Slf4j
@OrgScope
public class DeviceWorkOrderController {
@Autowired private DeviceWorkOrderService service;
@PostMapping("/create")
public DeviceWorkOrderDto create(@RequestBody CreateDeviceWorkOrderDto request) {
return this.service.create(request);
}
@PostMapping("/update")
public DeviceWorkOrderDto update(@RequestBody UpdateDeviceWorkOrderDto request) {
return this.service.update(request);
}
@PostMapping("/delete")
public Object delete(@RequestBody IdRequest request) {
this.service.delete(request);
return true;
}
@PostMapping("/getById")
public DeviceWorkOrderDto getById(@RequestBody IdRequest request) {
return this.service.getById(request.getId());
}
@PostMapping("/list")
public Page<DeviceWorkOrderDto> list(@RequestBody CommonQuery request) {
return this.service.list(request);
}
@PostMapping("/archive")
public Object archive(@RequestBody IdRequest request) {
this.service.archive(request);
return true;
}
@PostMapping("/unarchive")
public Object unarchive(@RequestBody IdRequest request) {
this.service.unarchive(request);
return true;
}
}

View File

@@ -0,0 +1,8 @@
package cn.lihongjie.coal.deviceWorkOrder.dto;
import cn.lihongjie.coal.base.dto.OrgCommonDto;
import lombok.Data;
@Data
public class CreateDeviceWorkOrderDto extends OrgCommonDto {}

View File

@@ -0,0 +1,12 @@
package cn.lihongjie.coal.deviceWorkOrder.dto;
import cn.lihongjie.coal.base.dto.OrgCommonDto;
import lombok.Data;
@Data
public class DeviceWorkOrderDto extends OrgCommonDto {
private String archiveStatus;
private String archiveStatusName;
}

View File

@@ -0,0 +1,8 @@
package cn.lihongjie.coal.deviceWorkOrder.dto;
import cn.lihongjie.coal.base.dto.OrgCommonDto;
import lombok.Data;
@Data
public class UpdateDeviceWorkOrderDto extends OrgCommonDto {}

View File

@@ -0,0 +1,79 @@
package cn.lihongjie.coal.deviceWorkOrder.entity;
import cn.lihongjie.coal.base.entity.OrgCommonEntity;
import cn.lihongjie.coal.deviceWorkOrderDetail.entity.DeviceWorkOrderDetailEntity;
import cn.lihongjie.coal.user.entity.UserEntity;
import jakarta.persistence.Entity;
import jakarta.persistence.OneToMany;
import lombok.Data;
import org.hibernate.annotations.ColumnDefault;
import org.hibernate.annotations.Comment;
import org.hibernate.annotations.Formula;
import java.time.LocalDateTime;
import java.util.List;
@Data
@Entity
public class DeviceWorkOrderEntity extends OrgCommonEntity {
@Comment("提单人名称")
private String proposerName;
@Comment("提单人联系方式")
private String proposerContact;
@Comment("工单时间")
private LocalDateTime time;
@Comment("工单类型")
private String type;
@Formula(
"(select i.name\n"
+ "from t_dictionary d,\n"
+ " t_dictionary_item i\n"
+ "where d.id = i.dictionary_id\n"
+ " and d.code = 'device.workOrder.status'\n"
+ " and i.code = type)")
private String typeName;
@Comment("工单状态")
private String orderStatus;
@Formula(
"(select i.name\n"
+ "from t_dictionary d,\n"
+ " t_dictionary_item i\n"
+ "where d.id = i.dictionary_id\n"
+ " and d.code = 'device.workOrder.status'\n"
+ " and i.code = order_status)")
private String orderStatusName;
@Comment("归档状态")
@ColumnDefault("'0'")
private String archiveStatus;
@Formula(
"(select i.name\n"
+ "from t_dictionary d,\n"
+ " t_dictionary_item i\n"
+ "where d.id = i.dictionary_id\n"
+ " and d.code = 'archiveStatus'\n"
+ " and i.code = archive_status)")
private String archiveStatusName;
@OneToMany(mappedBy = "workOrder")
private List<DeviceWorkOrderDetailEntity> details;
@OneToMany
private List<UserEntity> workers;
}

View File

@@ -0,0 +1,23 @@
package cn.lihongjie.coal.deviceWorkOrder.mapper;
import cn.lihongjie.coal.base.mapper.BaseMapper;
import cn.lihongjie.coal.base.mapper.CommonEntityMapper;
import cn.lihongjie.coal.base.mapper.CommonMapper;
import cn.lihongjie.coal.deviceWorkOrder.dto.CreateDeviceWorkOrderDto;
import cn.lihongjie.coal.deviceWorkOrder.dto.DeviceWorkOrderDto;
import cn.lihongjie.coal.deviceWorkOrder.dto.UpdateDeviceWorkOrderDto;
import cn.lihongjie.coal.deviceWorkOrder.entity.DeviceWorkOrderEntity;
import org.mapstruct.Mapper;
import org.mapstruct.control.DeepClone;
@Mapper(
componentModel = org.mapstruct.MappingConstants.ComponentModel.SPRING,
uses = {CommonMapper.class, CommonEntityMapper.class},
mappingControl = DeepClone.class)
public interface DeviceWorkOrderMapper
extends BaseMapper<
DeviceWorkOrderEntity,
DeviceWorkOrderDto,
CreateDeviceWorkOrderDto,
UpdateDeviceWorkOrderDto> {}

View File

@@ -0,0 +1,9 @@
package cn.lihongjie.coal.deviceWorkOrder.repository;
import cn.lihongjie.coal.base.dao.BaseRepository;
import cn.lihongjie.coal.deviceWorkOrder.entity.DeviceWorkOrderEntity;
import org.springframework.stereotype.Repository;
@Repository
public interface DeviceWorkOrderRepository extends BaseRepository<DeviceWorkOrderEntity> {}

View File

@@ -0,0 +1,118 @@
package cn.lihongjie.coal.deviceWorkOrder.service;
import cn.lihongjie.coal.base.dto.CommonQuery;
import cn.lihongjie.coal.base.dto.IdRequest;
import cn.lihongjie.coal.base.service.BaseService;
import cn.lihongjie.coal.common.ArchiveUtils;
import cn.lihongjie.coal.deviceWorkOrder.dto.CreateDeviceWorkOrderDto;
import cn.lihongjie.coal.deviceWorkOrder.dto.DeviceWorkOrderDto;
import cn.lihongjie.coal.deviceWorkOrder.dto.UpdateDeviceWorkOrderDto;
import cn.lihongjie.coal.deviceWorkOrder.entity.DeviceWorkOrderEntity;
import cn.lihongjie.coal.deviceWorkOrder.mapper.DeviceWorkOrderMapper;
import cn.lihongjie.coal.deviceWorkOrder.repository.DeviceWorkOrderRepository;
import cn.lihongjie.coal.exception.BizException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.convert.ConversionService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@Slf4j
@Transactional
public class DeviceWorkOrderService
extends BaseService<DeviceWorkOrderEntity, DeviceWorkOrderRepository> {
@Autowired private DeviceWorkOrderRepository repository;
@Autowired private DeviceWorkOrderMapper mapper;
@Autowired private ConversionService conversionService;
public DeviceWorkOrderDto create(CreateDeviceWorkOrderDto request) {
DeviceWorkOrderEntity entity = mapper.toEntity(request);
this.repository.save(entity);
return getById(entity.getId());
}
public DeviceWorkOrderDto update(UpdateDeviceWorkOrderDto request) {
DeviceWorkOrderEntity entity = this.repository.get(request.getId());
ArchiveUtils.checkArchiveStatus(
entity,
DeviceWorkOrderEntity::getArchiveStatus,
x -> "0",
(e, actual, expected) -> {
throw new BizException("数据 " + "已归档,无法编辑");
});
this.mapper.updateEntity(entity, request);
this.repository.save(entity);
return getById(entity.getId());
}
public void delete(IdRequest request) {
ArchiveUtils.checkArchiveStatus(
this.repository::findAllById,
request.getIds(),
DeviceWorkOrderEntity::getArchiveStatus,
x -> "0",
(e, actual, expected) -> {
throw new BizException("数据 " + "已归档,无法删除");
});
this.repository.deleteAllById(request.getIds());
}
public DeviceWorkOrderDto getById(String id) {
DeviceWorkOrderEntity entity = repository.get(id);
return mapper.toDto(entity);
}
public Page<DeviceWorkOrderDto> list(CommonQuery query) {
Page<DeviceWorkOrderEntity> page =
repository.findAll(
query.specification(conversionService),
PageRequest.of(
query.getPageNo(),
query.getPageSize(),
Sort.by(query.getOrders())));
return page.map(this.mapper::toDto);
}
public void archive(IdRequest dto) {
this.repository.findAllById(dto.getIds()).stream()
.peek(
x ->
ArchiveUtils.checkArchiveStatus(
x,
DeviceWorkOrderEntity::getArchiveStatus,
y -> "0",
(e, actual, expected) -> {
throw new BizException("数据 " + "已归档,无法再次归档");
}))
.peek(x -> x.setArchiveStatus("1"))
.forEach(this.repository::save);
}
public void unarchive(IdRequest dto) {
this.repository.findAllById(dto.getIds()).stream()
.peek(
x ->
ArchiveUtils.checkArchiveStatus(
x,
DeviceWorkOrderEntity::getArchiveStatus,
y -> "1",
(e, actual, expected) -> {
throw new BizException("数据" + "未归档,无法取消归档");
}))
.peek(x -> x.setArchiveStatus("0"))
.forEach(this.repository::save);
}
}

View File

@@ -0,0 +1,66 @@
package cn.lihongjie.coal.deviceWorkOrderDetail.controller;
import cn.lihongjie.coal.annotation.OrgScope;
import cn.lihongjie.coal.annotation.SysLog;
import cn.lihongjie.coal.base.dto.CommonQuery;
import cn.lihongjie.coal.base.dto.IdRequest;
import cn.lihongjie.coal.deviceWorkOrderDetail.dto.CreateDeviceWorkOrderDetailDto;
import cn.lihongjie.coal.deviceWorkOrderDetail.dto.DeviceWorkOrderDetailDto;
import cn.lihongjie.coal.deviceWorkOrderDetail.dto.UpdateDeviceWorkOrderDetailDto;
import cn.lihongjie.coal.deviceWorkOrderDetail.service.DeviceWorkOrderDetailService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/deviceWorkOrderDetail")
@SysLog(module = "工作内容记录")
@Slf4j
@OrgScope
public class DeviceWorkOrderDetailController {
@Autowired private DeviceWorkOrderDetailService service;
@PostMapping("/create")
public DeviceWorkOrderDetailDto create(@RequestBody CreateDeviceWorkOrderDetailDto request) {
return this.service.create(request);
}
@PostMapping("/update")
public DeviceWorkOrderDetailDto update(@RequestBody UpdateDeviceWorkOrderDetailDto request) {
return this.service.update(request);
}
@PostMapping("/delete")
public Object delete(@RequestBody IdRequest request) {
this.service.delete(request);
return true;
}
@PostMapping("/getById")
public DeviceWorkOrderDetailDto getById(@RequestBody IdRequest request) {
return this.service.getById(request.getId());
}
@PostMapping("/list")
public Page<DeviceWorkOrderDetailDto> list(@RequestBody CommonQuery request) {
return this.service.list(request);
}
@PostMapping("/archive")
public Object archive(@RequestBody IdRequest request) {
this.service.archive(request);
return true;
}
@PostMapping("/unarchive")
public Object unarchive(@RequestBody IdRequest request) {
this.service.unarchive(request);
return true;
}
}

View File

@@ -0,0 +1,8 @@
package cn.lihongjie.coal.deviceWorkOrderDetail.dto;
import cn.lihongjie.coal.base.dto.OrgCommonDto;
import lombok.Data;
@Data
public class CreateDeviceWorkOrderDetailDto extends OrgCommonDto {}

View File

@@ -0,0 +1,12 @@
package cn.lihongjie.coal.deviceWorkOrderDetail.dto;
import cn.lihongjie.coal.base.dto.OrgCommonDto;
import lombok.Data;
@Data
public class DeviceWorkOrderDetailDto extends OrgCommonDto {
private String archiveStatus;
private String archiveStatusName;
}

View File

@@ -0,0 +1,8 @@
package cn.lihongjie.coal.deviceWorkOrderDetail.dto;
import cn.lihongjie.coal.base.dto.OrgCommonDto;
import lombok.Data;
@Data
public class UpdateDeviceWorkOrderDetailDto extends OrgCommonDto {}

View File

@@ -0,0 +1,48 @@
package cn.lihongjie.coal.deviceWorkOrderDetail.entity;
import cn.lihongjie.coal.base.entity.OrgCommonEntity;
import cn.lihongjie.coal.deviceWorkOrder.entity.DeviceWorkOrderEntity;
import jakarta.persistence.Entity;
import jakarta.persistence.ManyToOne;
import lombok.Data;
import org.hibernate.annotations.ColumnDefault;
import org.hibernate.annotations.Comment;
import org.hibernate.annotations.Formula;
import java.time.LocalDateTime;
@Data
@Entity
public class DeviceWorkOrderDetailEntity extends OrgCommonEntity {
@ManyToOne
private DeviceWorkOrderEntity workOrder;
private LocalDateTime startTime;
private LocalDateTime endTime;
private String content;
@Comment("归档状态")
@ColumnDefault("'0'")
private String archiveStatus;
@Formula(
"(select i.name\n"
+ "from t_dictionary d,\n"
+ " t_dictionary_item i\n"
+ "where d.id = i.dictionary_id\n"
+ " and d.code = 'archiveStatus'\n"
+ " and i.code = archive_status)")
private String archiveStatusName;
}

View File

@@ -0,0 +1,23 @@
package cn.lihongjie.coal.deviceWorkOrderDetail.mapper;
import cn.lihongjie.coal.base.mapper.BaseMapper;
import cn.lihongjie.coal.base.mapper.CommonEntityMapper;
import cn.lihongjie.coal.base.mapper.CommonMapper;
import cn.lihongjie.coal.deviceWorkOrderDetail.dto.CreateDeviceWorkOrderDetailDto;
import cn.lihongjie.coal.deviceWorkOrderDetail.dto.DeviceWorkOrderDetailDto;
import cn.lihongjie.coal.deviceWorkOrderDetail.dto.UpdateDeviceWorkOrderDetailDto;
import cn.lihongjie.coal.deviceWorkOrderDetail.entity.DeviceWorkOrderDetailEntity;
import org.mapstruct.Mapper;
import org.mapstruct.control.DeepClone;
@Mapper(
componentModel = org.mapstruct.MappingConstants.ComponentModel.SPRING,
uses = {CommonMapper.class, CommonEntityMapper.class},
mappingControl = DeepClone.class)
public interface DeviceWorkOrderDetailMapper
extends BaseMapper<
DeviceWorkOrderDetailEntity,
DeviceWorkOrderDetailDto,
CreateDeviceWorkOrderDetailDto,
UpdateDeviceWorkOrderDetailDto> {}

View File

@@ -0,0 +1,10 @@
package cn.lihongjie.coal.deviceWorkOrderDetail.repository;
import cn.lihongjie.coal.base.dao.BaseRepository;
import cn.lihongjie.coal.deviceWorkOrderDetail.entity.DeviceWorkOrderDetailEntity;
import org.springframework.stereotype.Repository;
@Repository
public interface DeviceWorkOrderDetailRepository
extends BaseRepository<DeviceWorkOrderDetailEntity> {}

View File

@@ -0,0 +1,118 @@
package cn.lihongjie.coal.deviceWorkOrderDetail.service;
import cn.lihongjie.coal.base.dto.CommonQuery;
import cn.lihongjie.coal.base.dto.IdRequest;
import cn.lihongjie.coal.base.service.BaseService;
import cn.lihongjie.coal.common.ArchiveUtils;
import cn.lihongjie.coal.deviceWorkOrderDetail.dto.CreateDeviceWorkOrderDetailDto;
import cn.lihongjie.coal.deviceWorkOrderDetail.dto.DeviceWorkOrderDetailDto;
import cn.lihongjie.coal.deviceWorkOrderDetail.dto.UpdateDeviceWorkOrderDetailDto;
import cn.lihongjie.coal.deviceWorkOrderDetail.entity.DeviceWorkOrderDetailEntity;
import cn.lihongjie.coal.deviceWorkOrderDetail.mapper.DeviceWorkOrderDetailMapper;
import cn.lihongjie.coal.deviceWorkOrderDetail.repository.DeviceWorkOrderDetailRepository;
import cn.lihongjie.coal.exception.BizException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.convert.ConversionService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@Slf4j
@Transactional
public class DeviceWorkOrderDetailService
extends BaseService<DeviceWorkOrderDetailEntity, DeviceWorkOrderDetailRepository> {
@Autowired private DeviceWorkOrderDetailRepository repository;
@Autowired private DeviceWorkOrderDetailMapper mapper;
@Autowired private ConversionService conversionService;
public DeviceWorkOrderDetailDto create(CreateDeviceWorkOrderDetailDto request) {
DeviceWorkOrderDetailEntity entity = mapper.toEntity(request);
this.repository.save(entity);
return getById(entity.getId());
}
public DeviceWorkOrderDetailDto update(UpdateDeviceWorkOrderDetailDto request) {
DeviceWorkOrderDetailEntity entity = this.repository.get(request.getId());
ArchiveUtils.checkArchiveStatus(
entity,
DeviceWorkOrderDetailEntity::getArchiveStatus,
x -> "0",
(e, actual, expected) -> {
throw new BizException("数据 " + "已归档,无法编辑");
});
this.mapper.updateEntity(entity, request);
this.repository.save(entity);
return getById(entity.getId());
}
public void delete(IdRequest request) {
ArchiveUtils.checkArchiveStatus(
this.repository::findAllById,
request.getIds(),
DeviceWorkOrderDetailEntity::getArchiveStatus,
x -> "0",
(e, actual, expected) -> {
throw new BizException("数据 " + "已归档,无法删除");
});
this.repository.deleteAllById(request.getIds());
}
public DeviceWorkOrderDetailDto getById(String id) {
DeviceWorkOrderDetailEntity entity = repository.get(id);
return mapper.toDto(entity);
}
public Page<DeviceWorkOrderDetailDto> list(CommonQuery query) {
Page<DeviceWorkOrderDetailEntity> page =
repository.findAll(
query.specification(conversionService),
PageRequest.of(
query.getPageNo(),
query.getPageSize(),
Sort.by(query.getOrders())));
return page.map(this.mapper::toDto);
}
public void archive(IdRequest dto) {
this.repository.findAllById(dto.getIds()).stream()
.peek(
x ->
ArchiveUtils.checkArchiveStatus(
x,
DeviceWorkOrderDetailEntity::getArchiveStatus,
y -> "0",
(e, actual, expected) -> {
throw new BizException("数据 " + "已归档,无法再次归档");
}))
.peek(x -> x.setArchiveStatus("1"))
.forEach(this.repository::save);
}
public void unarchive(IdRequest dto) {
this.repository.findAllById(dto.getIds()).stream()
.peek(
x ->
ArchiveUtils.checkArchiveStatus(
x,
DeviceWorkOrderDetailEntity::getArchiveStatus,
y -> "1",
(e, actual, expected) -> {
throw new BizException("数据" + "未归档,无法取消归档");
}))
.peek(x -> x.setArchiveStatus("0"))
.forEach(this.repository::save);
}
}

View File

@@ -2052,6 +2052,63 @@
]
},
{
"code": "device.workOrder.status",
"name": "设备工单状态",
"item": [
{
"code": "0",
"name": "未开始"
},
{
"code": "1",
"name": "进行中"
},
{
"code": "2",
"name": "已完成"
},
{
"code": "3",
"name": "已取消"
}
]
},
{
"code": "device.workOrder.type",
"name": "设备工单类型",
"item": [
{
"code": "0",
"name": "安装"
},
{
"code": "1",
"name": "维修"
},
{
"code": "2",
"name": "保养"
},
{
"code": "3",
"name": "移机"
},
{
"code": "4",
"name": "拆除"
},
{
"code": "5",
"name": "改造"
}
]
},
{
"code": "emp.record.type",
"name": "员工档案记录类型",

View File

@@ -0,0 +1,17 @@
package scripts.dict
import cn.lihongjie.coal.base.dto.CommonQuery
import cn.lihongjie.coal.device.controller.DeviceController
import org.springframework.context.ApplicationContext
ApplicationContext ioc = ioc
def controller = ioc.getBean(DeviceController.class)
return controller.list(new CommonQuery())

View File

@@ -0,0 +1,17 @@
package scripts.dict
import cn.lihongjie.coal.base.dto.CommonQuery
import cn.lihongjie.coal.deviceWorkOrderDetail.controller.DeviceWorkOrderDetailController
import org.springframework.context.ApplicationContext
ApplicationContext ioc = ioc
def controller = ioc.getBean(DeviceWorkOrderDetailController.class)
return controller.list(new CommonQuery())

View File

@@ -0,0 +1,17 @@
package scripts.dict
import cn.lihongjie.coal.base.dto.CommonQuery
import cn.lihongjie.coal.deviceWorkOrder.controller.DeviceWorkOrderController
import org.springframework.context.ApplicationContext
ApplicationContext ioc = ioc
def controller = ioc.getBean(DeviceWorkOrderController.class)
return controller.list(new CommonQuery())