main
刘胜超 2 weeks ago
parent 3f0dccca62
commit eea448ad56
  1. 82
      src/main/java/com/zilber/boot/module/booking/controller/BookingController.java
  2. 62
      src/main/java/com/zilber/boot/module/booking/dao/BookingMapper.java
  3. 34
      src/main/java/com/zilber/boot/module/booking/enums/ApprovalStatus.java
  4. 32
      src/main/java/com/zilber/boot/module/booking/enums/BookingType.java
  5. 33
      src/main/java/com/zilber/boot/module/booking/enums/InspectionMethod.java
  6. 41
      src/main/java/com/zilber/boot/module/booking/form/ApprovalForm.java
  7. 24
      src/main/java/com/zilber/boot/module/booking/form/BookingForm.java
  8. 115
      src/main/java/com/zilber/boot/module/booking/form/add/BookingAF.java
  9. 39
      src/main/java/com/zilber/boot/module/booking/form/modify/BookingMF.java
  10. 113
      src/main/java/com/zilber/boot/module/booking/form/pr/BookingPR.java
  11. 11
      src/main/java/com/zilber/boot/module/booking/group/Me.java
  12. 11
      src/main/java/com/zilber/boot/module/booking/group/Reject.java
  13. 167
      src/main/java/com/zilber/boot/module/booking/pojo/Booking.java
  14. 41
      src/main/java/com/zilber/boot/module/booking/service/BookingService.java
  15. 273
      src/main/java/com/zilber/boot/module/booking/service/impl/BookingServiceImpl.java
  16. 126
      src/main/java/com/zilber/boot/module/booking/vo/BookingVO.java
  17. 2
      src/main/resources/application-druid.yml

@ -1,82 +0,0 @@
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));
}
}

@ -1,62 +0,0 @@
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);
}

@ -1,34 +0,0 @@
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;
}
}

@ -1,32 +0,0 @@
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;
}
}

@ -1,33 +0,0 @@
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;
}
}

@ -1,41 +0,0 @@
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;
}

@ -1,24 +0,0 @@
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
{
}

@ -1,115 +0,0 @@
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;
}

@ -1,39 +0,0 @@
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;
}

@ -1,113 +0,0 @@
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;
}

@ -1,11 +0,0 @@
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 {
}

@ -1,11 +0,0 @@
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 {
}

@ -1,167 +0,0 @@
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;
}
}

@ -1,41 +0,0 @@
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);
}

@ -1,273 +0,0 @@
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;
}
}

@ -1,126 +0,0 @@
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);
}
}

@ -6,7 +6,7 @@ spring:
druid:
# 主库数据源
master:
url: jdbc:mysql://39.100.74.100:3306/tc-lab?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
url: jdbc:mysql://39.100.74.100:3306/intelligence_site?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: root@123456
# 从库数据源

Loading…
Cancel
Save