parent
f4af67b116
commit
3f0dccca62
@ -0,0 +1,82 @@ |
|||||||
|
package com.zilber.boot.module.booking.controller; |
||||||
|
|
||||||
|
import com.zilber.boot.module.booking.form.ApprovalForm; |
||||||
|
import com.zilber.boot.module.booking.form.add.BookingAF; |
||||||
|
import com.zilber.boot.module.booking.form.modify.BookingMF; |
||||||
|
import com.zilber.boot.module.booking.form.pr.BookingPR; |
||||||
|
import com.zilber.boot.module.booking.service.BookingService; |
||||||
|
import com.zilber.boot.utils.AjaxResult; |
||||||
|
import io.swagger.annotations.Api; |
||||||
|
import io.swagger.annotations.ApiOperation; |
||||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.web.bind.annotation.*; |
||||||
|
|
||||||
|
import java.io.Serializable; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 预约记录(Booking)表控制层 |
||||||
|
* |
||||||
|
* @author liuao |
||||||
|
* @since 2025-04-25 15:50:18 |
||||||
|
*/ |
||||||
|
@RestController |
||||||
|
@RequestMapping("/booking") |
||||||
|
@Api(tags = "预约记录管理") |
||||||
|
public class BookingController |
||||||
|
{ |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private BookingService service; |
||||||
|
|
||||||
|
@PostMapping |
||||||
|
@ApiOperation("添加预约记录") |
||||||
|
public AjaxResult addBooking(@RequestBody BookingAF form) |
||||||
|
{ |
||||||
|
return new AjaxResult(service.addBooking(form)); |
||||||
|
} |
||||||
|
|
||||||
|
@PutMapping |
||||||
|
@ApiOperation("修改预约记录信息") |
||||||
|
public AjaxResult updBooking(@RequestBody BookingMF form) |
||||||
|
{ |
||||||
|
return new AjaxResult(service.updBooking(form)); |
||||||
|
} |
||||||
|
|
||||||
|
@PutMapping("/approve") |
||||||
|
@ApiOperation("审批预约") |
||||||
|
public AjaxResult approve(@RequestBody ApprovalForm form) |
||||||
|
{ |
||||||
|
return new AjaxResult(service.approve(form)); |
||||||
|
} |
||||||
|
|
||||||
|
@GetMapping("/{id}") |
||||||
|
@ApiOperation("获取单挑预约信息") |
||||||
|
public AjaxResult getBooking(@PathVariable Serializable id) |
||||||
|
{ |
||||||
|
return AjaxResult.success(service.getBooking(id)); |
||||||
|
} |
||||||
|
|
||||||
|
@GetMapping |
||||||
|
@ApiOperation("分页请求") |
||||||
|
public AjaxResult getPage(BookingPR pr) |
||||||
|
{ |
||||||
|
return AjaxResult.success(service.getPage(pr)); |
||||||
|
} |
||||||
|
|
||||||
|
@DeleteMapping |
||||||
|
@ApiOperation("删除单条预约记录") |
||||||
|
public AjaxResult deleteBooking(@RequestBody BookingMF form) |
||||||
|
{ |
||||||
|
return new AjaxResult(service.deleteBooking(form)); |
||||||
|
} |
||||||
|
|
||||||
|
@DeleteMapping("/s") |
||||||
|
@ApiOperation("批量删除预约记录") |
||||||
|
public AjaxResult deleteBookings(@RequestBody List<Serializable> idList) |
||||||
|
{ |
||||||
|
return new AjaxResult(service.deleteBookings(idList)); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
@ -0,0 +1,62 @@ |
|||||||
|
package com.zilber.boot.module.booking.dao; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
|
import com.zilber.boot.module.booking.pojo.Booking; |
||||||
|
import org.apache.ibatis.annotations.Mapper; |
||||||
|
import org.springframework.stereotype.Repository; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 预约记录(Booking)表数据库访问层 |
||||||
|
* |
||||||
|
* @author liuao |
||||||
|
* @since 2025-04-25 15:49:54 |
||||||
|
*/ |
||||||
|
@Mapper |
||||||
|
@Repository |
||||||
|
public interface BookingMapper |
||||||
|
extends BaseMapper<Booking> |
||||||
|
{ |
||||||
|
|
||||||
|
/** |
||||||
|
* 通过ID查询单条数据 |
||||||
|
* |
||||||
|
* @param id 主键 |
||||||
|
* @return 实例对象 |
||||||
|
*/ |
||||||
|
Booking queryById(String id); |
||||||
|
|
||||||
|
/** |
||||||
|
* 分页查询 |
||||||
|
* |
||||||
|
* @param booking 筛选条件 |
||||||
|
* @return 查询结果 |
||||||
|
*/ |
||||||
|
List<Booking> queryList(Booking booking); |
||||||
|
|
||||||
|
/** |
||||||
|
* 新增数据 |
||||||
|
* |
||||||
|
* @param booking 实例对象 |
||||||
|
* @return 实例对象 |
||||||
|
*/ |
||||||
|
int addBooking(Booking booking); |
||||||
|
|
||||||
|
/** |
||||||
|
* 修改数据 |
||||||
|
* |
||||||
|
* @param booking 实例对象 |
||||||
|
* @return 实例对象 |
||||||
|
*/ |
||||||
|
int editBooking(Booking booking); |
||||||
|
|
||||||
|
/** |
||||||
|
* 通过主键删除数据 |
||||||
|
* |
||||||
|
* @return 是否成功 |
||||||
|
*/ |
||||||
|
int deleteBooking(String[] ids); |
||||||
|
|
||||||
|
} |
||||||
|
|
@ -0,0 +1,34 @@ |
|||||||
|
package com.zilber.boot.module.booking.enums; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author LJX |
||||||
|
* @TIME 2025-04-28 10:02 |
||||||
|
* @PROJECT termicheck-platform |
||||||
|
* created by Intellij IDEA |
||||||
|
* Description |
||||||
|
*/ |
||||||
|
public enum ApprovalStatus |
||||||
|
{ |
||||||
|
|
||||||
|
NONE("0"),//待批
|
||||||
|
PASS("1"),//通过
|
||||||
|
REJECT("2"),//驳回
|
||||||
|
; |
||||||
|
|
||||||
|
private String code; |
||||||
|
|
||||||
|
ApprovalStatus(String code) { |
||||||
|
this.code = code; |
||||||
|
} |
||||||
|
|
||||||
|
ApprovalStatus() { |
||||||
|
} |
||||||
|
|
||||||
|
public String getCode() { |
||||||
|
return code; |
||||||
|
} |
||||||
|
|
||||||
|
public void setCode(String code) { |
||||||
|
this.code = code; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,32 @@ |
|||||||
|
package com.zilber.boot.module.booking.enums; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author LJX |
||||||
|
* @TIME 2025-04-27 11:37 |
||||||
|
* @PROJECT termicheck-platform |
||||||
|
* created by Intellij IDEA |
||||||
|
* Description |
||||||
|
*/ |
||||||
|
public enum BookingType |
||||||
|
{ |
||||||
|
PRT("1"), //省招检测
|
||||||
|
ME("2"),//厂家委托
|
||||||
|
; |
||||||
|
|
||||||
|
private String code; |
||||||
|
|
||||||
|
BookingType() { |
||||||
|
} |
||||||
|
|
||||||
|
BookingType(String code) { |
||||||
|
this.code = code; |
||||||
|
} |
||||||
|
|
||||||
|
public String getCode() { |
||||||
|
return code; |
||||||
|
} |
||||||
|
|
||||||
|
public void setCode(String code) { |
||||||
|
this.code = code; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,33 @@ |
|||||||
|
package com.zilber.boot.module.booking.enums; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author LJX |
||||||
|
* @TIME 2025-04-27 14:49 |
||||||
|
* @PROJECT termicheck-platform |
||||||
|
* created by Intellij IDEA |
||||||
|
* Description |
||||||
|
*/ |
||||||
|
public enum InspectionMethod |
||||||
|
{ |
||||||
|
FI("1"),//全检
|
||||||
|
SI("2"),//抽检
|
||||||
|
; |
||||||
|
|
||||||
|
private String code; |
||||||
|
|
||||||
|
InspectionMethod() { |
||||||
|
} |
||||||
|
|
||||||
|
InspectionMethod(String code) { |
||||||
|
this.code = code; |
||||||
|
} |
||||||
|
|
||||||
|
public String getCode() { |
||||||
|
return code; |
||||||
|
} |
||||||
|
|
||||||
|
public void setCode(String code) { |
||||||
|
this.code = code; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,41 @@ |
|||||||
|
package com.zilber.boot.module.booking.form; |
||||||
|
|
||||||
|
import com.zilber.boot.module.booking.enums.ApprovalStatus; |
||||||
|
import com.zilber.boot.module.booking.group.Reject; |
||||||
|
import io.swagger.annotations.ApiModel; |
||||||
|
import io.swagger.annotations.ApiModelProperty; |
||||||
|
import lombok.AllArgsConstructor; |
||||||
|
import lombok.Data; |
||||||
|
import lombok.NoArgsConstructor; |
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank; |
||||||
|
import javax.validation.constraints.NotNull; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author LJX |
||||||
|
* @TIME 2025-04-28 10:00 |
||||||
|
* @PROJECT termicheck-platform |
||||||
|
* created by Intellij IDEA |
||||||
|
* Description |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
@NoArgsConstructor |
||||||
|
@AllArgsConstructor |
||||||
|
@ApiModel("预约审批表单") |
||||||
|
public class ApprovalForm |
||||||
|
{ |
||||||
|
|
||||||
|
@ApiModelProperty("id") |
||||||
|
@NotNull(message = "id不能为空") |
||||||
|
private Long id; |
||||||
|
|
||||||
|
@ApiModelProperty("审批状态(0-待批,1-通过,2-驳回)") |
||||||
|
@NotNull(message = "审批状态不能为空") |
||||||
|
private ApprovalStatus approvalStatus; |
||||||
|
|
||||||
|
@ApiModelProperty("驳回理由") |
||||||
|
@NotNull(message = "驳回理由不能为空", groups = Reject.class) |
||||||
|
@NotBlank(message = "驳回理由不能为空", groups = Reject.class) |
||||||
|
private String rejectReason; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,24 @@ |
|||||||
|
package com.zilber.boot.module.booking.form; |
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel; |
||||||
|
import lombok.AllArgsConstructor; |
||||||
|
import lombok.Data; |
||||||
|
import lombok.NoArgsConstructor; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author LJX |
||||||
|
* @TIME 2025-04-27 9:43 |
||||||
|
* @PROJECT termicheck-platform |
||||||
|
* created by Intellij IDEA |
||||||
|
* Description |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
@NoArgsConstructor |
||||||
|
@AllArgsConstructor |
||||||
|
@ApiModel("预约记录表单") |
||||||
|
public class BookingForm |
||||||
|
{ |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,115 @@ |
|||||||
|
package com.zilber.boot.module.booking.form.add; |
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat; |
||||||
|
import com.zilber.boot.module.booking.enums.BookingType; |
||||||
|
import com.zilber.boot.module.booking.enums.InspectionMethod; |
||||||
|
import com.zilber.boot.module.booking.form.BookingForm; |
||||||
|
import com.zilber.boot.module.booking.group.Me; |
||||||
|
import io.swagger.annotations.ApiModel; |
||||||
|
import io.swagger.annotations.ApiModelProperty; |
||||||
|
import lombok.AllArgsConstructor; |
||||||
|
import lombok.Data; |
||||||
|
import lombok.NoArgsConstructor; |
||||||
|
import org.springframework.format.annotation.DateTimeFormat; |
||||||
|
|
||||||
|
import javax.validation.constraints.Min; |
||||||
|
import javax.validation.constraints.NotBlank; |
||||||
|
import javax.validation.constraints.NotNull; |
||||||
|
import java.util.Date; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author LJX |
||||||
|
* @TIME 2025-04-27 9:12 |
||||||
|
* @PROJECT termicheck-platform |
||||||
|
* created by Intellij IDEA |
||||||
|
* Description |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
@NoArgsConstructor |
||||||
|
@AllArgsConstructor |
||||||
|
@ApiModel("预约记录添加表单") |
||||||
|
public class BookingAF |
||||||
|
extends BookingForm |
||||||
|
{ |
||||||
|
|
||||||
|
/** |
||||||
|
* 厂家id |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "厂家id") |
||||||
|
@NotNull(message = "厂家id不能为空") |
||||||
|
private Long factoryId; |
||||||
|
/** |
||||||
|
* 预约类型(1-省招检测,2-厂家委托) |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "预约类型(1-省招检测,2-厂家委托)") |
||||||
|
@NotNull(message = "预约类型不能为空") |
||||||
|
private BookingType bookingType; |
||||||
|
/** |
||||||
|
* 检测方式(1-全检,2-抽检) |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "检测方式(1-全检,2-抽检)") |
||||||
|
@NotNull(message = "检测方式不能为空") |
||||||
|
private InspectionMethod inspectionMethod; |
||||||
|
/** |
||||||
|
* 设备数量 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "设备数量") |
||||||
|
@NotNull(message = "设备数量不能为空") |
||||||
|
@Min(value = 1, message = "设备数量不能小于0") |
||||||
|
private Integer equipNum; |
||||||
|
/** |
||||||
|
* 设备类型 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "设备类型") |
||||||
|
@NotNull(message = "设备类型不能为空") |
||||||
|
@NotBlank(message = "设备类型不能为空") |
||||||
|
private String equipType; |
||||||
|
/** |
||||||
|
* 预约检测日期 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "预约检测日期") |
||||||
|
@NotNull(message = "预约检测日期不能为空") |
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd") |
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd") |
||||||
|
private Date inspectionDate; |
||||||
|
/** |
||||||
|
* 备注 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "备注") |
||||||
|
private String remark; |
||||||
|
/** |
||||||
|
* 中标通知书路径 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "中标通知书路径") |
||||||
|
@NotNull(message = "中标通知书不能为空", groups = Me.class) |
||||||
|
@NotBlank(message = "中标通知书不能为空", groups = Me.class) |
||||||
|
private String loaUrl; |
||||||
|
/** |
||||||
|
* 地市公司 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "地市公司") |
||||||
|
@NotNull(message = "地市公司不能为空", groups = Me.class) |
||||||
|
@NotBlank(message = "地市公司不能为空", groups = Me.class) |
||||||
|
private String localOffice; |
||||||
|
/** |
||||||
|
* 中标类型 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "中标类型") |
||||||
|
@NotNull(message = "中标类型不能为空", groups = Me.class) |
||||||
|
@NotBlank(message = "中标类型不能为空", groups = Me.class) |
||||||
|
private String loaType; |
||||||
|
/** |
||||||
|
* 涉及工程类型 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "涉及工程项目") |
||||||
|
@NotNull(message = "涉及工程项目不能为空", groups = Me.class) |
||||||
|
@NotBlank(message = "涉及工程项目不能为空", groups = Me.class) |
||||||
|
private String projectName; |
||||||
|
/** |
||||||
|
* 招标批次 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "招标批次") |
||||||
|
@NotNull(message = "招标批次不能为空", groups = Me.class) |
||||||
|
private Integer bidBatch; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,39 @@ |
|||||||
|
package com.zilber.boot.module.booking.form.modify; |
||||||
|
|
||||||
|
import com.zilber.boot.module.booking.form.BookingForm; |
||||||
|
import io.swagger.annotations.ApiModel; |
||||||
|
import io.swagger.annotations.ApiModelProperty; |
||||||
|
import lombok.AllArgsConstructor; |
||||||
|
import lombok.Data; |
||||||
|
import lombok.NoArgsConstructor; |
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author LJX |
||||||
|
* @TIME 2025-04-27 9:40 |
||||||
|
* @PROJECT termicheck-platform |
||||||
|
* created by Intellij IDEA |
||||||
|
* Description |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
@NoArgsConstructor |
||||||
|
@AllArgsConstructor |
||||||
|
@ApiModel("预约记录修改表单") |
||||||
|
public class BookingMF |
||||||
|
extends BookingForm |
||||||
|
{ |
||||||
|
|
||||||
|
/** |
||||||
|
* id |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "id") |
||||||
|
@NotBlank(message = "id不能为空") |
||||||
|
private Long id; |
||||||
|
/** |
||||||
|
* 备注 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "备注") |
||||||
|
private String remark; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,113 @@ |
|||||||
|
package com.zilber.boot.module.booking.form.pr; |
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat; |
||||||
|
import com.zilber.boot.utils.page.Pageable; |
||||||
|
import io.swagger.annotations.ApiModel; |
||||||
|
import io.swagger.annotations.ApiModelProperty; |
||||||
|
import lombok.AllArgsConstructor; |
||||||
|
import lombok.Data; |
||||||
|
import lombok.NoArgsConstructor; |
||||||
|
import org.springframework.format.annotation.DateTimeFormat; |
||||||
|
|
||||||
|
import java.util.Date; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author LJX |
||||||
|
* @TIME 2025-04-27 9:49 |
||||||
|
* @PROJECT termicheck-platform |
||||||
|
* created by Intellij IDEA |
||||||
|
* Description |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
@NoArgsConstructor |
||||||
|
@AllArgsConstructor |
||||||
|
@ApiModel("预约记录分页请求") |
||||||
|
public class BookingPR |
||||||
|
extends Pageable |
||||||
|
{ |
||||||
|
|
||||||
|
/** |
||||||
|
* 厂家id |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "厂家id") |
||||||
|
private Long factoryId; |
||||||
|
/** |
||||||
|
* 预约类型(1-省招检测,2-厂家委托) |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "预约类型(1-省招检测,2-厂家委托)") |
||||||
|
private String bookingType; |
||||||
|
/** |
||||||
|
* 检测方式(1-全检,2-抽检) |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "检测方式(1-全检,2-抽检)") |
||||||
|
private String inspectionMethod; |
||||||
|
/** |
||||||
|
* 设备数量 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "设备数量") |
||||||
|
private Integer equipNum; |
||||||
|
/** |
||||||
|
* 设备类型 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "设备类型") |
||||||
|
private String equipType; |
||||||
|
/** |
||||||
|
* 预约检测开始日期 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "预约检测开始日期") |
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd") |
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd") |
||||||
|
private Date inspectionDateStart; |
||||||
|
/** |
||||||
|
* 预约检测结束日期 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "预约检测结束日期") |
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd") |
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd") |
||||||
|
private Date inspectionDateEnd; |
||||||
|
/** |
||||||
|
* 地市公司 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "地市公司") |
||||||
|
private String localOffice; |
||||||
|
/** |
||||||
|
* 中标类型 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "中标类型") |
||||||
|
private String loaType; |
||||||
|
/** |
||||||
|
* 涉及工程类型 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "涉及工程名称") |
||||||
|
private String projectName; |
||||||
|
/** |
||||||
|
* 招标批次 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "招标批次") |
||||||
|
private Integer bidBatch; |
||||||
|
/** |
||||||
|
* 审批状态 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("审批状态(0-待批,1-通过,2-驳回)") |
||||||
|
private String approvalStatus; |
||||||
|
/** |
||||||
|
* 审批开始时间 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("审批开始时间") |
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd") |
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd") |
||||||
|
private Date approveTimeStart; |
||||||
|
/** |
||||||
|
* 审批结束时间 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("审批结束时间") |
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd") |
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd") |
||||||
|
private Date approveTimeEnd; |
||||||
|
/** |
||||||
|
* 创建者id |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "创建者id") |
||||||
|
private Long creatorId; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,11 @@ |
|||||||
|
package com.zilber.boot.module.booking.group; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author LJX |
||||||
|
* @TIME 2025-04-27 11:47 |
||||||
|
* @PROJECT termicheck-platform |
||||||
|
* created by Intellij IDEA |
||||||
|
* Description |
||||||
|
*/ |
||||||
|
public interface Me { |
||||||
|
} |
@ -0,0 +1,11 @@ |
|||||||
|
package com.zilber.boot.module.booking.group; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author LJX |
||||||
|
* @TIME 2025-04-28 10:00 |
||||||
|
* @PROJECT termicheck-platform |
||||||
|
* created by Intellij IDEA |
||||||
|
* Description |
||||||
|
*/ |
||||||
|
public interface Reject { |
||||||
|
} |
@ -0,0 +1,167 @@ |
|||||||
|
package com.zilber.boot.module.booking.pojo; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType; |
||||||
|
import com.baomidou.mybatisplus.annotation.TableId; |
||||||
|
import com.baomidou.mybatisplus.annotation.TableName; |
||||||
|
import com.zilber.boot.module.booking.enums.ApprovalStatus; |
||||||
|
import com.zilber.boot.module.booking.form.add.BookingAF; |
||||||
|
import io.swagger.annotations.ApiModel; |
||||||
|
import io.swagger.annotations.ApiModelProperty; |
||||||
|
import lombok.AllArgsConstructor; |
||||||
|
import lombok.Data; |
||||||
|
import lombok.NoArgsConstructor; |
||||||
|
import org.springframework.beans.BeanUtils; |
||||||
|
|
||||||
|
import java.io.Serializable; |
||||||
|
import java.util.Calendar; |
||||||
|
import java.util.Date; |
||||||
|
|
||||||
|
/** |
||||||
|
* 预约记录(Booking)实体类 |
||||||
|
* |
||||||
|
* @author liuao |
||||||
|
* @since 2025-04-25 15:49:55 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
@NoArgsConstructor |
||||||
|
@AllArgsConstructor |
||||||
|
@ApiModel("预约记录") |
||||||
|
@TableName("tc_booking") |
||||||
|
public class Booking implements Serializable |
||||||
|
{ |
||||||
|
private static final long serialVersionUID = -37467439775541824L; |
||||||
|
/** |
||||||
|
* id |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "id") |
||||||
|
@TableId(type = IdType.AUTO) |
||||||
|
private Long id; |
||||||
|
/** |
||||||
|
* 厂家id |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "厂家id") |
||||||
|
private Long factoryId; |
||||||
|
/** |
||||||
|
* 预约类型(1-省招检测,2-厂家委托) |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "预约类型(1-省招检测,2-厂家委托)") |
||||||
|
private String bookingType; |
||||||
|
/** |
||||||
|
* 检测方式(1-全检,2-抽检) |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "检测方式(1-全检,2-抽检)") |
||||||
|
private String inspectionMethod; |
||||||
|
/** |
||||||
|
* 设备数量 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "设备数量") |
||||||
|
private Integer equipNum; |
||||||
|
/** |
||||||
|
* 设备类型 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "设备类型") |
||||||
|
private String equipType; |
||||||
|
/** |
||||||
|
* 预约检测日期 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "预约检测日期") |
||||||
|
private Date inspectionDate; |
||||||
|
/** |
||||||
|
* 备注 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "备注") |
||||||
|
private String remark; |
||||||
|
/** |
||||||
|
* 中标通知书路径 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "中标通知书路径") |
||||||
|
private String loaUrl; |
||||||
|
/** |
||||||
|
* 地市公司 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "地市公司") |
||||||
|
private String localOffice; |
||||||
|
/** |
||||||
|
* 中标类型 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "中标类型") |
||||||
|
private String loaType; |
||||||
|
/** |
||||||
|
* 涉及工程类型 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "涉及工程类型") |
||||||
|
private String projectName; |
||||||
|
/** |
||||||
|
* 招标批次 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "招标批次") |
||||||
|
private Integer bidBatch; |
||||||
|
/** |
||||||
|
* 审批状态 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("审批状态(0-待批,1-通过,2-驳回)") |
||||||
|
private String approvalStatus; |
||||||
|
/** |
||||||
|
* 驳回理由 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("驳回理由") |
||||||
|
private String rejectReason; |
||||||
|
/** |
||||||
|
* 审批时间 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("审批时间") |
||||||
|
private Date approveTime; |
||||||
|
/** |
||||||
|
* 检测状态(0-待检,1-通过,2-不通过) |
||||||
|
*/ |
||||||
|
@ApiModelProperty("检测状态(0-待检,1-通过,2-不通过)") |
||||||
|
private String inspectionStatus; |
||||||
|
/** |
||||||
|
* 检测时间 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("检测时间") |
||||||
|
private Date inspectionExeDate; |
||||||
|
/** |
||||||
|
* 创建者id |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "创建者id") |
||||||
|
private Long creatorId; |
||||||
|
/** |
||||||
|
* 创建时间 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "创建时间") |
||||||
|
private Date creationTime; |
||||||
|
/** |
||||||
|
* 修改人id |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "修改人id") |
||||||
|
private Long updaterId; |
||||||
|
/** |
||||||
|
* 修改时间 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "修改时间") |
||||||
|
private Date updateTime; |
||||||
|
|
||||||
|
public Booking(BookingAF form, Long userId) |
||||||
|
{ |
||||||
|
Calendar instance = Calendar.getInstance(); |
||||||
|
Date now = new Date(); |
||||||
|
BeanUtils.copyProperties(form, this); |
||||||
|
this.bookingType = form.getBookingType().getCode(); |
||||||
|
this.inspectionMethod = form.getInspectionMethod().getCode(); |
||||||
|
instance.setTime(form.getInspectionDate()); |
||||||
|
instance.set(Calendar.HOUR_OF_DAY, 0); |
||||||
|
instance.set(Calendar.MINUTE, 0); |
||||||
|
instance.set(Calendar.SECOND, 0); |
||||||
|
this.inspectionDate = instance.getTime(); |
||||||
|
//预约审批状态为待批
|
||||||
|
this.approvalStatus = ApprovalStatus.NONE.getCode(); |
||||||
|
//
|
||||||
|
this.creatorId = userId; |
||||||
|
this.updaterId = userId; |
||||||
|
this.creationTime = now; |
||||||
|
this.updateTime = now; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
@ -0,0 +1,41 @@ |
|||||||
|
package com.zilber.boot.module.booking.service; |
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService; |
||||||
|
import com.zilber.boot.module.booking.form.ApprovalForm; |
||||||
|
import com.zilber.boot.module.booking.form.add.BookingAF; |
||||||
|
import com.zilber.boot.module.booking.form.modify.BookingMF; |
||||||
|
import com.zilber.boot.module.booking.form.pr.BookingPR; |
||||||
|
import com.zilber.boot.module.booking.pojo.Booking; |
||||||
|
import com.zilber.boot.module.booking.vo.BookingVO; |
||||||
|
import com.zilber.boot.utils.InternalResult; |
||||||
|
import com.zilber.boot.utils.page.PageUtils; |
||||||
|
|
||||||
|
import java.io.Serializable; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 预约记录(Booking)表服务接口 |
||||||
|
* |
||||||
|
* @author liuao |
||||||
|
* @since 2025-04-25 15:49:58 |
||||||
|
*/ |
||||||
|
public interface BookingService |
||||||
|
extends IService<Booking> |
||||||
|
{ |
||||||
|
|
||||||
|
InternalResult addBooking(BookingAF form); |
||||||
|
|
||||||
|
InternalResult updBooking(BookingMF form); |
||||||
|
|
||||||
|
InternalResult approve(ApprovalForm form); |
||||||
|
|
||||||
|
BookingVO getBooking(Serializable id); |
||||||
|
|
||||||
|
PageUtils getPage(BookingPR pr); |
||||||
|
|
||||||
|
InternalResult deleteBooking(BookingMF form); |
||||||
|
|
||||||
|
InternalResult deleteBookings(List<Serializable> idList); |
||||||
|
|
||||||
|
} |
@ -0,0 +1,273 @@ |
|||||||
|
package com.zilber.boot.module.booking.service.impl; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||||
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
||||||
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils; |
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||||
|
import com.zilber.boot.Constants.HttpStatus; |
||||||
|
import com.zilber.boot.module.booking.dao.BookingMapper; |
||||||
|
import com.zilber.boot.module.booking.enums.ApprovalStatus; |
||||||
|
import com.zilber.boot.module.booking.enums.BookingType; |
||||||
|
import com.zilber.boot.module.booking.form.ApprovalForm; |
||||||
|
import com.zilber.boot.module.booking.form.add.BookingAF; |
||||||
|
import com.zilber.boot.module.booking.form.modify.BookingMF; |
||||||
|
import com.zilber.boot.module.booking.form.pr.BookingPR; |
||||||
|
import com.zilber.boot.module.booking.group.Me; |
||||||
|
import com.zilber.boot.module.booking.group.Reject; |
||||||
|
import com.zilber.boot.module.booking.pojo.Booking; |
||||||
|
import com.zilber.boot.module.booking.service.BookingService; |
||||||
|
import com.zilber.boot.module.booking.vo.BookingVO; |
||||||
|
import com.zilber.boot.utils.InternalResult; |
||||||
|
import com.zilber.boot.utils.SecurityUtils; |
||||||
|
import com.zilber.boot.utils.ValidatorUtils; |
||||||
|
import com.zilber.boot.utils.page.PageUtils; |
||||||
|
import org.springframework.beans.BeanUtils; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
|
||||||
|
import java.io.Serializable; |
||||||
|
import java.util.Calendar; |
||||||
|
import java.util.Date; |
||||||
|
import java.util.List; |
||||||
|
import java.util.stream.Collectors; |
||||||
|
|
||||||
|
/** |
||||||
|
* 预约记录(Booking)表服务实现类 |
||||||
|
* |
||||||
|
* @author liuao |
||||||
|
* @since 2025-04-25 15:50:01 |
||||||
|
*/ |
||||||
|
@Service |
||||||
|
public class BookingServiceImpl |
||||||
|
extends ServiceImpl<BookingMapper, Booking> |
||||||
|
implements BookingService |
||||||
|
{ |
||||||
|
|
||||||
|
/** |
||||||
|
* 申请预约 |
||||||
|
* @param form 预约表单 |
||||||
|
* @return 处理结果 |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
public InternalResult addBooking(BookingAF form) |
||||||
|
{ |
||||||
|
ValidatorUtils.validateEntity(form); |
||||||
|
//如果是省招,则校验中标信息
|
||||||
|
if ( form.getBookingType().equals(BookingType.PRT)) |
||||||
|
{ |
||||||
|
ValidatorUtils.validateEntity(form, Me.class); |
||||||
|
} |
||||||
|
Long userId = SecurityUtils.getUserId(); |
||||||
|
Booking booking = new Booking(form, userId); |
||||||
|
this.save(booking); |
||||||
|
return new InternalResult(HttpStatus.SUCCESS, "预约申请成功"); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 修改预约信息 |
||||||
|
* @param form 修改表单 |
||||||
|
* @return 修改结果 |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
public InternalResult updBooking(BookingMF form) |
||||||
|
{ |
||||||
|
ValidatorUtils.validateEntity(form); |
||||||
|
Booking byId = this.getById(form.getId()); |
||||||
|
if ( byId != null) |
||||||
|
{ |
||||||
|
BeanUtils.copyProperties(form, byId); |
||||||
|
this.updateById(byId); |
||||||
|
} |
||||||
|
return new InternalResult(HttpStatus.SUCCESS, "预约信息修改成功"); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 审批预约 |
||||||
|
* @param form 预约表单 |
||||||
|
* @return 处理结果 |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
public InternalResult approve(ApprovalForm form) |
||||||
|
{ |
||||||
|
ValidatorUtils.validateEntity(form); |
||||||
|
if ( form.getApprovalStatus().equals(ApprovalStatus.NONE)) |
||||||
|
{ |
||||||
|
return new InternalResult(HttpStatus.SUCCESS, "未作出审批"); |
||||||
|
} |
||||||
|
else if ( form.getApprovalStatus().equals(ApprovalStatus.REJECT)) |
||||||
|
{ |
||||||
|
ValidatorUtils.validateEntity(form, Reject.class); |
||||||
|
} |
||||||
|
Booking byId = this.getById(form.getId()); |
||||||
|
if ( byId != null) |
||||||
|
{ |
||||||
|
byId.setApprovalStatus(form.getApprovalStatus().getCode()); |
||||||
|
byId.setRejectReason(form.getRejectReason()); |
||||||
|
byId.setApproveTime(new Date()); |
||||||
|
this.updateById(byId); |
||||||
|
} |
||||||
|
return new InternalResult(HttpStatus.SUCCESS, "审批成功"); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取单条预约信息 |
||||||
|
* @param id id |
||||||
|
* @return 单条预约记录 |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
public BookingVO getBooking(Serializable id) |
||||||
|
{ |
||||||
|
Booking byId = this.getById(id); |
||||||
|
if ( byId != null) |
||||||
|
{ |
||||||
|
return new BookingVO(byId); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 分页查询 |
||||||
|
* @param pr 查询条件 |
||||||
|
* @return 分页列表 |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
public PageUtils getPage(BookingPR pr) |
||||||
|
{ |
||||||
|
LambdaQueryWrapper<Booking> wrapper = this.wrapper(pr); |
||||||
|
IPage<Booking> page |
||||||
|
= page(new Page(pr.getPageNo(), pr.getPageSize()), wrapper); |
||||||
|
if ( CollectionUtils.isNotEmpty(page.getRecords())) |
||||||
|
{ |
||||||
|
return new PageUtils( |
||||||
|
page.getRecords() |
||||||
|
.stream() |
||||||
|
.map(BookingVO::new) |
||||||
|
.collect(Collectors.toList()), |
||||||
|
(int) page.getTotal(), |
||||||
|
(int) page.getSize(), |
||||||
|
(int) page.getCurrent() |
||||||
|
); |
||||||
|
} |
||||||
|
return new PageUtils(page); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 删除单条预约记录 |
||||||
|
* @param form 表单 |
||||||
|
* @return 处理结果 |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
public InternalResult deleteBooking(BookingMF form) |
||||||
|
{ |
||||||
|
ValidatorUtils.validateEntity(form); |
||||||
|
this.removeById(form.getId()); |
||||||
|
return new InternalResult(HttpStatus.SUCCESS, "预约记录删除成功"); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 删除多条预约记录 |
||||||
|
* @param idList id列表 |
||||||
|
* @return 处理结果 |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
public InternalResult deleteBookings(List<Serializable> idList) |
||||||
|
{ |
||||||
|
if (CollectionUtils.isNotEmpty(idList)) |
||||||
|
{ |
||||||
|
LambdaQueryWrapper<Booking> wrapper = new LambdaQueryWrapper<>(); |
||||||
|
wrapper.in(Booking::getId, idList); |
||||||
|
this.remove(wrapper); |
||||||
|
} |
||||||
|
return new InternalResult(HttpStatus.SUCCESS, "预约记录删除成功"); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 根据查询分页构造查询包装器并返回 |
||||||
|
* @param pr 查询条件 |
||||||
|
* @return 查询包装器 |
||||||
|
*/ |
||||||
|
private LambdaQueryWrapper<Booking> wrapper(BookingPR pr) |
||||||
|
{ |
||||||
|
LambdaQueryWrapper<Booking> wrapper = new LambdaQueryWrapper<>(); |
||||||
|
if ( pr.getFactoryId() != null) |
||||||
|
{ |
||||||
|
wrapper.eq(Booking::getFactoryId, pr.getFactoryId()); |
||||||
|
} |
||||||
|
if (StringUtils.isNotBlank(pr.getBookingType())) |
||||||
|
{ |
||||||
|
wrapper.eq(Booking::getBookingType, pr.getBookingType()); |
||||||
|
} |
||||||
|
if ( StringUtils.isNotBlank(pr.getInspectionMethod())) |
||||||
|
{ |
||||||
|
wrapper.eq(Booking::getInspectionMethod, pr.getInspectionMethod()); |
||||||
|
} |
||||||
|
if ( pr.getEquipNum() != null) |
||||||
|
{ |
||||||
|
wrapper.eq(Booking::getEquipNum, pr.getEquipNum()); |
||||||
|
} |
||||||
|
if ( StringUtils.isNotBlank(pr.getEquipType())) |
||||||
|
{ |
||||||
|
wrapper.eq(Booking::getEquipType, pr.getEquipType()); |
||||||
|
} |
||||||
|
Calendar c = Calendar.getInstance(); |
||||||
|
if ( pr.getInspectionDateStart() != null) |
||||||
|
{ |
||||||
|
c.setTime(pr.getInspectionDateStart()); |
||||||
|
c.set(Calendar.HOUR_OF_DAY, 0); |
||||||
|
c.set(Calendar.MINUTE, 0); |
||||||
|
c.set(Calendar.SECOND, 0); |
||||||
|
wrapper.ge(Booking::getInspectionDate, c.getTime()); |
||||||
|
} |
||||||
|
if ( pr.getInspectionDateEnd() != null) |
||||||
|
{ |
||||||
|
c.setTime(pr.getInspectionDateEnd()); |
||||||
|
c.set(Calendar.HOUR_OF_DAY, 0); |
||||||
|
c.set(Calendar.MINUTE, 0); |
||||||
|
c.set(Calendar.SECOND, 0); |
||||||
|
wrapper.le(Booking::getInspectionDate, c.getTime()); |
||||||
|
} |
||||||
|
if ( StringUtils.isNotBlank(pr.getLocalOffice())) |
||||||
|
{ |
||||||
|
wrapper.like(Booking::getLocalOffice, pr.getLocalOffice()); |
||||||
|
} |
||||||
|
if ( StringUtils.isNotBlank(pr.getLoaType())) |
||||||
|
{ |
||||||
|
wrapper.eq(Booking::getLoaType, pr.getLoaType()); |
||||||
|
} |
||||||
|
if (StringUtils.isNotBlank(pr.getProjectName())) |
||||||
|
{ |
||||||
|
wrapper.like(Booking::getProjectName, pr.getProjectName()); |
||||||
|
} |
||||||
|
if ( pr.getBidBatch() != null) |
||||||
|
{ |
||||||
|
wrapper.eq(Booking::getBidBatch, pr.getBidBatch()); |
||||||
|
} |
||||||
|
if ( pr.getCreatorId() != null) |
||||||
|
{ |
||||||
|
wrapper.eq(Booking::getCreatorId, pr.getCreatorId()); |
||||||
|
} |
||||||
|
if ( StringUtils.isNotBlank(pr.getApprovalStatus())) |
||||||
|
{ |
||||||
|
wrapper.eq(Booking::getApprovalStatus, pr.getApprovalStatus()); |
||||||
|
} |
||||||
|
if ( pr.getApproveTimeStart() != null) |
||||||
|
{ |
||||||
|
c.setTime(pr.getApproveTimeStart()); |
||||||
|
c.set(Calendar.HOUR_OF_DAY, 0); |
||||||
|
c.set(Calendar.MINUTE, 0); |
||||||
|
c.set(Calendar.SECOND, 0); |
||||||
|
wrapper.ge(Booking::getApproveTime, c.getTime()); |
||||||
|
} |
||||||
|
if ( pr.getApproveTimeEnd() != null) |
||||||
|
{ |
||||||
|
c.setTime(pr.getInspectionDateEnd()); |
||||||
|
c.set(Calendar.HOUR_OF_DAY, 23); |
||||||
|
c.set(Calendar.MINUTE, 59); |
||||||
|
c.set(Calendar.SECOND, 59); |
||||||
|
wrapper.le(Booking::getApproveTime, c.getTime()); |
||||||
|
} |
||||||
|
return wrapper; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,126 @@ |
|||||||
|
package com.zilber.boot.module.booking.vo; |
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat; |
||||||
|
import com.zilber.boot.module.booking.pojo.Booking; |
||||||
|
import io.swagger.annotations.ApiModel; |
||||||
|
import io.swagger.annotations.ApiModelProperty; |
||||||
|
import lombok.AllArgsConstructor; |
||||||
|
import lombok.Data; |
||||||
|
import lombok.NoArgsConstructor; |
||||||
|
import org.springframework.beans.BeanUtils; |
||||||
|
import org.springframework.format.annotation.DateTimeFormat; |
||||||
|
|
||||||
|
import java.util.Date; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author LJX |
||||||
|
* @TIME 2025-04-27 9:57 |
||||||
|
* @PROJECT termicheck-platform |
||||||
|
* created by Intellij IDEA |
||||||
|
* Description |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
@NoArgsConstructor |
||||||
|
@AllArgsConstructor |
||||||
|
@ApiModel("预约记录返回") |
||||||
|
public class BookingVO |
||||||
|
{ |
||||||
|
|
||||||
|
/** |
||||||
|
* id |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "id") |
||||||
|
private Long id; |
||||||
|
/** |
||||||
|
* 厂家id |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "厂家id") |
||||||
|
private Long factoryId; |
||||||
|
/** |
||||||
|
* 预约类型(1-省招检测,2-厂家委托) |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "预约类型(1-省招检测,2-厂家委托)") |
||||||
|
private String bookingType; |
||||||
|
/** |
||||||
|
* 检测方式(1-全检,2-抽检) |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "检测方式(1-全检,2-抽检)") |
||||||
|
private String inspectionMethod; |
||||||
|
/** |
||||||
|
* 设备数量 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "设备数量") |
||||||
|
private Integer equipNum; |
||||||
|
/** |
||||||
|
* 设备类型 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "设备类型") |
||||||
|
private String equipType; |
||||||
|
/** |
||||||
|
* 预约检测日期 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "预约检测日期") |
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd") |
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd") |
||||||
|
private Date inspectionDate; |
||||||
|
/** |
||||||
|
* 备注 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "备注") |
||||||
|
private String remark; |
||||||
|
/** |
||||||
|
* 中标通知书路径 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "中标通知书路径") |
||||||
|
private String loaUrl; |
||||||
|
/** |
||||||
|
* 地市公司 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "地市公司") |
||||||
|
private String localOffice; |
||||||
|
/** |
||||||
|
* 中标类型 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "中标类型") |
||||||
|
private String loaType; |
||||||
|
/** |
||||||
|
* 涉及工程类型 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "涉及工程类型") |
||||||
|
private String projectName; |
||||||
|
/** |
||||||
|
* 招标批次 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "招标批次") |
||||||
|
private Integer bidBatch; |
||||||
|
/** |
||||||
|
* 创建者id |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "创建者id") |
||||||
|
private Long creatorId; |
||||||
|
/** |
||||||
|
* 创建时间 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "创建时间") |
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
||||||
|
private Date creationTime; |
||||||
|
/** |
||||||
|
* 修改人id |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "修改人id") |
||||||
|
private Long updaterId; |
||||||
|
/** |
||||||
|
* 修改时间 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "修改时间") |
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
||||||
|
private Date updateTime; |
||||||
|
|
||||||
|
public BookingVO(Booking booking) |
||||||
|
{ |
||||||
|
BeanUtils.copyProperties(booking, this); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,25 @@ |
|||||||
|
package com.zilber.boot.utils; |
||||||
|
|
||||||
|
import lombok.AllArgsConstructor; |
||||||
|
import lombok.Data; |
||||||
|
import lombok.NoArgsConstructor; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author LJX |
||||||
|
* @TIME 2023-11-02 14:50 |
||||||
|
* @PROJECT LFVCManager |
||||||
|
* created by Intellij IDEA |
||||||
|
* Description |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
@NoArgsConstructor |
||||||
|
@AllArgsConstructor |
||||||
|
public class InternalResult { |
||||||
|
|
||||||
|
private Integer code; |
||||||
|
|
||||||
|
private Object data; |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,47 @@ |
|||||||
|
package com.zilber.boot.utils; |
||||||
|
|
||||||
|
import com.zilber.boot.exception.ServiceException; |
||||||
|
import org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator; |
||||||
|
import org.springframework.context.i18n.LocaleContextHolder; |
||||||
|
import org.springframework.context.support.ResourceBundleMessageSource; |
||||||
|
import org.springframework.validation.beanvalidation.MessageSourceResourceBundleLocator; |
||||||
|
|
||||||
|
import javax.validation.ConstraintViolation; |
||||||
|
import javax.validation.Validation; |
||||||
|
import javax.validation.Validator; |
||||||
|
import java.util.Locale; |
||||||
|
import java.util.Set; |
||||||
|
|
||||||
|
/** |
||||||
|
* hibernate-validator校验工具类 |
||||||
|
* 参考文档:http://docs.jboss.org/hibernate/validator/6.0/reference/en-US/html_single/
|
||||||
|
*/ |
||||||
|
public class ValidatorUtils { |
||||||
|
|
||||||
|
private static ResourceBundleMessageSource getMessageSource() { |
||||||
|
ResourceBundleMessageSource bundleMessageSource = new ResourceBundleMessageSource(); |
||||||
|
bundleMessageSource.setDefaultEncoding("UTF-8"); |
||||||
|
bundleMessageSource.setBasenames("i18n/validation"); |
||||||
|
return bundleMessageSource; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 校验对象 |
||||||
|
* |
||||||
|
* @param object 待校验对象 |
||||||
|
* @param groups 待校验的组 |
||||||
|
*/ |
||||||
|
public static void validateEntity(Object object, Class<?>... groups) |
||||||
|
throws ServiceException { |
||||||
|
Locale.setDefault(LocaleContextHolder.getLocale()); |
||||||
|
Validator validator = Validation.byDefaultProvider().configure().messageInterpolator( |
||||||
|
new ResourceBundleMessageInterpolator(new MessageSourceResourceBundleLocator(getMessageSource()))) |
||||||
|
.buildValidatorFactory().getValidator(); |
||||||
|
|
||||||
|
Set<ConstraintViolation<Object>> constraintViolations = validator.validate(object, groups); |
||||||
|
if (!constraintViolations.isEmpty()) { |
||||||
|
ConstraintViolation<Object> constraint = constraintViolations.iterator().next(); |
||||||
|
throw new ServiceException(constraint.getMessage()); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,115 @@ |
|||||||
|
/** |
||||||
|
* Copyright (c) 2016-2019 人人开源 All rights reserved. |
||||||
|
* <p> |
||||||
|
* https://www.renren.io
|
||||||
|
* <p> |
||||||
|
* 版权所有,侵权必究! |
||||||
|
*/ |
||||||
|
|
||||||
|
package com.zilber.boot.utils.page; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||||
|
import com.github.pagehelper.PageInfo; |
||||||
|
|
||||||
|
import java.io.Serializable; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
|
||||||
|
public class PageUtils implements Serializable { |
||||||
|
private static final long serialVersionUID = 1L; |
||||||
|
/** |
||||||
|
* 总记录数 |
||||||
|
*/ |
||||||
|
private int total; |
||||||
|
/** |
||||||
|
* 每页记录数 |
||||||
|
*/ |
||||||
|
private int pageSize; |
||||||
|
/** |
||||||
|
* 总页数 |
||||||
|
*/ |
||||||
|
private int totalPage; |
||||||
|
/** |
||||||
|
* 当前页数 |
||||||
|
*/ |
||||||
|
private int currPage; |
||||||
|
/** |
||||||
|
* 列表数据 |
||||||
|
*/ |
||||||
|
private List<?> list; |
||||||
|
|
||||||
|
/** |
||||||
|
* 分页 |
||||||
|
* @param list 列表数据 |
||||||
|
* @param totalCount 总记录数 |
||||||
|
* @param pageSize 每页记录数 |
||||||
|
* @param currPage 当前页数 |
||||||
|
*/ |
||||||
|
public PageUtils(List<?> list, int totalCount, int pageSize, int currPage) { |
||||||
|
this.list = list; |
||||||
|
this.total = totalCount; |
||||||
|
this.pageSize = pageSize; |
||||||
|
this.currPage = currPage; |
||||||
|
this.totalPage = (int) Math.ceil((double) totalCount / pageSize); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 分页 |
||||||
|
*/ |
||||||
|
public PageUtils(IPage<?> page) { |
||||||
|
this.list = page.getRecords(); |
||||||
|
this.total = (int) page.getTotal(); |
||||||
|
this.pageSize = (int) page.getSize(); |
||||||
|
this.currPage = (int) page.getCurrent(); |
||||||
|
this.totalPage = (int) page.getPages(); |
||||||
|
} |
||||||
|
|
||||||
|
public PageUtils(PageInfo<?> page) { |
||||||
|
this.list = page.getList(); |
||||||
|
this.total = (int) page.getTotal(); |
||||||
|
this.pageSize = (int) page.getSize(); |
||||||
|
this.currPage = (int) page.getPageNum(); |
||||||
|
this.totalPage = (int) page.getPages(); |
||||||
|
} |
||||||
|
|
||||||
|
public int getTotal() { |
||||||
|
return total; |
||||||
|
} |
||||||
|
|
||||||
|
public void setTotal(int total) { |
||||||
|
this.total = total; |
||||||
|
} |
||||||
|
|
||||||
|
public int getPageSize() { |
||||||
|
return pageSize; |
||||||
|
} |
||||||
|
|
||||||
|
public void setPageSize(int pageSize) { |
||||||
|
this.pageSize = pageSize; |
||||||
|
} |
||||||
|
|
||||||
|
public int getTotalPage() { |
||||||
|
return totalPage; |
||||||
|
} |
||||||
|
|
||||||
|
public void setTotalPage(int totalPage) { |
||||||
|
this.totalPage = totalPage; |
||||||
|
} |
||||||
|
|
||||||
|
public int getCurrPage() { |
||||||
|
return currPage; |
||||||
|
} |
||||||
|
|
||||||
|
public void setCurrPage(int currPage) { |
||||||
|
this.currPage = currPage; |
||||||
|
} |
||||||
|
|
||||||
|
public List<?> getList() { |
||||||
|
return list; |
||||||
|
} |
||||||
|
|
||||||
|
public void setList(List<?> list) { |
||||||
|
this.list = list; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,35 @@ |
|||||||
|
package com.zilber.boot.utils.page; |
||||||
|
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel; |
||||||
|
import io.swagger.annotations.ApiModelProperty; |
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull; |
||||||
|
|
||||||
|
@ApiModel("分页查询") |
||||||
|
public class Pageable { |
||||||
|
|
||||||
|
@NotNull(message = "当前页数不能为空") |
||||||
|
@ApiModelProperty(value = "当前页数", required = true) |
||||||
|
private Integer pageNo = 1; |
||||||
|
|
||||||
|
@NotNull(message = "每页记录数不能为空") |
||||||
|
@ApiModelProperty(value = "每页记录数", required = true) |
||||||
|
private Integer pageSize = 9999999; |
||||||
|
|
||||||
|
public Integer getPageNo() { |
||||||
|
return pageNo; |
||||||
|
} |
||||||
|
|
||||||
|
public void setPageNo(Integer pageNo) { |
||||||
|
this.pageNo = pageNo; |
||||||
|
} |
||||||
|
|
||||||
|
public Integer getPageSize() { |
||||||
|
return pageSize; |
||||||
|
} |
||||||
|
|
||||||
|
public void setPageSize(Integer pageSize) { |
||||||
|
this.pageSize = pageSize; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue