diff --git a/backend/src/main/java/com/yfd/platform/data/controller/ApprovalChangeLogController.java b/backend/src/main/java/com/yfd/platform/data/controller/ApprovalChangeLogController.java new file mode 100644 index 0000000..ad92308 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/data/controller/ApprovalChangeLogController.java @@ -0,0 +1,76 @@ +package com.yfd.platform.data.controller; + +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.data.domain.ApprovalChangeLog; +import com.yfd.platform.data.service.IApprovalChangeLogService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; +import java.util.List; + +/** + *

+ * 审批数据变更记录表 前端控制器 + *

+ */ +@RestController +@RequestMapping("/data/approvalChangeLog") +@Tag(name = "变更记录") +public class ApprovalChangeLogController { + + @Resource + private IApprovalChangeLogService approvalChangeLogService; + + @GetMapping("/list") + @Operation(summary = "查询变更记录列表") + public ResponseResult list() { + List list = approvalChangeLogService.list(); + return ResponseResult.successData(list); + } + + @GetMapping("/getByApprovalId") + @Operation(summary = "根据审批批次ID查询变更记录") + public ResponseResult getByApprovalId(@RequestParam String approvalId) { + List list = approvalChangeLogService.getByApprovalId(approvalId); + return ResponseResult.successData(list); + } + + @GetMapping("/getByDataId") + @Operation(summary = "根据草稿数据ID查询变更记录") + public ResponseResult getByDataId(@RequestParam String dataId) { + List list = approvalChangeLogService.getByDataId(dataId); + return ResponseResult.successData(list); + } + + @GetMapping("/getByBizType") + @Operation(summary = "根据业务类型查询") + public ResponseResult getByBizType(@RequestParam String bizType) { + List list = approvalChangeLogService.getByBizType(bizType); + return ResponseResult.successData(list); + } + + @GetMapping("/getById") + @Operation(summary = "根据ID查询变更记录") + public ResponseResult getById(@RequestParam Long id) { + ApprovalChangeLog changeLog = approvalChangeLogService.getById(id); + return ResponseResult.successData(changeLog); + } + + @PostMapping("/add") + @Operation(summary = "新增变更记录") + public ResponseResult add(@RequestBody ApprovalChangeLog changeLog) { + changeLog.setCreatedAt(new Date()); + boolean result = approvalChangeLogService.save(changeLog); + return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); + } + + @PostMapping("/delete") + @Operation(summary = "删除变更记录") + public ResponseResult delete(@RequestParam Long id) { + boolean result = approvalChangeLogService.removeById(id); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } +} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/data/controller/ApprovalLogController.java b/backend/src/main/java/com/yfd/platform/data/controller/ApprovalLogController.java new file mode 100644 index 0000000..d17534c --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/data/controller/ApprovalLogController.java @@ -0,0 +1,69 @@ +package com.yfd.platform.data.controller; + +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.data.domain.ApprovalLog; +import com.yfd.platform.data.service.IApprovalLogService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; +import java.util.List; + +/** + *

+ * 审批操作日志表 前端控制器 + *

+ */ +@RestController +@RequestMapping("/data/approvalLog") +@Tag(name = "审批日志") +public class ApprovalLogController { + + @Resource + private IApprovalLogService approvalLogService; + + @GetMapping("/list") + @Operation(summary = "查询审批日志列表") + public ResponseResult list() { + List list = approvalLogService.list(); + return ResponseResult.successData(list); + } + + @GetMapping("/getByApprovalId") + @Operation(summary = "根据审批批次ID查询日志") + public ResponseResult getByApprovalId(@RequestParam String approvalId) { + List list = approvalLogService.getByApprovalId(approvalId); + return ResponseResult.successData(list); + } + + @GetMapping("/getByAction") + @Operation(summary = "根据操作类型查询") + public ResponseResult getByAction(@RequestParam String action) { + List list = approvalLogService.getByAction(action); + return ResponseResult.successData(list); + } + + @GetMapping("/getById") + @Operation(summary = "根据ID查询日志") + public ResponseResult getById(@RequestParam Long id) { + ApprovalLog approvalLog = approvalLogService.getById(id); + return ResponseResult.successData(approvalLog); + } + + @PostMapping("/add") + @Operation(summary = "新增日志") + public ResponseResult add(@RequestBody ApprovalLog approvalLog) { + approvalLog.setCreatedAt(new Date()); + boolean result = approvalLogService.save(approvalLog); + return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); + } + + @PostMapping("/delete") + @Operation(summary = "删除日志") + public ResponseResult delete(@RequestParam Long id) { + boolean result = approvalLogService.removeById(id); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } +} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/data/controller/ApprovalMainController.java b/backend/src/main/java/com/yfd/platform/data/controller/ApprovalMainController.java new file mode 100644 index 0000000..9ee0ee2 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/data/controller/ApprovalMainController.java @@ -0,0 +1,101 @@ +package com.yfd.platform.data.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.data.domain.ApprovalMain; +import com.yfd.platform.data.service.IApprovalMainService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; + +/** + *

+ * 审批批次主表 前端控制器 + *

+ */ +@RestController +@RequestMapping("/data/approvalMain") +@Tag(name = "审批管理") +public class ApprovalMainController { + + @Resource + private IApprovalMainService approvalMainService; + + @GetMapping("/page") + @Operation(summary = "分页查询审批列表") + public ResponseResult queryPageList( + @RequestParam(defaultValue = "1") Integer current, + @RequestParam(defaultValue = "10") Integer size, + @RequestParam(required = false) String bizType, + @RequestParam(required = false) String status) { + Page page = new Page<>(current, size); + Page result = approvalMainService.queryPageList(page, bizType, status); + return ResponseResult.successData(result); + } + + @GetMapping("/getById") + @Operation(summary = "根据ID查询审批") + public ResponseResult getById(@RequestParam Long id) { + ApprovalMain approvalMain = approvalMainService.getById(id); + return ResponseResult.successData(approvalMain); + } + + @GetMapping("/getByApprovalNo") + @Operation(summary = "根据审批批次号查询") + public ResponseResult getByApprovalNo(@RequestParam String approvalNo) { + ApprovalMain approvalMain = approvalMainService.getByApprovalNo(approvalNo); + return ResponseResult.successData(approvalMain); + } + + @PostMapping("/submit") + @Operation(summary = "提交审批") + public ResponseResult submitApproval(@RequestBody ApprovalMain approvalMain) { + boolean result = approvalMainService.submitApproval(approvalMain); + return result ? ResponseResult.success("提交成功") : ResponseResult.error("提交失败"); + } + + @PostMapping("/approve") + @Operation(summary = "审批通过") + public ResponseResult approve(@RequestParam String id, + @RequestParam String approverId, + @RequestParam(required = false) String comment) { + boolean result = approvalMainService.approve(id, approverId, comment); + return result ? ResponseResult.success("审批通过") : ResponseResult.error("审批失败"); + } + + @PostMapping("/reject") + @Operation(summary = "审批驳回") + public ResponseResult reject(@RequestParam String id, + @RequestParam String approverId, + @RequestParam(required = false) String comment) { + boolean result = approvalMainService.reject(id, approverId, comment); + return result ? ResponseResult.success("审批驳回") : ResponseResult.error("审批失败"); + } + + @PostMapping("/add") + @Operation(summary = "新增审批") + public ResponseResult add(@RequestBody ApprovalMain approvalMain) { + approvalMain.setCreatedAt(new Date()); + approvalMain.setUpdatedAt(new Date()); + boolean result = approvalMainService.save(approvalMain); + return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); + } + + @PostMapping("/update") + @Operation(summary = "修改审批") + public ResponseResult update(@RequestBody ApprovalMain approvalMain) { + approvalMain.setUpdatedAt(new Date()); + boolean result = approvalMainService.updateById(approvalMain); + return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败"); + } + + @PostMapping("/delete") + @Operation(summary = "删除审批") + public ResponseResult delete(@RequestParam Long id) { + boolean result = approvalMainService.removeById(id); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } +} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/data/controller/FishDraftDataController.java b/backend/src/main/java/com/yfd/platform/data/controller/FishDraftDataController.java new file mode 100644 index 0000000..ea55c4a --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/data/controller/FishDraftDataController.java @@ -0,0 +1,167 @@ +package com.yfd.platform.data.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yfd.platform.common.DataSourceLoadOptionsBase; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.data.domain.FishDraftData; +import com.yfd.platform.data.service.IFishDraftDataService; +import com.yfd.platform.utils.KendoUtil; +import com.yfd.platform.utils.QgcQueryWrapperUtil; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; +import java.util.List; + +/** + *

+ * 过鱼数据草稿表 前端控制器 + *

+ */ +@RestController +@RequestMapping("/data/fishDraft") +@Tag(name = "过鱼数据") +public class FishDraftDataController { + + @Resource + private IFishDraftDataService fishDraftDataService; + +// @GetMapping("/page") +// @Operation(summary = "分页查询过鱼数据") +// public ResponseResult queryPageList( +// @RequestParam(defaultValue = "1") Integer current, +// @RequestParam(defaultValue = "10") Integer size, +// @RequestParam(required = false) String stcd, +// @RequestParam(required = false) String status, +// @RequestParam(required = false) String ftp) { +// Page page = new Page<>(current, size); +// Page result = fishDraftDataService.queryPageList(page, stcd, status, ftp); +// return ResponseResult.successData(result); +// } + + @PostMapping("/page") + @Operation(summary = "分页查询过鱼数据") + public ResponseResult queryPageList(@RequestBody DataSourceRequest dataSourceRequest) { + Page page = KendoUtil.getPage(dataSourceRequest); + DataSourceLoadOptionsBase loadOptions = dataSourceRequest.toDevRequest(); + String stcd = QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "stcd"); + String status = QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "status"); + String ftp = QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "ftp"); + Page result = fishDraftDataService.queryPageList(page, stcd, status, ftp); + return ResponseResult.successData(result); + } + + @GetMapping("/list") + @Operation(summary = "查询过鱼数据列表") + public ResponseResult list() { + List list = fishDraftDataService.list(); + return ResponseResult.successData(list); + } + + @GetMapping("/getById") + @Operation(summary = "根据ID查询") + public ResponseResult getById(@RequestParam Long id) { + FishDraftData fishDraftData = fishDraftDataService.getById(id); + return ResponseResult.successData(fishDraftData); + } + + @GetMapping("/getByApprovalId") + @Operation(summary = "根据审批批次ID查询") + public ResponseResult getByApprovalId(@RequestParam Long approvalId) { + List list = fishDraftDataService.getByApprovalId(approvalId); + return ResponseResult.successData(list); + } + + @GetMapping("/getByStatus") + @Operation(summary = "根据状态查询") + public ResponseResult getByStatus(@RequestParam String status) { + List list = fishDraftDataService.getByStatus(status); + return ResponseResult.successData(list); + } + + @GetMapping("/getByStcd") + @Operation(summary = "根据电站编码查询") + public ResponseResult getByStcd(@RequestParam String stcd) { + List list = fishDraftDataService.getByStcd(stcd); + return ResponseResult.successData(list); + } + + @PostMapping("/saveDraft") + @Operation(summary = "保存草稿") + public ResponseResult saveDraft(@RequestBody FishDraftData fishDraftData) { + boolean result = fishDraftDataService.saveDraft(fishDraftData); + return result ? ResponseResult.success("保存成功") : ResponseResult.error("保存失败"); + } + + @PostMapping("/updateDraft") + @Operation(summary = "更新草稿") + public ResponseResult updateDraft(@RequestBody FishDraftData fishDraftData) { + boolean result = fishDraftDataService.updateDraft(fishDraftData); + return result ? ResponseResult.success("更新成功") : ResponseResult.error("更新失败"); + } + + @PostMapping("/removeDraft") + @Operation(summary = "删除草稿(软删除)") + public ResponseResult removeDraft(@RequestParam Long id, + @RequestParam String operatorId) { + boolean result = fishDraftDataService.removeDraft(id, operatorId); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } + + @PostMapping("/submitDraft") + @Operation(summary = "提交草稿") + public ResponseResult submitDraft(@RequestParam Long id, + @RequestParam String operatorId) { + boolean result = fishDraftDataService.submitDraft(id, operatorId); + return result ? ResponseResult.success("提交成功") : ResponseResult.error("提交失败"); + } + + @PostMapping("/submitDrafts") + @Operation(summary = "批量提交草稿") + public ResponseResult submitDrafts(@RequestBody List ids, + @RequestParam String operatorId) { + boolean result = fishDraftDataService.submitDrafts(ids, operatorId); + return result ? ResponseResult.success("提交成功") : ResponseResult.error("提交失败"); + } + + @PostMapping("/lockDraft") + @Operation(summary = "锁定草稿") + public ResponseResult lockDraft(@RequestParam Long id) { + boolean result = fishDraftDataService.lockDraft(id); + return result ? ResponseResult.success("锁定成功") : ResponseResult.error("锁定失败"); + } + + @PostMapping("/unlockDraft") + @Operation(summary = "解锁草稿") + public ResponseResult unlockDraft(@RequestParam Long id) { + boolean result = fishDraftDataService.unlockDraft(id); + return result ? ResponseResult.success("解锁成功") : ResponseResult.error("解锁失败"); + } + + @PostMapping("/add") + @Operation(summary = "新增过鱼数据") + public ResponseResult add(@RequestBody FishDraftData fishDraftData) { + fishDraftData.setCreatedAt(new Date()); + fishDraftData.setUpdatedAt(new Date()); + boolean result = fishDraftDataService.save(fishDraftData); + return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); + } + + @PostMapping("/update") + @Operation(summary = "修改过鱼数据") + public ResponseResult update(@RequestBody FishDraftData fishDraftData) { + fishDraftData.setUpdatedAt(new Date()); + boolean result = fishDraftDataService.updateById(fishDraftData); + return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败"); + } + + @PostMapping("/delete") + @Operation(summary = "删除过鱼数据") + public ResponseResult delete(@RequestParam Long id) { + boolean result = fishDraftDataService.removeById(id); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } +} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/data/domain/ApprovalChangeLog.java b/backend/src/main/java/com/yfd/platform/data/domain/ApprovalChangeLog.java new file mode 100644 index 0000000..b7e1af8 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/data/domain/ApprovalChangeLog.java @@ -0,0 +1,69 @@ +package com.yfd.platform.data.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 审批数据变更记录表 + *

+ */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("APPROVAL_CHANGE_LOG") +public class ApprovalChangeLog implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_UUID) + private String id; + + /** + * 审批批次ID + */ + private String approvalId; + + /** + * 草稿数据ID + */ + private String dataId; + + /** + * 业务类型(FISH) + */ + private String bizType; + + /** + * 操作类型(UPDATE修改 / DELETE删除) + */ + private String operationType; + + /** + * 变更内容JSON(before/after/changed_fields) + */ + private String changeJson; + + /** + * 操作人ID + */ + private String operatorId; + + /** + * 操作时间 + */ + private Date operateTime; + + /** + * 创建时间 + */ + private Date createdAt; +} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/data/domain/ApprovalLog.java b/backend/src/main/java/com/yfd/platform/data/domain/ApprovalLog.java new file mode 100644 index 0000000..bb20c64 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/data/domain/ApprovalLog.java @@ -0,0 +1,59 @@ +package com.yfd.platform.data.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 审批操作日志表 + *

+ */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("APPROVAL_LOG") +public class ApprovalLog implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_UUID) + private String id; + + /** + * 审批批次ID + */ + private String approvalId; + + /** + * 操作类型(SUBMIT提交 / APPROVE通过 / REJECT驳回) + */ + private String action; + + /** + * 操作人ID + */ + private String operatorId; + + /** + * 操作时间 + */ + private Date operateTime; + + /** + * 审批意见 + */ + private String commentInfo; + + /** + * 创建时间 + */ + private Date createdAt; +} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/data/domain/ApprovalMain.java b/backend/src/main/java/com/yfd/platform/data/domain/ApprovalMain.java new file mode 100644 index 0000000..950200f --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/data/domain/ApprovalMain.java @@ -0,0 +1,84 @@ +package com.yfd.platform.data.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 审批批次主表 + *

+ */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("APPROVAL_MAIN") +public class ApprovalMain implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_UUID) + private String id; + + /** + * 审批批次号 + */ + private String approvalNo; + + /** + * 业务类型(FISH过鱼数据) + */ + private String bizType; + + /** + * 本次提交数据条数 + */ + private Integer dataCount; + + /** + * 提交人ID + */ + private String applyUserId; + + /** + * 提交时间 + */ + private Date applyTime; + + /** + * 审批状态(PENDING待审批 / APPROVED已通过 / REJECTED已驳回) + */ + private String status; + + /** + * 审批人ID + */ + private String approverId; + + /** + * 审批完成时间 + */ + private Date approveTime; + + /** + * 审批备注 + */ + private String remark; + + /** + * 创建时间 + */ + private Date createdAt; + + /** + * 更新时间 + */ + private Date updatedAt; +} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/data/domain/FishDraftData.java b/backend/src/main/java/com/yfd/platform/data/domain/FishDraftData.java new file mode 100644 index 0000000..f602b9f --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/data/domain/FishDraftData.java @@ -0,0 +1,166 @@ +package com.yfd.platform.data.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 过鱼数据草稿表(用于导入、录入及审批流程) + *

+ */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("FISH_DRAFT_DATA") +public class FishDraftData implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_UUID) + private String id; + + /** + * 过鱼设施编码 + */ + private String stcd; + + /** + * 填报时间 + */ + private Date tm; + + /** + * 鱼类 + */ + private String ftp; + + /** + * 鱼类全长 + */ + private String fsz; + + /** + * 过鱼数量 + */ + @TableField(value = "FCNT") + private Integer fcnt; + + /** + * 平均体重 + */ + private String fwet; + + /** + * 开始日期 + */ + private Date strdt; + + /** + * 结束日期 + */ + private Date enddt; + + /** + * 游向(上行/下行/上行折返/下行折返) + */ + private String direction; + + /** + * 年份 + */ + private Integer yr; + + /** + * 主要月份 + */ + private Integer mouth; + + /** + * 过鱼视频文件路径 + */ + private String vdpth; + + /** + * 图片文件路径 + */ + private String picpth; + + /** + * 是否鱼苗(0否 1是) + */ + private Integer isfs; + + /** + * 数据来源(MANUAL手工 / IMPORT导入 / AUTO自动) + */ + private String sourceType; + + /** + * 审批批次ID + */ + private Long approvalId; + + /** + * 状态(DRAFT未提交 / SUBMITTED已提交 / APPROVED已通过 / REJECTED已驳回) + */ + private String status; + + /** + * 锁定标识(1锁定不可编辑 0可编辑) + */ + private Integer lockFlag; + + /** + * 提交审批时间 + */ + private Date submitTime; + + /** + * 审批完成时间 + */ + private Date approveTime; + + /** + * 删除标记(0未删除 1已删除) + */ + private Integer deletedFlag; + + /** + * 删除人 + */ + private String deletedBy; + + /** + * 删除时间 + */ + private Date deletedAt; + + /** + * 创建时间 + */ + private Date createdAt; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 更新时间 + */ + private Date updatedAt; + + /** + * 更新人 + */ + private String updatedBy; +} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/data/mapper/ApprovalChangeLogMapper.java b/backend/src/main/java/com/yfd/platform/data/mapper/ApprovalChangeLogMapper.java new file mode 100644 index 0000000..4019a25 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/data/mapper/ApprovalChangeLogMapper.java @@ -0,0 +1,40 @@ +package com.yfd.platform.data.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.data.domain.ApprovalChangeLog; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + *

+ * 审批数据变更记录表 Mapper 接口 + *

+ */ +public interface ApprovalChangeLogMapper extends BaseMapper { + + /** + * 根据审批批次ID查询变更记录 + */ + @Select("SELECT * FROM APPROVAL_CHANGE_LOG WHERE APPROVAL_ID = #{approvalId} ORDER BY OPERATE_TIME DESC") + List selectByApprovalId(@Param("approvalId") String approvalId); + + /** + * 根据草稿数据ID查询变更记录 + */ + @Select("SELECT * FROM APPROVAL_CHANGE_LOG WHERE DATA_ID = #{dataId} ORDER BY OPERATE_TIME DESC") + List selectByDataId(@Param("dataId") String dataId); + + /** + * 根据业务类型查询 + */ + @Select("SELECT * FROM APPROVAL_CHANGE_LOG WHERE BIZ_TYPE = #{bizType} ORDER BY OPERATE_TIME DESC") + List selectByBizType(@Param("bizType") String bizType); + + /** + * 根据操作类型查询 + */ + @Select("SELECT * FROM APPROVAL_CHANGE_LOG WHERE OPERATION_TYPE = #{operationType} ORDER BY OPERATE_TIME DESC") + List selectByOperationType(@Param("operationType") String operationType); +} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/data/mapper/ApprovalLogMapper.java b/backend/src/main/java/com/yfd/platform/data/mapper/ApprovalLogMapper.java new file mode 100644 index 0000000..b522e06 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/data/mapper/ApprovalLogMapper.java @@ -0,0 +1,34 @@ +package com.yfd.platform.data.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.data.domain.ApprovalLog; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + *

+ * 审批操作日志表 Mapper 接口 + *

+ */ +public interface ApprovalLogMapper extends BaseMapper { + + /** + * 根据审批批次ID查询日志列表 + */ + @Select("SELECT * FROM APPROVAL_LOG WHERE APPROVAL_ID = #{approvalId} ORDER BY OPERATE_TIME DESC") + List selectByApprovalId(@Param("approvalId") String approvalId); + + /** + * 根据操作类型查询 + */ + @Select("SELECT * FROM APPROVAL_LOG WHERE ACTION = #{action} ORDER BY OPERATE_TIME DESC") + List selectByAction(@Param("action") String action); + + /** + * 根据操作人查询 + */ + @Select("SELECT * FROM APPROVAL_LOG WHERE OPERATOR_ID = #{operatorId} ORDER BY OPERATE_TIME DESC") + List selectByOperatorId(@Param("operatorId") String operatorId); +} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/data/mapper/ApprovalMainMapper.java b/backend/src/main/java/com/yfd/platform/data/mapper/ApprovalMainMapper.java new file mode 100644 index 0000000..77fe3bd --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/data/mapper/ApprovalMainMapper.java @@ -0,0 +1,40 @@ +package com.yfd.platform.data.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.data.domain.ApprovalMain; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + *

+ * 审批批次主表 Mapper 接口 + *

+ */ +public interface ApprovalMainMapper extends BaseMapper { + + /** + * 根据审批批次号查询 + */ + @Select("SELECT * FROM APPROVAL_MAIN WHERE APPROVAL_NO = #{approvalNo}") + ApprovalMain selectByApprovalNo(@Param("approvalNo") String approvalNo); + + /** + * 根据业务类型查询审批列表 + */ + @Select("SELECT * FROM APPROVAL_MAIN WHERE BIZ_TYPE = #{bizType} ORDER BY CREATED_AT DESC") + List selectByBizType(@Param("bizType") String bizType); + + /** + * 根据状态查询审批列表 + */ + @Select("SELECT * FROM APPROVAL_MAIN WHERE STATUS = #{status} ORDER BY CREATED_AT DESC") + List selectByStatus(@Param("status") String status); + + /** + * 根据提交人查询 + */ + @Select("SELECT * FROM APPROVAL_MAIN WHERE APPLY_USER_ID = #{applyUserId} ORDER BY CREATED_AT DESC") + List selectByApplyUserId(@Param("applyUserId") String applyUserId); +} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/data/mapper/FishDraftDataMapper.java b/backend/src/main/java/com/yfd/platform/data/mapper/FishDraftDataMapper.java new file mode 100644 index 0000000..4acbbb2 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/data/mapper/FishDraftDataMapper.java @@ -0,0 +1,52 @@ +package com.yfd.platform.data.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.data.domain.FishDraftData; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + *

+ * 过鱼数据草稿表 Mapper 接口 + *

+ */ +public interface FishDraftDataMapper extends BaseMapper { + + /** + * 根据审批批次ID查询草稿数据 + */ + @Select("SELECT * FROM FISH_DRAFT_DATA WHERE APPROVAL_ID = #{approvalId} ORDER BY TM DESC") + List selectByApprovalId(@Param("approvalId") Long approvalId); + + /** + * 根据状态查询草稿数据 + */ + @Select("SELECT * FROM FISH_DRAFT_DATA WHERE STATUS = #{status} AND DELETED_FLAG = 0 ORDER BY TM DESC") + List selectByStatus(@Param("status") String status); + + /** + * 根据电站编码查询草稿数据 + */ + @Select("SELECT * FROM FISH_DRAFT_DATA WHERE STCD = #{stcd} AND DELETED_FLAG = 0 ORDER BY TM DESC") + List selectByStcd(@Param("stcd") String stcd); + + /** + * 根据鱼类名称查询 + */ + @Select("SELECT * FROM FISH_DRAFT_DATA WHERE FTP = #{ftp} AND DELETED_FLAG = 0 ORDER BY TM DESC") + List selectByFtp(@Param("ftp") String ftp); + + /** + * 查询未删除的草稿数据 + */ + @Select("SELECT * FROM FISH_DRAFT_DATA WHERE DELETED_FLAG = 0 ORDER BY CREATED_AT DESC") + List selectAllNotDeleted(); + + /** + * 根据审批批次ID统计数量 + */ + @Select("SELECT COUNT(*) FROM FISH_DRAFT_DATA WHERE APPROVAL_ID = #{approvalId}") + int countByApprovalId(@Param("approvalId") Long approvalId); +} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/data/service/IApprovalChangeLogService.java b/backend/src/main/java/com/yfd/platform/data/service/IApprovalChangeLogService.java new file mode 100644 index 0000000..66e609f --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/data/service/IApprovalChangeLogService.java @@ -0,0 +1,35 @@ +package com.yfd.platform.data.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.data.domain.ApprovalChangeLog; + +import java.util.List; + +/** + *

+ * 审批数据变更记录表 服务类 + *

+ */ +public interface IApprovalChangeLogService extends IService { + + /** + * 根据审批批次ID查询变更记录 + */ + List getByApprovalId(String approvalId); + + /** + * 根据草稿数据ID查询变更记录 + */ + List getByDataId(String dataId); + + /** + * 根据业务类型查询 + */ + List getByBizType(String bizType); + + /** + * 记录变更 + */ + boolean logChange(String approvalId, String dataId, String bizType, String operationType, + String changeJson, String operatorId); +} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/data/service/IApprovalLogService.java b/backend/src/main/java/com/yfd/platform/data/service/IApprovalLogService.java new file mode 100644 index 0000000..8d01030 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/data/service/IApprovalLogService.java @@ -0,0 +1,39 @@ +package com.yfd.platform.data.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.data.domain.ApprovalLog; + +import java.util.List; + +/** + *

+ * 审批操作日志表 服务类 + *

+ */ +public interface IApprovalLogService extends IService { + + /** + * 根据审批批次ID查询日志列表 + */ + List getByApprovalId(String approvalId); + + /** + * 根据操作类型查询 + */ + List getByAction(String action); + + /** + * 记录提交操作 + */ + boolean logSubmit(String approvalId, String operatorId, String comment); + + /** + * 记录通过操作 + */ + boolean logApprove(String approvalId, String operatorId, String comment); + + /** + * 记录驳回操作 + */ + boolean logReject(String approvalId, String operatorId, String comment); +} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/data/service/IApprovalMainService.java b/backend/src/main/java/com/yfd/platform/data/service/IApprovalMainService.java new file mode 100644 index 0000000..d20136b --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/data/service/IApprovalMainService.java @@ -0,0 +1,48 @@ +package com.yfd.platform.data.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.data.domain.ApprovalMain; + +/** + *

+ * 审批批次主表 服务类 + *

+ */ +public interface IApprovalMainService extends IService { + + /** + * 分页查询审批列表 + */ + Page queryPageList(Page page, String bizType, String status); + + /** + * 根据审批批次号查询 + */ + ApprovalMain getByApprovalNo(String approvalNo); + + /** + * 根据业务类型查询 + */ + Page getByBizType(String bizType, Page page); + + /** + * 根据状态查询 + */ + Page getByStatus(String status, Page page); + + /** + * 提交审批 + */ + boolean submitApproval(ApprovalMain approvalMain); + + /** + * 审批通过 + */ + boolean approve(String id, String approverId, String comment); + + /** + * 审批驳回 + */ + boolean reject(String id, String approverId, String comment); +} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/data/service/IFishDraftDataService.java b/backend/src/main/java/com/yfd/platform/data/service/IFishDraftDataService.java new file mode 100644 index 0000000..00f4a47 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/data/service/IFishDraftDataService.java @@ -0,0 +1,70 @@ +package com.yfd.platform.data.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.data.domain.FishDraftData; + +import java.util.List; + +/** + *

+ * 过鱼数据草稿表 服务类 + *

+ */ +public interface IFishDraftDataService extends IService { + + /** + * 分页查询草稿数据 + */ + Page queryPageList(Page page, String stcd, String status, String ftp); + + /** + * 根据审批批次ID查询 + */ + List getByApprovalId(Long approvalId); + + /** + * 根据状态查询 + */ + List getByStatus(String status); + + /** + * 根据电站编码查询 + */ + List getByStcd(String stcd); + + /** + * 保存草稿 + */ + boolean saveDraft(FishDraftData fishDraftData); + + /** + * 更新草稿 + */ + boolean updateDraft(FishDraftData fishDraftData); + + /** + * 删除草稿(软删除) + */ + boolean removeDraft(Long id, String operatorId); + + /** + * 提交草稿 + */ + boolean submitDraft(Long id, String operatorId); + + /** + * 批量提交草稿 + */ + boolean submitDrafts(List ids, String operatorId); + + /** + * 锁定草稿 + */ + boolean lockDraft(Long id); + + /** + * 解锁草稿 + */ + boolean unlockDraft(Long id); +} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/data/service/impl/ApprovalChangeLogServiceImpl.java b/backend/src/main/java/com/yfd/platform/data/service/impl/ApprovalChangeLogServiceImpl.java new file mode 100644 index 0000000..f1f730a --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/data/service/impl/ApprovalChangeLogServiceImpl.java @@ -0,0 +1,53 @@ +package com.yfd.platform.data.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yfd.platform.data.domain.ApprovalChangeLog; +import com.yfd.platform.data.mapper.ApprovalChangeLogMapper; +import com.yfd.platform.data.service.IApprovalChangeLogService; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +/** + *

+ * 审批数据变更记录表 服务实现类 + *

+ */ +@Service +public class ApprovalChangeLogServiceImpl extends ServiceImpl implements IApprovalChangeLogService { + + @Resource + private ApprovalChangeLogMapper approvalChangeLogMapper; + + @Override + public List getByApprovalId(String approvalId) { + return approvalChangeLogMapper.selectByApprovalId(approvalId); + } + + @Override + public List getByDataId(String dataId) { + return approvalChangeLogMapper.selectByDataId(dataId); + } + + @Override + public List getByBizType(String bizType) { + return approvalChangeLogMapper.selectByBizType(bizType); + } + + @Override + public boolean logChange(String approvalId, String dataId, String bizType, String operationType, + String changeJson, String operatorId) { + ApprovalChangeLog changeLog = new ApprovalChangeLog(); + changeLog.setApprovalId(approvalId); + changeLog.setDataId(dataId); + changeLog.setBizType(bizType); + changeLog.setOperationType(operationType); + changeLog.setChangeJson(changeJson); + changeLog.setOperatorId(operatorId); + changeLog.setOperateTime(new Date()); + changeLog.setCreatedAt(new Date()); + return this.save(changeLog); + } +} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/data/service/impl/ApprovalLogServiceImpl.java b/backend/src/main/java/com/yfd/platform/data/service/impl/ApprovalLogServiceImpl.java new file mode 100644 index 0000000..d48ec47 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/data/service/impl/ApprovalLogServiceImpl.java @@ -0,0 +1,69 @@ +package com.yfd.platform.data.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yfd.platform.data.domain.ApprovalLog; +import com.yfd.platform.data.mapper.ApprovalLogMapper; +import com.yfd.platform.data.service.IApprovalLogService; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +/** + *

+ * 审批操作日志表 服务实现类 + *

+ */ +@Service +public class ApprovalLogServiceImpl extends ServiceImpl implements IApprovalLogService { + + @Resource + private ApprovalLogMapper approvalLogMapper; + + @Override + public List getByApprovalId(String approvalId) { + return approvalLogMapper.selectByApprovalId(approvalId); + } + + @Override + public List getByAction(String action) { + return approvalLogMapper.selectByAction(action); + } + + @Override + public boolean logSubmit(String approvalId, String operatorId, String comment) { + ApprovalLog log = new ApprovalLog(); + log.setApprovalId(approvalId); + log.setAction("SUBMIT"); + log.setOperatorId(operatorId); + log.setOperateTime(new Date()); + log.setCommentInfo(comment); + log.setCreatedAt(new Date()); + return this.save(log); + } + + @Override + public boolean logApprove(String approvalId, String operatorId, String comment) { + ApprovalLog log = new ApprovalLog(); + log.setApprovalId(approvalId); + log.setAction("APPROVE"); + log.setOperatorId(operatorId); + log.setOperateTime(new Date()); + log.setCommentInfo(comment); + log.setCreatedAt(new Date()); + return this.save(log); + } + + @Override + public boolean logReject(String approvalId, String operatorId, String comment) { + ApprovalLog log = new ApprovalLog(); + log.setApprovalId(approvalId); + log.setAction("REJECT"); + log.setOperatorId(operatorId); + log.setOperateTime(new Date()); + log.setCommentInfo(comment); + log.setCreatedAt(new Date()); + return this.save(log); + } +} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/data/service/impl/ApprovalMainServiceImpl.java b/backend/src/main/java/com/yfd/platform/data/service/impl/ApprovalMainServiceImpl.java new file mode 100644 index 0000000..907ede4 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/data/service/impl/ApprovalMainServiceImpl.java @@ -0,0 +1,109 @@ +package com.yfd.platform.data.service.impl; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yfd.platform.data.domain.ApprovalLog; +import com.yfd.platform.data.domain.ApprovalMain; +import com.yfd.platform.data.mapper.ApprovalLogMapper; +import com.yfd.platform.data.mapper.ApprovalMainMapper; +import com.yfd.platform.data.service.IApprovalLogService; +import com.yfd.platform.data.service.IApprovalMainService; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; + +import java.util.Date; + +/** + *

+ * 审批批次主表 服务实现类 + *

+ */ +@Service +public class ApprovalMainServiceImpl extends ServiceImpl implements IApprovalMainService { + + @Resource + private ApprovalMainMapper approvalMainMapper; + + @Resource + private IApprovalLogService approvalLogService; + + @Override + public Page queryPageList(Page page, String bizType, String status) { + return this.page(page, this.lambdaQuery() + .eq(StringUtils.hasText(bizType), ApprovalMain::getBizType, bizType) + .eq(StringUtils.hasText(status), ApprovalMain::getStatus, status) + .orderByDesc(ApprovalMain::getCreatedAt) + .getWrapper()); + } + + @Override + public ApprovalMain getByApprovalNo(String approvalNo) { + return approvalMainMapper.selectByApprovalNo(approvalNo); + } + + @Override + public Page getByBizType(String bizType, Page page) { + return this.page(page, this.lambdaQuery() + .eq(ApprovalMain::getBizType, bizType) + .orderByDesc(ApprovalMain::getCreatedAt) + .getWrapper()); + } + + @Override + public Page getByStatus(String status, Page page) { + return this.page(page, this.lambdaQuery() + .eq(ApprovalMain::getStatus, status) + .orderByDesc(ApprovalMain::getCreatedAt) + .getWrapper()); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean submitApproval(ApprovalMain approvalMain) { + approvalMain.setStatus("SUBMITTED"); + approvalMain.setApplyTime(new Date()); + boolean result = this.save(approvalMain); + if (result) { + approvalLogService.logSubmit(approvalMain.getId(), approvalMain.getApplyUserId(), "提交审批"); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean approve(String id, String approverId, String comment) { + ApprovalMain approvalMain = this.getById(id); + if (approvalMain == null) { + return false; + } + approvalMain.setStatus("APPROVED"); + approvalMain.setApproverId(approverId); + approvalMain.setApproveTime(new Date()); + approvalMain.setRemark(comment); + boolean result = this.updateById(approvalMain); + if (result) { + approvalLogService.logApprove(id, approverId, comment); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean reject(String id, String approverId, String comment) { + ApprovalMain approvalMain = this.getById(id); + if (approvalMain == null) { + return false; + } + approvalMain.setStatus("REJECTED"); + approvalMain.setApproverId(approverId); + approvalMain.setApproveTime(new Date()); + approvalMain.setRemark(comment); + boolean result = this.updateById(approvalMain); + if (result) { + approvalLogService.logReject(id, approverId, comment); + } + return result; + } +} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/data/service/impl/FishDraftDataServiceImpl.java b/backend/src/main/java/com/yfd/platform/data/service/impl/FishDraftDataServiceImpl.java new file mode 100644 index 0000000..ac522ed --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/data/service/impl/FishDraftDataServiceImpl.java @@ -0,0 +1,149 @@ +package com.yfd.platform.data.service.impl; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yfd.platform.data.domain.FishDraftData; +import com.yfd.platform.data.mapper.FishDraftDataMapper; +import com.yfd.platform.data.service.IApprovalChangeLogService; +import com.yfd.platform.data.service.IApprovalMainService; +import com.yfd.platform.data.service.IFishDraftDataService; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; + +import java.util.Date; +import java.util.List; + +/** + *

+ * 过鱼数据草稿表 服务实现类 + *

+ */ +@Service +public class FishDraftDataServiceImpl extends ServiceImpl implements IFishDraftDataService { + + @Resource + private FishDraftDataMapper fishDraftDataMapper; + + @Resource + private IApprovalMainService approvalMainService; + + @Resource + private IApprovalChangeLogService approvalChangeLogService; + + @Override + public Page queryPageList(Page page, String stcd, String status, String ftp) { + return this.page(page, this.lambdaQuery() + .eq(StringUtils.hasText(stcd), FishDraftData::getStcd, stcd) + .eq(StringUtils.hasText(status), FishDraftData::getStatus, status) + .like(StringUtils.hasText(ftp), FishDraftData::getFtp, ftp) + .eq(FishDraftData::getDeletedFlag, 0) + .orderByDesc(FishDraftData::getTm) + .getWrapper()); + } + + @Override + public List getByApprovalId(Long approvalId) { + return fishDraftDataMapper.selectByApprovalId(approvalId); + } + + @Override + public List getByStatus(String status) { + return fishDraftDataMapper.selectByStatus(status); + } + + @Override + public List getByStcd(String stcd) { + return fishDraftDataMapper.selectByStcd(stcd); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean saveDraft(FishDraftData fishDraftData) { + fishDraftData.setStatus("DRAFT"); + fishDraftData.setDeletedFlag(0); + fishDraftData.setLockFlag(0); + fishDraftData.setCreatedAt(new Date()); + fishDraftData.setUpdatedAt(new Date()); + return this.save(fishDraftData); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean updateDraft(FishDraftData fishDraftData) { + FishDraftData existing = this.getById(fishDraftData.getId()); + if (existing == null || existing.getLockFlag() == 1) { + return false; + } + fishDraftData.setStatus("DRAFT"); + fishDraftData.setUpdatedAt(new Date()); + return this.updateById(fishDraftData); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean removeDraft(Long id, String operatorId) { + FishDraftData fishDraftData = this.getById(id); + if (fishDraftData == null || fishDraftData.getLockFlag() == 1) { + return false; + } + fishDraftData.setDeletedFlag(1); + fishDraftData.setDeletedBy(operatorId); + fishDraftData.setDeletedAt(new Date()); + fishDraftData.setUpdatedAt(new Date()); + return this.updateById(fishDraftData); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean submitDraft(Long id, String operatorId) { + FishDraftData fishDraftData = this.getById(id); + if (fishDraftData == null || fishDraftData.getLockFlag() == 1) { + return false; + } + fishDraftData.setStatus("SUBMITTED"); + fishDraftData.setSubmitTime(new Date()); + fishDraftData.setUpdatedAt(new Date()); + return this.updateById(fishDraftData); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean submitDrafts(List ids, String operatorId) { + for (Long id : ids) { + FishDraftData fishDraftData = this.getById(id); + if (fishDraftData != null && fishDraftData.getLockFlag() == 0) { + fishDraftData.setStatus("SUBMITTED"); + fishDraftData.setSubmitTime(new Date()); + fishDraftData.setUpdatedAt(new Date()); + this.updateById(fishDraftData); + } + } + return true; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean lockDraft(Long id) { + FishDraftData fishDraftData = this.getById(id); + if (fishDraftData == null) { + return false; + } + fishDraftData.setLockFlag(1); + fishDraftData.setUpdatedAt(new Date()); + return this.updateById(fishDraftData); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean unlockDraft(Long id) { + FishDraftData fishDraftData = this.getById(id); + if (fishDraftData == null) { + return false; + } + fishDraftData.setLockFlag(0); + fishDraftData.setUpdatedAt(new Date()); + return this.updateById(fishDraftData); + } +} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/env/service/impl/SdHydrobaseServiceImpl.java b/backend/src/main/java/com/yfd/platform/env/service/impl/SdHydrobaseServiceImpl.java index 5df755b..cafc2cf 100644 --- a/backend/src/main/java/com/yfd/platform/env/service/impl/SdHydrobaseServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/env/service/impl/SdHydrobaseServiceImpl.java @@ -21,7 +21,7 @@ public class SdHydrobaseServiceImpl extends ServiceImpl queryPageList(Page page, String basename, String pbaseid) { return this.page(page, this.lambdaQuery() .like(basename != null && !basename.isEmpty(), SdHydrobase::getBasename, basename) - .eq(pbaseid != null && !pbaseid.isEmpty(), SdHydrobase::getPbaseid, pbaseid) + .eq(pbaseid != null && !pbaseid.isEmpty(), SdHydrobase::getBaseid, pbaseid) .orderByAsc(SdHydrobase::getOrderIndex) .getWrapper()); } diff --git a/backend/src/main/java/com/yfd/platform/env/service/impl/TreeStructureServiceImpl.java b/backend/src/main/java/com/yfd/platform/env/service/impl/TreeStructureServiceImpl.java index 66a3184..9ca2266 100644 --- a/backend/src/main/java/com/yfd/platform/env/service/impl/TreeStructureServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/env/service/impl/TreeStructureServiceImpl.java @@ -64,16 +64,16 @@ public class TreeStructureServiceImpl implements ITreeStructureService { rvcdEngMap.put(rvcdDic.getRvcd(), engList); } } - for (SdRvcdDic rvcdDic : rvcdList) { Map rvcdNode = new LinkedHashMap<>(); - rvcdNode.put("type", "RVCD"); + rvcdNode.put("type", "BASIN"); rvcdNode.put("code", rvcdDic.getRvcd()); rvcdNode.put("name", rvcdDic.getRvnm()); rvcdNode.put("path", rvcdDic.getPath()); rvcdNode.put("grd", rvcdDic.getGrd()); rvcdNode.put("lgtd", rvcdDic.getLgtd()); rvcdNode.put("lttd", rvcdDic.getLttd()); + rvcdNode.put("parentId", "0"); List> baseChildren = new ArrayList<>(); @@ -101,11 +101,11 @@ public class TreeStructureServiceImpl implements ITreeStructureService { baseNode.put("name", base.getBasename()); baseNode.put("shortname", base.getShortname()); baseNode.put("grd", base.getGrd()); - + baseNode.put("parentId", rvcdDic.getRvcd()); List> engChildren = new ArrayList<>(); for (SdEngInfoBH eng : baseEngList) { Map engNode = new LinkedHashMap<>(); - engNode.put("type", "ENG"); + engNode.put("type", "STATION"); engNode.put("code", eng.getStcd()); engNode.put("name", eng.getEnnm()); engNode.put("lgtd", eng.getLgtd()); @@ -114,6 +114,7 @@ public class TreeStructureServiceImpl implements ITreeStructureService { engNode.put("usfl", eng.getUsfl()); engNode.put("bldstt", eng.getBldstt()); engNode.put("engtp", eng.getEngtp()); + engNode.put("parentId", base.getBaseid()); engChildren.add(engNode); } baseNode.put("children", engChildren); @@ -224,12 +225,12 @@ public class TreeStructureServiceImpl implements ITreeStructureService { for (SdHydrobase base : baseList) { Map node = new LinkedHashMap<>(); - node.put("code", base.getBaseid()); + node.put("code", base.getPbaseid()); node.put("name", base.getBasename()); node.put("grd", base.getGrd()); node.put("shortname", base.getShortname()); - boolean hasChildren = !hydrobaseMapper.selectByPbaseid(base.getBaseid()).isEmpty(); + boolean hasChildren = !hydrobaseMapper.selectByPbaseid(base.getPbaseid()).isEmpty(); node.put("hasChildren", hasChildren); result.add(node); diff --git a/backend/src/main/resources/application-devtw.yml b/backend/src/main/resources/application-devtw.yml index a8756a0..efdf42b 100644 --- a/backend/src/main/resources/application-devtw.yml +++ b/backend/src/main/resources/application-devtw.yml @@ -56,7 +56,7 @@ mybatis-plus: logic-not-delete-value: 0 logic-delete-field: isDeleted configuration: -# map-underscore-to-camel-case: true + map-underscore-to-camel-case: true cache-enabled: false # log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl log-impl: org.apache.ibatis.logging.stdout.StdOutImpl diff --git a/backend/src/main/resources/mapper/env/SdHydrobaseMapper.xml b/backend/src/main/resources/mapper/env/SdHydrobaseMapper.xml index 3391d95..953f2b6 100644 --- a/backend/src/main/resources/mapper/env/SdHydrobaseMapper.xml +++ b/backend/src/main/resources/mapper/env/SdHydrobaseMapper.xml @@ -4,10 +4,10 @@ - + - +