Compare commits

...

8 Commits

Author SHA1 Message Date
funny 514080a0f9 完善发送COA发布通知功能 2026-04-21 14:14:53 +08:00
funny bf09bca3cb Merge branch 'qms/develop' into qms/yf 2026-04-21 13:52:42 +08:00
曹鹏飞 edda75ff02 feat(controller): 优化发送消息接口的消息类型处理
- 引入IDictionaryItemService以动态获取消息类型ID
- 在发送消息时校验消息类型ID是否存在,异常时抛出业务错误
- 替换固定消息类型ID为动态获取的ID,提高灵活性和可维护性
- 导入VUtil工具类用于抛出业务异常
- 添加必要的import语句和@Resource注入装配新服务
2026-04-21 13:50:32 +08:00
funny 04341065bc 修改供应商管理功能 2026-04-21 13:39:18 +08:00
funny 2760624a9b Merge branch 'qms/develop' into qms/yf 2026-04-21 13:37:13 +08:00
曹鹏飞 26bbb7275f 【优化】质量通知添加对附件的支持 2026-04-21 11:42:05 +08:00
曹鹏飞 6a540f9254 【优化】消息发送服务添加日志 2026-04-21 10:41:57 +08:00
曹鹏飞 921bf67376 【优化】数据校验 2026-04-21 10:41:13 +08:00
17 changed files with 214 additions and 45 deletions

View File

@ -13,16 +13,17 @@ import com.nflg.wms.common.pojo.qo.ZipDownloadQO;
import com.nflg.wms.common.pojo.vo.FileUploadVO; import com.nflg.wms.common.pojo.vo.FileUploadVO;
import com.nflg.wms.common.pojo.vo.FileVO; import com.nflg.wms.common.pojo.vo.FileVO;
import com.nflg.wms.common.util.UserUtil; import com.nflg.wms.common.util.UserUtil;
import com.nflg.wms.repository.entity.FileUploadRecord;
import com.nflg.wms.starter.BaseController; import com.nflg.wms.starter.BaseController;
import com.nflg.wms.starter.annotation.ApiMark; import com.nflg.wms.starter.annotation.ApiMark;
import com.nflg.wms.starter.service.FileUploadService; import com.nflg.wms.starter.service.FileUploadService;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.beans.factory.annotation.Qualifier;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.FilenameUtils;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -60,7 +61,17 @@ public class FileUpLoadController extends BaseController {
String fileName = file.getOriginalFilename(); String fileName = file.getOriginalFilename();
String fileType = getFileType(fileName); String fileType = getFileType(fileName);
String url = fileUploadService.upload(buildFilePath(fileType), file); String url = fileUploadService.upload(buildFilePath(fileType), file);
return ApiResult.success(new FileUploadVO(0L, fileName, url)); FileUploadRecord record = new FileUploadRecord()
.setFileName(fileName)
.setFileType(fileType)
.setUrl(url)
.setFrom("admin")
.setSource((short) 0)
.setSourceId(0L)
.setCreateBy(UserUtil.getUserName())
.setCreateTime(LocalDateTime.now());
fileControllerService.add(record);
return ApiResult.success(new FileUploadVO(record.getId(), fileName, url));
} catch (Exception ex) { } catch (Exception ex) {
log.error("上传文件失败", ex); log.error("上传文件失败", ex);
throw new NflgException(STATE.BusinessError, "上传文件失败:" + ex.getMessage()); throw new NflgException(STATE.BusinessError, "上传文件失败:" + ex.getMessage());
@ -104,7 +115,7 @@ public class FileUpLoadController extends BaseController {
*/ */
@PostMapping("getFileTypes") @PostMapping("getFileTypes")
@ApiMark(moduleName = "文件管理", apiName = "获取文件类型列表") @ApiMark(moduleName = "文件管理", apiName = "获取文件类型列表")
public ApiResult<List<String>> getFileTypes(){ public ApiResult<List<String>> getFileTypes() {
return ApiResult.success(fileControllerService.getFileTypes()); return ApiResult.success(fileControllerService.getFileTypes());
} }

View File

@ -12,9 +12,12 @@ import com.nflg.wms.common.pojo.vo.QmsCoaTaskDetailVO;
import com.nflg.wms.common.pojo.vo.QmsCoaTaskMaterialVO; import com.nflg.wms.common.pojo.vo.QmsCoaTaskMaterialVO;
import com.nflg.wms.common.pojo.vo.QmsCoaTaskVO; import com.nflg.wms.common.pojo.vo.QmsCoaTaskVO;
import com.nflg.wms.common.util.UserUtil; import com.nflg.wms.common.util.UserUtil;
import com.nflg.wms.common.util.VUtil;
import com.nflg.wms.repository.entity.QmsCoaTask; import com.nflg.wms.repository.entity.QmsCoaTask;
import com.nflg.wms.repository.entity.QmsTodoItem; import com.nflg.wms.repository.entity.QmsTodoItem;
import com.nflg.wms.repository.service.IDictionaryItemService;
import com.nflg.wms.repository.service.IQmsCoaTaskService; import com.nflg.wms.repository.service.IQmsCoaTaskService;
import com.nflg.wms.repository.service.IQmsTodoItemService;
import com.nflg.wms.starter.BaseController; import com.nflg.wms.starter.BaseController;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.validation.Valid; import jakarta.validation.Valid;
@ -23,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* COA通知管理 * COA通知管理
@ -37,9 +41,15 @@ public class QmsCoaTaskController extends BaseController {
@Resource @Resource
private List<ISendMessageService> sendMessageServices; private List<ISendMessageService> sendMessageServices;
@Resource
private IQmsTodoItemService todoItemService;
@Resource @Resource
private BasdeSerialNumberControllerService basdeSerialNumberControllerService; private BasdeSerialNumberControllerService basdeSerialNumberControllerService;
@Resource
private IDictionaryItemService dictionaryItemService;
/** /**
* 新增COA通知任务 * 新增COA通知任务
* 状态默认为0待发送 * 状态默认为0待发送
@ -80,22 +90,23 @@ public class QmsCoaTaskController extends BaseController {
@PostMapping("publish") @PostMapping("publish")
public ApiResult<Void> publish(@Valid @RequestBody QmsCoaTaskAddQO qo) { public ApiResult<Void> publish(@Valid @RequestBody QmsCoaTaskAddQO qo) {
coaTaskService.publish(qo); coaTaskService.publish(qo);
Long dictionaryItemServiceId = dictionaryItemService.getId("消息类型", "COANotificationSent");
VUtil.trueThrowBusinessError(Objects.isNull(dictionaryItemServiceId)).throwMessage("消息类型不存在");
// 推送COA通知 // 推送COA通知
QmsTodoItem qmsTodoItem = new QmsTodoItem() QmsTodoItem qmsTodoItem = new QmsTodoItem()
.setCode(basdeSerialNumberControllerService.generateSerialNumber(32)) .setCode(basdeSerialNumberControllerService.generateSerialNumber(32))
.setIsRead(false) .setIsRead(false)
.setSourceTypeId(2046157760401182721L) .setSourceTypeId(dictionaryItemServiceId)
.setSourceId(coaTaskService.lambdaQuery().eq(QmsCoaTask::getMaterialId,qo.getMaterialNo()).one().getId()) .setSourceId(coaTaskService.lambdaQuery().eq(QmsCoaTask::getMaterialId,qo.getMaterialNo()).one().getId())
.setCreateUserId(UserUtil.getUserId()) .setCreateUserId(UserUtil.getUserId())
.setCreateUserName(UserUtil.getUserName()) .setCreateUserName(UserUtil.getUserName())
.setCreateTime(java.time.LocalDateTime.now()); .setCreateTime(java.time.LocalDateTime.now());
sendMessageServices.forEach(service -> service.sendSystemMessage(qmsTodoItem)); todoItemService.save(qmsTodoItem);
return ApiResult.success(); return ApiResult.success();
} }
/** /**
* 批量发送状态改为1已发送填入发送时间 * 批量发送状态改为1已发送填入发送时间每条任务单独推送一条待办消息
* *
* @param ids 任务ID列表 * @param ids 任务ID列表
*/ */
@ -103,16 +114,23 @@ public class QmsCoaTaskController extends BaseController {
@PostMapping("send") @PostMapping("send")
public ApiResult<Void> send(@RequestBody List<Long> ids) { public ApiResult<Void> send(@RequestBody List<Long> ids) {
coaTaskService.send(ids); coaTaskService.send(ids);
// 推送COA通知 Long dictionaryItemServiceId = dictionaryItemService.getId("消息类型", "COANotificationSent");
QmsTodoItem qmsTodoItem = new QmsTodoItem() VUtil.trueThrowBusinessError(Objects.isNull(dictionaryItemServiceId)).throwMessage("消息类型不存在");
.setCode(basdeSerialNumberControllerService.generateSerialNumber(32)) Long currentUserId = UserUtil.getUserId();
.setIsRead(false) String currentUserName = UserUtil.getUserName();
.setSourceTypeId(2046157760401182721L) java.time.LocalDateTime now = java.time.LocalDateTime.now();
.setSourceId(0L) // 每个任务ID单独推送一条待办消息
.setCreateUserId(UserUtil.getUserId()) for (Long taskId : ids) {
.setCreateUserName(UserUtil.getUserName()) QmsTodoItem qmsTodoItem = new QmsTodoItem()
.setCreateTime(java.time.LocalDateTime.now()); .setCode(basdeSerialNumberControllerService.generateSerialNumber(32))
sendMessageServices.forEach(service -> service.sendSystemMessage(qmsTodoItem)); .setIsRead(false)
.setSourceTypeId(dictionaryItemServiceId)
.setSourceId(taskId)
.setCreateUserId(currentUserId)
.setCreateUserName(currentUserName)
.setCreateTime(now);
todoItemService.save(qmsTodoItem);
}
return ApiResult.success(); return ApiResult.success();
} }

View File

@ -4,7 +4,9 @@ import com.nflg.qms.admin.service.BasdeSerialNumberControllerService;
import com.nflg.qms.admin.service.ISendMessageService; import com.nflg.qms.admin.service.ISendMessageService;
import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.ApiResult;
import com.nflg.wms.common.util.UserUtil; import com.nflg.wms.common.util.UserUtil;
import com.nflg.wms.common.util.VUtil;
import com.nflg.wms.repository.entity.QmsTodoItem; import com.nflg.wms.repository.entity.QmsTodoItem;
import com.nflg.wms.repository.service.IDictionaryItemService;
import com.nflg.wms.starter.BaseController; import com.nflg.wms.starter.BaseController;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -13,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* 测试 * 测试
@ -28,15 +31,20 @@ public class TestController extends BaseController {
@Resource @Resource
private BasdeSerialNumberControllerService basdeSerialNumberControllerService; private BasdeSerialNumberControllerService basdeSerialNumberControllerService;
@Resource
private IDictionaryItemService dictionaryItemService;
/** /**
* 发送消息 * 发送消息
*/ */
@GetMapping("/sendMessage") @GetMapping("/sendMessage")
public ApiResult<Void> sendMessage() { public ApiResult<Void> sendMessage() {
Long dictionaryItemServiceId = dictionaryItemService.getId("消息类型", "COANotificationSent");
VUtil.trueThrowBusinessError(Objects.isNull(dictionaryItemServiceId)).throwMessage("消息类型不存在");
QmsTodoItem qmsTodoItem = new QmsTodoItem() QmsTodoItem qmsTodoItem = new QmsTodoItem()
.setCode(basdeSerialNumberControllerService.generateSerialNumber(32)) .setCode(basdeSerialNumberControllerService.generateSerialNumber(32))
.setIsRead(false) .setIsRead(false)
.setSourceTypeId(2046157760401182721L) .setSourceTypeId(dictionaryItemServiceId)
.setSourceId(0L) .setSourceId(0L)
.setCreateUserId(UserUtil.getUserId()) .setCreateUserId(UserUtil.getUserId())
.setCreateUserName(UserUtil.getUserName()) .setCreateUserName(UserUtil.getUserName())

View File

@ -105,4 +105,8 @@ public class FileControllerService {
.contentType(MediaType.APPLICATION_OCTET_STREAM) .contentType(MediaType.APPLICATION_OCTET_STREAM)
.body(zipContent); .body(zipContent);
} }
public void add(FileUploadRecord record) {
fileUploadRecordService.save(record);
}
} }

View File

@ -1,12 +1,18 @@
package com.nflg.qms.admin.service; package com.nflg.qms.admin.service;
import com.nflg.wms.repository.entity.QmsTodoItem; import com.nflg.wms.repository.entity.QmsTodoItem;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public interface ISendMessageService { public interface ISendMessageService {
Logger log = LoggerFactory.getLogger(ISendMessageService.class);
/** /**
* 发送待办消息 * 发送待办消息
* @param item 待办事项 * @param item 待办事项
*/ */
void sendSystemMessage(QmsTodoItem item); default void sendSystemMessage(QmsTodoItem item){
log.warn("方法未实现");
}
} }

View File

@ -5,19 +5,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nflg.wms.common.pojo.qo.QmsQualityNotificationAddQO; import com.nflg.wms.common.pojo.qo.QmsQualityNotificationAddQO;
import com.nflg.wms.common.pojo.qo.QmsQualityNotificationSearchQO; import com.nflg.wms.common.pojo.qo.QmsQualityNotificationSearchQO;
import com.nflg.wms.common.pojo.qo.QmsQualityNotificationUpdateQO; import com.nflg.wms.common.pojo.qo.QmsQualityNotificationUpdateQO;
import com.nflg.wms.common.pojo.vo.FileVO; import com.nflg.wms.common.pojo.vo.FileUploadVO;
import com.nflg.wms.common.pojo.vo.QmsQualityNotificationUserVO; import com.nflg.wms.common.pojo.vo.QmsQualityNotificationUserVO;
import com.nflg.wms.common.pojo.vo.QmsQualityNotificationVO; import com.nflg.wms.common.pojo.vo.QmsQualityNotificationVO;
import com.nflg.wms.common.util.UserUtil; import com.nflg.wms.common.util.UserUtil;
import com.nflg.wms.common.util.VUtil; import com.nflg.wms.common.util.VUtil;
import com.nflg.wms.repository.entity.FileUploadRecord; import com.nflg.wms.repository.entity.*;
import com.nflg.wms.repository.entity.QmsQualityNotification; import com.nflg.wms.repository.service.*;
import com.nflg.wms.repository.entity.QmsQualityNotificationUser;
import com.nflg.wms.repository.entity.User;
import com.nflg.wms.repository.service.IFileUploadRecordService;
import com.nflg.wms.repository.service.IQmsQualityNotificationService;
import com.nflg.wms.repository.service.IQmsQualityNotificationUserService;
import com.nflg.wms.repository.service.IUserService;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -49,6 +43,9 @@ public class QualityNotificationControllerService {
@Resource @Resource
private IFileUploadRecordService fileUploadRecordService; private IFileUploadRecordService fileUploadRecordService;
@Resource
private IQmsQualityNotificationFileService qualityNotificationFileService;
/** /**
* 新增质量通知 * 新增质量通知
*/ */
@ -79,6 +76,16 @@ public class QualityNotificationControllerService {
qualityNotificationService.save(entity); qualityNotificationService.save(entity);
if (CollectionUtil.isNotEmpty(request.getAttachments())) {
List<QmsQualityNotificationFile> attachments = request.getAttachments().stream()
.map(attachment -> new QmsQualityNotificationFile()
.setNotificationId(entity.getId())
.setFileId(attachment.getId())
)
.collect(Collectors.toList());
qualityNotificationFileService.saveBatch(attachments);
}
// 如果是手动选择用户保存用户关联 // 如果是手动选择用户保存用户关联
if (request.getTargetType() == 2 && CollectionUtil.isNotEmpty(request.getUserIds())) { if (request.getTargetType() == 2 && CollectionUtil.isNotEmpty(request.getUserIds())) {
saveNotificationUsers(entity.getId(), request.getUserIds(), operator, operatorId, now); saveNotificationUsers(entity.getId(), request.getUserIds(), operator, operatorId, now);
@ -123,6 +130,19 @@ public class QualityNotificationControllerService {
if (request.getTargetType() == 2 && CollectionUtil.isNotEmpty(request.getUserIds())) { if (request.getTargetType() == 2 && CollectionUtil.isNotEmpty(request.getUserIds())) {
saveNotificationUsers(request.getId(), request.getUserIds(), operator, operatorId, now); saveNotificationUsers(request.getId(), request.getUserIds(), operator, operatorId, now);
} }
if (CollectionUtil.isNotEmpty(request.getAttachments())) {
qualityNotificationFileService.lambdaUpdate()
.eq(QmsQualityNotificationFile::getNotificationId, request.getId())
.remove();
List<QmsQualityNotificationFile> attachments = request.getAttachments().stream()
.map(attachment -> new QmsQualityNotificationFile()
.setNotificationId(request.getId())
.setFileId(attachment.getId())
)
.collect(Collectors.toList());
qualityNotificationFileService.saveBatch(attachments);
}
} }
/** /**
@ -140,6 +160,10 @@ public class QualityNotificationControllerService {
notificationUserService.lambdaUpdate() notificationUserService.lambdaUpdate()
.eq(QmsQualityNotificationUser::getNotificationId, id) .eq(QmsQualityNotificationUser::getNotificationId, id)
.remove(); .remove();
qualityNotificationFileService.lambdaUpdate()
.eq(QmsQualityNotificationFile::getNotificationId, id)
.remove();
} }
/** /**
@ -208,21 +232,21 @@ public class QualityNotificationControllerService {
} }
// 查询附件列表 // 查询附件列表
List<FileUploadRecord> files = fileUploadRecordService.lambdaQuery() List<QmsQualityNotificationFile> attachments = qualityNotificationFileService.lambdaQuery()
.eq(FileUploadRecord::getSourceId, id) .eq(QmsQualityNotificationFile::getNotificationId, id)
.list(); .list();
if (CollectionUtil.isNotEmpty(files)) { if (CollectionUtil.isNotEmpty(attachments)) {
List<FileVO> fileVOs = files.stream().map(f -> { List<FileUploadRecord> files = fileUploadRecordService.lambdaQuery()
FileVO fileVO = new FileVO(); .in(FileUploadRecord::getId, attachments.stream().map(QmsQualityNotificationFile::getFileId).collect(Collectors.toList()))
fileVO.setId(f.getId()); .list();
fileVO.setFileName(f.getFileName()); vo.setAttachments(files.stream()
fileVO.setFileType(f.getFileType()); .map(file -> new FileUploadVO()
fileVO.setUrl(f.getUrl()); .setId(file.getId())
fileVO.setCreateBy(f.getCreateBy()); .setFileName(file.getFileName())
fileVO.setCreateTime(f.getCreateTime()); .setUrl(file.getUrl())
return fileVO; )
}).collect(Collectors.toList()); .collect(Collectors.toList())
vo.setAttachments(fileVOs); );
} }
return vo; return vo;
@ -232,7 +256,7 @@ public class QualityNotificationControllerService {
* 保存通知用户关联 * 保存通知用户关联
*/ */
private void saveNotificationUsers(Long notificationId, List<Long> userIds, private void saveNotificationUsers(Long notificationId, List<Long> userIds,
String operator, Long operatorId, LocalDateTime now) { String operator, Long operatorId, LocalDateTime now) {
List<QmsQualityNotificationUser> users = userIds.stream() List<QmsQualityNotificationUser> users = userIds.stream()
.map(userId -> new QmsQualityNotificationUser() .map(userId -> new QmsQualityNotificationUser()
.setNotificationId(notificationId) .setNotificationId(notificationId)

View File

@ -1,5 +1,7 @@
package com.nflg.wms.common.pojo.qo; package com.nflg.wms.common.pojo.qo;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
@ -33,5 +35,7 @@ public class QmsFileMemberAddQO {
* 权限类型1-只读2-读写 * 权限类型1-只读2-读写
*/ */
@NotNull(message = "权限类型不能为空") @NotNull(message = "权限类型不能为空")
@Min(value = 1, message = "权限类型仅支持1(只读)或2(读写)")
@Max(value = 2, message = "权限类型仅支持1(只读)或2(读写)")
private Short permissionType; private Short permissionType;
} }

View File

@ -116,7 +116,6 @@ public class QmsInspectionStandardSaveQO {
/** /**
* 检测项名称 * 检测项名称
*/ */
@NotBlank(message = "检测项内容不能为空")
private String name; private String name;
/** /**

View File

@ -1,5 +1,7 @@
package com.nflg.wms.common.pojo.qo; package com.nflg.wms.common.pojo.qo;
import com.nflg.wms.common.pojo.vo.FileUploadVO;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
@ -39,4 +41,10 @@ public class QmsQualityNotificationAddQO {
* 通知内容HTML格式 * 通知内容HTML格式
*/ */
private String content; private String content;
/**
* 附件列表
*/
@Valid
private List<FileUploadVO> attachments;
} }

View File

@ -1,5 +1,7 @@
package com.nflg.wms.common.pojo.qo; package com.nflg.wms.common.pojo.qo;
import com.nflg.wms.common.pojo.vo.FileUploadVO;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
@ -45,4 +47,10 @@ public class QmsQualityNotificationUpdateQO {
* 通知内容HTML格式 * 通知内容HTML格式
*/ */
private String content; private String content;
/**
* 附件列表
*/
@Valid
private List<FileUploadVO> attachments;
} }

View File

@ -1,5 +1,7 @@
package com.nflg.wms.common.pojo.vo; package com.nflg.wms.common.pojo.vo;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Positive;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@ -14,6 +16,8 @@ public class FileUploadVO {
/** /**
* 文件id * 文件id
*/ */
@NotNull
@Positive
private Long id; private Long id;
/** /**

View File

@ -91,5 +91,5 @@ public class QmsQualityNotificationVO {
/** /**
* 附件列表 * 附件列表
*/ */
private List<FileVO> attachments; private List<FileUploadVO> attachments;
} }

View File

@ -0,0 +1,37 @@
package com.nflg.wms.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* 质量通知附件表
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
@TableName("qms_quality_notification_file")
public class QmsQualityNotificationFile implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 通知ID
*/
private Long notificationId;
/**
* 文件ID
*/
private Long fileId;
}

View File

@ -0,0 +1,11 @@
package com.nflg.wms.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.wms.repository.entity.QmsQualityNotificationFile;
/**
* 质量通知附件 Mapper 接口
*/
public interface QmsQualityNotificationFileMapper extends BaseMapper<QmsQualityNotificationFile> {
}

View File

@ -0,0 +1,11 @@
package com.nflg.wms.repository.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nflg.wms.repository.entity.QmsQualityNotificationFile;
/**
* 质量通知附件 服务类
*/
public interface IQmsQualityNotificationFileService extends IService<QmsQualityNotificationFile> {
}

View File

@ -0,0 +1,15 @@
package com.nflg.wms.repository.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.wms.repository.entity.QmsQualityNotificationFile;
import com.nflg.wms.repository.mapper.QmsQualityNotificationFileMapper;
import com.nflg.wms.repository.service.IQmsQualityNotificationFileService;
import org.springframework.stereotype.Service;
/**
* 质量通知附件 服务实现类
*/
@Service
public class QmsQualityNotificationFileServiceImpl extends ServiceImpl<QmsQualityNotificationFileMapper, QmsQualityNotificationFile> implements IQmsQualityNotificationFileService {
}

View File

@ -1,6 +1,7 @@
package com.nflg.wms.repository.service.impl; package com.nflg.wms.repository.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.wms.common.constant.STATE; import com.nflg.wms.common.constant.STATE;