From 51304c6d83add0a97dd05c6556acb02ece22aaf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BA=AC=E9=80=9A?= <2405957150@qq.com> Date: Wed, 28 May 2025 16:47:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=85=AC=E5=8A=A1=E5=87=BA=E5=B7=AE?= =?UTF-8?q?=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PublicBusinessTripController.java | 119 ++++++++++++++++++ .../database/domain/PublicBusinessTrip.java | 101 +++++++++++++++ .../mapper/PublicBusinessTripMapper.java | 15 +++ .../service/PublicBusinessTripService.java | 12 ++ .../impl/PublicBusinessTripServiceImpl.java | 16 +++ 5 files changed, 263 insertions(+) create mode 100644 gather-app/src/main/java/com/ruoyi/business/controller/PublicBusinessTripController.java create mode 100644 gather-app/src/main/java/com/ruoyi/database/domain/PublicBusinessTrip.java create mode 100644 gather-app/src/main/java/com/ruoyi/database/mapper/PublicBusinessTripMapper.java create mode 100644 gather-app/src/main/java/com/ruoyi/database/service/PublicBusinessTripService.java create mode 100644 gather-app/src/main/java/com/ruoyi/database/service/impl/PublicBusinessTripServiceImpl.java diff --git a/gather-app/src/main/java/com/ruoyi/business/controller/PublicBusinessTripController.java b/gather-app/src/main/java/com/ruoyi/business/controller/PublicBusinessTripController.java new file mode 100644 index 0000000..88cfb46 --- /dev/null +++ b/gather-app/src/main/java/com/ruoyi/business/controller/PublicBusinessTripController.java @@ -0,0 +1,119 @@ +package com.ruoyi.business.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.database.domain.PublicBusinessTrip; +import com.ruoyi.database.service.PublicBusinessTripService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.List; + +/** + * @Description PublicBusinessTripController + * @Author lijingtong + * @Date 2025-05-28 + */ + +@RestController +@RequiredArgsConstructor +@RequestMapping("/business/publicBusinessTrip") +@Api(tags = "公务出差申请") +public class PublicBusinessTripController extends BaseController { + + private final PublicBusinessTripService publicBusinessTripService; + + + @GetMapping("/getList") + @ApiOperation("查询公务出差申请") + public TableDataInfo getList(PublicBusinessTrip publicBusinessTrip) { + startPage(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + QueryWrapper queryWrapper = new QueryWrapper<>(publicBusinessTrip); + queryWrapper.orderByDesc("create_time"); + String fTime = publicBusinessTrip.getFTime(); + String eTime = publicBusinessTrip.getETime(); +// 把时间转成LocalDateTime格式 + LocalDateTime fromTime = LocalDateTime.parse(fTime, formatter); + LocalDateTime endTime = LocalDateTime.parse(eTime, formatter); + queryWrapper.orderByDesc("create_time"); + if (fTime != null && fTime != null) { + queryWrapper.between("create_time", fromTime, endTime); + } + List list = publicBusinessTripService.list(); + long size = list.size(); + return getDataTableEnhance(list, size); + } + + @ApiOperation("新增或修改公务出差申请 传id为修改 不传id为新增") + @PostMapping("/addOrUpdate") + public AjaxResult add(@RequestBody PublicBusinessTrip publicBusinessTrip) { + if (publicBusinessTrip.getId() == null) { + publicBusinessTrip.setCreateBy(getUsername()); + publicBusinessTrip.setCreateTime(LocalDateTime.now()); + publicBusinessTrip.setUpdateBy(getUsername()); + publicBusinessTrip.setUpdateTime(LocalDateTime.now()); + boolean result = publicBusinessTripService.save(publicBusinessTrip); + if (result) { + return AjaxResult.success("新增成功"); + } + return AjaxResult.error("新增失败"); + } else { + publicBusinessTrip.setUpdateBy(getUsername()); + boolean result = publicBusinessTripService.updateById(publicBusinessTrip); + if (!result) { + return AjaxResult.error("修改公务出差申请失败"); + } + return AjaxResult.success(result); + } + } + + @ApiOperation("删除公务出差申请") + @DeleteMapping("/delete/{id}") + public AjaxResult delete(@PathVariable Long id) { + boolean result = publicBusinessTripService.removeById(id); + if (result) { + return AjaxResult.success("删除成功"); + } + return AjaxResult.error("删除失败"); + } + + @ApiOperation("查询公务出差申请详情") + @GetMapping("/detail/{id}") + public AjaxResult detail(@PathVariable Long id) { + PublicBusinessTrip publicBusinessTrip = publicBusinessTripService.getById(id); + if (publicBusinessTrip == null) { + return AjaxResult.error("查询失败"); + } + return AjaxResult.success(publicBusinessTrip); + } + + @ApiOperation("审批公务出差申请") + @PostMapping("/approval") + public AjaxResult approval(@RequestBody PublicBusinessTrip publicBusinessTrip) { + Integer state = publicBusinessTrip.getState(); + publicBusinessTrip.setState(state); + boolean result = publicBusinessTripService.updateById(publicBusinessTrip); + if (!result) { + return AjaxResult.error("审批公务出差申请失败"); + } + return AjaxResult.success("审批公务出差申请成功"); + } + + @ApiOperation("批量删除公务出差申请") + @DeleteMapping("/batchDelete") + public AjaxResult batchDelete(@RequestBody List ids) { + boolean result = publicBusinessTripService.removeByIds(ids); + if (!result) { + return AjaxResult.error("批量删除公务出差申请失败"); + } + return AjaxResult.success("批量删除公务出差申请成功"); + } + +} diff --git a/gather-app/src/main/java/com/ruoyi/database/domain/PublicBusinessTrip.java b/gather-app/src/main/java/com/ruoyi/database/domain/PublicBusinessTrip.java new file mode 100644 index 0000000..195b3e2 --- /dev/null +++ b/gather-app/src/main/java/com/ruoyi/database/domain/PublicBusinessTrip.java @@ -0,0 +1,101 @@ +package com.ruoyi.database.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class PublicBusinessTrip { + + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty("申请单位") + private Long deptId; + + @ApiModelProperty("申请单位名称") + private String deptName; // 修正类型为String + + @ApiModelProperty("申请人姓名") + private String applicantName; + + @ApiModelProperty("警号") + private String policeNumber; + + @ApiModelProperty("联系方式") + private String contactWay; + + @ApiModelProperty("申请日期") + @JsonFormat(pattern = "yyyy年MM月dd日") + private LocalDateTime applicationDate; + + @ApiModelProperty("出差开始时间") + @JsonFormat(pattern = "yyyy年MM月dd日 HH:mm") + private LocalDateTime startDateTime; + + @ApiModelProperty("出差结束时间") + @JsonFormat(pattern = "yyyy年MM月dd日 HH:mm") + private LocalDateTime endDateTime; + + @ApiModelProperty("目的地") + private String destination; + + @ApiModelProperty("事由") + private String taskReason; + + @ApiModelProperty("路线规划") + private String routePlan; + + @ApiModelProperty("携带物品") + private String carriedItems; + + @ApiModelProperty("涉密文件密级") + private String classifiedFiles; + + @ApiModelProperty("份数") + private Integer number; + + @ApiModelProperty("文件编号") + private String fileCode; + + @ApiModelProperty("随行人员") + private String accompanyingPersonnel; + + @ApiModelProperty("交通费用") + private Double transportationCost; + + @ApiModelProperty("住宿费用") + private Double accommodationCost; + + @ApiModelProperty("伙食补助") + private Double mealSubsidy; + + @ApiModelProperty("审批状态 0-未审批 1-部门审批通过 2-部门审批不通过 3-警务保障部门审批通过 4-警务保障部门审批不通过 5-局领导审批通过 6-局领导审批不通过") + private Integer state; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("创建时间") + private LocalDateTime createTime; + + @ApiModelProperty("创建人") + private String createBy; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("修改时间") + private LocalDateTime updateTime; + + @ApiModelProperty("修改人") + private String updateBy; + + @TableField(exist = false) + private String fTime; // 临时字段:开始时间字符串 + + @TableField(exist = false) + private String eTime; // 临时字段:结束时间字符串 +} \ No newline at end of file diff --git a/gather-app/src/main/java/com/ruoyi/database/mapper/PublicBusinessTripMapper.java b/gather-app/src/main/java/com/ruoyi/database/mapper/PublicBusinessTripMapper.java new file mode 100644 index 0000000..1031a13 --- /dev/null +++ b/gather-app/src/main/java/com/ruoyi/database/mapper/PublicBusinessTripMapper.java @@ -0,0 +1,15 @@ +package com.ruoyi.database.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.database.domain.PublicBusinessTrip; +import org.apache.ibatis.annotations.Mapper; + +/** + * @Description PublicBusinessTripMapper + * @Author lijingtong + * @Date 2025-05-28 + */ + +@Mapper +public interface PublicBusinessTripMapper extends BaseMapper { +} diff --git a/gather-app/src/main/java/com/ruoyi/database/service/PublicBusinessTripService.java b/gather-app/src/main/java/com/ruoyi/database/service/PublicBusinessTripService.java new file mode 100644 index 0000000..67f794c --- /dev/null +++ b/gather-app/src/main/java/com/ruoyi/database/service/PublicBusinessTripService.java @@ -0,0 +1,12 @@ +package com.ruoyi.database.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.database.domain.PublicBusinessTrip; + +/** + * @Description PublicBusinessTripService + * @Author lijingtong + * @Date 2025-05-28 + */ +public interface PublicBusinessTripService extends IService { +} diff --git a/gather-app/src/main/java/com/ruoyi/database/service/impl/PublicBusinessTripServiceImpl.java b/gather-app/src/main/java/com/ruoyi/database/service/impl/PublicBusinessTripServiceImpl.java new file mode 100644 index 0000000..194373a --- /dev/null +++ b/gather-app/src/main/java/com/ruoyi/database/service/impl/PublicBusinessTripServiceImpl.java @@ -0,0 +1,16 @@ +package com.ruoyi.database.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.database.domain.PublicBusinessTrip; +import com.ruoyi.database.mapper.PublicBusinessTripMapper; +import com.ruoyi.database.service.PublicBusinessTripService; +import org.springframework.stereotype.Service; + +/** + * @Description PublicBusinessTripServiceImpl + * @Author lijingtong + * @Date 2025-05-28 + */ +@Service +public class PublicBusinessTripServiceImpl extends ServiceImpl implements PublicBusinessTripService { +}