diff --git a/klp-admin/pom.xml b/klp-admin/pom.xml index 3f4e083f..4c1e44a4 100644 --- a/klp-admin/pom.xml +++ b/klp-admin/pom.xml @@ -129,6 +129,10 @@ klp-cost + + com.klp + klp-flow + org.springframework.boot diff --git a/klp-flow/pom.xml b/klp-flow/pom.xml new file mode 100644 index 00000000..f0a55827 --- /dev/null +++ b/klp-flow/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + com.klp + klp-oa + 0.8.3 + + klp-flow + klp-flow + 流程管理模块 + + + + com.klp + klp-common + + + diff --git a/klp-flow/src/main/java/com/klp/flow/controller/TsAcceptCoilRelController.java b/klp-flow/src/main/java/com/klp/flow/controller/TsAcceptCoilRelController.java new file mode 100644 index 00000000..ebab882b --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/controller/TsAcceptCoilRelController.java @@ -0,0 +1,99 @@ +package com.klp.flow.controller; + +import java.util.List; +import java.util.Arrays; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.klp.common.annotation.RepeatSubmit; +import com.klp.common.annotation.Log; +import com.klp.common.core.controller.BaseController; +import com.klp.common.core.domain.PageQuery; +import com.klp.common.core.domain.R; +import com.klp.common.core.validate.AddGroup; +import com.klp.common.core.validate.EditGroup; +import com.klp.common.enums.BusinessType; +import com.klp.common.utils.poi.ExcelUtil; +import com.klp.flow.domain.vo.TsAcceptCoilRelVo; +import com.klp.flow.domain.bo.TsAcceptCoilRelBo; +import com.klp.flow.service.ITsAcceptCoilRelService; +import com.klp.common.core.page.TableDataInfo; + +/** + * 受理单关联钢卷中间 + * + * @author klp + * @date 2026-06-18 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/flow/acceptCoilRel") +public class TsAcceptCoilRelController extends BaseController { + + private final ITsAcceptCoilRelService iTsAcceptCoilRelService; + + /** + * 查询受理单关联钢卷中间列表 + */ + @GetMapping("/list") + public TableDataInfo list(TsAcceptCoilRelBo bo, PageQuery pageQuery) { + return iTsAcceptCoilRelService.queryPageList(bo, pageQuery); + } + + /** + * 导出受理单关联钢卷中间列表 + */ + @Log(title = "受理单关联钢卷中间", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(TsAcceptCoilRelBo bo, HttpServletResponse response) { + List list = iTsAcceptCoilRelService.queryList(bo); + ExcelUtil.exportExcel(list, "受理单关联钢卷中间", TsAcceptCoilRelVo.class, response); + } + + /** + * 获取受理单关联钢卷中间详细信息 + * + * @param relId 主键 + */ + @GetMapping("/{relId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long relId) { + return R.ok(iTsAcceptCoilRelService.queryById(relId)); + } + + /** + * 新增受理单关联钢卷中间 + */ + @Log(title = "受理单关联钢卷中间", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody TsAcceptCoilRelBo bo) { + return toAjax(iTsAcceptCoilRelService.insertByBo(bo)); + } + + /** + * 修改受理单关联钢卷中间 + */ + @Log(title = "受理单关联钢卷中间", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody TsAcceptCoilRelBo bo) { + return toAjax(iTsAcceptCoilRelService.updateByBo(bo)); + } + + /** + * 删除受理单关联钢卷中间 + * + * @param relIds 主键串 + */ + @Log(title = "受理单关联钢卷中间", businessType = BusinessType.DELETE) + @DeleteMapping("/{relIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] relIds) { + return toAjax(iTsAcceptCoilRelService.deleteWithValidByIds(Arrays.asList(relIds), true)); + } +} diff --git a/klp-flow/src/main/java/com/klp/flow/controller/TsComplaintAcceptController.java b/klp-flow/src/main/java/com/klp/flow/controller/TsComplaintAcceptController.java new file mode 100644 index 00000000..ce31c4e8 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/controller/TsComplaintAcceptController.java @@ -0,0 +1,99 @@ +package com.klp.flow.controller; + +import java.util.List; +import java.util.Arrays; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.klp.common.annotation.RepeatSubmit; +import com.klp.common.annotation.Log; +import com.klp.common.core.controller.BaseController; +import com.klp.common.core.domain.PageQuery; +import com.klp.common.core.domain.R; +import com.klp.common.core.validate.AddGroup; +import com.klp.common.core.validate.EditGroup; +import com.klp.common.enums.BusinessType; +import com.klp.common.utils.poi.ExcelUtil; +import com.klp.flow.domain.vo.TsComplaintAcceptVo; +import com.klp.flow.domain.bo.TsComplaintAcceptBo; +import com.klp.flow.service.ITsComplaintAcceptService; +import com.klp.common.core.page.TableDataInfo; + +/** + * 投诉受理单主 + * + * @author klp + * @date 2026-06-18 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/flow/complaintAccept") +public class TsComplaintAcceptController extends BaseController { + + private final ITsComplaintAcceptService iTsComplaintAcceptService; + + /** + * 查询投诉受理单主列表 + */ + @GetMapping("/list") + public TableDataInfo list(TsComplaintAcceptBo bo, PageQuery pageQuery) { + return iTsComplaintAcceptService.queryPageList(bo, pageQuery); + } + + /** + * 导出投诉受理单主列表 + */ + @Log(title = "投诉受理单主", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(TsComplaintAcceptBo bo, HttpServletResponse response) { + List list = iTsComplaintAcceptService.queryList(bo); + ExcelUtil.exportExcel(list, "投诉受理单主", TsComplaintAcceptVo.class, response); + } + + /** + * 获取投诉受理单主详细信息 + * + * @param acceptId 主键 + */ + @GetMapping("/{acceptId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long acceptId) { + return R.ok(iTsComplaintAcceptService.queryById(acceptId)); + } + + /** + * 新增投诉受理单主 + */ + @Log(title = "投诉受理单主", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody TsComplaintAcceptBo bo) { + return toAjax(iTsComplaintAcceptService.insertByBo(bo)); + } + + /** + * 修改投诉受理单主 + */ + @Log(title = "投诉受理单主", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody TsComplaintAcceptBo bo) { + return toAjax(iTsComplaintAcceptService.updateByBo(bo)); + } + + /** + * 删除投诉受理单主 + * + * @param acceptIds 主键串 + */ + @Log(title = "投诉受理单主", businessType = BusinessType.DELETE) + @DeleteMapping("/{acceptIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] acceptIds) { + return toAjax(iTsComplaintAcceptService.deleteWithValidByIds(Arrays.asList(acceptIds), true)); + } +} diff --git a/klp-flow/src/main/java/com/klp/flow/controller/TsComplaintTaskController.java b/klp-flow/src/main/java/com/klp/flow/controller/TsComplaintTaskController.java new file mode 100644 index 00000000..9cd464da --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/controller/TsComplaintTaskController.java @@ -0,0 +1,99 @@ +package com.klp.flow.controller; + +import java.util.List; +import java.util.Arrays; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.klp.common.annotation.RepeatSubmit; +import com.klp.common.annotation.Log; +import com.klp.common.core.controller.BaseController; +import com.klp.common.core.domain.PageQuery; +import com.klp.common.core.domain.R; +import com.klp.common.core.validate.AddGroup; +import com.klp.common.core.validate.EditGroup; +import com.klp.common.enums.BusinessType; +import com.klp.common.utils.poi.ExcelUtil; +import com.klp.flow.domain.vo.TsComplaintTaskVo; +import com.klp.flow.domain.bo.TsComplaintTaskBo; +import com.klp.flow.service.ITsComplaintTaskService; +import com.klp.common.core.page.TableDataInfo; + +/** + * 各部门投诉代办任务&意见 + * + * @author klp + * @date 2026-06-18 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/flow/complaintTask") +public class TsComplaintTaskController extends BaseController { + + private final ITsComplaintTaskService iTsComplaintTaskService; + + /** + * 查询各部门投诉代办任务&意见列表 + */ + @GetMapping("/list") + public TableDataInfo list(TsComplaintTaskBo bo, PageQuery pageQuery) { + return iTsComplaintTaskService.queryPageList(bo, pageQuery); + } + + /** + * 导出各部门投诉代办任务&意见列表 + */ + @Log(title = "各部门投诉代办任务&意见", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(TsComplaintTaskBo bo, HttpServletResponse response) { + List list = iTsComplaintTaskService.queryList(bo); + ExcelUtil.exportExcel(list, "各部门投诉代办任务&意见", TsComplaintTaskVo.class, response); + } + + /** + * 获取各部门投诉代办任务&意见详细信息 + * + * @param taskId 主键 + */ + @GetMapping("/{taskId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long taskId) { + return R.ok(iTsComplaintTaskService.queryById(taskId)); + } + + /** + * 新增各部门投诉代办任务&意见 + */ + @Log(title = "各部门投诉代办任务&意见", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody TsComplaintTaskBo bo) { + return toAjax(iTsComplaintTaskService.insertByBo(bo)); + } + + /** + * 修改各部门投诉代办任务&意见 + */ + @Log(title = "各部门投诉代办任务&意见", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody TsComplaintTaskBo bo) { + return toAjax(iTsComplaintTaskService.updateByBo(bo)); + } + + /** + * 删除各部门投诉代办任务&意见 + * + * @param taskIds 主键串 + */ + @Log(title = "各部门投诉代办任务&意见", businessType = BusinessType.DELETE) + @DeleteMapping("/{taskIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] taskIds) { + return toAjax(iTsComplaintTaskService.deleteWithValidByIds(Arrays.asList(taskIds), true)); + } +} diff --git a/klp-flow/src/main/java/com/klp/flow/controller/TsPlanExecuteRelController.java b/klp-flow/src/main/java/com/klp/flow/controller/TsPlanExecuteRelController.java new file mode 100644 index 00000000..a3c65714 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/controller/TsPlanExecuteRelController.java @@ -0,0 +1,99 @@ +package com.klp.flow.controller; + +import java.util.List; +import java.util.Arrays; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.klp.common.annotation.RepeatSubmit; +import com.klp.common.annotation.Log; +import com.klp.common.core.controller.BaseController; +import com.klp.common.core.domain.PageQuery; +import com.klp.common.core.domain.R; +import com.klp.common.core.validate.AddGroup; +import com.klp.common.core.validate.EditGroup; +import com.klp.common.enums.BusinessType; +import com.klp.common.utils.poi.ExcelUtil; +import com.klp.flow.domain.vo.TsPlanExecuteRelVo; +import com.klp.flow.domain.bo.TsPlanExecuteRelBo; +import com.klp.flow.service.ITsPlanExecuteRelService; +import com.klp.common.core.page.TableDataInfo; + +/** + * 最终方案下发部门及执行反馈 + * + * @author klp + * @date 2026-06-18 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/flow/planExecuteRel") +public class TsPlanExecuteRelController extends BaseController { + + private final ITsPlanExecuteRelService iTsPlanExecuteRelService; + + /** + * 查询最终方案下发部门及执行反馈列表 + */ + @GetMapping("/list") + public TableDataInfo list(TsPlanExecuteRelBo bo, PageQuery pageQuery) { + return iTsPlanExecuteRelService.queryPageList(bo, pageQuery); + } + + /** + * 导出最终方案下发部门及执行反馈列表 + */ + @Log(title = "最终方案下发部门及执行反馈", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(TsPlanExecuteRelBo bo, HttpServletResponse response) { + List list = iTsPlanExecuteRelService.queryList(bo); + ExcelUtil.exportExcel(list, "最终方案下发部门及执行反馈", TsPlanExecuteRelVo.class, response); + } + + /** + * 获取最终方案下发部门及执行反馈详细信息 + * + * @param relId 主键 + */ + @GetMapping("/{relId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long relId) { + return R.ok(iTsPlanExecuteRelService.queryById(relId)); + } + + /** + * 新增最终方案下发部门及执行反馈 + */ + @Log(title = "最终方案下发部门及执行反馈", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody TsPlanExecuteRelBo bo) { + return toAjax(iTsPlanExecuteRelService.insertByBo(bo)); + } + + /** + * 修改最终方案下发部门及执行反馈 + */ + @Log(title = "最终方案下发部门及执行反馈", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody TsPlanExecuteRelBo bo) { + return toAjax(iTsPlanExecuteRelService.updateByBo(bo)); + } + + /** + * 删除最终方案下发部门及执行反馈 + * + * @param relIds 主键串 + */ + @Log(title = "最终方案下发部门及执行反馈", businessType = BusinessType.DELETE) + @DeleteMapping("/{relIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] relIds) { + return toAjax(iTsPlanExecuteRelService.deleteWithValidByIds(Arrays.asList(relIds), true)); + } +} diff --git a/klp-flow/src/main/java/com/klp/flow/domain/TsAcceptCoilRel.java b/klp-flow/src/main/java/com/klp/flow/domain/TsAcceptCoilRel.java new file mode 100644 index 00000000..35844b3c --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/domain/TsAcceptCoilRel.java @@ -0,0 +1,45 @@ +package com.klp.flow.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + + +/** + * 受理单关联钢卷中间对象 ts_accept_coil_rel + * + * @author klp + * @date 2026-06-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("ts_accept_coil_rel") +public class TsAcceptCoilRel extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * + */ + @TableId(value = "rel_id") + private Long relId; + /** + * 投诉受理单ID + */ + private Long acceptId; + /** + * 钢卷ID + */ + private Long coilId; + /** + * 备注 + */ + private String remark; + /** + * 删除标识 0=正常 2=删除 + */ + @TableLogic + private Long delFlag; + +} diff --git a/klp-flow/src/main/java/com/klp/flow/domain/TsComplaintAccept.java b/klp-flow/src/main/java/com/klp/flow/domain/TsComplaintAccept.java new file mode 100644 index 00000000..b7fa8a95 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/domain/TsComplaintAccept.java @@ -0,0 +1,88 @@ +package com.klp.flow.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 投诉受理单主对象 ts_complaint_accept + * + * @author klp + * @date 2026-06-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("ts_complaint_accept") +public class TsComplaintAccept extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 受理单主键 + */ + @TableId(value = "accept_id") + private Long acceptId; + /** + * 投诉编号 TS-2026-001 + */ + private String complaintNo; + /** + * 投诉日期 + */ + private Date complaintDate; + /** + * 投诉情况描述 + */ + private String complaintContent; + /** + * 客户诉求 + */ + private String customerDemand; + /** + * 客户照片凭证等 + */ + private String file; + /** + * 审核状态 0待审核 1已通过 2未通过 + */ + private Long auditStatus; + /** + * 审核意见 + */ + private String auditOpinion; + /** + * 审核人ID + */ + private Long auditUserId; + /** + * 审核时间 + */ + private Date auditTime; + /** + * 流程阶段: +1=待审核 2=部门意见填写中 3=待总负责人汇总方案 4=方案下发执行反馈中 5=全部办结 + */ + private Long flowStatus; + /** + * 总负责人ID + */ + private Long principalUserId; + /** + * 总负责人整合后的完整处理方案 + */ + private String planContent; + /** + * 备注 + */ + private String remark; + /** + * 删除标识 0=正常 2=删除 + */ + @TableLogic + private Long delFlag; + +} diff --git a/klp-flow/src/main/java/com/klp/flow/domain/TsComplaintTask.java b/klp-flow/src/main/java/com/klp/flow/domain/TsComplaintTask.java new file mode 100644 index 00000000..e89b647e --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/domain/TsComplaintTask.java @@ -0,0 +1,71 @@ +package com.klp.flow.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 各部门投诉代办任务&意见对象 ts_complaint_task + * + * @author klp + * @date 2026-06-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("ts_complaint_task") +public class TsComplaintTask extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 代办任务ID + */ + @TableId(value = "task_id") + private Long taskId; + /** + * 关联投诉受理单ID + */ + private Long acceptId; + /** + * 负责部门ID(销售/质量/生产) + */ + private Long deptId; + /** + * 任务状态 0待填写意见 1已完成填写 + */ + private Long taskStatus; + /** + * 意见单号 + */ + private String fillNo; + /** + * 部门处理意见 + */ + private String deptOpinion; + /** + * 填写意见的部门员工ID + */ + private Long fillUserId; + /** + * 意见填写时间 + */ + private Date fillTime; + /** + * 意见文件 + */ + private String fillFile; + /** + * 备注 + */ + private String remark; + /** + * 删除标识 0=正常 2=删除 + */ + @TableLogic + private Long delFlag; + +} diff --git a/klp-flow/src/main/java/com/klp/flow/domain/TsPlanExecuteRel.java b/klp-flow/src/main/java/com/klp/flow/domain/TsPlanExecuteRel.java new file mode 100644 index 00000000..44894745 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/domain/TsPlanExecuteRel.java @@ -0,0 +1,71 @@ +package com.klp.flow.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 最终方案下发部门及执行反馈对象 ts_plan_execute_rel + * + * @author klp + * @date 2026-06-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("ts_plan_execute_rel") +public class TsPlanExecuteRel extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * + */ + @TableId(value = "rel_id") + private Long relId; + /** + * 关联最终方案ID + */ + private Long acceptId; + /** + * 被下发执行的部门ID + */ + private Long deptId; + /** + * 执行状态 0待执行反馈 1已反馈完成 + */ + private Long executeStatus; + /** + * 部门执行结果反馈 + */ + private String executeResult; + /** + * 反馈单号 + */ + private String feedbackNo; + /** + * 反馈人 + */ + private Long feedbackUserId; + /** + * 反馈时间 + */ + private Date feedbackTime; + /** + * 反馈文件 + */ + private String feedbackFile; + /** + * 备注 + */ + private String remark; + /** + * 删除标识 0=正常 2=删除 + */ + @TableLogic + private Long delFlag; + +} diff --git a/klp-flow/src/main/java/com/klp/flow/domain/bo/TsAcceptCoilRelBo.java b/klp-flow/src/main/java/com/klp/flow/domain/bo/TsAcceptCoilRelBo.java new file mode 100644 index 00000000..ae0d57c0 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/domain/bo/TsAcceptCoilRelBo.java @@ -0,0 +1,41 @@ +package com.klp.flow.domain.bo; + +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + + +/** + * 受理单关联钢卷中间业务对象 ts_accept_coil_rel + * + * @author klp + * @date 2026-06-18 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class TsAcceptCoilRelBo extends BaseEntity { + + /** + * + */ + private Long relId; + + /** + * 投诉受理单ID + */ + private Long acceptId; + + /** + * 钢卷ID + */ + private Long coilId; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/klp-flow/src/main/java/com/klp/flow/domain/bo/TsComplaintAcceptBo.java b/klp-flow/src/main/java/com/klp/flow/domain/bo/TsComplaintAcceptBo.java new file mode 100644 index 00000000..091163e7 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/domain/bo/TsComplaintAcceptBo.java @@ -0,0 +1,94 @@ +package com.klp.flow.domain.bo; + +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 投诉受理单主业务对象 ts_complaint_accept + * + * @author klp + * @date 2026-06-18 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class TsComplaintAcceptBo extends BaseEntity { + + /** + * 受理单主键 + */ + private Long acceptId; + + /** + * 投诉编号 TS-2026-001 + */ + private String complaintNo; + + /** + * 投诉日期 + */ + private Date complaintDate; + + /** + * 投诉情况描述 + */ + private String complaintContent; + + /** + * 客户诉求 + */ + private String customerDemand; + + /** + * 客户照片凭证等 + */ + private String file; + + /** + * 审核状态 0待审核 1已通过 2未通过 + */ + private Long auditStatus; + + /** + * 审核意见 + */ + private String auditOpinion; + + /** + * 审核人ID + */ + private Long auditUserId; + + /** + * 审核时间 + */ + private Date auditTime; + + /** + * 流程阶段: +1=待审核 2=部门意见填写中 3=待总负责人汇总方案 4=方案下发执行反馈中 5=全部办结 + */ + private Long flowStatus; + + /** + * 总负责人ID + */ + private Long principalUserId; + + /** + * 总负责人整合后的完整处理方案 + */ + private String planContent; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/klp-flow/src/main/java/com/klp/flow/domain/bo/TsComplaintTaskBo.java b/klp-flow/src/main/java/com/klp/flow/domain/bo/TsComplaintTaskBo.java new file mode 100644 index 00000000..724f982a --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/domain/bo/TsComplaintTaskBo.java @@ -0,0 +1,73 @@ +package com.klp.flow.domain.bo; + +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 各部门投诉代办任务&意见业务对象 ts_complaint_task + * + * @author klp + * @date 2026-06-18 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class TsComplaintTaskBo extends BaseEntity { + + /** + * 代办任务ID + */ + private Long taskId; + + /** + * 关联投诉受理单ID + */ + private Long acceptId; + + /** + * 负责部门ID(销售/质量/生产) + */ + private Long deptId; + + /** + * 任务状态 0待填写意见 1已完成填写 + */ + private Long taskStatus; + + /** + * 意见单号 + */ + private String fillNo; + + /** + * 部门处理意见 + */ + private String deptOpinion; + + /** + * 填写意见的部门员工ID + */ + private Long fillUserId; + + /** + * 意见填写时间 + */ + private Date fillTime; + + /** + * 意见文件 + */ + private String fillFile; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/klp-flow/src/main/java/com/klp/flow/domain/bo/TsPlanExecuteRelBo.java b/klp-flow/src/main/java/com/klp/flow/domain/bo/TsPlanExecuteRelBo.java new file mode 100644 index 00000000..a2ea2e2b --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/domain/bo/TsPlanExecuteRelBo.java @@ -0,0 +1,73 @@ +package com.klp.flow.domain.bo; + +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 最终方案下发部门及执行反馈业务对象 ts_plan_execute_rel + * + * @author klp + * @date 2026-06-18 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class TsPlanExecuteRelBo extends BaseEntity { + + /** + * + */ + private Long relId; + + /** + * 关联最终方案ID + */ + private Long acceptId; + + /** + * 被下发执行的部门ID + */ + private Long deptId; + + /** + * 执行状态 0待执行反馈 1已反馈完成 + */ + private Long executeStatus; + + /** + * 部门执行结果反馈 + */ + private String executeResult; + + /** + * 反馈单号 + */ + private String feedbackNo; + + /** + * 反馈人 + */ + private Long feedbackUserId; + + /** + * 反馈时间 + */ + private Date feedbackTime; + + /** + * 反馈文件 + */ + private String feedbackFile; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/klp-flow/src/main/java/com/klp/flow/domain/vo/TsAcceptCoilRelVo.java b/klp-flow/src/main/java/com/klp/flow/domain/vo/TsAcceptCoilRelVo.java new file mode 100644 index 00000000..13f84740 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/domain/vo/TsAcceptCoilRelVo.java @@ -0,0 +1,47 @@ +package com.klp.flow.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.klp.common.annotation.ExcelDictFormat; +import com.klp.common.convert.ExcelDictConvert; +import lombok.Data; + + +/** + * 受理单关联钢卷中间视图对象 ts_accept_coil_rel + * + * @author klp + * @date 2026-06-18 + */ +@Data +@ExcelIgnoreUnannotated +public class TsAcceptCoilRelVo { + + private static final long serialVersionUID = 1L; + + /** + * + */ + @ExcelProperty(value = "") + private Long relId; + + /** + * 投诉受理单ID + */ + @ExcelProperty(value = "投诉受理单ID") + private Long acceptId; + + /** + * 钢卷ID + */ + @ExcelProperty(value = "钢卷ID") + private Long coilId; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/klp-flow/src/main/java/com/klp/flow/domain/vo/TsComplaintAcceptVo.java b/klp-flow/src/main/java/com/klp/flow/domain/vo/TsComplaintAcceptVo.java new file mode 100644 index 00000000..b87c9322 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/domain/vo/TsComplaintAcceptVo.java @@ -0,0 +1,110 @@ +package com.klp.flow.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.klp.common.annotation.ExcelDictFormat; +import com.klp.common.convert.ExcelDictConvert; +import lombok.Data; + + +/** + * 投诉受理单主视图对象 ts_complaint_accept + * + * @author klp + * @date 2026-06-18 + */ +@Data +@ExcelIgnoreUnannotated +public class TsComplaintAcceptVo { + + private static final long serialVersionUID = 1L; + + /** + * 受理单主键 + */ + @ExcelProperty(value = "受理单主键") + private Long acceptId; + + /** + * 投诉编号 TS-2026-001 + */ + @ExcelProperty(value = "投诉编号 TS-2026-001") + private String complaintNo; + + /** + * 投诉日期 + */ + @ExcelProperty(value = "投诉日期") + private Date complaintDate; + + /** + * 投诉情况描述 + */ + @ExcelProperty(value = "投诉情况描述") + private String complaintContent; + + /** + * 客户诉求 + */ + @ExcelProperty(value = "客户诉求") + private String customerDemand; + + /** + * 客户照片凭证等 + */ + @ExcelProperty(value = "客户照片凭证等") + private String file; + + /** + * 审核状态 0待审核 1已通过 2未通过 + */ + @ExcelProperty(value = "审核状态 0待审核 1已通过 2未通过") + private Long auditStatus; + + /** + * 审核意见 + */ + @ExcelProperty(value = "审核意见") + private String auditOpinion; + + /** + * 审核人ID + */ + @ExcelProperty(value = "审核人ID") + private Long auditUserId; + + /** + * 审核时间 + */ + @ExcelProperty(value = "审核时间") + private Date auditTime; + + /** + * 流程阶段: +1=待审核 2=部门意见填写中 3=待总负责人汇总方案 4=方案下发执行反馈中 5=全部办结 + */ + @ExcelProperty(value = "流程阶段") + private Long flowStatus; + + /** + * 总负责人ID + */ + @ExcelProperty(value = "总负责人ID") + private Long principalUserId; + + /** + * 总负责人整合后的完整处理方案 + */ + @ExcelProperty(value = "总负责人整合后的完整处理方案") + private String planContent; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/klp-flow/src/main/java/com/klp/flow/domain/vo/TsComplaintTaskVo.java b/klp-flow/src/main/java/com/klp/flow/domain/vo/TsComplaintTaskVo.java new file mode 100644 index 00000000..d056c53b --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/domain/vo/TsComplaintTaskVo.java @@ -0,0 +1,86 @@ +package com.klp.flow.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.klp.common.annotation.ExcelDictFormat; +import com.klp.common.convert.ExcelDictConvert; +import lombok.Data; + + +/** + * 各部门投诉代办任务&意见视图对象 ts_complaint_task + * + * @author klp + * @date 2026-06-18 + */ +@Data +@ExcelIgnoreUnannotated +public class TsComplaintTaskVo { + + private static final long serialVersionUID = 1L; + + /** + * 代办任务ID + */ + @ExcelProperty(value = "代办任务ID") + private Long taskId; + + /** + * 关联投诉受理单ID + */ + @ExcelProperty(value = "关联投诉受理单ID") + private Long acceptId; + + /** + * 负责部门ID(销售/质量/生产) + */ + @ExcelProperty(value = "负责部门ID", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "销=售/质量/生产") + private Long deptId; + + /** + * 任务状态 0待填写意见 1已完成填写 + */ + @ExcelProperty(value = "任务状态 0待填写意见 1已完成填写") + private Long taskStatus; + + /** + * 意见单号 + */ + @ExcelProperty(value = "意见单号") + private String fillNo; + + /** + * 部门处理意见 + */ + @ExcelProperty(value = "部门处理意见") + private String deptOpinion; + + /** + * 填写意见的部门员工ID + */ + @ExcelProperty(value = "填写意见的部门员工ID") + private Long fillUserId; + + /** + * 意见填写时间 + */ + @ExcelProperty(value = "意见填写时间") + private Date fillTime; + + /** + * 意见文件 + */ + @ExcelProperty(value = "意见文件") + private String fillFile; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/klp-flow/src/main/java/com/klp/flow/domain/vo/TsPlanExecuteRelVo.java b/klp-flow/src/main/java/com/klp/flow/domain/vo/TsPlanExecuteRelVo.java new file mode 100644 index 00000000..79954524 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/domain/vo/TsPlanExecuteRelVo.java @@ -0,0 +1,85 @@ +package com.klp.flow.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.klp.common.annotation.ExcelDictFormat; +import com.klp.common.convert.ExcelDictConvert; +import lombok.Data; + + +/** + * 最终方案下发部门及执行反馈视图对象 ts_plan_execute_rel + * + * @author klp + * @date 2026-06-18 + */ +@Data +@ExcelIgnoreUnannotated +public class TsPlanExecuteRelVo { + + private static final long serialVersionUID = 1L; + + /** + * + */ + @ExcelProperty(value = "") + private Long relId; + + /** + * 关联最终方案ID + */ + @ExcelProperty(value = "关联最终方案ID") + private Long acceptId; + + /** + * 被下发执行的部门ID + */ + @ExcelProperty(value = "被下发执行的部门ID") + private Long deptId; + + /** + * 执行状态 0待执行反馈 1已反馈完成 + */ + @ExcelProperty(value = "执行状态 0待执行反馈 1已反馈完成") + private Long executeStatus; + + /** + * 部门执行结果反馈 + */ + @ExcelProperty(value = "部门执行结果反馈") + private String executeResult; + + /** + * 反馈单号 + */ + @ExcelProperty(value = "反馈单号") + private String feedbackNo; + + /** + * 反馈人 + */ + @ExcelProperty(value = "反馈人") + private Long feedbackUserId; + + /** + * 反馈时间 + */ + @ExcelProperty(value = "反馈时间") + private Date feedbackTime; + + /** + * 反馈文件 + */ + @ExcelProperty(value = "反馈文件") + private String feedbackFile; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/klp-flow/src/main/java/com/klp/flow/mapper/TsAcceptCoilRelMapper.java b/klp-flow/src/main/java/com/klp/flow/mapper/TsAcceptCoilRelMapper.java new file mode 100644 index 00000000..77820135 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/mapper/TsAcceptCoilRelMapper.java @@ -0,0 +1,15 @@ +package com.klp.flow.mapper; + +import com.klp.flow.domain.TsAcceptCoilRel; +import com.klp.flow.domain.vo.TsAcceptCoilRelVo; +import com.klp.common.core.mapper.BaseMapperPlus; + +/** + * 受理单关联钢卷中间Mapper接口 + * + * @author klp + * @date 2026-06-18 + */ +public interface TsAcceptCoilRelMapper extends BaseMapperPlus { + +} diff --git a/klp-flow/src/main/java/com/klp/flow/mapper/TsComplaintAcceptMapper.java b/klp-flow/src/main/java/com/klp/flow/mapper/TsComplaintAcceptMapper.java new file mode 100644 index 00000000..17c7425c --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/mapper/TsComplaintAcceptMapper.java @@ -0,0 +1,15 @@ +package com.klp.flow.mapper; + +import com.klp.flow.domain.TsComplaintAccept; +import com.klp.flow.domain.vo.TsComplaintAcceptVo; +import com.klp.common.core.mapper.BaseMapperPlus; + +/** + * 投诉受理单主Mapper接口 + * + * @author klp + * @date 2026-06-18 + */ +public interface TsComplaintAcceptMapper extends BaseMapperPlus { + +} diff --git a/klp-flow/src/main/java/com/klp/flow/mapper/TsComplaintTaskMapper.java b/klp-flow/src/main/java/com/klp/flow/mapper/TsComplaintTaskMapper.java new file mode 100644 index 00000000..00dac2b8 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/mapper/TsComplaintTaskMapper.java @@ -0,0 +1,15 @@ +package com.klp.flow.mapper; + +import com.klp.flow.domain.TsComplaintTask; +import com.klp.flow.domain.vo.TsComplaintTaskVo; +import com.klp.common.core.mapper.BaseMapperPlus; + +/** + * 各部门投诉代办任务&意见Mapper接口 + * + * @author klp + * @date 2026-06-18 + */ +public interface TsComplaintTaskMapper extends BaseMapperPlus { + +} diff --git a/klp-flow/src/main/java/com/klp/flow/mapper/TsPlanExecuteRelMapper.java b/klp-flow/src/main/java/com/klp/flow/mapper/TsPlanExecuteRelMapper.java new file mode 100644 index 00000000..a5f1918d --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/mapper/TsPlanExecuteRelMapper.java @@ -0,0 +1,15 @@ +package com.klp.flow.mapper; + +import com.klp.flow.domain.TsPlanExecuteRel; +import com.klp.flow.domain.vo.TsPlanExecuteRelVo; +import com.klp.common.core.mapper.BaseMapperPlus; + +/** + * 最终方案下发部门及执行反馈Mapper接口 + * + * @author klp + * @date 2026-06-18 + */ +public interface TsPlanExecuteRelMapper extends BaseMapperPlus { + +} diff --git a/klp-flow/src/main/java/com/klp/flow/service/ITsAcceptCoilRelService.java b/klp-flow/src/main/java/com/klp/flow/service/ITsAcceptCoilRelService.java new file mode 100644 index 00000000..73bf35b7 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/service/ITsAcceptCoilRelService.java @@ -0,0 +1,49 @@ +package com.klp.flow.service; + +import com.klp.flow.domain.TsAcceptCoilRel; +import com.klp.flow.domain.vo.TsAcceptCoilRelVo; +import com.klp.flow.domain.bo.TsAcceptCoilRelBo; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 受理单关联钢卷中间Service接口 + * + * @author klp + * @date 2026-06-18 + */ +public interface ITsAcceptCoilRelService { + + /** + * 查询受理单关联钢卷中间 + */ + TsAcceptCoilRelVo queryById(Long relId); + + /** + * 查询受理单关联钢卷中间列表 + */ + TableDataInfo queryPageList(TsAcceptCoilRelBo bo, PageQuery pageQuery); + + /** + * 查询受理单关联钢卷中间列表 + */ + List queryList(TsAcceptCoilRelBo bo); + + /** + * 新增受理单关联钢卷中间 + */ + Boolean insertByBo(TsAcceptCoilRelBo bo); + + /** + * 修改受理单关联钢卷中间 + */ + Boolean updateByBo(TsAcceptCoilRelBo bo); + + /** + * 校验并批量删除受理单关联钢卷中间信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-flow/src/main/java/com/klp/flow/service/ITsComplaintAcceptService.java b/klp-flow/src/main/java/com/klp/flow/service/ITsComplaintAcceptService.java new file mode 100644 index 00000000..d3276533 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/service/ITsComplaintAcceptService.java @@ -0,0 +1,49 @@ +package com.klp.flow.service; + +import com.klp.flow.domain.TsComplaintAccept; +import com.klp.flow.domain.vo.TsComplaintAcceptVo; +import com.klp.flow.domain.bo.TsComplaintAcceptBo; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 投诉受理单主Service接口 + * + * @author klp + * @date 2026-06-18 + */ +public interface ITsComplaintAcceptService { + + /** + * 查询投诉受理单主 + */ + TsComplaintAcceptVo queryById(Long acceptId); + + /** + * 查询投诉受理单主列表 + */ + TableDataInfo queryPageList(TsComplaintAcceptBo bo, PageQuery pageQuery); + + /** + * 查询投诉受理单主列表 + */ + List queryList(TsComplaintAcceptBo bo); + + /** + * 新增投诉受理单主 + */ + Boolean insertByBo(TsComplaintAcceptBo bo); + + /** + * 修改投诉受理单主 + */ + Boolean updateByBo(TsComplaintAcceptBo bo); + + /** + * 校验并批量删除投诉受理单主信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-flow/src/main/java/com/klp/flow/service/ITsComplaintTaskService.java b/klp-flow/src/main/java/com/klp/flow/service/ITsComplaintTaskService.java new file mode 100644 index 00000000..ab3b3169 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/service/ITsComplaintTaskService.java @@ -0,0 +1,49 @@ +package com.klp.flow.service; + +import com.klp.flow.domain.TsComplaintTask; +import com.klp.flow.domain.vo.TsComplaintTaskVo; +import com.klp.flow.domain.bo.TsComplaintTaskBo; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 各部门投诉代办任务&意见Service接口 + * + * @author klp + * @date 2026-06-18 + */ +public interface ITsComplaintTaskService { + + /** + * 查询各部门投诉代办任务&意见 + */ + TsComplaintTaskVo queryById(Long taskId); + + /** + * 查询各部门投诉代办任务&意见列表 + */ + TableDataInfo queryPageList(TsComplaintTaskBo bo, PageQuery pageQuery); + + /** + * 查询各部门投诉代办任务&意见列表 + */ + List queryList(TsComplaintTaskBo bo); + + /** + * 新增各部门投诉代办任务&意见 + */ + Boolean insertByBo(TsComplaintTaskBo bo); + + /** + * 修改各部门投诉代办任务&意见 + */ + Boolean updateByBo(TsComplaintTaskBo bo); + + /** + * 校验并批量删除各部门投诉代办任务&意见信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-flow/src/main/java/com/klp/flow/service/ITsPlanExecuteRelService.java b/klp-flow/src/main/java/com/klp/flow/service/ITsPlanExecuteRelService.java new file mode 100644 index 00000000..8def8c4e --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/service/ITsPlanExecuteRelService.java @@ -0,0 +1,49 @@ +package com.klp.flow.service; + +import com.klp.flow.domain.TsPlanExecuteRel; +import com.klp.flow.domain.vo.TsPlanExecuteRelVo; +import com.klp.flow.domain.bo.TsPlanExecuteRelBo; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 最终方案下发部门及执行反馈Service接口 + * + * @author klp + * @date 2026-06-18 + */ +public interface ITsPlanExecuteRelService { + + /** + * 查询最终方案下发部门及执行反馈 + */ + TsPlanExecuteRelVo queryById(Long relId); + + /** + * 查询最终方案下发部门及执行反馈列表 + */ + TableDataInfo queryPageList(TsPlanExecuteRelBo bo, PageQuery pageQuery); + + /** + * 查询最终方案下发部门及执行反馈列表 + */ + List queryList(TsPlanExecuteRelBo bo); + + /** + * 新增最终方案下发部门及执行反馈 + */ + Boolean insertByBo(TsPlanExecuteRelBo bo); + + /** + * 修改最终方案下发部门及执行反馈 + */ + Boolean updateByBo(TsPlanExecuteRelBo bo); + + /** + * 校验并批量删除最终方案下发部门及执行反馈信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-flow/src/main/java/com/klp/flow/service/impl/TsAcceptCoilRelServiceImpl.java b/klp-flow/src/main/java/com/klp/flow/service/impl/TsAcceptCoilRelServiceImpl.java new file mode 100644 index 00000000..6dd2c9d8 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/service/impl/TsAcceptCoilRelServiceImpl.java @@ -0,0 +1,109 @@ +package com.klp.flow.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.klp.flow.domain.bo.TsAcceptCoilRelBo; +import com.klp.flow.domain.vo.TsAcceptCoilRelVo; +import com.klp.flow.domain.TsAcceptCoilRel; +import com.klp.flow.mapper.TsAcceptCoilRelMapper; +import com.klp.flow.service.ITsAcceptCoilRelService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 受理单关联钢卷中间Service业务层处理 + * + * @author klp + * @date 2026-06-18 + */ +@RequiredArgsConstructor +@Service +public class TsAcceptCoilRelServiceImpl implements ITsAcceptCoilRelService { + + private final TsAcceptCoilRelMapper baseMapper; + + /** + * 查询受理单关联钢卷中间 + */ + @Override + public TsAcceptCoilRelVo queryById(Long relId){ + return baseMapper.selectVoById(relId); + } + + /** + * 查询受理单关联钢卷中间列表 + */ + @Override + public TableDataInfo queryPageList(TsAcceptCoilRelBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询受理单关联钢卷中间列表 + */ + @Override + public List queryList(TsAcceptCoilRelBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(TsAcceptCoilRelBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getAcceptId() != null, TsAcceptCoilRel::getAcceptId, bo.getAcceptId()); + lqw.eq(bo.getCoilId() != null, TsAcceptCoilRel::getCoilId, bo.getCoilId()); + return lqw; + } + + /** + * 新增受理单关联钢卷中间 + */ + @Override + public Boolean insertByBo(TsAcceptCoilRelBo bo) { + TsAcceptCoilRel add = BeanUtil.toBean(bo, TsAcceptCoilRel.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setRelId(add.getRelId()); + } + return flag; + } + + /** + * 修改受理单关联钢卷中间 + */ + @Override + public Boolean updateByBo(TsAcceptCoilRelBo bo) { + TsAcceptCoilRel update = BeanUtil.toBean(bo, TsAcceptCoilRel.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(TsAcceptCoilRel entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除受理单关联钢卷中间 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/klp-flow/src/main/java/com/klp/flow/service/impl/TsComplaintAcceptServiceImpl.java b/klp-flow/src/main/java/com/klp/flow/service/impl/TsComplaintAcceptServiceImpl.java new file mode 100644 index 00000000..fa863cd5 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/service/impl/TsComplaintAcceptServiceImpl.java @@ -0,0 +1,120 @@ +package com.klp.flow.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.klp.common.utils.StringUtils; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.klp.flow.domain.bo.TsComplaintAcceptBo; +import com.klp.flow.domain.vo.TsComplaintAcceptVo; +import com.klp.flow.domain.TsComplaintAccept; +import com.klp.flow.mapper.TsComplaintAcceptMapper; +import com.klp.flow.service.ITsComplaintAcceptService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 投诉受理单主Service业务层处理 + * + * @author klp + * @date 2026-06-18 + */ +@RequiredArgsConstructor +@Service +public class TsComplaintAcceptServiceImpl implements ITsComplaintAcceptService { + + private final TsComplaintAcceptMapper baseMapper; + + /** + * 查询投诉受理单主 + */ + @Override + public TsComplaintAcceptVo queryById(Long acceptId){ + return baseMapper.selectVoById(acceptId); + } + + /** + * 查询投诉受理单主列表 + */ + @Override + public TableDataInfo queryPageList(TsComplaintAcceptBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询投诉受理单主列表 + */ + @Override + public List queryList(TsComplaintAcceptBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(TsComplaintAcceptBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getComplaintNo()), TsComplaintAccept::getComplaintNo, bo.getComplaintNo()); + lqw.eq(bo.getComplaintDate() != null, TsComplaintAccept::getComplaintDate, bo.getComplaintDate()); + lqw.eq(StringUtils.isNotBlank(bo.getComplaintContent()), TsComplaintAccept::getComplaintContent, bo.getComplaintContent()); + lqw.eq(StringUtils.isNotBlank(bo.getCustomerDemand()), TsComplaintAccept::getCustomerDemand, bo.getCustomerDemand()); + lqw.eq(StringUtils.isNotBlank(bo.getFile()), TsComplaintAccept::getFile, bo.getFile()); + lqw.eq(bo.getAuditStatus() != null, TsComplaintAccept::getAuditStatus, bo.getAuditStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditOpinion()), TsComplaintAccept::getAuditOpinion, bo.getAuditOpinion()); + lqw.eq(bo.getAuditUserId() != null, TsComplaintAccept::getAuditUserId, bo.getAuditUserId()); + lqw.eq(bo.getAuditTime() != null, TsComplaintAccept::getAuditTime, bo.getAuditTime()); + lqw.eq(bo.getFlowStatus() != null, TsComplaintAccept::getFlowStatus, bo.getFlowStatus()); + lqw.eq(bo.getPrincipalUserId() != null, TsComplaintAccept::getPrincipalUserId, bo.getPrincipalUserId()); + lqw.eq(StringUtils.isNotBlank(bo.getPlanContent()), TsComplaintAccept::getPlanContent, bo.getPlanContent()); + return lqw; + } + + /** + * 新增投诉受理单主 + */ + @Override + public Boolean insertByBo(TsComplaintAcceptBo bo) { + TsComplaintAccept add = BeanUtil.toBean(bo, TsComplaintAccept.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setAcceptId(add.getAcceptId()); + } + return flag; + } + + /** + * 修改投诉受理单主 + */ + @Override + public Boolean updateByBo(TsComplaintAcceptBo bo) { + TsComplaintAccept update = BeanUtil.toBean(bo, TsComplaintAccept.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(TsComplaintAccept entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除投诉受理单主 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/klp-flow/src/main/java/com/klp/flow/service/impl/TsComplaintTaskServiceImpl.java b/klp-flow/src/main/java/com/klp/flow/service/impl/TsComplaintTaskServiceImpl.java new file mode 100644 index 00000000..355c1616 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/service/impl/TsComplaintTaskServiceImpl.java @@ -0,0 +1,116 @@ +package com.klp.flow.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.klp.common.utils.StringUtils; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.klp.flow.domain.bo.TsComplaintTaskBo; +import com.klp.flow.domain.vo.TsComplaintTaskVo; +import com.klp.flow.domain.TsComplaintTask; +import com.klp.flow.mapper.TsComplaintTaskMapper; +import com.klp.flow.service.ITsComplaintTaskService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 各部门投诉代办任务&意见Service业务层处理 + * + * @author klp + * @date 2026-06-18 + */ +@RequiredArgsConstructor +@Service +public class TsComplaintTaskServiceImpl implements ITsComplaintTaskService { + + private final TsComplaintTaskMapper baseMapper; + + /** + * 查询各部门投诉代办任务&意见 + */ + @Override + public TsComplaintTaskVo queryById(Long taskId){ + return baseMapper.selectVoById(taskId); + } + + /** + * 查询各部门投诉代办任务&意见列表 + */ + @Override + public TableDataInfo queryPageList(TsComplaintTaskBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询各部门投诉代办任务&意见列表 + */ + @Override + public List queryList(TsComplaintTaskBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(TsComplaintTaskBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getAcceptId() != null, TsComplaintTask::getAcceptId, bo.getAcceptId()); + lqw.eq(bo.getDeptId() != null, TsComplaintTask::getDeptId, bo.getDeptId()); + lqw.eq(bo.getTaskStatus() != null, TsComplaintTask::getTaskStatus, bo.getTaskStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getFillNo()), TsComplaintTask::getFillNo, bo.getFillNo()); + lqw.eq(StringUtils.isNotBlank(bo.getDeptOpinion()), TsComplaintTask::getDeptOpinion, bo.getDeptOpinion()); + lqw.eq(bo.getFillUserId() != null, TsComplaintTask::getFillUserId, bo.getFillUserId()); + lqw.eq(bo.getFillTime() != null, TsComplaintTask::getFillTime, bo.getFillTime()); + lqw.eq(StringUtils.isNotBlank(bo.getFillFile()), TsComplaintTask::getFillFile, bo.getFillFile()); + return lqw; + } + + /** + * 新增各部门投诉代办任务&意见 + */ + @Override + public Boolean insertByBo(TsComplaintTaskBo bo) { + TsComplaintTask add = BeanUtil.toBean(bo, TsComplaintTask.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setTaskId(add.getTaskId()); + } + return flag; + } + + /** + * 修改各部门投诉代办任务&意见 + */ + @Override + public Boolean updateByBo(TsComplaintTaskBo bo) { + TsComplaintTask update = BeanUtil.toBean(bo, TsComplaintTask.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(TsComplaintTask entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除各部门投诉代办任务&意见 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/klp-flow/src/main/java/com/klp/flow/service/impl/TsPlanExecuteRelServiceImpl.java b/klp-flow/src/main/java/com/klp/flow/service/impl/TsPlanExecuteRelServiceImpl.java new file mode 100644 index 00000000..5d71889c --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/service/impl/TsPlanExecuteRelServiceImpl.java @@ -0,0 +1,116 @@ +package com.klp.flow.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.klp.common.utils.StringUtils; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.klp.flow.domain.bo.TsPlanExecuteRelBo; +import com.klp.flow.domain.vo.TsPlanExecuteRelVo; +import com.klp.flow.domain.TsPlanExecuteRel; +import com.klp.flow.mapper.TsPlanExecuteRelMapper; +import com.klp.flow.service.ITsPlanExecuteRelService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 最终方案下发部门及执行反馈Service业务层处理 + * + * @author klp + * @date 2026-06-18 + */ +@RequiredArgsConstructor +@Service +public class TsPlanExecuteRelServiceImpl implements ITsPlanExecuteRelService { + + private final TsPlanExecuteRelMapper baseMapper; + + /** + * 查询最终方案下发部门及执行反馈 + */ + @Override + public TsPlanExecuteRelVo queryById(Long relId){ + return baseMapper.selectVoById(relId); + } + + /** + * 查询最终方案下发部门及执行反馈列表 + */ + @Override + public TableDataInfo queryPageList(TsPlanExecuteRelBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询最终方案下发部门及执行反馈列表 + */ + @Override + public List queryList(TsPlanExecuteRelBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(TsPlanExecuteRelBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getAcceptId() != null, TsPlanExecuteRel::getAcceptId, bo.getAcceptId()); + lqw.eq(bo.getDeptId() != null, TsPlanExecuteRel::getDeptId, bo.getDeptId()); + lqw.eq(bo.getExecuteStatus() != null, TsPlanExecuteRel::getExecuteStatus, bo.getExecuteStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getExecuteResult()), TsPlanExecuteRel::getExecuteResult, bo.getExecuteResult()); + lqw.eq(StringUtils.isNotBlank(bo.getFeedbackNo()), TsPlanExecuteRel::getFeedbackNo, bo.getFeedbackNo()); + lqw.eq(bo.getFeedbackUserId() != null, TsPlanExecuteRel::getFeedbackUserId, bo.getFeedbackUserId()); + lqw.eq(bo.getFeedbackTime() != null, TsPlanExecuteRel::getFeedbackTime, bo.getFeedbackTime()); + lqw.eq(StringUtils.isNotBlank(bo.getFeedbackFile()), TsPlanExecuteRel::getFeedbackFile, bo.getFeedbackFile()); + return lqw; + } + + /** + * 新增最终方案下发部门及执行反馈 + */ + @Override + public Boolean insertByBo(TsPlanExecuteRelBo bo) { + TsPlanExecuteRel add = BeanUtil.toBean(bo, TsPlanExecuteRel.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setRelId(add.getRelId()); + } + return flag; + } + + /** + * 修改最终方案下发部门及执行反馈 + */ + @Override + public Boolean updateByBo(TsPlanExecuteRelBo bo) { + TsPlanExecuteRel update = BeanUtil.toBean(bo, TsPlanExecuteRel.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(TsPlanExecuteRel entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除最终方案下发部门及执行反馈 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/klp-flow/src/main/resources/mapper/flow/TsAcceptCoilRelMapper.xml b/klp-flow/src/main/resources/mapper/flow/TsAcceptCoilRelMapper.xml new file mode 100644 index 00000000..6404c008 --- /dev/null +++ b/klp-flow/src/main/resources/mapper/flow/TsAcceptCoilRelMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + diff --git a/klp-flow/src/main/resources/mapper/flow/TsComplaintAcceptMapper.xml b/klp-flow/src/main/resources/mapper/flow/TsComplaintAcceptMapper.xml new file mode 100644 index 00000000..5334e58e --- /dev/null +++ b/klp-flow/src/main/resources/mapper/flow/TsComplaintAcceptMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/klp-flow/src/main/resources/mapper/flow/TsComplaintTaskMapper.xml b/klp-flow/src/main/resources/mapper/flow/TsComplaintTaskMapper.xml new file mode 100644 index 00000000..e2dff390 --- /dev/null +++ b/klp-flow/src/main/resources/mapper/flow/TsComplaintTaskMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/klp-flow/src/main/resources/mapper/flow/TsPlanExecuteRelMapper.xml b/klp-flow/src/main/resources/mapper/flow/TsPlanExecuteRelMapper.xml new file mode 100644 index 00000000..f25b391f --- /dev/null +++ b/klp-flow/src/main/resources/mapper/flow/TsPlanExecuteRelMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pom.xml b/pom.xml index 5ca7ccf2..7663e893 100644 --- a/pom.xml +++ b/pom.xml @@ -410,7 +410,11 @@ klp-cost ${klp-flowable-plus.version} - + + com.klp + klp-flow + ${klp-flowable-plus.version} + @@ -437,6 +441,7 @@ klp-da klp-aps klp-cost + klp-flow pom diff --git a/script/sql/mysql/klp-oa.sql b/script/sql/mysql/klp-oa.sql index 9d08bfdc..4e2149c4 100644 --- a/script/sql/mysql/klp-oa.sql +++ b/script/sql/mysql/klp-oa.sql @@ -3740,6 +3740,7 @@ CREATE TABLE `wms_employee_info` ( `is_regular` tinyint(1) NULL DEFAULT 0 COMMENT '是否转正:0=未转正,1=已转正', `regular_time` date NULL DEFAULT NULL COMMENT '转正时间', `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', + `is_spicy_eater` tinyint(1) NULL DEFAULT 0 COMMENT '是否吃辣:0=否,1=是', PRIMARY KEY (`info_id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 2047111284850335746 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '员工信息表' ROW_FORMAT = Dynamic;