parent
19f36ef0f3
commit
d254acfa37
@ -0,0 +1,102 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.qualityinspection;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.common.pojo.CommonResult;
|
||||
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
|
||||
import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.qualityinspection.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.qualityinspection.QualityInspectionDO;
|
||||
import com.yunxi.scm.module.xxjj.convert.qualityinspection.QualityInspectionConvert;
|
||||
import com.yunxi.scm.module.xxjj.service.qualityinspection.QualityInspectionService;
|
||||
|
||||
@Tag(name = "管理后台 - 质检报告")
|
||||
@RestController
|
||||
@RequestMapping("/xxjj/quality-inspection")
|
||||
@Validated
|
||||
public class QualityInspectionController {
|
||||
|
||||
@Resource
|
||||
private QualityInspectionService qualityInspectionService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建质检报告")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:quality-inspection:create')")
|
||||
public CommonResult<Long> createQualityInspection(@Valid @RequestBody QualityInspectionCreateReqVO createReqVO) {
|
||||
return success(qualityInspectionService.createQualityInspection(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新质检报告")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:quality-inspection:update')")
|
||||
public CommonResult<Boolean> updateQualityInspection(@Valid @RequestBody QualityInspectionUpdateReqVO updateReqVO) {
|
||||
qualityInspectionService.updateQualityInspection(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除质检报告")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:quality-inspection:delete')")
|
||||
public CommonResult<Boolean> deleteQualityInspection(@RequestParam("id") Long id) {
|
||||
qualityInspectionService.deleteQualityInspection(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得质检报告")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:quality-inspection:query')")
|
||||
public CommonResult<QualityInspectionRespVO> getQualityInspection(@RequestParam("id") Long id) {
|
||||
QualityInspectionDO qualityInspection = qualityInspectionService.getQualityInspection(id);
|
||||
return success(QualityInspectionConvert.INSTANCE.convert(qualityInspection));
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
@Operation(summary = "获得质检报告列表")
|
||||
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:quality-inspection:query')")
|
||||
public CommonResult<List<QualityInspectionRespVO>> getQualityInspectionList(@RequestParam("ids") Collection<Long> ids) {
|
||||
List<QualityInspectionDO> list = qualityInspectionService.getQualityInspectionList(ids);
|
||||
return success(QualityInspectionConvert.INSTANCE.convertList(list));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得质检报告分页")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:quality-inspection:query')")
|
||||
public CommonResult<PageResult<QualityInspectionRespVO>> getQualityInspectionPage(@Valid QualityInspectionPageReqVO pageVO) {
|
||||
PageResult<QualityInspectionDO> pageResult = qualityInspectionService.getQualityInspectionPage(pageVO);
|
||||
return success(QualityInspectionConvert.INSTANCE.convertPage(pageResult));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出质检报告 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:quality-inspection:export')")
|
||||
@OperateLog(type = EXPORT)
|
||||
public void exportQualityInspectionExcel(@Valid QualityInspectionExportReqVO exportReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
List<QualityInspectionDO> list = qualityInspectionService.getQualityInspectionList(exportReqVO);
|
||||
// 导出 Excel
|
||||
List<QualityInspectionExcelVO> datas = QualityInspectionConvert.INSTANCE.convertList02(list);
|
||||
ExcelUtils.write(response, "质检报告.xls", "数据", QualityInspectionExcelVO.class, datas);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.qualityinspection.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 质检报告创建 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class QualityInspectionCreateReqVO extends QualityInspectionBaseVO {
|
||||
|
||||
}
|
@ -0,0 +1,63 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.qualityinspection.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.yunxi.scm.framework.excel.core.annotations.DictFormat;
|
||||
import com.yunxi.scm.framework.excel.core.convert.DictConvert;
|
||||
|
||||
|
||||
/**
|
||||
* 质检报告 Excel VO
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Data
|
||||
public class QualityInspectionExcelVO {
|
||||
|
||||
@ExcelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ExcelProperty("提交人")
|
||||
private Set<Long> presenter;
|
||||
|
||||
@ExcelProperty(value = "提交类型", converter = DictConvert.class)
|
||||
@DictFormat("presenter_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
|
||||
private String presenterType;
|
||||
|
||||
@ExcelProperty("关联任务id")
|
||||
private String associatedTaskId;
|
||||
|
||||
@ExcelProperty("关联订单id")
|
||||
private String relatedOrderId;
|
||||
|
||||
@ExcelProperty(value = "状态", converter = DictConvert.class)
|
||||
@DictFormat("status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
|
||||
private String qualityStatus;
|
||||
|
||||
@ExcelProperty("所属团队id")
|
||||
private String teamId;
|
||||
|
||||
@ExcelProperty("质检品名")
|
||||
private String qualityName;
|
||||
|
||||
@ExcelProperty("总结")
|
||||
private String summarize;
|
||||
|
||||
@ExcelProperty("附件图片")
|
||||
private String pictures;
|
||||
|
||||
@ExcelProperty("批阅人员id")
|
||||
private String readOverId;
|
||||
|
||||
@ExcelProperty("抄送人员id")
|
||||
private String carbonCopyId;
|
||||
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.qualityinspection.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import com.yunxi.scm.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 质检报告分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class QualityInspectionPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "提交人")
|
||||
private Set<Long> presenter;
|
||||
|
||||
@Schema(description = "提交类型", example = "2")
|
||||
private String presenterType;
|
||||
|
||||
@Schema(description = "关联任务id", example = "16165")
|
||||
private String associatedTaskId;
|
||||
|
||||
@Schema(description = "关联订单id", example = "25103")
|
||||
private String relatedOrderId;
|
||||
|
||||
@Schema(description = "状态", example = "2")
|
||||
private String qualityStatus;
|
||||
|
||||
@Schema(description = "所属团队id", example = "25814")
|
||||
private String teamId;
|
||||
|
||||
@Schema(description = "质检品名", example = "王五")
|
||||
private String qualityName;
|
||||
|
||||
@Schema(description = "总结")
|
||||
private String summarize;
|
||||
|
||||
@Schema(description = "附件图片")
|
||||
private String pictures;
|
||||
|
||||
@Schema(description = "批阅人员id", example = "6566")
|
||||
private String readOverId;
|
||||
|
||||
@Schema(description = "抄送人员id", example = "30999")
|
||||
private String carbonCopyId;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.qualityinspection.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Schema(description = "管理后台 - 质检报告 Response VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class QualityInspectionRespVO extends QualityInspectionBaseVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "11682")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.qualityinspection.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 质检报告更新 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class QualityInspectionUpdateReqVO extends QualityInspectionBaseVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "11682")
|
||||
@NotNull(message = "编号不能为空")
|
||||
private Long id;
|
||||
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package com.yunxi.scm.module.xxjj.convert.qualityinspection;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.qualityinspection.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.qualityinspection.QualityInspectionDO;
|
||||
|
||||
/**
|
||||
* 质检报告 Convert
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Mapper
|
||||
public interface QualityInspectionConvert {
|
||||
|
||||
QualityInspectionConvert INSTANCE = Mappers.getMapper(QualityInspectionConvert.class);
|
||||
|
||||
QualityInspectionDO convert(QualityInspectionCreateReqVO bean);
|
||||
|
||||
QualityInspectionDO convert(QualityInspectionUpdateReqVO bean);
|
||||
|
||||
QualityInspectionRespVO convert(QualityInspectionDO bean);
|
||||
|
||||
List<QualityInspectionRespVO> convertList(List<QualityInspectionDO> list);
|
||||
|
||||
PageResult<QualityInspectionRespVO> convertPage(PageResult<QualityInspectionDO> page);
|
||||
|
||||
List<QualityInspectionExcelVO> convertList02(List<QualityInspectionDO> list);
|
||||
|
||||
}
|
@ -0,0 +1,82 @@
|
||||
package com.yunxi.scm.module.xxjj.dal.dataobject.qualityinspection;
|
||||
|
||||
import com.yunxi.scm.framework.mybatis.core.type.JsonLongSetTypeHandler;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* 质检报告 DO
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@TableName(value = "xxjj_quality_inspection", autoResultMap = true)
|
||||
@KeySequence("xxjj_quality_inspection_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class QualityInspectionDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 编号
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 提交人
|
||||
*/
|
||||
// private String presenter;
|
||||
@TableField(typeHandler = JsonLongSetTypeHandler.class)
|
||||
private Set<Long> presenter;
|
||||
/**
|
||||
* 提交类型
|
||||
*
|
||||
* 枚举 {@link TODO presenter_type 对应的类}
|
||||
*/
|
||||
private String presenterType;
|
||||
/**
|
||||
* 关联任务id
|
||||
*/
|
||||
private String associatedTaskId;
|
||||
/**
|
||||
* 关联订单id
|
||||
*/
|
||||
private String relatedOrderId;
|
||||
/**
|
||||
* 状态
|
||||
*
|
||||
* 枚举 {@link TODO status 对应的类}
|
||||
*/
|
||||
private String qualityStatus;
|
||||
/**
|
||||
* 所属团队id
|
||||
*/
|
||||
private String teamId;
|
||||
/**
|
||||
* 质检品名
|
||||
*/
|
||||
private String qualityName;
|
||||
/**
|
||||
* 总结
|
||||
*/
|
||||
private String summarize;
|
||||
/**
|
||||
* 附件图片
|
||||
*/
|
||||
private String pictures;
|
||||
/**
|
||||
* 批阅人员id
|
||||
*/
|
||||
private String readOverId;
|
||||
/**
|
||||
* 抄送人员id
|
||||
*/
|
||||
private String carbonCopyId;
|
||||
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
package com.yunxi.scm.module.xxjj.dal.mysql.qualityinspection;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.qualityinspection.QualityInspectionDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.qualityinspection.vo.*;
|
||||
|
||||
/**
|
||||
* 质检报告 Mapper
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Mapper
|
||||
public interface QualityInspectionMapper extends BaseMapperX<QualityInspectionDO> {
|
||||
|
||||
default PageResult<QualityInspectionDO> selectPage(QualityInspectionPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<QualityInspectionDO>()
|
||||
.eqIfPresent(QualityInspectionDO::getPresenter, reqVO.getPresenter())
|
||||
.eqIfPresent(QualityInspectionDO::getPresenterType, reqVO.getPresenterType())
|
||||
.eqIfPresent(QualityInspectionDO::getAssociatedTaskId, reqVO.getAssociatedTaskId())
|
||||
.eqIfPresent(QualityInspectionDO::getRelatedOrderId, reqVO.getRelatedOrderId())
|
||||
.eqIfPresent(QualityInspectionDO::getQualityStatus, reqVO.getQualityStatus())
|
||||
.eqIfPresent(QualityInspectionDO::getTeamId, reqVO.getTeamId())
|
||||
.likeIfPresent(QualityInspectionDO::getQualityName, reqVO.getQualityName())
|
||||
.eqIfPresent(QualityInspectionDO::getSummarize, reqVO.getSummarize())
|
||||
.eqIfPresent(QualityInspectionDO::getPictures, reqVO.getPictures())
|
||||
.eqIfPresent(QualityInspectionDO::getReadOverId, reqVO.getReadOverId())
|
||||
.eqIfPresent(QualityInspectionDO::getCarbonCopyId, reqVO.getCarbonCopyId())
|
||||
.betweenIfPresent(QualityInspectionDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(QualityInspectionDO::getId));
|
||||
}
|
||||
|
||||
default List<QualityInspectionDO> selectList(QualityInspectionExportReqVO reqVO) {
|
||||
return selectList(new LambdaQueryWrapperX<QualityInspectionDO>()
|
||||
.eqIfPresent(QualityInspectionDO::getPresenter, reqVO.getPresenter())
|
||||
.eqIfPresent(QualityInspectionDO::getPresenterType, reqVO.getPresenterType())
|
||||
.eqIfPresent(QualityInspectionDO::getAssociatedTaskId, reqVO.getAssociatedTaskId())
|
||||
.eqIfPresent(QualityInspectionDO::getRelatedOrderId, reqVO.getRelatedOrderId())
|
||||
.eqIfPresent(QualityInspectionDO::getQualityStatus, reqVO.getQualityStatus())
|
||||
.eqIfPresent(QualityInspectionDO::getTeamId, reqVO.getTeamId())
|
||||
.likeIfPresent(QualityInspectionDO::getQualityName, reqVO.getQualityName())
|
||||
.eqIfPresent(QualityInspectionDO::getSummarize, reqVO.getSummarize())
|
||||
.eqIfPresent(QualityInspectionDO::getPictures, reqVO.getPictures())
|
||||
.eqIfPresent(QualityInspectionDO::getReadOverId, reqVO.getReadOverId())
|
||||
.eqIfPresent(QualityInspectionDO::getCarbonCopyId, reqVO.getCarbonCopyId())
|
||||
.betweenIfPresent(QualityInspectionDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(QualityInspectionDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
package com.yunxi.scm.module.xxjj.service.qualityinspection;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.qualityinspection.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.qualityinspection.QualityInspectionDO;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
/**
|
||||
* 质检报告 Service 接口
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
public interface QualityInspectionService {
|
||||
|
||||
/**
|
||||
* 创建质检报告
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createQualityInspection(@Valid QualityInspectionCreateReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新质检报告
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateQualityInspection(@Valid QualityInspectionUpdateReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除质检报告
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteQualityInspection(Long id);
|
||||
|
||||
/**
|
||||
* 获得质检报告
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 质检报告
|
||||
*/
|
||||
QualityInspectionDO getQualityInspection(Long id);
|
||||
|
||||
/**
|
||||
* 获得质检报告列表
|
||||
*
|
||||
* @param ids 编号
|
||||
* @return 质检报告列表
|
||||
*/
|
||||
List<QualityInspectionDO> getQualityInspectionList(Collection<Long> ids);
|
||||
|
||||
/**
|
||||
* 获得质检报告分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 质检报告分页
|
||||
*/
|
||||
PageResult<QualityInspectionDO> getQualityInspectionPage(QualityInspectionPageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 获得质检报告列表, 用于 Excel 导出
|
||||
*
|
||||
* @param exportReqVO 查询条件
|
||||
* @return 质检报告列表
|
||||
*/
|
||||
List<QualityInspectionDO> getQualityInspectionList(QualityInspectionExportReqVO exportReqVO);
|
||||
|
||||
}
|
@ -0,0 +1,82 @@
|
||||
package com.yunxi.scm.module.xxjj.service.qualityinspection;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.util.*;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.qualityinspection.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.qualityinspection.QualityInspectionDO;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.convert.qualityinspection.QualityInspectionConvert;
|
||||
import com.yunxi.scm.module.xxjj.dal.mysql.qualityinspection.QualityInspectionMapper;
|
||||
|
||||
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
* 质检报告 Service 实现类
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class QualityInspectionServiceImpl implements QualityInspectionService {
|
||||
|
||||
@Resource
|
||||
private QualityInspectionMapper qualityInspectionMapper;
|
||||
|
||||
@Override
|
||||
public Long createQualityInspection(QualityInspectionCreateReqVO createReqVO) {
|
||||
// 插入
|
||||
QualityInspectionDO qualityInspection = QualityInspectionConvert.INSTANCE.convert(createReqVO);
|
||||
qualityInspectionMapper.insert(qualityInspection);
|
||||
// 返回
|
||||
return qualityInspection.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateQualityInspection(QualityInspectionUpdateReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateQualityInspectionExists(updateReqVO.getId());
|
||||
// 更新
|
||||
QualityInspectionDO updateObj = QualityInspectionConvert.INSTANCE.convert(updateReqVO);
|
||||
qualityInspectionMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteQualityInspection(Long id) {
|
||||
// 校验存在
|
||||
validateQualityInspectionExists(id);
|
||||
// 删除
|
||||
qualityInspectionMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateQualityInspectionExists(Long id) {
|
||||
if (qualityInspectionMapper.selectById(id) == null) {
|
||||
throw exception(QUALITY_INSPECTION_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public QualityInspectionDO getQualityInspection(Long id) {
|
||||
return qualityInspectionMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<QualityInspectionDO> getQualityInspectionList(Collection<Long> ids) {
|
||||
return qualityInspectionMapper.selectBatchIds(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<QualityInspectionDO> getQualityInspectionPage(QualityInspectionPageReqVO pageReqVO) {
|
||||
return qualityInspectionMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<QualityInspectionDO> getQualityInspectionList(QualityInspectionExportReqVO exportReqVO) {
|
||||
return qualityInspectionMapper.selectList(exportReqVO);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,239 @@
|
||||
package com.yunxi.scm.module.xxjj.service.qualityinspection;
|
||||
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import com.yunxi.scm.framework.test.core.ut.BaseDbUnitTest;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.qualityinspection.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.qualityinspection.QualityInspectionDO;
|
||||
import com.yunxi.scm.module.xxjj.dal.mysql.qualityinspection.QualityInspectionMapper;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.hutool.core.util.RandomUtil.*;
|
||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||
import static com.yunxi.scm.framework.test.core.util.AssertUtils.*;
|
||||
import static com.yunxi.scm.framework.test.core.util.RandomUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.date.LocalDateTimeUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.object.ObjectUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.date.DateUtils.*;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
/**
|
||||
* {@link QualityInspectionServiceImpl} 的单元测试类
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Import(QualityInspectionServiceImpl.class)
|
||||
public class QualityInspectionServiceImplTest extends BaseDbUnitTest {
|
||||
|
||||
@Resource
|
||||
private QualityInspectionServiceImpl qualityInspectionService;
|
||||
|
||||
@Resource
|
||||
private QualityInspectionMapper qualityInspectionMapper;
|
||||
|
||||
@Test
|
||||
public void testCreateQualityInspection_success() {
|
||||
// 准备参数
|
||||
QualityInspectionCreateReqVO reqVO = randomPojo(QualityInspectionCreateReqVO.class);
|
||||
|
||||
// 调用
|
||||
Long qualityInspectionId = qualityInspectionService.createQualityInspection(reqVO);
|
||||
// 断言
|
||||
assertNotNull(qualityInspectionId);
|
||||
// 校验记录的属性是否正确
|
||||
QualityInspectionDO qualityInspection = qualityInspectionMapper.selectById(qualityInspectionId);
|
||||
assertPojoEquals(reqVO, qualityInspection);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateQualityInspection_success() {
|
||||
// mock 数据
|
||||
QualityInspectionDO dbQualityInspection = randomPojo(QualityInspectionDO.class);
|
||||
qualityInspectionMapper.insert(dbQualityInspection);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
QualityInspectionUpdateReqVO reqVO = randomPojo(QualityInspectionUpdateReqVO.class, o -> {
|
||||
o.setId(dbQualityInspection.getId()); // 设置更新的 ID
|
||||
});
|
||||
|
||||
// 调用
|
||||
qualityInspectionService.updateQualityInspection(reqVO);
|
||||
// 校验是否更新正确
|
||||
QualityInspectionDO qualityInspection = qualityInspectionMapper.selectById(reqVO.getId()); // 获取最新的
|
||||
assertPojoEquals(reqVO, qualityInspection);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateQualityInspection_notExists() {
|
||||
// 准备参数
|
||||
QualityInspectionUpdateReqVO reqVO = randomPojo(QualityInspectionUpdateReqVO.class);
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> qualityInspectionService.updateQualityInspection(reqVO), QUALITY_INSPECTION_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteQualityInspection_success() {
|
||||
// mock 数据
|
||||
QualityInspectionDO dbQualityInspection = randomPojo(QualityInspectionDO.class);
|
||||
qualityInspectionMapper.insert(dbQualityInspection);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
Long id = dbQualityInspection.getId();
|
||||
|
||||
// 调用
|
||||
qualityInspectionService.deleteQualityInspection(id);
|
||||
// 校验数据不存在了
|
||||
assertNull(qualityInspectionMapper.selectById(id));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteQualityInspection_notExists() {
|
||||
// 准备参数
|
||||
Long id = randomLongId();
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> qualityInspectionService.deleteQualityInspection(id), QUALITY_INSPECTION_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetQualityInspectionPage() {
|
||||
// mock 数据
|
||||
QualityInspectionDO dbQualityInspection = randomPojo(QualityInspectionDO.class, o -> { // 等会查询到
|
||||
o.setPresenter(null);
|
||||
o.setPresenterType(null);
|
||||
o.setAssociatedTaskId(null);
|
||||
o.setRelatedOrderId(null);
|
||||
o.setQualityStatus(null);
|
||||
o.setTeamId(null);
|
||||
o.setQualityName(null);
|
||||
o.setSummarize(null);
|
||||
o.setPictures(null);
|
||||
o.setReadOverId(null);
|
||||
o.setCarbonCopyId(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
qualityInspectionMapper.insert(dbQualityInspection);
|
||||
// 测试 presenter 不匹配
|
||||
qualityInspectionMapper.insert(cloneIgnoreId(dbQualityInspection, o -> o.setPresenter(null)));
|
||||
// 测试 presenterType 不匹配
|
||||
qualityInspectionMapper.insert(cloneIgnoreId(dbQualityInspection, o -> o.setPresenterType(null)));
|
||||
// 测试 associatedTaskId 不匹配
|
||||
qualityInspectionMapper.insert(cloneIgnoreId(dbQualityInspection, o -> o.setAssociatedTaskId(null)));
|
||||
// 测试 relatedOrderId 不匹配
|
||||
qualityInspectionMapper.insert(cloneIgnoreId(dbQualityInspection, o -> o.setRelatedOrderId(null)));
|
||||
// 测试 qualityStatus 不匹配
|
||||
qualityInspectionMapper.insert(cloneIgnoreId(dbQualityInspection, o -> o.setQualityStatus(null)));
|
||||
// 测试 teamId 不匹配
|
||||
qualityInspectionMapper.insert(cloneIgnoreId(dbQualityInspection, o -> o.setTeamId(null)));
|
||||
// 测试 qualityName 不匹配
|
||||
qualityInspectionMapper.insert(cloneIgnoreId(dbQualityInspection, o -> o.setQualityName(null)));
|
||||
// 测试 summarize 不匹配
|
||||
qualityInspectionMapper.insert(cloneIgnoreId(dbQualityInspection, o -> o.setSummarize(null)));
|
||||
// 测试 pictures 不匹配
|
||||
qualityInspectionMapper.insert(cloneIgnoreId(dbQualityInspection, o -> o.setPictures(null)));
|
||||
// 测试 readOverId 不匹配
|
||||
qualityInspectionMapper.insert(cloneIgnoreId(dbQualityInspection, o -> o.setReadOverId(null)));
|
||||
// 测试 carbonCopyId 不匹配
|
||||
qualityInspectionMapper.insert(cloneIgnoreId(dbQualityInspection, o -> o.setCarbonCopyId(null)));
|
||||
// 测试 createTime 不匹配
|
||||
qualityInspectionMapper.insert(cloneIgnoreId(dbQualityInspection, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
QualityInspectionPageReqVO reqVO = new QualityInspectionPageReqVO();
|
||||
reqVO.setPresenter(null);
|
||||
reqVO.setPresenterType(null);
|
||||
reqVO.setAssociatedTaskId(null);
|
||||
reqVO.setRelatedOrderId(null);
|
||||
reqVO.setQualityStatus(null);
|
||||
reqVO.setTeamId(null);
|
||||
reqVO.setQualityName(null);
|
||||
reqVO.setSummarize(null);
|
||||
reqVO.setPictures(null);
|
||||
reqVO.setReadOverId(null);
|
||||
reqVO.setCarbonCopyId(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
PageResult<QualityInspectionDO> pageResult = qualityInspectionService.getQualityInspectionPage(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, pageResult.getTotal());
|
||||
assertEquals(1, pageResult.getList().size());
|
||||
assertPojoEquals(dbQualityInspection, pageResult.getList().get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetQualityInspectionList() {
|
||||
// mock 数据
|
||||
QualityInspectionDO dbQualityInspection = randomPojo(QualityInspectionDO.class, o -> { // 等会查询到
|
||||
o.setPresenter(null);
|
||||
o.setPresenterType(null);
|
||||
o.setAssociatedTaskId(null);
|
||||
o.setRelatedOrderId(null);
|
||||
o.setQualityStatus(null);
|
||||
o.setTeamId(null);
|
||||
o.setQualityName(null);
|
||||
o.setSummarize(null);
|
||||
o.setPictures(null);
|
||||
o.setReadOverId(null);
|
||||
o.setCarbonCopyId(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
qualityInspectionMapper.insert(dbQualityInspection);
|
||||
// 测试 presenter 不匹配
|
||||
qualityInspectionMapper.insert(cloneIgnoreId(dbQualityInspection, o -> o.setPresenter(null)));
|
||||
// 测试 presenterType 不匹配
|
||||
qualityInspectionMapper.insert(cloneIgnoreId(dbQualityInspection, o -> o.setPresenterType(null)));
|
||||
// 测试 associatedTaskId 不匹配
|
||||
qualityInspectionMapper.insert(cloneIgnoreId(dbQualityInspection, o -> o.setAssociatedTaskId(null)));
|
||||
// 测试 relatedOrderId 不匹配
|
||||
qualityInspectionMapper.insert(cloneIgnoreId(dbQualityInspection, o -> o.setRelatedOrderId(null)));
|
||||
// 测试 qualityStatus 不匹配
|
||||
qualityInspectionMapper.insert(cloneIgnoreId(dbQualityInspection, o -> o.setQualityStatus(null)));
|
||||
// 测试 teamId 不匹配
|
||||
qualityInspectionMapper.insert(cloneIgnoreId(dbQualityInspection, o -> o.setTeamId(null)));
|
||||
// 测试 qualityName 不匹配
|
||||
qualityInspectionMapper.insert(cloneIgnoreId(dbQualityInspection, o -> o.setQualityName(null)));
|
||||
// 测试 summarize 不匹配
|
||||
qualityInspectionMapper.insert(cloneIgnoreId(dbQualityInspection, o -> o.setSummarize(null)));
|
||||
// 测试 pictures 不匹配
|
||||
qualityInspectionMapper.insert(cloneIgnoreId(dbQualityInspection, o -> o.setPictures(null)));
|
||||
// 测试 readOverId 不匹配
|
||||
qualityInspectionMapper.insert(cloneIgnoreId(dbQualityInspection, o -> o.setReadOverId(null)));
|
||||
// 测试 carbonCopyId 不匹配
|
||||
qualityInspectionMapper.insert(cloneIgnoreId(dbQualityInspection, o -> o.setCarbonCopyId(null)));
|
||||
// 测试 createTime 不匹配
|
||||
qualityInspectionMapper.insert(cloneIgnoreId(dbQualityInspection, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
QualityInspectionExportReqVO reqVO = new QualityInspectionExportReqVO();
|
||||
reqVO.setPresenter(null);
|
||||
reqVO.setPresenterType(null);
|
||||
reqVO.setAssociatedTaskId(null);
|
||||
reqVO.setRelatedOrderId(null);
|
||||
reqVO.setQualityStatus(null);
|
||||
reqVO.setTeamId(null);
|
||||
reqVO.setQualityName(null);
|
||||
reqVO.setSummarize(null);
|
||||
reqVO.setPictures(null);
|
||||
reqVO.setReadOverId(null);
|
||||
reqVO.setCarbonCopyId(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
List<QualityInspectionDO> list = qualityInspectionService.getQualityInspectionList(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, list.size());
|
||||
assertPojoEquals(dbQualityInspection, list.get(0));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 创建质检报告
|
||||
export function createQualityInspection(data) {
|
||||
return request({
|
||||
url: '/xxjj/quality-inspection/create',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 更新质检报告
|
||||
export function updateQualityInspection(data) {
|
||||
return request({
|
||||
url: '/xxjj/quality-inspection/update',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除质检报告
|
||||
export function deleteQualityInspection(id) {
|
||||
return request({
|
||||
url: '/xxjj/quality-inspection/delete?id=' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 获得质检报告
|
||||
export function getQualityInspection(id) {
|
||||
return request({
|
||||
url: '/xxjj/quality-inspection/get?id=' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 获得质检报告分页
|
||||
export function getQualityInspectionPage(query) {
|
||||
return request({
|
||||
url: '/xxjj/quality-inspection/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 导出质检报告 Excel
|
||||
export function exportQualityInspectionExcel(query) {
|
||||
return request({
|
||||
url: '/xxjj/quality-inspection/export-excel',
|
||||
method: 'get',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
@ -0,0 +1,284 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="公告标题" prop="title">
|
||||
<el-input v-model="queryParams.title" placeholder="请输入公告标题" clearable @keyup.enter.native="handleQuery"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="公告状态" prop="status">
|
||||
<el-select v-model="queryParams.status" placeholder="公告状态" clearable>
|
||||
<el-option v-for="dict in statusDictDatas" :key="parseInt(dict.value)" :label="dict.label" :value="parseInt(dict.value)"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
|
||||
v-hasPermi="['system:notice:create']"s>新增</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="noticeList">
|
||||
<el-table-column label="序号" align="center" prop="id" width="100" />
|
||||
<el-table-column label="公告标题" align="center" prop="title" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="公告类型" align="center" prop="type" width="100">
|
||||
<template v-slot="scope">
|
||||
<dict-tag :type="DICT_TYPE.SYSTEM_NOTICE_TYPE" :value="scope.row.type"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="状态" align="center" prop="status" width="100">
|
||||
<template v-slot="scope">
|
||||
<dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建者" align="center" prop="createBy" width="100" />
|
||||
<el-table-column label="创建时间" align="center" prop="createTime" width="100">
|
||||
<template v-slot="scope">
|
||||
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template v-slot="scope">
|
||||
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['system:notice:update']">修改</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
|
||||
v-hasPermi="['system:notice:delete']">删除</el-button>
|
||||
|
||||
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleDetail(scope.row)"
|
||||
v-hasPermi="['system:notice:Detail']">详情</el-button>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"/>
|
||||
|
||||
<!-- 添加或修改公告对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="780px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="公告标题" prop="title">
|
||||
<el-input v-model="form.title" placeholder="请输入公告标题" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="公告类型" prop="type">
|
||||
<el-select v-model="form.type" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="dict in noticeTypeDictDatas"
|
||||
:key="parseInt(dict.value)"
|
||||
:label="dict.label"
|
||||
:value="parseInt(dict.value)"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="状态">
|
||||
<el-radio-group v-model="form.status">
|
||||
<el-radio
|
||||
v-for="dict in statusDictDatas"
|
||||
:key="parseInt(dict.value)"
|
||||
:label="parseInt(dict.value)"
|
||||
>{{dict.label}}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="内容">
|
||||
<editor v-model="form.content" :min-height="192"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 详情-->
|
||||
<el-dialog :title="title1" :visible.sync="open" width="780px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-row>
|
||||
|
||||
|
||||
|
||||
<el-col :span="24">
|
||||
<el-form-item label="内容">
|
||||
<editor v-model="form.content" :min-height="192"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<!-- <el-button type="primary" @click="submitForm">确 定</el-button>-->
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listNotice, getNotice, delNotice, addNotice, updateNotice } from "@/api/system/notice";
|
||||
import Editor from '@/components/Editor';
|
||||
|
||||
import {CommonStatusEnum} from '@/utils/constants'
|
||||
import { getDictDatas, DICT_TYPE } from '@/utils/dict'
|
||||
|
||||
export default {
|
||||
name: "SystemNotice",
|
||||
components: {
|
||||
Editor
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 公告表格数据
|
||||
noticeList: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
title1: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
title: undefined,
|
||||
title1: undefined,
|
||||
status: undefined
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
title: [
|
||||
{ required: true, message: "公告标题不能为空", trigger: "blur" }
|
||||
],
|
||||
type: [
|
||||
{ required: true, message: "公告类型不能为空", trigger: "change" }
|
||||
]
|
||||
},
|
||||
|
||||
// 枚举
|
||||
CommonStatusEnum: CommonStatusEnum,
|
||||
// 数据字典
|
||||
noticeTypeDictDatas: getDictDatas(DICT_TYPE.SYSTEM_NOTICE_TYPE),
|
||||
statusDictDatas: getDictDatas(DICT_TYPE.COMMON_STATUS)
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
/** 查询公告列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
listNotice(this.queryParams).then(response => {
|
||||
this.noticeList = response.data.list;
|
||||
this.total = response.data.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
id: undefined,
|
||||
title: undefined,
|
||||
title1:undefined,
|
||||
type: undefined,
|
||||
content: undefined,
|
||||
status: CommonStatusEnum.ENABLE
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNo = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "添加公告";
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
const id = row.id || this.ids
|
||||
getNotice(id).then(response => {
|
||||
this.form = response.data;
|
||||
this.open = true;
|
||||
this.title = "修改公告";
|
||||
});
|
||||
},
|
||||
handleDetail(row) {
|
||||
this.reset();
|
||||
const id = row.id || this.ids
|
||||
getNotice(id).then(response => {
|
||||
this.form = response.data;
|
||||
this.open = true;
|
||||
this.title1 = "详情公告";
|
||||
});
|
||||
},
|
||||
|
||||
/** 提交按钮 */
|
||||
submitForm: function() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id !== undefined) {
|
||||
updateNotice(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
} else {
|
||||
addNotice(this.form).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const ids = row.id || this.ids
|
||||
this.$modal.confirm('是否确认删除公告编号为"' + ids + '"的数据项?').then(function() {
|
||||
return delNotice(ids);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue