From cb62db6484db628fe58c90c8758bfeb0af4357fc Mon Sep 17 00:00:00 2001 From: 1073413548 <14628403+gjb0917@user.noreply.gitee.com> Date: Fri, 9 Aug 2024 15:27:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PsContractInfoController.java | 16 +- .../PsContractOperateController.java | 108 +++++ .../business/controller/PsTaskController.java | 203 +++++++++ .../PsTaskWorkRecordController.java | 116 +++++ .../business/domain/PsApproverRecord.java | 5 +- .../pusong/business/domain/PsCompanyInfo.java | 67 +++ .../business/domain/PsContractInfo.java | 4 + .../pusong/business/domain/PsTaskAppoint.java | 65 +++ .../pusong/business/domain/PsTaskMain.java | 63 +++ .../pusong/business/domain/PsTaskMedia.java | 57 +++ .../business/domain/PsTaskWorkRecord.java | 79 ++++ .../pusong/business/domain/bo/AppointBo.java | 29 ++ .../domain/bo/MediaCompanySaveBo.java | 27 ++ .../domain/bo/PsApproverRecordBo.java | 11 +- .../business/domain/bo/PsCompanyInfoBo.java | 71 ++- .../domain/bo/PsContractBusinessDetailBo.java | 4 +- .../domain/bo/PsContractInfoQueryBo.java | 9 + .../business/domain/bo/PsContractPayBo.java | 14 +- .../domain/bo/PsCustomCallbackBo.java | 4 +- .../business/domain/bo/PsCustomPriceBo.java | 4 +- .../business/domain/bo/PsTaskMediaBo.java | 51 +++ .../business/domain/bo/PsTaskQueryBo.java | 78 ++++ .../domain/bo/PsTaskWorkRecordBo.java | 79 ++++ .../domain/vo/PsApproverRecordVo.java | 5 +- .../business/domain/vo/PsCompanyInfoVo.java | 71 ++- .../business/domain/vo/PsContractInfoVo.java | 5 + .../business/domain/vo/PsTaskAppointVo.java | 70 +++ .../business/domain/vo/PsTaskMainVo.java | 97 +++++ .../business/domain/vo/PsTaskMediaVo.java | 62 +++ .../domain/vo/PsTaskWorkRecordVo.java | 87 ++++ .../business/domain/vo/TaskContractVo.java | 171 ++++++++ .../business/enums/ApproverTypeEnum.java | 6 +- .../pusong/business/enums/TaskStatusEnum.java | 99 +++++ .../pusong/business/enums/TaskTypeEnum.java | 17 + .../business/mapper/PsContractInfoMapper.java | 8 +- .../business/mapper/PsCustomInfoMapper.java | 8 +- .../business/mapper/PsTaskAppointMapper.java | 15 + .../business/mapper/PsTaskMainMapper.java | 34 ++ .../business/mapper/PsTaskMediaMapper.java | 15 + .../mapper/PsTaskWorkRecordMapper.java | 15 + .../service/IPsContractBusinessService.java | 6 + .../service/IPsContractInfoService.java | 6 + .../service/IPsContractOperateService.java | 36 ++ .../service/IPsContractPayService.java | 26 +- .../service/IPsTaskAppointService.java | 67 +++ .../business/service/IPsTaskMediaService.java | 73 ++++ .../business/service/IPsTaskService.java | 146 +++++++ .../service/IPsTaskWorkRecordService.java | 84 ++++ .../service/approver/ApproverService.java | 14 +- .../impl/ApproverAbstractServiceImpl.java | 3 +- .../impl/PayContractApproverServiceImpl.java | 73 ++++ .../UpdateContractApproverServiceImpl.java | 12 +- .../impl/IPsContractOperateServiceImpl.java | 97 +++++ .../impl/PsApproverRecordServiceImpl.java | 1 - .../impl/PsCompanyInfoServiceImpl.java | 16 +- .../impl/PsContractBusinessServiceImpl.java | 9 + .../impl/PsContractInfoServiceImpl.java | 16 +- .../impl/PsContractPayServiceImpl.java | 56 ++- .../impl/PsTaskAppointServiceImpl.java | 132 ++++++ .../service/impl/PsTaskMediaServiceImpl.java | 139 ++++++ .../service/impl/PsTaskServiceImpl.java | 407 ++++++++++++++++++ .../impl/PsTaskWorkRecordServiceImpl.java | 169 ++++++++ .../mapper/business/PsContractInfoMapper.xml | 2 +- .../mapper/business/PsTaskAppointMapper.xml | 7 + .../mapper/business/PsTaskMainMapper.xml | 94 ++++ .../mapper/business/PsTaskMediaMapper.xml | 7 + .../business/PsTaskWorkRecordMapper.xml | 7 + 67 files changed, 3596 insertions(+), 58 deletions(-) create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractOperateController.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsTaskController.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsTaskWorkRecordController.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsTaskAppoint.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsTaskMain.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsTaskMedia.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsTaskWorkRecord.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/AppointBo.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/MediaCompanySaveBo.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsTaskMediaBo.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsTaskQueryBo.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsTaskWorkRecordBo.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsTaskAppointVo.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsTaskMainVo.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsTaskMediaVo.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsTaskWorkRecordVo.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/TaskContractVo.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/TaskStatusEnum.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/TaskTypeEnum.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsTaskAppointMapper.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsTaskMainMapper.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsTaskMediaMapper.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsTaskWorkRecordMapper.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractOperateService.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsTaskAppointService.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsTaskMediaService.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsTaskService.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsTaskWorkRecordService.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PayContractApproverServiceImpl.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/IPsContractOperateServiceImpl.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskAppointServiceImpl.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskMediaServiceImpl.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskWorkRecordServiceImpl.java create mode 100644 pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskAppointMapper.xml create mode 100644 pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMainMapper.xml create mode 100644 pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMediaMapper.xml create mode 100644 pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskWorkRecordMapper.xml diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractInfoController.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractInfoController.java index 5e1026f..63e532a 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractInfoController.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractInfoController.java @@ -3,6 +3,8 @@ package com.pusong.business.controller; import java.util.List; import com.pusong.business.domain.bo.PsContractInfoQueryBo; +import com.pusong.business.domain.vo.PsContractBusinessVo; +import com.pusong.business.service.IPsContractBusinessService; import com.pusong.common.core.validate.QueryGroup; import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; @@ -39,6 +41,7 @@ import javax.management.Query; public class PsContractInfoController extends BaseController { private final IPsContractInfoService psContractInfoService; + private final IPsContractBusinessService businessService; /** @@ -85,7 +88,7 @@ public class PsContractInfoController extends BaseController { /** * 根据合同编码查询合同信息 */ - @SaCheckPermission("business:contractInfo:add") + @SaCheckPermission("business:contractInfo:list") @Log(title = "根据合同编码查询合同信息", businessType = BusinessType.INSERT) @RepeatSubmit() @GetMapping("/queryContractByCode") @@ -125,6 +128,17 @@ public class PsContractInfoController extends BaseController { public R restart(@NotBlank String contractCode) { return R.ok(psContractInfoService.restart(contractCode)); } + + /** + * 根据合同编码查询服务信息 + */ + @SaCheckPermission("business:contractInfo:list") + @Log(title = "根据合同编码查询合同信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @GetMapping("/queryServiceByCode") + public R> queryServiceByCode(@NotBlank String contractCode) { + return R.ok(businessService.selectBusinessList(contractCode)); + } // // /** // * 获取合同基本信息详细信息 diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractOperateController.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractOperateController.java new file mode 100644 index 0000000..8f11f22 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractOperateController.java @@ -0,0 +1,108 @@ +package com.pusong.business.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import com.pusong.business.domain.bo.PsContractInfoBo; +import com.pusong.business.domain.bo.PsContractInfoQueryBo; +import com.pusong.business.domain.bo.PsContractPayBo; +import com.pusong.business.domain.vo.PsContractInfoVo; +import com.pusong.business.service.IPsContractInfoService; +import com.pusong.business.service.IPsContractOperateService; +import com.pusong.business.service.IPsContractPayService; +import com.pusong.common.core.domain.R; +import com.pusong.common.core.validate.AddGroup; +import com.pusong.common.core.validate.EditGroup; +import com.pusong.common.idempotent.annotation.RepeatSubmit; +import com.pusong.common.log.annotation.Log; +import com.pusong.common.log.enums.BusinessType; +import com.pusong.common.mybatis.core.page.PageQuery; +import com.pusong.common.mybatis.core.page.TableDataInfo; +import com.pusong.common.web.core.BaseController; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.springframework.http.MediaType; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +/** + * 合同操作controller + * + * @author wls + * @date 2024-07-29 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/business/contractOperate") +public class PsContractOperateController extends BaseController { + + private final IPsContractPayService payService; + private final IPsContractOperateService operateService; + + /** + * 合同签章 + * + * @param contractCode 合同编码 + */ + @SaCheckPermission("business:contractOperate:sign") + @GetMapping("/sign") + public R getInfo(@NotBlank String contractCode ) { + operateService.sign(contractCode); + return R.ok(); + } + + /** + * 合同添加回款记录 + */ + @SaCheckPermission("business:contractOperate:addPayRecord") + @PostMapping(value = "/addPayRecord", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R addPayRecord(@RequestPart("files") List files, + @Validated(AddGroup.class) PsContractPayBo psContractPayBo)throws Exception { + payService.addPay( files, psContractPayBo); + return R.ok(); + } + + /** + * 回传合同 + */ + @SaCheckPermission("business:contractOperate:rollBack") + @PostMapping(value = "/rollBack", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R rollBack(@RequestPart("file") MultipartFile file,@NotBlank String contractCode )throws Exception { + operateService.rollbackContract( file, contractCode); + return R.ok(); + } + + + +// +// /** +// * 获取合同基本信息详细信息 +// * +// * @param id 主键 +// */ +// @SaCheckPermission("business:contractInfo:query") +// @GetMapping("/{id}") +// public R getInfo(@NotNull(message = "主键不能为空") +// @PathVariable Long id) { +// return R.ok(psContractInfoService.queryById(id)); +// } +// + +// +// /** +// * 修改合同基本信息 +// */ +// @SaCheckPermission("business:contractInfo:edit") +// @Log(title = "合同基本信息", businessType = BusinessType.UPDATE) +// @RepeatSubmit() +// @PutMapping() +// public R edit(@Validated(EditGroup.class) @RequestBody PsContractInfoBo bo) { +// return toAjax(psContractInfoService.updateByBo(bo)); +// } + + +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsTaskController.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsTaskController.java new file mode 100644 index 0000000..b251c7b --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsTaskController.java @@ -0,0 +1,203 @@ +package com.pusong.business.controller; + +import com.pusong.business.domain.PsTaskAppoint; +import com.pusong.business.domain.bo.AppointBo; +import com.pusong.business.domain.bo.MediaCompanySaveBo; +import com.pusong.business.domain.bo.PsTaskQueryBo; +import com.pusong.business.domain.vo.PsTaskAppointVo; +import com.pusong.common.core.domain.R; +import com.pusong.common.core.validate.QueryGroup; +import com.pusong.common.log.annotation.Log; +import com.pusong.common.log.enums.BusinessType; +import lombok.RequiredArgsConstructor; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.jetbrains.annotations.NotNull; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.pusong.common.web.core.BaseController; +import com.pusong.common.mybatis.core.page.PageQuery; +import com.pusong.business.domain.vo.PsTaskMainVo; +import com.pusong.business.service.IPsTaskService; +import com.pusong.common.mybatis.core.page.TableDataInfo; + +import java.util.List; +import java.util.Map; + +/** + * 任务controller + * + * @author wls + * @date 2024-08-07 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/business/task") +public class PsTaskController extends BaseController { + + private final IPsTaskService psTaskMainService; + + /** + * 查询主任务列表 + */ + @Log(title = "查询主任务列表") + @SaCheckPermission("business:task:list") + @GetMapping("/list") + public TableDataInfo list(PsTaskQueryBo bo, PageQuery pageQuery) { + return psTaskMainService.queryPageList(bo, pageQuery); + } + + /** + * 查询内外特任务列表 + */ + @Log(title = "查询内外特任务列表") + @SaCheckPermission("business:task:list") + @GetMapping("/childList") + public TableDataInfo childList(@Validated(QueryGroup.class) PsTaskQueryBo bo, PageQuery pageQuery) { + return psTaskMainService.queryChildPageList(bo, pageQuery); + } + + /** + * 根据任务id查询任务的公司信息和资料信息 + */ + @Log(title = "根据任务id查询任务的公司信息和资料信息") + @SaCheckPermission("business:task:list") + @GetMapping("/info") + public R info(@NotNull Long id) { + return R.ok(psTaskMainService.queryInfo(id)); + } + + /** + * 上传资料和公司信息 + */ + @Log(title = "上传资料和公司信息") + @SaCheckPermission("business:task:list") + @PostMapping("/saveInfo") + public R saveInfo( @RequestBody MediaCompanySaveBo save) { + psTaskMainService.saveInfo(save); + return R.ok(); + } + + + /** + * 任务委派 + */ + @Log(title = "任务委派") + @SaCheckPermission("business:task:list") + @PostMapping("/appoint") + public R appoint(@Validated @RequestBody AppointBo appointBo) { + psTaskMainService.appoint(appointBo); + return R.ok(); + } + + /** + * 主任务完成 + * @param id 主任务id + * @return + */ + @Log(title = "主任务完成") + @SaCheckPermission("business:task:list") + @GetMapping("/mainFinish") + public R mainFinish(@NotNull Long id) { + psTaskMainService.finishMain(id); + return R.ok(); + } + + /** + * 子任务完成 + * @param id 子任务id + * @param desc 特勤备注 + * @return + */ + @Log(title = "子任务完成") + @SaCheckPermission("business:task:list") + @GetMapping("/childFinish") + public R childFinish(@NotNull Long id,String desc) { + psTaskMainService.finishChild(id,desc); + return R.ok(); + } + + /** + * 获取任务执行者列表 + * @param id 任务id + * @return + */ + @Log(title = "获取任务执行者列表") + @SaCheckPermission("business:task:list") + @GetMapping("/executors") + public R> executors(@NotNull Long id) { + return R.ok(psTaskMainService.getExecutors(id)); + } + + /** + * 任务改派 + * @param id 任务委派表id + * @param executorId 任务新的执行者id + * @return + */ + @Log(title = "任务改派") + @SaCheckPermission("business:task:list") + @GetMapping("/reset") + public R taskReset(@NotNull Long id,@NotNull Long executorId) { + psTaskMainService.taskReset(id, executorId); + return R.ok(); + } + +// /** +// * 导出主任务列表 +// */ +// @SaCheckPermission("business:taskMain:export") +// @Log(title = "主任务", businessType = BusinessType.EXPORT) +// @PostMapping("/export") +// public void export(PsTaskMainBo bo, HttpServletResponse response) { +// List list = psTaskMainService.queryList(bo); +// ExcelUtil.exportExcel(list, "主任务", PsTaskMainVo.class, response); +// } +// +// /** +// * 获取主任务详细信息 +// * +// * @param id 主键 +// */ +// @SaCheckPermission("business:taskMain:query") +// @GetMapping("/{id}") +// public R getInfo(@NotNull(message = "主键不能为空") +// @PathVariable Long id) { +// return R.ok(psTaskMainService.queryById(id)); +// } +// +// /** +// * 新增主任务 +// */ +// @SaCheckPermission("business:taskMain:add") +// @Log(title = "主任务", businessType = BusinessType.INSERT) +// @RepeatSubmit() +// @PostMapping() +// public R add(@Validated(AddGroup.class) @RequestBody PsTaskMainBo bo) { +// return toAjax(psTaskMainService.insertByBo(bo)); +// } +// +// /** +// * 修改主任务 +// */ +// @SaCheckPermission("business:taskMain:edit") +// @Log(title = "主任务", businessType = BusinessType.UPDATE) +// @RepeatSubmit() +// @PutMapping() +// public R edit(@Validated(EditGroup.class) @RequestBody PsTaskMainBo bo) { +// return toAjax(psTaskMainService.updateByBo(bo)); +// } +// +// /** +// * 删除主任务 +// * +// * @param ids 主键串 +// */ +// @SaCheckPermission("business:taskMain:remove") +// @Log(title = "主任务", businessType = BusinessType.DELETE) +// @DeleteMapping("/{ids}") +// public R remove(@NotEmpty(message = "主键不能为空") +// @PathVariable Long[] ids) { +// return toAjax(psTaskMainService.deleteWithValidByIds(List.of(ids), true)); +// } +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsTaskWorkRecordController.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsTaskWorkRecordController.java new file mode 100644 index 0000000..ae2a578 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsTaskWorkRecordController.java @@ -0,0 +1,116 @@ +package com.pusong.business.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.pusong.common.idempotent.annotation.RepeatSubmit; +import com.pusong.common.log.annotation.Log; +import com.pusong.common.web.core.BaseController; +import com.pusong.common.mybatis.core.page.PageQuery; +import com.pusong.common.core.domain.R; +import com.pusong.common.core.validate.AddGroup; +import com.pusong.common.core.validate.EditGroup; +import com.pusong.common.log.enums.BusinessType; +import com.pusong.common.excel.utils.ExcelUtil; +import com.pusong.business.domain.vo.PsTaskWorkRecordVo; +import com.pusong.business.domain.bo.PsTaskWorkRecordBo; +import com.pusong.business.service.IPsTaskWorkRecordService; +import com.pusong.common.mybatis.core.page.TableDataInfo; + +/** + * 外勤任务记录 + * + * @author wls + * @date 2024-08-09 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/business/taskWorkRecord") +public class PsTaskWorkRecordController extends BaseController { + + private final IPsTaskWorkRecordService psTaskWorkRecordService; + + /** + * 根据任务委派id查询工作进度列表 + */ + @Log(title = "根据任务委派id查询工作进度列表") + @SaCheckPermission("business:taskWorkRecord:list") + @GetMapping("/list") + public R> list(@NotNull Long id) { + return R.ok(psTaskWorkRecordService.queryListByAppointId(id)); + } + + /** + * 新增外勤任务记录 + */ + @SaCheckPermission("business:taskWorkRecord:add") + @Log(title = "外勤任务记录", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody PsTaskWorkRecordBo bo) { + return toAjax(psTaskWorkRecordService.insertByBo(bo)); + } + +// /** +// * 导出外勤任务记录列表 +// */ +// @SaCheckPermission("business:taskWorkRecord:export") +// @Log(title = "外勤任务记录", businessType = BusinessType.EXPORT) +// @PostMapping("/export") +// public void export(PsTaskWorkRecordBo bo, HttpServletResponse response) { +// List list = psTaskWorkRecordService.queryList(bo); +// ExcelUtil.exportExcel(list, "外勤任务记录", PsTaskWorkRecordVo.class, response); +// } +// +// /** +// * 获取外勤任务记录详细信息 +// * +// * @param id 主键 +// */ +// @SaCheckPermission("business:taskWorkRecord:query") +// @GetMapping("/{id}") +// public R getInfo(@NotNull(message = "主键不能为空") +// @PathVariable Long id) { +// return R.ok(psTaskWorkRecordService.queryById(id)); +// } +// +// /** +// * 新增外勤任务记录 +// */ +// @SaCheckPermission("business:taskWorkRecord:add") +// @Log(title = "外勤任务记录", businessType = BusinessType.INSERT) +// @RepeatSubmit() +// @PostMapping() +// public R add(@Validated(AddGroup.class) @RequestBody PsTaskWorkRecordBo bo) { +// return toAjax(psTaskWorkRecordService.insertByBo(bo)); +// } +// +// /** +// * 修改外勤任务记录 +// */ +// @SaCheckPermission("business:taskWorkRecord:edit") +// @Log(title = "外勤任务记录", businessType = BusinessType.UPDATE) +// @RepeatSubmit() +// @PutMapping() +// public R edit(@Validated(EditGroup.class) @RequestBody PsTaskWorkRecordBo bo) { +// return toAjax(psTaskWorkRecordService.updateByBo(bo)); +// } +// +// /** +// * 删除外勤任务记录 +// * +// * @param ids 主键串 +// */ +// @SaCheckPermission("business:taskWorkRecord:remove") +// @Log(title = "外勤任务记录", businessType = BusinessType.DELETE) +// @DeleteMapping("/{ids}") +// public R remove(@NotEmpty(message = "主键不能为空") +// @PathVariable Long[] ids) { +// return toAjax(psTaskWorkRecordService.deleteWithValidByIds(List.of(ids), true)); +// } +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsApproverRecord.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsApproverRecord.java index 7f22e29..6070772 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsApproverRecord.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsApproverRecord.java @@ -34,7 +34,10 @@ public class PsApproverRecord extends TenantEntity { * 关联业务id */ private String businessId; - + /** + * 合同编码 + */ + private String contractCode; /** * 审批业务类型 */ diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsCompanyInfo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsCompanyInfo.java index 9765b2e..ed854ed 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsCompanyInfo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsCompanyInfo.java @@ -7,6 +7,7 @@ import lombok.EqualsAndHashCode; import java.math.BigDecimal; import java.io.Serial; +import java.util.Date; /** * 公司信息对象 ps_company_info @@ -64,6 +65,70 @@ public class PsCompanyInfo extends TenantEntity { * 法人电话号 */ private String legalPersonPhone; + /** + * 纳税人识别号 + */ + private String customerNum; + /** + * 纳税人资格 + */ + private String customerCert; + /** + * 个税密码 + */ + private String companyPersonPassword; + /** + * 税务密码 + */ + private String companyTaxPassword; + /** + * 开户行客户经理电话 + */ + private String companyBankManagerPhone; + /** + * 刻章公司名称 + */ + private String madeSignCompanyName; + /** + * 公司地址详情 + */ + private String companyAdressDetail; + /** + * 账套号 + */ + private String financeAccountNo; + /** + * 社保开户时间 + */ + private Date socialStartDate; + /** + * 公积金开户时间 + */ + private Date providentStartDate; + /** + * 营业执照开始时间 + */ + private Date licenseStartDate; + /** + * 营业执照结束时间 + */ + private Date licenseEndDate; + /** + * 经营范围 + */ + private String companyScope; + /** + * 注册资金 + */ + private BigDecimal registerAmount; + /** + * 注册类型 + */ + private String registerType; + /** + * 发票类型 + */ + private String billType; /** * 2逻辑删除 0 默认有效 @@ -71,4 +136,6 @@ public class PsCompanyInfo extends TenantEntity { private Long delFlag; + + } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractInfo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractInfo.java index a97671c..476f382 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractInfo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractInfo.java @@ -119,6 +119,10 @@ public class PsContractInfo extends TenantEntity { * 合同回传状态CommonStatusEnum */ private String rollBackStatus; + /** + * 回传的合同文件ossid + */ + private Long rollBackPdf; /** * 合同签章状态CommonStatusEnum diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsTaskAppoint.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsTaskAppoint.java new file mode 100644 index 0000000..dfe41fd --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsTaskAppoint.java @@ -0,0 +1,65 @@ +package com.pusong.business.domain; + +import com.pusong.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 任务委派对象 ps_task_appoint + * + * @author wls + * @date 2024-08-07 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("ps_task_appoint") +public class PsTaskAppoint extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id") + private Long id; + + /** + * 主任务表id + */ + private Long taskId; + + /** + * 合同编码 + */ + private String contractCode; + + /** + * 任务委派类型(1内勤,2外勤,3特勤) + */ + private String appointType; + + /** + * 任务委派状态 + */ + private String appointStatus; + + /** + * 任务执行者 + */ + private Long executor; + /** + * 任务备注 + */ + private String taskDesc; + /** + * 2逻辑删除 0 默认有效 + */ + @TableLogic + private Long delFlag; + + +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsTaskMain.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsTaskMain.java new file mode 100644 index 0000000..e6fa944 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsTaskMain.java @@ -0,0 +1,63 @@ +package com.pusong.business.domain; + +import com.pusong.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 主任务对象 ps_task_main + * + * @author wls + * @date 2024-08-07 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("ps_task_main") +public class PsTaskMain extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id") + private Long id; + /** + * 公司id + */ + private Long companyId; + + /** + * 合同编码 + */ + private String contractCode; + + /** + * 任务类型(1合同任务,2免费工单,3发票) + */ + private String taskType; + + /** + * 派单时间 + */ + private Date startDate; + + /** + * 任务状态 + */ + private String taskStatus; + + /** + * 2逻辑删除 0 默认有效 + */ + @TableLogic + private Long delFlag; + + +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsTaskMedia.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsTaskMedia.java new file mode 100644 index 0000000..2d068df --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsTaskMedia.java @@ -0,0 +1,57 @@ +package com.pusong.business.domain; + +import com.pusong.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 任务资料对象 ps_task_media + * + * @author wls + * @date 2024-08-07 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("ps_task_media") +public class PsTaskMedia extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id") + private Long id; + + /** + * 主任务表id + */ + private Long taskId; + + /** + * 合同编号 + */ + private String contractCode; + + /** + * 资料类型 + */ + private String mediaType; + + /** + * 文件ossid + */ + private String mediaOssId; + + /** + * 2逻辑删除 0 默认有效 + */ + @TableLogic + private Long delFlag; + + +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsTaskWorkRecord.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsTaskWorkRecord.java new file mode 100644 index 0000000..bdcc5c9 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsTaskWorkRecord.java @@ -0,0 +1,79 @@ +package com.pusong.business.domain; + +import com.pusong.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 外勤任务记录对象 ps_task_work_record + * + * @author wls + * @date 2024-08-09 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("ps_task_work_record") +public class PsTaskWorkRecord extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id") + private Long id; + + /** + * 任务委派表id + */ + private Long taskAppointId; + + /** + * 合同编码 + */ + private String contractCode; + + /** + * 办理时间 + */ + private Date handleDate; + + /** + * 办理事项 + */ + private String handleInfo; + + /** + * 办理进度说明 + */ + private String handlePlan; + + /** + * 下次办理类型 + */ + private String nextType; + + /** + * 下次办理描述 + */ + private String nextDesc; + + /** + * 下次办理时间 + */ + private Date nextDate; + + /** + * 2逻辑删除 0 默认有效 + */ + @TableLogic + private Long delFlag; + + +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/AppointBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/AppointBo.java new file mode 100644 index 0000000..5a968c6 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/AppointBo.java @@ -0,0 +1,29 @@ +package com.pusong.business.domain.bo; + +import com.pusong.system.domain.bo.SysDictDataBo; +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.jetbrains.annotations.NotNull; + +@Data +@EqualsAndHashCode +public class AppointBo { + /** + * 任务主表id + */ + @NotNull + private Long id; + /** + * 执行者用户id + */ + @NotNull + private Long userId; + + /** + * 任务委派类型(1内勤,2外勤,3特勤) + */ + @NotBlank + private String AppointType; +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/MediaCompanySaveBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/MediaCompanySaveBo.java new file mode 100644 index 0000000..6d9613f --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/MediaCompanySaveBo.java @@ -0,0 +1,27 @@ +package com.pusong.business.domain.bo; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +@Data +@EqualsAndHashCode +public class MediaCompanySaveBo { + /** + * 主任务表id + */ + @NotNull + private Long id; + /** + * 公司信息 + */ + @NotNull + private PsCompanyInfoBo psCompanyInfo; + + /** + * 资料信息 + */ + private List mediaBoList; +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsApproverRecordBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsApproverRecordBo.java index cafa2cb..e671e6a 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsApproverRecordBo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsApproverRecordBo.java @@ -18,9 +18,9 @@ import com.fasterxml.jackson.annotation.JsonFormat; * @date 2024-08-05 */ @Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = PsApproverRecord.class, reverseConvertGenerate = false) -public class PsApproverRecordBo extends BaseEntity { +@EqualsAndHashCode +@AutoMapper(target = PsApproverRecord.class) +public class PsApproverRecordBo { /** * 主键id @@ -33,7 +33,10 @@ public class PsApproverRecordBo extends BaseEntity { */ @NotNull(message = "关联业务id不能为空") private Long businessId; - + /** + * 合同编码 + */ + private String contractCode; /** * 审批业务类型 */ diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsCompanyInfoBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsCompanyInfoBo.java index 9f38937..9d4f5bf 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsCompanyInfoBo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsCompanyInfoBo.java @@ -1,6 +1,7 @@ package com.pusong.business.domain.bo; import com.alibaba.excel.annotation.ExcelProperty; +import com.fasterxml.jackson.annotation.JsonFormat; import com.pusong.business.domain.PsCompanyInfo; import com.pusong.common.core.validate.QueryGroup; import com.pusong.common.mybatis.core.domain.BaseEntity; @@ -11,6 +12,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; import java.math.BigDecimal; +import java.util.Date; /** * 公司信息业务对象 ps_company_info @@ -69,5 +71,72 @@ public class PsCompanyInfoBo { */ private String legalPersonPhone; - + /** + * 纳税人识别号 + */ + private String customerNum; + /** + * 纳税人资格 + */ + private String customerCert; + /** + * 个税密码 + */ + private String companyPersonPassword; + /** + * 税务密码 + */ + private String companyTaxPassword; + /** + * 开户行客户经理电话 + */ + private String companyBankManagerPhone; + /** + * 刻章公司名称 + */ + private String madeSignCompanyName; + /** + * 公司地址详情 + */ + private String companyAdressDetail; + /** + * 账套号 + */ + private String financeAccountNo; + /** + * 社保开户时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date socialStartDate; + /** + * 公积金开户时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date providentStartDate; + /** + * 营业执照开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date licenseStartDate; + /** + * 营业执照结束时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date licenseEndDate; + /** + * 经营范围 + */ + private String companyScope; + /** + * 注册资金 + */ + private BigDecimal registerAmount; + /** + * 注册类型 + */ + private String registerType; + /** + * 发票类型 + */ + private String billType; } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractBusinessDetailBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractBusinessDetailBo.java index 51ba8bc..6347180 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractBusinessDetailBo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractBusinessDetailBo.java @@ -17,9 +17,9 @@ import java.math.BigDecimal; * @date 2024-07-29 */ @Data -@EqualsAndHashCode(callSuper = true) +@EqualsAndHashCode @AutoMapper(target = PsContractBusinessDetail.class) -public class PsContractBusinessDetailBo extends BaseEntity { +public class PsContractBusinessDetailBo { /** * 主键id diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractInfoQueryBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractInfoQueryBo.java index 9790659..c5851cd 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractInfoQueryBo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractInfoQueryBo.java @@ -52,6 +52,15 @@ public class PsContractInfoQueryBo { */ private String contractStatus; + /** + * 合同状态(in) + */ + private List inContractStatus; + /** + * 合同状态(not in) + */ + private List notInContractStatus; + diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractPayBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractPayBo.java index f873eda..e7cc772 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractPayBo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractPayBo.java @@ -19,9 +19,9 @@ import com.fasterxml.jackson.annotation.JsonFormat; * @date 2024-08-01 */ @Data -@EqualsAndHashCode(callSuper = true) +@EqualsAndHashCode @AutoMapper(target = PsContractPay.class) -public class PsContractPayBo extends BaseEntity { +public class PsContractPayBo { /** * 主键id @@ -70,11 +70,11 @@ public class PsContractPayBo extends BaseEntity { @NotBlank(message = "收款主体不能为空", groups = { AddGroup.class, EditGroup.class }) private String gathMain; - /** - * 回款凭证(多个时用逗号分隔) - */ - @NotBlank(message = "回款凭证(多个时用逗号分隔)不能为空", groups = { AddGroup.class, EditGroup.class }) - private String payCertification; +// /** +// * 回款凭证(多个时用逗号分隔) +// */ +// @NotBlank(message = "回款凭证(多个时用逗号分隔)不能为空", groups = { AddGroup.class, EditGroup.class }) +// private String payCertification; /** * 回款备注 diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsCustomCallbackBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsCustomCallbackBo.java index 36162b5..236297c 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsCustomCallbackBo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsCustomCallbackBo.java @@ -18,9 +18,9 @@ import java.math.BigDecimal; * @date 2024-07-25 */ @Data -@EqualsAndHashCode(callSuper = true) +@EqualsAndHashCode @AutoMapper(target = PsCustomCallback.class) -public class PsCustomCallbackBo extends BaseEntity { +public class PsCustomCallbackBo { /** * diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsCustomPriceBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsCustomPriceBo.java index 07c8e6d..4bb5957 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsCustomPriceBo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsCustomPriceBo.java @@ -22,9 +22,9 @@ import java.math.BigDecimal; * @date 2024-07-25 */ @Data -@EqualsAndHashCode(callSuper = true) +@EqualsAndHashCode @AutoMapper(target = PsCustomPrice.class) -public class PsCustomPriceBo extends BaseEntity { +public class PsCustomPriceBo { /** * diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsTaskMediaBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsTaskMediaBo.java new file mode 100644 index 0000000..2f40af2 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsTaskMediaBo.java @@ -0,0 +1,51 @@ +package com.pusong.business.domain.bo; + +import com.pusong.business.domain.PsTaskMedia; +import com.pusong.common.core.validate.AddGroup; +import com.pusong.common.core.validate.EditGroup; +import com.pusong.common.mybatis.core.domain.BaseEntity; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 任务资料业务对象 ps_task_media + * + * @author wls + * @date 2024-08-07 + */ +@Data +@EqualsAndHashCode +@AutoMapper(target = PsTaskMedia.class) +public class PsTaskMediaBo { + + /** + * 主键id + */ + private Long id; + + /** + * 主任务表id + */ + private Long taskId; + + /** + * 合同编号 + */ + private String contractCode; + + /** + * 资料类型 + */ + @NotBlank(message = "资料类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private String mediaType; + + /** + * 文件ossid(多个时用逗号分割,删除时传-1) + */ + @NotBlank(message = "文件ossid不能为空", groups = { AddGroup.class, EditGroup.class }) + private String mediaOssId; + + +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsTaskQueryBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsTaskQueryBo.java new file mode 100644 index 0000000..750dd32 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsTaskQueryBo.java @@ -0,0 +1,78 @@ +package com.pusong.business.domain.bo; + +import com.pusong.common.core.validate.AddGroup; +import com.pusong.common.core.validate.EditGroup; +import com.pusong.common.core.validate.QueryGroup; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import java.util.List; + +/** + * 主任务业务对象 ps_task_main + * + * @author wls + * @date 2024-08-07 + */ +@Data +@EqualsAndHashCode +public class PsTaskQueryBo { + + /** + * 主键id + */ + private Long id; + + /** + * 公司名称 + */ + private String companyName; + + /** + * 纳税人识别号 + */ + private String customerNum; + + /** + * 纳税人资格 + */ + private String customerCert; + + /** + * 销售经理姓名 + */ + private String customManagerName; + /** + * 服务项目编码集合 + */ + private List serviceProjectCode; + /** + * 执行者姓名 + */ + private String executor; + /** + * 所属区域(公司地址) + */ + private String companyAdress; + /** + * 法人手机号 + */ + private String mobile; + /** + * 法人身份证号 + */ + private String idNo; + /** + * 法人身份证号 + */ + private String name; + + /** + * 任务委派类型(1内勤,2外勤,3特勤) 查询子任务列表时使用 + */ + @NotBlank(message = "任务委派类型不能为空", groups = {QueryGroup.class}) + private String appointType; + + +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsTaskWorkRecordBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsTaskWorkRecordBo.java new file mode 100644 index 0000000..5c50456 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsTaskWorkRecordBo.java @@ -0,0 +1,79 @@ +package com.pusong.business.domain.bo; + +import com.pusong.business.domain.PsTaskWorkRecord; +import com.pusong.common.core.validate.AddGroup; +import com.pusong.common.core.validate.EditGroup; +import com.pusong.common.mybatis.core.domain.BaseEntity; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 外勤任务记录业务对象 ps_task_work_record + * + * @author wls + * @date 2024-08-09 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = PsTaskWorkRecord.class, reverseConvertGenerate = false) +public class PsTaskWorkRecordBo extends BaseEntity { + +// /** +// * 主键id +// */ +// @NotNull(message = "主键id不能为空", groups = { EditGroup.class }) +// private Long id; + + /** + * 任务委派表id + */ + @NotNull(message = "任务委派表id不能为空", groups = { AddGroup.class }) + private Long taskAppointId; + + /** + * 合同编码 + */ + private String contractCode; + + /** + * 办理时间 + */ + @NotNull(message = "办理时间不能为空", groups = { AddGroup.class }) + @JsonFormat(pattern = "yyyy-MM-dd") + private Date handleDate; + + /** + * 办理事项 + */ + @NotBlank(message = "办理事项不能为空", groups = { AddGroup.class }) + private String handleInfo; + + /** + * 办理进度说明 + */ + @NotBlank(message = "办理进度说明不能为空", groups = { AddGroup.class }) + private String handlePlan; + + /** + * 下次办理类型 + */ + @NotBlank(message = "下次办理类型不能为空", groups = { AddGroup.class }) + private String nextType; + + /** + * 下次办理描述 1指定时间,2时间待定,3无 + */ + private String nextDesc; + + /** + * 下次办理时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date nextDate; + + +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsApproverRecordVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsApproverRecordVo.java index f461f7b..6efe552 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsApproverRecordVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsApproverRecordVo.java @@ -42,7 +42,10 @@ public class PsApproverRecordVo implements Serializable { */ @ExcelProperty(value = "关联业务id") private Long businessId; - + /** + * 合同编码 + */ + private String contractCode; /** * 审批业务类型 */ diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCompanyInfoVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCompanyInfoVo.java index c26621a..93b56fc 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCompanyInfoVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCompanyInfoVo.java @@ -4,6 +4,7 @@ import java.math.BigDecimal; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; import com.pusong.business.domain.PsCompanyInfo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; @@ -79,6 +80,72 @@ public class PsCompanyInfoVo implements Serializable { */ private Date updateTime; - - + /** + * 纳税人识别号 + */ + private String customerNum; + /** + * 纳税人资格 + */ + private String customerCert; + /** + * 个税密码 + */ + private String companyPersonPassword; + /** + * 税务密码 + */ + private String companyTaxPassword; + /** + * 开户行客户经理电话 + */ + private String companyBankManagerPhone; + /** + * 刻章公司名称 + */ + private String madeSignCompanyName; + /** + * 公司地址详情 + */ + private String companyAdressDetail; + /** + * 账套号 + */ + private String financeAccountNo; + /** + * 社保开户时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date socialStartDate; + /** + * 公积金开户时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date providentStartDate; + /** + * 营业执照开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date licenseStartDate; + /** + * 营业执照结束时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date licenseEndDate; + /** + * 经营范围 + */ + private String companyScope; + /** + * 注册资金 + */ + private BigDecimal registerAmount; + /** + * 注册类型 + */ + private String registerType; + /** + * 发票类型 + */ + private String billType; } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractInfoVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractInfoVo.java index d8de2de..a45070f 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractInfoVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractInfoVo.java @@ -155,6 +155,11 @@ public class PsContractInfoVo implements Serializable { * 合同回传状态0未回传1已回传 */ private String rollBackStatus; + /** + * 回传的合同文件ossid + */ + private Long rollBackPdf; + /** * 合同签章状态CommonStatusEnum */ diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsTaskAppointVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsTaskAppointVo.java new file mode 100644 index 0000000..fa29d4e --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsTaskAppointVo.java @@ -0,0 +1,70 @@ +package com.pusong.business.domain.vo; + +import com.pusong.business.domain.PsTaskAppoint; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.pusong.common.excel.annotation.ExcelDictFormat; +import com.pusong.common.excel.convert.ExcelDictConvert; +import com.pusong.common.translation.annotation.Translation; +import com.pusong.common.translation.constant.TransConstant; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 任务委派视图对象 ps_task_appoint + * + * @author wls + * @date 2024-08-07 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PsTaskAppoint.class) +public class PsTaskAppointVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + + /** + * 主任务表id + */ + private Long taskId; + + /** + * 合同编码 + */ + private String contractCode; + + /** + * 任务委派类型(1内勤,2外勤,3特勤) + */ + private String appointType; + + /** + * 任务委派状态 + */ + private String appointStatus; + /** + * 任务执行者 + */ + private Long executor; + /** + * 任务执行者 + */ + @Translation(type = TransConstant.USER_ID_TO_NICKNAME,mapper = "executor") + private String executorName; + + /** + * 任务备注 + */ + private String taskDesc; +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsTaskMainVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsTaskMainVo.java new file mode 100644 index 0000000..14d2f85 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsTaskMainVo.java @@ -0,0 +1,97 @@ +package com.pusong.business.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.pusong.business.domain.PsTaskMain; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.pusong.common.excel.annotation.ExcelDictFormat; +import com.pusong.common.excel.convert.ExcelDictConvert; +import com.pusong.common.translation.annotation.Translation; +import com.pusong.common.translation.constant.TransConstant; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + + +/** + * 主任务视图对象 ps_task_main + * + * @author wls + * @date 2024-08-07 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PsTaskMain.class) +public class PsTaskMainVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + /** + * 合同编码 + */ + private String contractCode; + /** + * 任务类型(1合同任务,2免费工单,3发票) + */ + private String taskType; + + /** + * 派单时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm") + private Date startDate; + /** + * 任务进行天数 + */ + private int numOfDat; + + /** + * 主任务状态 + */ + private String taskStatus; + /** + * 子任务状态 + */ + private String appointStatus; + /** + * 服务类别名(多个是用逗号分隔) + */ + @Translation(type = TransConstant.DICT_TYPE_TO_LABEL,other = "contract_type") + private String businessTypeName; + /** + * 合同信息 + */ + private TaskContractVo contractVo; + /** + * 公司信息 + */ + private PsCompanyInfoVo companyInfoVo; + /** + * 客户信息 + */ + private PsCustomInfoVo customInfoVo; + + /** + * 执行者 + */ + @Translation(type = TransConstant.USER_ID_TO_NICKNAME) + private String executors; + + /** + * 支付状态描述(全款、半款) + */ + private String payStautsDesc; + /** + * 任务资料信息 + */ + private List taskMediaVoList; +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsTaskMediaVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsTaskMediaVo.java new file mode 100644 index 0000000..4af8b44 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsTaskMediaVo.java @@ -0,0 +1,62 @@ +package com.pusong.business.domain.vo; + +import com.pusong.business.domain.PsTaskMedia; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.pusong.common.excel.annotation.ExcelDictFormat; +import com.pusong.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 任务资料视图对象 ps_task_media + * + * @author wls + * @date 2024-08-07 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PsTaskMedia.class) +public class PsTaskMediaVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ExcelProperty(value = "主键id") + private Long id; + + /** + * 主任务表id + */ + @ExcelProperty(value = "主任务表id") + private Long taskId; + + /** + * 合同编号 + */ + @ExcelProperty(value = "合同编号") + private String contractCode; + + /** + * 资料类型 + */ + @ExcelProperty(value = "资料类型") + private String mediaType; + + /** + * 文件ossid + */ + @ExcelProperty(value = "文件ossid") + private String mediaOssId; + + +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsTaskWorkRecordVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsTaskWorkRecordVo.java new file mode 100644 index 0000000..72edfe2 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsTaskWorkRecordVo.java @@ -0,0 +1,87 @@ +package com.pusong.business.domain.vo; + +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.pusong.business.domain.PsTaskWorkRecord; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.pusong.common.excel.annotation.ExcelDictFormat; +import com.pusong.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 外勤任务记录视图对象 ps_task_work_record + * + * @author wls + * @date 2024-08-09 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PsTaskWorkRecord.class) +public class PsTaskWorkRecordVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + + /** + * 任务委派表id + */ + private Long taskAppointId; + + /** + * 合同编码 + */ + private String contractCode; + + /** + * 办理时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date handleDate; + + /** + * 办理事项 + */ + private String handleInfo; + + /** + * 办理进度说明 + */ + private String handlePlan; + + /** + * 下次办理类型 + */ + private String nextType; + + /** + * 下次办理描述 + */ + private String nextDesc; + + /** + * 下次办理时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date nextDate; + /** + * 创建时间(记录时间) + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm") + private Date createTime; + +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/TaskContractVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/TaskContractVo.java new file mode 100644 index 0000000..b6b9772 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/TaskContractVo.java @@ -0,0 +1,171 @@ +package com.pusong.business.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.pusong.business.domain.PsContractInfo; +import com.pusong.common.translation.annotation.Translation; +import com.pusong.common.translation.constant.TransConstant; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + + +/** + * 任务查询时使用的合同信息dto + * + * @author wls + * @date 2024-07-29 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PsContractInfo.class) +public class TaskContractVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + + /** + * 合同编码 + */ + private String contractCode; + + /** + * 合同名称 + */ + private String contractName; + + /** + * 客户id + */ + private Long customId; + + /** + * 公司id + */ + private Long companyId; + + /** + * 合同主体 + */ + private String contractMain; + /** + * 合同主体 + */ + @Translation(type = TransConstant.DICT_TYPE_TO_LABEL,other = "contract_main",mapper="contractMain") + private String contractMainName; + + /** + * 合同总金额 + */ + private BigDecimal contractAmount; + + /** + * 合同状态 + */ + private String contractStatus; + /** + * 合同状态名 + */ + @Translation(type = TransConstant.DICT_TYPE_TO_LABEL,other = "contract_status",mapper="contractStatus") + private String contractStatusName; + + /** + * 签约日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date applyDate; + /** + * 服务周期开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date startServiceDate; + /** + * 服务周期结束时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date endServiceDate; + /** + * 办理期限 + */ + private Long timeLimit; + + /** + * 客户是否到达现场 + */ + private String customScene; + + /** + * 是否代账 + */ + private String isProxy; + /** + * 所属客户经理 + */ + private Long customManager; + /** + * 所属客户经理姓名 + */ + private String customManagerName; + /** + * 签约备注 + */ + private String signDesc; + /** + * 付款方式描述 + */ + private String payModeDesc; + /** + * 文件系统ossId + */ + private Long pdfId; + /** + * 已付金额 + */ + private BigDecimal payMoney; + /** + * 退款金额 + */ + private BigDecimal returnMoney; + + /** + * 未付金额 + */ + private BigDecimal residualMoney; + /** + * 回款周期(天) + */ + private Integer period; + /** + * 服务类别名(多个是用逗号分隔) + */ + @Translation(type = TransConstant.DICT_TYPE_TO_LABEL,other = "contract_type") + private String businessTypeName; + /** + * 合同回传状态0未回传1已回传 + */ + private String rollBackStatus; + /** + * 回传的合同文件ossid + */ + private Long rollBackPdf; + + /** + * 合同签章状态CommonStatusEnum + */ + private String signStatus; + /** + * 是否老账新接 + */ + private String isOld; + + /** + * 是否续费 + */ + private String isDue; +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/ApproverTypeEnum.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/ApproverTypeEnum.java index acb6a08..b28f197 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/ApproverTypeEnum.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/ApproverTypeEnum.java @@ -10,7 +10,11 @@ import lombok.Getter; @AllArgsConstructor public enum ApproverTypeEnum { UPDATE("update","修改合同审批"), - CANCELLA("cancellation","作废合同审批"); + CANCELLA("cancellation","作废合同审批"), + PAY("pay","合同回款审批"), + SIGN("sign","合同签章审批"), + ROLBACK("rolback","回传合同审批"), + TASKFINISH("taskFinish","任务完成审批"); private String code; private String text; } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/TaskStatusEnum.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/TaskStatusEnum.java new file mode 100644 index 0000000..03b379b --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/TaskStatusEnum.java @@ -0,0 +1,99 @@ +package com.pusong.business.enums; + +import com.pusong.common.core.utils.StringUtils; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.List; + +/** + * 任务状态枚举 + */ +@Getter +@AllArgsConstructor +public enum TaskStatusEnum { + INIT("10","任务初始化(待派单)"), + ING("20","进行中"), + OA("25","完成审批中"), + OAFAIL("26","完成审批失败"), + FINISH("30","完成"), + PAUSE("40","暂停"), + CANCEL("50","作废"); + + private String code; + private String text; + /** + * 判断能否派单 + */ + public static Boolean canAppoint(String taskStatus){ + if(StringUtils.equals(taskStatus,INIT.getCode()) || StringUtils.equals(taskStatus,ING.getCode())){ + return true; + } + return false; + } + /** + * 判断能否上传资料 + */ + public static Boolean canUpload(String taskStatus){ + if(StringUtils.equals(taskStatus,FINISH.getCode()) + || StringUtils.equals(taskStatus,OA.getCode())){ + return false; + } + return true; + } + /** + * 判断能否点击完成 + */ + public static Boolean canFinish(String taskStatus){ + //不能点:作废 完成 审批中 + if(StringUtils.equals(taskStatus,CANCEL.getCode()) || StringUtils.equals(taskStatus,FINISH.getCode()) + || StringUtils.equals(taskStatus,OA.getCode())){ + return false; + } + return true; + } + + + + + /** + * 委派表状态枚举 + */ + @Getter + @AllArgsConstructor + public enum AppointStatusEnum { + ING("20","进行中"), + FINISH("30","完成"), + PAUSE("40","暂停"), + CANCEL("50","作废"); + private String code; + private String text; + /** + * 判断能否完成 + */ + public static Boolean canFinish(String taskStatus){ + //作废和完成的不能点 + if(StringUtils.equals(taskStatus,CANCEL.getCode()) || StringUtils.equals(taskStatus,FINISH.getCode())){ + return false; + } + return true; + } + /** + * 判断能否改派 + */ + public static Boolean canReset(String taskStatus){ + //作废和完成的不能点 + if(StringUtils.equals(taskStatus,CANCEL.getCode()) || StringUtils.equals(taskStatus,FINISH.getCode())){ + return false; + } + return true; + } + /** + * 获取结束的状态 + */ + public static List getEndStauts(){ + return List.of(FINISH.getCode(),CANCEL.getCode()); + } + } + +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/TaskTypeEnum.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/TaskTypeEnum.java new file mode 100644 index 0000000..56a8910 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/TaskTypeEnum.java @@ -0,0 +1,17 @@ +package com.pusong.business.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 审批类型美剧 + */ +@Getter +@AllArgsConstructor +public enum TaskTypeEnum { + CONTRACT("1","合同任务"), + FREE("2","免费工单"), + INVOICE("3","发票任务"); + private String code; + private String text; +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsContractInfoMapper.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsContractInfoMapper.java index 417c3b3..4839d95 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsContractInfoMapper.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsContractInfoMapper.java @@ -24,14 +24,14 @@ public interface PsContractInfoMapper extends BaseMapperPlus selectPageContractList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); @DataPermission({ - @DataColumn(key = "deptName", value = "create_dept"), - @DataColumn(key = "userName", value = "create_by") + @DataColumn(key = "deptName", value = "info.create_dept"), + @DataColumn(key = "userName", value = "info.create_by") }) List selectContractList(@Param(Constants.WRAPPER) Wrapper queryWrapper); diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsCustomInfoMapper.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsCustomInfoMapper.java index 2b7bcb4..4334a9f 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsCustomInfoMapper.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsCustomInfoMapper.java @@ -28,14 +28,14 @@ public interface PsCustomInfoMapper extends BaseMapperPlus selectList(@Param(Constants.WRAPPER) Wrapper queryWrapper); @DataPermission({ - @DataColumn(key = "deptName", value = "create_dept"), - @DataColumn(key = "userName", value = "create_by") + @DataColumn(key = "deptName", value = "info.create_dept"), + @DataColumn(key = "userName", value = "info.create_by") }) Page selectPageCustomerList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); @DataPermission({ - @DataColumn(key = "deptName", value = "create_dept"), - @DataColumn(key = "userName", value = "create_by") + @DataColumn(key = "deptName", value = "info.create_dept"), + @DataColumn(key = "userName", value = "info.create_by") }) List selectCustomerList( @Param(Constants.WRAPPER) Wrapper queryWrapper); // diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsTaskAppointMapper.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsTaskAppointMapper.java new file mode 100644 index 0000000..bec6655 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsTaskAppointMapper.java @@ -0,0 +1,15 @@ +package com.pusong.business.mapper; + +import com.pusong.business.domain.PsTaskAppoint; +import com.pusong.business.domain.vo.PsTaskAppointVo; +import com.pusong.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 任务委派Mapper接口 + * + * @author wls + * @date 2024-08-07 + */ +public interface PsTaskAppointMapper extends BaseMapperPlus { + +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsTaskMainMapper.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsTaskMainMapper.java new file mode 100644 index 0000000..14eaa80 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsTaskMainMapper.java @@ -0,0 +1,34 @@ +package com.pusong.business.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.pusong.business.domain.PsContractInfo; +import com.pusong.business.domain.PsTaskMain; +import com.pusong.business.domain.vo.PsContractInfoVo; +import com.pusong.business.domain.vo.PsTaskMainVo; +import com.pusong.common.mybatis.annotation.DataColumn; +import com.pusong.common.mybatis.annotation.DataPermission; +import com.pusong.common.mybatis.core.mapper.BaseMapperPlus; +import org.apache.ibatis.annotations.Param; + +/** + * 主任务Mapper接口 + * + * @author wls + * @date 2024-08-07 + */ +public interface PsTaskMainMapper extends BaseMapper { + @DataPermission({ + @DataColumn(key = "deptName", value = "main.create_dept"), + @DataColumn(key = "userName", value = "main.create_by") + }) + Page queryTaskPageList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); + + @DataPermission({ + @DataColumn(key = "deptName", value = "appo.create_dept"), + @DataColumn(key = "userName", value = "appo.executor") + }) + Page queryChildTaskPageList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsTaskMediaMapper.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsTaskMediaMapper.java new file mode 100644 index 0000000..2e8e931 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsTaskMediaMapper.java @@ -0,0 +1,15 @@ +package com.pusong.business.mapper; + +import com.pusong.business.domain.PsTaskMedia; +import com.pusong.business.domain.vo.PsTaskMediaVo; +import com.pusong.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 任务资料Mapper接口 + * + * @author wls + * @date 2024-08-07 + */ +public interface PsTaskMediaMapper extends BaseMapperPlus { + +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsTaskWorkRecordMapper.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsTaskWorkRecordMapper.java new file mode 100644 index 0000000..4483aad --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsTaskWorkRecordMapper.java @@ -0,0 +1,15 @@ +package com.pusong.business.mapper; + +import com.pusong.business.domain.PsTaskWorkRecord; +import com.pusong.business.domain.vo.PsTaskWorkRecordVo; +import com.pusong.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 外勤任务记录Mapper接口 + * + * @author wls + * @date 2024-08-09 + */ +public interface PsTaskWorkRecordMapper extends BaseMapperPlus { + +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractBusinessService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractBusinessService.java index 262f84e..6cff13e 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractBusinessService.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractBusinessService.java @@ -33,6 +33,12 @@ public interface IPsContractBusinessService { */ List queryList(PsContractBusinessBo bo); + /** + * 根据合同编码查询服务信息 + * @param contractCode + * @return + */ + List selectBusinessList(String contractCode); /** * 查询合同服务类别 * diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractInfoService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractInfoService.java index d175e8f..4440112 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractInfoService.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractInfoService.java @@ -73,6 +73,12 @@ public interface IPsContractInfoService { * @param contractCode 合同编码 */ boolean restart(String contractCode); + /** + * 根据合同编码修改合同 + * @param info + * @return + */ + PsContractInfo updateByCode(PsContractInfo info); /** * 查询符合条件的合同基本信息列表 * diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractOperateService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractOperateService.java new file mode 100644 index 0000000..cb1527e --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractOperateService.java @@ -0,0 +1,36 @@ +package com.pusong.business.service; + +import com.pusong.business.domain.bo.PsContractInfoBo; +import com.pusong.business.domain.bo.PsContractInfoQueryBo; +import com.pusong.business.domain.bo.PsContractPayBo; +import com.pusong.business.domain.vo.PsContractInfoVo; +import com.pusong.common.mybatis.core.page.PageQuery; +import com.pusong.common.mybatis.core.page.TableDataInfo; +import org.springframework.web.bind.annotation.RequestPart; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +/** + * 合同操作Service接口 + * + * @author wls + * @date 2024-07-29 + */ +public interface IPsContractOperateService { + + /** + * 合同签章 + * + * @param contractCode 合同编码 + * @return 合同基本信息 + */ + void sign(String contractCode); + + /** + * 回传合同 + * @param file 回传合同文件 + * @param contractCode 合同编码 + */ + void rollbackContract( MultipartFile file, String contractCode); +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractPayService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractPayService.java index 8ea1b54..9e1f608 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractPayService.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractPayService.java @@ -1,10 +1,12 @@ package com.pusong.business.service; +import com.pusong.business.domain.PsContractPay; import com.pusong.business.domain.vo.PsContractPayVo; import com.pusong.business.domain.bo.PsContractPayBo; import com.pusong.business.enums.PayStatusEnum; import com.pusong.common.mybatis.core.page.TableDataInfo; import com.pusong.common.mybatis.core.page.PageQuery; +import org.springframework.web.multipart.MultipartFile; import java.util.Collection; import java.util.List; @@ -28,11 +30,29 @@ public interface IPsContractPayService { + /** + * 添加支付记录 + * @param files 支付凭证 + * @param payBo 支付信息 + */ + void addPay(List files, PsContractPayBo payBo); + /** + * 根据主键id查询回款记录 + * + * @param id 查询条件 + * @return 合同回款记录列表 + */ + PsContractPay queryById(Long id); - - - /* *//** + /** + * 根据id修改合同回款记录 + * + * @param pay 合同回款记录 + * @return 是否修改成功 + */ + Boolean updateById(PsContractPay pay); + /* *//** * 查询合同回款记录 * * @param id 主键 diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsTaskAppointService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsTaskAppointService.java new file mode 100644 index 0000000..da6bd9f --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsTaskAppointService.java @@ -0,0 +1,67 @@ +package com.pusong.business.service; + +import com.pusong.business.domain.vo.PsTaskAppointVo; +import com.pusong.common.mybatis.core.page.TableDataInfo; +import com.pusong.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 任务委派Service接口 + * + * @author wls + * @date 2024-08-07 + */ +public interface IPsTaskAppointService { + +// /** +// * 查询任务委派 +// * +// * @param id 主键 +// * @return 任务委派 +// */ +// PsTaskAppointVo queryById(Long id); +// +// /** +// * 分页查询任务委派列表 +// * +// * @param bo 查询条件 +// * @param pageQuery 分页参数 +// * @return 任务委派分页列表 +// */ +// TableDataInfo queryPageList(PsTaskAppointBo bo, PageQuery pageQuery); +// +// /** +// * 查询符合条件的任务委派列表 +// * +// * @param bo 查询条件 +// * @return 任务委派列表 +// */ +// List queryList(PsTaskAppointBo bo); +// +// /** +// * 新增任务委派 +// * +// * @param bo 任务委派 +// * @return 是否新增成功 +// */ +// Boolean insertByBo(PsTaskAppointBo bo); +// +// /** +// * 修改任务委派 +// * +// * @param bo 任务委派 +// * @return 是否修改成功 +// */ +// Boolean updateByBo(PsTaskAppointBo bo); +// +// /** +// * 校验并批量删除任务委派信息 +// * +// * @param ids 待删除的主键集合 +// * @param isValid 是否进行有效性校验 +// * @return 是否删除成功 +// */ +// Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsTaskMediaService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsTaskMediaService.java new file mode 100644 index 0000000..b64f176 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsTaskMediaService.java @@ -0,0 +1,73 @@ +package com.pusong.business.service; + +import com.pusong.business.domain.vo.PsTaskMediaVo; +import com.pusong.business.domain.bo.PsTaskMediaBo; +import com.pusong.common.mybatis.core.page.TableDataInfo; +import com.pusong.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 任务资料Service接口 + * + * @author wls + * @date 2024-08-07 + */ +public interface IPsTaskMediaService { + + /** + * 查询任务资料 + * + * @param id 主键 + * @return 任务资料 + */ + List queryByTaskId(Long id); + + /** + * 保存影响资料信息 + * @param voList + */ + void saveMediaList(List voList); +// /** +// * 分页查询任务资料列表 +// * +// * @param bo 查询条件 +// * @param pageQuery 分页参数 +// * @return 任务资料分页列表 +// */ +// TableDataInfo queryPageList(PsTaskMediaBo bo, PageQuery pageQuery); +// +// /** +// * 查询符合条件的任务资料列表 +// * +// * @param bo 查询条件 +// * @return 任务资料列表 +// */ +// List queryList(PsTaskMediaBo bo); +// +// /** +// * 新增任务资料 +// * +// * @param bo 任务资料 +// * @return 是否新增成功 +// */ +// Boolean insertByBo(PsTaskMediaBo bo); +// +// /** +// * 修改任务资料 +// * +// * @param bo 任务资料 +// * @return 是否修改成功 +// */ +// Boolean updateByBo(PsTaskMediaBo bo); +// +// /** +// * 校验并批量删除任务资料信息 +// * +// * @param ids 待删除的主键集合 +// * @param isValid 是否进行有效性校验 +// * @return 是否删除成功 +// */ +// Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsTaskService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsTaskService.java new file mode 100644 index 0000000..5aa69ec --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsTaskService.java @@ -0,0 +1,146 @@ +package com.pusong.business.service; + +import com.pusong.business.domain.PsTaskAppoint; +import com.pusong.business.domain.PsTaskMain; +import com.pusong.business.domain.bo.AppointBo; +import com.pusong.business.domain.bo.MediaCompanySaveBo; +import com.pusong.business.domain.bo.PsTaskQueryBo; +import com.pusong.business.domain.vo.PsTaskAppointVo; +import com.pusong.business.domain.vo.PsTaskMainVo; +import com.pusong.common.mybatis.core.page.TableDataInfo; +import com.pusong.common.mybatis.core.page.PageQuery; + +import java.util.List; +import java.util.Map; + +/** + * 主任务Service接口 + * + * @author wls + * @date 2024-08-07 + */ +public interface IPsTaskService { + + + + /** + * 新增主任务 + * + * @param bo 主任务 + * @return 是否新增成功 + */ + Boolean insert(PsTaskMain bo); + + /** + * 分页查询主任务列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 主任务分页列表 + */ + TableDataInfo queryPageList(PsTaskQueryBo bo, PageQuery pageQuery); + /** + * 分页查询子任务列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 子任务分页列表 + */ + TableDataInfo queryChildPageList(PsTaskQueryBo bo, PageQuery pageQuery); + /** + * 分页查询主任务列表 + * + * @param id 任务主表主键 + * @return 公司及资料信息 + */ + PsTaskMainVo queryInfo(Long id); + + /** + * 上传资料和公司信息 + * + * @param save 公司及资料信息 + * @return + */ + void saveInfo(MediaCompanySaveBo save); + + /** + * 任务委派 + * + * @param bo 任务委派请求信息 + * @return + */ + void appoint(AppointBo bo); + + /** + * 主任务完成 + * + * @param id 任务主键id + * @return + */ + void finishMain(Long id); + /** + * 子任务完成 + * + * @param id 任务主键id + * @return + */ + void finishChild(Long id,String desc); + + /** + * 获取任务执行者列表 + * + * @param id 主任务主键id + * @return + */ + Map getExecutors(Long id); + /** + * 任务改派 + * @param id 任务委派表id + * @param executorId 任务新的执行者id + */ + void taskReset(Long id,Long executorId); + + /* *//** + * 查询主任务 + * + * @param id 主键 + * @return 主任务 + *//* + PsTaskMainVo queryById(Long id); + + *//** + * 分页查询主任务列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 主任务分页列表 + *//* + TableDataInfo queryPageList(PsTaskMainBo bo, PageQuery pageQuery); + + *//** + * 查询符合条件的主任务列表 + * + * @param bo 查询条件 + * @return 主任务列表 + *//* + List queryList(PsTaskMainBo bo); + + + + *//** + * 修改主任务 + * + * @param bo 主任务 + * @return 是否修改成功 + *//* + Boolean updateByBo(PsTaskMainBo bo); + + *//** + * 校验并批量删除主任务信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + *//* + Boolean deleteWithValidByIds(Collection ids, Boolean isValid);*/ +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsTaskWorkRecordService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsTaskWorkRecordService.java new file mode 100644 index 0000000..c5114d0 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsTaskWorkRecordService.java @@ -0,0 +1,84 @@ +package com.pusong.business.service; + +import com.pusong.business.domain.vo.PsTaskWorkRecordVo; +import com.pusong.business.domain.bo.PsTaskWorkRecordBo; +import com.pusong.common.mybatis.core.page.TableDataInfo; +import com.pusong.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 外勤任务记录Service接口 + * + * @author wls + * @date 2024-08-09 + */ +public interface IPsTaskWorkRecordService { + + /** + * 查询符合条件的外勤任务记录列表 + * + * @param id 查询条件 + * @return 外勤任务记录列表 + */ + List queryListByAppointId( Long id); + + /** + * 新增外勤任务记录 + * + * @param bo 外勤任务记录 + * @return 是否新增成功 + */ + Boolean insertByBo(PsTaskWorkRecordBo bo); + +// /** +// * 查询外勤任务记录 +// * +// * @param id 主键 +// * @return 外勤任务记录 +// */ +// PsTaskWorkRecordVo queryById(Long id); + +// /** +// * 分页查询外勤任务记录列表 +// * +// * @param bo 查询条件 +// * @param pageQuery 分页参数 +// * @return 外勤任务记录分页列表 +// */ +// TableDataInfo queryPageList(PsTaskWorkRecordBo bo, PageQuery pageQuery); +// +// /** +// * 查询符合条件的外勤任务记录列表 +// * +// * @param bo 查询条件 +// * @return 外勤任务记录列表 +// */ +// List queryList(PsTaskWorkRecordBo bo); +// +// /** +// * 新增外勤任务记录 +// * +// * @param bo 外勤任务记录 +// * @return 是否新增成功 +// */ +// Boolean insertByBo(PsTaskWorkRecordBo bo); +// +// /** +// * 修改外勤任务记录 +// * +// * @param bo 外勤任务记录 +// * @return 是否修改成功 +// */ +// Boolean updateByBo(PsTaskWorkRecordBo bo); +// +// /** +// * 校验并批量删除外勤任务记录信息 +// * +// * @param ids 待删除的主键集合 +// * @param isValid 是否进行有效性校验 +// * @return 是否删除成功 +// */ +// Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/ApproverService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/ApproverService.java index e88631a..b3d275c 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/ApproverService.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/ApproverService.java @@ -1,17 +1,25 @@ package com.pusong.business.service.approver; +import com.pusong.business.domain.PsApproverRecord; import com.pusong.business.enums.ApproverTypeEnum; public interface ApproverService { - public void apply( String bussinessId, String desc, Object src); + /** + * 发起审批 + * @param bussinessId 关联业务id + * @param contractCode 合同编码 + * @param desc 审批说明 + * @param src 源数据 + */ + public void apply( String bussinessId,String contractCode, String desc, Object src); /** * 成功 */ - public void success(Object tag,Object src); + public void success(PsApproverRecord psApproverRecord); /** * 失败 */ - public void fail(Object tag,Object src); + public void fail(PsApproverRecord psApproverRecord); } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/ApproverAbstractServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/ApproverAbstractServiceImpl.java index 7800d03..dc50986 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/ApproverAbstractServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/ApproverAbstractServiceImpl.java @@ -34,7 +34,7 @@ public abstract class ApproverAbstractServiceImpl implements ApproverService { * @param desc * @param src */ - public void apply(String bussinessId, String desc, Object src){ + public void apply(String bussinessId,String contractCode, String desc, Object src){ List list = approverRecordMapper.selectList(Wrappers.lambdaQuery().eq(PsApproverRecord::getDelFlag, "0") .eq(PsApproverRecord::getBusinessId, bussinessId).eq(PsApproverRecord::getBusinessType,approverType()) .ne(PsApproverRecord::getApproverStatus, ApproverStatusEnum.INIT.getCode())); @@ -44,6 +44,7 @@ public abstract class ApproverAbstractServiceImpl implements ApproverService { PsApproverRecord record = new PsApproverRecord(); record.setBusinessId(bussinessId); + record.setContractCode(contractCode); record.setBusinessType(approverType()); record.setApplyDesc(desc); record.setBeforeData(src == null?null:JSON.toJSONString(src)); diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PayContractApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PayContractApproverServiceImpl.java new file mode 100644 index 0000000..f7de328 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PayContractApproverServiceImpl.java @@ -0,0 +1,73 @@ +package com.pusong.business.service.approver.impl; + +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.pusong.business.domain.PsApproverRecord; +import com.pusong.business.domain.PsContractInfo; +import com.pusong.business.domain.PsContractPay; +import com.pusong.business.domain.PsTaskMain; +import com.pusong.business.domain.vo.PsContractInfoVo; +import com.pusong.business.domain.vo.PsContractPayVo; +import com.pusong.business.enums.*; +import com.pusong.business.service.IPsContractInfoService; +import com.pusong.business.service.IPsContractPayService; +import com.pusong.business.service.IPsTaskService; +import com.pusong.common.core.utils.StringUtils; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 合同回款审批处理类 + */ +@RequiredArgsConstructor +@Service +@Slf4j +public class PayContractApproverServiceImpl extends ApproverAbstractServiceImpl { + + private final IPsContractInfoService psContractInfoService; + private final IPsContractPayService payService; + private final IPsTaskService taskMainService; + @Override + public String approverType() { + return ApproverTypeEnum.PAY.getCode(); + } + + + /** + * 1 审批成功修改回款记录状态,增加主任务 + * @param psApproverRecord 审批类 + */ + @Override + public void success(PsApproverRecord psApproverRecord) { + //查询合同信息 + PsContractInfoVo info = psContractInfoService.queryContractByCode(psApproverRecord.getContractCode()); + //修改回款记录状态 + PsContractPay update = new PsContractPay(); + update.setId(Long.valueOf(psApproverRecord.getBusinessId())); + update.setPayStatus(PayStatusEnum.SUCCESS.getCode()); + payService.updateById(update); + + List list = payService.queryListByContractCode(info.getContractCode(), PayBuinessStatusEnum.PAY.getCode(), PayStatusEnum.PAYING); + //如果没有过回款记录初始化任务主表,并修改合同状态 + if(CollectionUtils.isEmpty(list) && StringUtils.equals(ContractStatusEnum.CREATE.getCode(),info.getContractStatus())){ + log.info("合同未回款过,初始化任务主表"); + PsTaskMain psTaskMain = new PsTaskMain(); + psTaskMain.setContractCode(psApproverRecord.getContractCode()); + psTaskMain.setTaskType(TaskTypeEnum.CONTRACT.getCode()); + psTaskMain.setTaskStatus(TaskStatusEnum.INIT.getCode()); + taskMainService.insert(psTaskMain); + log.info("修改合同状态"); + PsContractInfo updateInfo = new PsContractInfo(); + updateInfo.setContractCode(info.getContractCode()); + updateInfo.setContractStatus(ContractStatusEnum.RETURN.getCode()); + psContractInfoService.updateByCode(updateInfo); + } + } + + @Override + public void fail(PsApproverRecord psApproverRecord) { + + } +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/UpdateContractApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/UpdateContractApproverServiceImpl.java index cbd0aee..439838d 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/UpdateContractApproverServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/UpdateContractApproverServiceImpl.java @@ -1,10 +1,15 @@ package com.pusong.business.service.approver.impl; +import com.pusong.business.domain.PsApproverRecord; import com.pusong.business.enums.ApproverStatusEnum; import com.pusong.business.enums.ApproverTypeEnum; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +@RequiredArgsConstructor @Service +@Slf4j public class UpdateContractApproverServiceImpl extends ApproverAbstractServiceImpl { @Override public String approverType() { @@ -13,16 +18,15 @@ public class UpdateContractApproverServiceImpl extends ApproverAbstractServiceIm /** * 1 审批成功合同已派单:任务重置 - * @param tag - * @param src + * @param psApproverRecord 神瀑类 */ @Override - public void success(Object tag, Object src) { + public void success(PsApproverRecord psApproverRecord) { } @Override - public void fail(Object tag, Object src) { + public void fail(PsApproverRecord psApproverRecord) { } } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/IPsContractOperateServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/IPsContractOperateServiceImpl.java new file mode 100644 index 0000000..86a6d88 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/IPsContractOperateServiceImpl.java @@ -0,0 +1,97 @@ +package com.pusong.business.service.impl; + +import com.pusong.business.domain.PsContractInfo; +import com.pusong.business.domain.PsContractPay; +import com.pusong.business.domain.bo.PsContractPayBo; +import com.pusong.business.domain.vo.PsContractInfoVo; +import com.pusong.business.enums.ApproverTypeEnum; +import com.pusong.business.enums.CommonStatusEnum; +import com.pusong.business.enums.PayBuinessStatusEnum; +import com.pusong.business.mapper.PsContractPayMapper; +import com.pusong.business.service.IPsContractInfoService; +import com.pusong.business.service.IPsContractOperateService; +import com.pusong.business.service.approver.ApproverContainer; +import com.pusong.business.service.approver.ApproverService; +import com.pusong.common.core.utils.MapstructUtils; +import com.pusong.common.core.utils.StringUtils; +import com.pusong.system.domain.vo.SysOssVo; +import com.pusong.system.service.ISysOssService; +import jakarta.annotation.Resource; +import lombok.RequiredArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +/** + * 合同操作Service接口 + * + * @author wls + * @date 2024-07-29 + */ +@RequiredArgsConstructor +@Service +public class IPsContractOperateServiceImpl implements IPsContractOperateService { + + private static final Logger log = LoggerFactory.getLogger(IPsContractOperateServiceImpl.class); + private final IPsContractInfoService contractInfoService; + @Resource + private final ApproverContainer container; + @Resource + private final ISysOssService ossService; + + /** + * 合同签章 + * + * @param contractCode 合同编码 + * @return 合同基本信息 + */ + public void sign(String contractCode){ + PsContractInfoVo info = contractInfoService.queryContractByCode(contractCode); + //后续添加校验可再次添加 + //合同签章: + ApproverService service = container.getService(ApproverTypeEnum.SIGN.getCode()); + service.apply(contractCode,contractCode,null, null); + + PsContractInfo psContractInfo = new PsContractInfo(); + psContractInfo.setContractCode(contractCode); + psContractInfo.setSignStatus(CommonStatusEnum.ING.getCode()); + contractInfoService.updateByCode(psContractInfo); + } + + + /** + * 回传合同 + * @param file 回传合同文件 + * @param contractCode 合同编码 + */ + @Transactional + public void rollbackContract( MultipartFile file, String contractCode){ + PsContractInfoVo info = contractInfoService.queryContractByCode(contractCode); + //后续添加校验可再次添加 + SysOssVo vo = ossService.upload(file); + //发起回传合同审批 + ApproverService service = container.getService(ApproverTypeEnum.ROLBACK.getCode()); + service.apply(contractCode,contractCode,null, null); + //修改合同信息 + PsContractInfo psContractInfo = new PsContractInfo(); + psContractInfo.setContractCode(contractCode); + psContractInfo.setRollBackStatus(CommonStatusEnum.ING.getCode()); + psContractInfo.setRollBackPdf(vo.getOssId()); + contractInfoService.updateByCode(psContractInfo); + //若已存在回传的合同,则删除 + if(info.getRollBackPdf() != null){ + try{ + ossService.deleteWithValidByIds(List.of(info.getRollBackPdf()),null); + }catch (Exception e){ + log.error("删除回传合同信息失败",e); + } + } + + + + } +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsApproverRecordServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsApproverRecordServiceImpl.java index 8295230..567c43f 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsApproverRecordServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsApproverRecordServiceImpl.java @@ -69,7 +69,6 @@ public class PsApproverRecordServiceImpl implements IPsApproverRecordService { } private LambdaQueryWrapper buildQueryWrapper(PsApproverRecordBo bo) { - Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.eq(bo.getBusinessId() != null, PsApproverRecord::getBusinessId, bo.getBusinessId()); lqw.eq(StringUtils.isNotBlank(bo.getBusinessType()), PsApproverRecord::getBusinessType, bo.getBusinessType()); diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCompanyInfoServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCompanyInfoServiceImpl.java index f2965bc..115b525 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCompanyInfoServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCompanyInfoServiceImpl.java @@ -72,13 +72,15 @@ public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService { */ @Override public Boolean saveBo(PsCompanyInfoBo bo) { - //公司名称唯一 - PsCompanyInfoBo query = new PsCompanyInfoBo(); - query.setCompanyName(bo.getCompanyName()); - query.setCustomId(bo.getCustomId()); - List list = this.queryList(bo); - //如果存在重复名称则修改 - if(CollectionUtils.isNotEmpty(list)){bo.setId(list.get(0).getId());} + if(bo.getId() == null){ + //公司名称唯一 + PsCompanyInfoBo query = new PsCompanyInfoBo(); + query.setCompanyName(bo.getCompanyName()); + query.setCustomId(bo.getCustomId()); + List list = this.queryList(bo); + //如果存在重复名称则修改 + if(CollectionUtils.isNotEmpty(list)){bo.setId(list.get(0).getId());} + } PsCompanyInfo add = MapstructUtils.convert(bo, PsCompanyInfo.class); validEntityBeforeSave(add); boolean flag = baseMapper.insertOrUpdate(add); diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractBusinessServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractBusinessServiceImpl.java index 2c50092..d56aae3 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractBusinessServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractBusinessServiceImpl.java @@ -85,6 +85,15 @@ public class PsContractBusinessServiceImpl implements IPsContractBusinessService return lqw; } + /** + * 根据合同编码查询服务信息 + * @param contractCode + * @return + */ + public List selectBusinessList(String contractCode) { + return baseMapper.selectBusinessList(contractCode); + } + /* *//** * 查询合同服务类别 diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java index 10f4b9d..e7d58fe 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java @@ -35,6 +35,7 @@ import org.springframework.transaction.annotation.Transactional; import java.io.File; import java.math.BigDecimal; import java.util.*; +import java.util.stream.Collectors; /** * 合同基本信息Service业务层处理 @@ -48,7 +49,6 @@ import java.util.*; public class PsContractInfoServiceImpl implements IPsContractInfoService { private final PsContractInfoMapper baseMapper; - private final PsContractBusinessMapper businessMapper; // private final PsContractBusinessDetailMapper businessDetailMapper; private final IPsContractBusinessService businessService; private final IPsContractBusinessDetailService businessDetailService; @@ -230,7 +230,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { if(StringUtils.isBlank(desc)){throw new ServiceException("请填写作废原因");} //有收款:点击【作废】填写【作废原因】后发起【作废】审批 ApproverService service = container.getService(ApproverTypeEnum.CANCELLA.getCode()); - service.apply(contractCode,desc, null); + service.apply(contractCode,contractCode,desc, null); info.setContractStatus(ContractStatusEnum.CANAPPROVER.getCode()); } @@ -262,6 +262,11 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { return true; } + /** + * 根据合同编码修改合同 + * @param info + * @return + */ public PsContractInfo updateByCode(PsContractInfo info){ baseMapper.update(info,Wrappers.lambdaUpdate().eq(PsContractInfo::getContractCode,info.getContractCode()).eq(PsContractInfo::getDelFlag,0)); return info; @@ -307,6 +312,8 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { qw.eq( "info.del_flag", 0);//删除标志 //合同表条件 qw.eq( StringUtils.isNotBlank(bo.getContractStatus()),"contract_status", bo.getContractStatus()); + qw.in( CollectionUtils.isNotEmpty(bo.getInContractStatus()),"contract_status", bo.getInContractStatus()); + qw.notIn( CollectionUtils.isNotEmpty(bo.getNotInContractStatus()),"contract_status", bo.getNotInContractStatus()); //客户表条件 qw.like( StringUtils.isNotBlank(bo.getCustomName()),"cus.custom_name", bo.getCustomName()); qw.like( StringUtils.isNotBlank(bo.getCustomMobile()),"cus.custom_mobile", bo.getCustomMobile()); @@ -318,7 +325,8 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { } private PsContractInfoVo fillContractInfo(PsContractInfoVo vo){ //装填服务类型和服务项目信息 - List list = businessMapper.selectBusinessList(vo.getContractCode()); + List list = businessService.selectBusinessList(vo.getContractCode()); + vo.setBusinessTypeName(StringUtils.join(list.stream().map(PsContractBusinessVo::getBusinessType).collect(Collectors.toList()), ",")); vo.setBusinessVoList(list); //装填回款记录 List payList = contractPayService.queryListByContractCode(vo.getContractCode(),null,PayStatusEnum.SUCCESS); @@ -402,7 +410,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { if(ContractStatusEnum.isReturn(srcVo.getContractStatus())){ //发起审批 ApproverService service = container.getService(ApproverTypeEnum.UPDATE.getCode()); - service.apply(updateBo.getContractCode(),updateBo.getUpdateDesc(), JSON.toJSONString(srcVo)); + service.apply(updateBo.getContractCode(),updateBo.getContractCode(),updateBo.getUpdateDesc(), JSON.toJSONString(srcVo)); } //3.签章:合同签字盖章成功:修改合同成功,合同签字盖章变回未签章状态,需重新进行签章申请 diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractPayServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractPayServiceImpl.java index 607bfd5..ef23670 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractPayServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractPayServiceImpl.java @@ -1,6 +1,9 @@ package com.pusong.business.service.impl; +import com.pusong.business.enums.ApproverTypeEnum; import com.pusong.business.enums.PayStatusEnum; +import com.pusong.business.service.approver.ApproverContainer; +import com.pusong.business.service.approver.ApproverService; import com.pusong.common.core.utils.MapstructUtils; import com.pusong.common.core.utils.StringUtils; import com.pusong.common.mybatis.core.page.TableDataInfo; @@ -8,6 +11,9 @@ import com.pusong.common.mybatis.core.page.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.pusong.system.domain.vo.SysOssVo; +import com.pusong.system.service.ISysOssService; +import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.pusong.business.domain.bo.PsContractPayBo; @@ -15,6 +21,8 @@ import com.pusong.business.domain.vo.PsContractPayVo; import com.pusong.business.domain.PsContractPay; import com.pusong.business.mapper.PsContractPayMapper; import com.pusong.business.service.IPsContractPayService; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; import java.util.ArrayList; import java.util.List; @@ -32,8 +40,9 @@ import java.util.Collection; public class PsContractPayServiceImpl implements IPsContractPayService { private final PsContractPayMapper baseMapper; - - + private final ISysOssService ossService; + @Resource + private final ApproverContainer container; /** * 查询合同回款记录列表 * @@ -50,7 +59,50 @@ public class PsContractPayServiceImpl implements IPsContractPayService { return list == null?new ArrayList<>():list; } + /** + * 添加支付记录 + * + * @param payBo 支付信息 + * @return 是否新增成功 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public void addPay(List files, PsContractPayBo payBo){ + PsContractPay pay = MapstructUtils.convert(payBo, PsContractPay.class); + List payCertifications = new ArrayList<>(); + for(MultipartFile file : files){ + SysOssVo vo = ossService.upload(file); + payCertifications.add(vo.getOssId()+""); + } + pay.setPayCertification(StringUtils.join(payCertifications,",")); + pay.setPayStatus(PayStatusEnum.PAYING.getCode()); + baseMapper.insert(pay); + //发起审批 + ApproverService service = container.getService(ApproverTypeEnum.PAY.getCode()); + service.apply(pay.getId()+"",pay.getContractCode(),null, null); + } + /** + * 根据主键id查询回款记录 + * + * @param id 查询条件 + * @return 合同回款记录列表 + */ + @Override + public PsContractPay queryById(Long id) { + return baseMapper.selectById(id); + } + + /** + * 根据id修改合同回款记录 + * + * @param pay 合同回款记录 + * @return 是否修改成功 + */ + @Override + public Boolean updateById(PsContractPay pay) { + return baseMapper.updateById(pay) > 0; + } /* *//** * 查询合同回款记录 * diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskAppointServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskAppointServiceImpl.java new file mode 100644 index 0000000..0ee007a --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskAppointServiceImpl.java @@ -0,0 +1,132 @@ +package com.pusong.business.service.impl; + +import com.pusong.common.core.utils.MapstructUtils; +import com.pusong.common.core.utils.StringUtils; +import com.pusong.common.mybatis.core.page.TableDataInfo; +import com.pusong.common.mybatis.core.page.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.pusong.business.domain.vo.PsTaskAppointVo; +import com.pusong.business.domain.PsTaskAppoint; +import com.pusong.business.mapper.PsTaskAppointMapper; +import com.pusong.business.service.IPsTaskAppointService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 任务委派Service业务层处理 + * + * @author wls + * @date 2024-08-07 + */ +@RequiredArgsConstructor +@Service +public class PsTaskAppointServiceImpl implements IPsTaskAppointService { + + private final PsTaskAppointMapper baseMapper; + +// /** +// * 查询任务委派 +// * +// * @param id 主键 +// * @return 任务委派 +// */ +// @Override +// public PsTaskAppointVo queryById(Long id){ +// return baseMapper.selectVoById(id); +// } +// +// /** +// * 分页查询任务委派列表 +// * +// * @param bo 查询条件 +// * @param pageQuery 分页参数 +// * @return 任务委派分页列表 +// */ +// @Override +// public TableDataInfo queryPageList(PsTaskAppointBo bo, PageQuery pageQuery) { +// LambdaQueryWrapper lqw = buildQueryWrapper(bo); +// Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); +// return TableDataInfo.build(result); +// } +// +// /** +// * 查询符合条件的任务委派列表 +// * +// * @param bo 查询条件 +// * @return 任务委派列表 +// */ +// @Override +// public List queryList(PsTaskAppointBo bo) { +// LambdaQueryWrapper lqw = buildQueryWrapper(bo); +// return baseMapper.selectVoList(lqw); +// } +// +// private LambdaQueryWrapper buildQueryWrapper(PsTaskAppointBo bo) { +// Map params = bo.getParams(); +// LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); +// lqw.eq(bo.getTaskId() != null, PsTaskAppoint::getTaskId, bo.getTaskId()); +// lqw.eq(StringUtils.isNotBlank(bo.getContractCode()), PsTaskAppoint::getContractCode, bo.getContractCode()); +// lqw.eq(StringUtils.isNotBlank(bo.getAppointType()), PsTaskAppoint::getAppointType, bo.getAppointType()); +// lqw.eq(StringUtils.isNotBlank(bo.getAppointStatus()), PsTaskAppoint::getAppointStatus, bo.getAppointStatus()); +// lqw.eq(bo.getExecutor() != null, PsTaskAppoint::getExecutor, bo.getExecutor()); +// return lqw; +// } +// +// /** +// * 新增任务委派 +// * +// * @param bo 任务委派 +// * @return 是否新增成功 +// */ +// @Override +// public Boolean insertByBo(PsTaskAppointBo bo) { +// PsTaskAppoint add = MapstructUtils.convert(bo, PsTaskAppoint.class); +// validEntityBeforeSave(add); +// boolean flag = baseMapper.insert(add) > 0; +// if (flag) { +// bo.setId(add.getId()); +// } +// return flag; +// } +// +// /** +// * 修改任务委派 +// * +// * @param bo 任务委派 +// * @return 是否修改成功 +// */ +// @Override +// public Boolean updateByBo(PsTaskAppointBo bo) { +// PsTaskAppoint update = MapstructUtils.convert(bo, PsTaskAppoint.class); +// validEntityBeforeSave(update); +// return baseMapper.updateById(update) > 0; +// } +// +// /** +// * 保存前的数据校验 +// */ +// private void validEntityBeforeSave(PsTaskAppoint entity){ +// //TODO 做一些数据校验,如唯一约束 +// } +// +// /** +// * 校验并批量删除任务委派信息 +// * +// * @param ids 待删除的主键集合 +// * @param isValid 是否进行有效性校验 +// * @return 是否删除成功 +// */ +// @Override +// public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { +// if(isValid){ +// //TODO 做一些业务上的校验,判断是否需要校验 +// } +// return baseMapper.deleteBatchIds(ids) > 0; +// } +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskMediaServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskMediaServiceImpl.java new file mode 100644 index 0000000..773c0d7 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskMediaServiceImpl.java @@ -0,0 +1,139 @@ +package com.pusong.business.service.impl; + +import com.pusong.common.core.utils.MapstructUtils; +import com.pusong.common.core.utils.StringUtils; +import com.pusong.common.mybatis.core.page.TableDataInfo; +import com.pusong.common.mybatis.core.page.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.pusong.business.domain.bo.PsTaskMediaBo; +import com.pusong.business.domain.vo.PsTaskMediaVo; +import com.pusong.business.domain.PsTaskMedia; +import com.pusong.business.mapper.PsTaskMediaMapper; +import com.pusong.business.service.IPsTaskMediaService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 任务资料Service业务层处理 + * + * @author wls + * @date 2024-08-07 + */ +@RequiredArgsConstructor +@Service +public class PsTaskMediaServiceImpl implements IPsTaskMediaService { + + private final PsTaskMediaMapper baseMapper; + + /** + * 查询任务资料 + * + * @param id 主键 + * @return 任务资料 + */ + @Override + public List queryByTaskId(Long id){ + PsTaskMediaBo bo = new PsTaskMediaBo(); + bo.setTaskId(id); + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + private LambdaQueryWrapper buildQueryWrapper(PsTaskMediaBo bo) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getTaskId() != null, PsTaskMedia::getTaskId, bo.getTaskId()); + lqw.eq(StringUtils.isNotBlank(bo.getContractCode()), PsTaskMedia::getContractCode, bo.getContractCode()); + lqw.eq(StringUtils.isNotBlank(bo.getMediaType()), PsTaskMedia::getMediaType, bo.getMediaType()); + lqw.eq(StringUtils.isNotBlank(bo.getMediaOssId()), PsTaskMedia::getMediaOssId, bo.getMediaOssId()); + return lqw; + } + + public void saveMediaList(List voList){ + List save = MapstructUtils.convert(voList, PsTaskMedia.class); + baseMapper.insertOrUpdateBatch(save); + } +// /** +// * 分页查询任务资料列表 +// * +// * @param bo 查询条件 +// * @param pageQuery 分页参数 +// * @return 任务资料分页列表 +// */ +// @Override +// public TableDataInfo queryPageList(PsTaskMediaBo bo, PageQuery pageQuery) { +// LambdaQueryWrapper lqw = buildQueryWrapper(bo); +// Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); +// return TableDataInfo.build(result); +// } +// +// /** +// * 查询符合条件的任务资料列表 +// * +// * @param bo 查询条件 +// * @return 任务资料列表 +// */ +// @Override +// public List queryList(PsTaskMediaBo bo) { +// LambdaQueryWrapper lqw = buildQueryWrapper(bo); +// return baseMapper.selectVoList(lqw); +// } +// +// +// +// /** +// * 新增任务资料 +// * +// * @param bo 任务资料 +// * @return 是否新增成功 +// */ +// @Override +// public Boolean insertByBo(PsTaskMediaBo bo) { +// PsTaskMedia add = MapstructUtils.convert(bo, PsTaskMedia.class); +// validEntityBeforeSave(add); +// boolean flag = baseMapper.insert(add) > 0; +// if (flag) { +// bo.setId(add.getId()); +// } +// return flag; +// } +// +// /** +// * 修改任务资料 +// * +// * @param bo 任务资料 +// * @return 是否修改成功 +// */ +// @Override +// public Boolean updateByBo(PsTaskMediaBo bo) { +// PsTaskMedia update = MapstructUtils.convert(bo, PsTaskMedia.class); +// validEntityBeforeSave(update); +// return baseMapper.updateById(update) > 0; +// } +// +// /** +// * 保存前的数据校验 +// */ +// private void validEntityBeforeSave(PsTaskMedia entity){ +// //TODO 做一些数据校验,如唯一约束 +// } +// +// /** +// * 校验并批量删除任务资料信息 +// * +// * @param ids 待删除的主键集合 +// * @param isValid 是否进行有效性校验 +// * @return 是否删除成功 +// */ +// @Override +// public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { +// if(isValid){ +// //TODO 做一些业务上的校验,判断是否需要校验 +// } +// return baseMapper.deleteBatchIds(ids) > 0; +// } +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java new file mode 100644 index 0000000..7d040c5 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java @@ -0,0 +1,407 @@ +package com.pusong.business.service.impl; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.pusong.business.domain.PsCompanyInfo; +import com.pusong.business.domain.PsTaskAppoint; +import com.pusong.business.domain.bo.AppointBo; +import com.pusong.business.domain.bo.MediaCompanySaveBo; +import com.pusong.business.domain.bo.PsTaskMediaBo; +import com.pusong.business.domain.bo.PsTaskQueryBo; +import com.pusong.business.domain.vo.*; +import com.pusong.business.enums.ApproverTypeEnum; +import com.pusong.business.enums.TaskStatusEnum; +import com.pusong.business.enums.TaskStatusEnum.*; +import com.pusong.business.mapper.PsContractBusinessMapper; +import com.pusong.business.mapper.PsTaskAppointMapper; +import com.pusong.business.service.IPsCompanyInfoService; +import com.pusong.business.service.IPsTaskMediaService; +import com.pusong.business.service.approver.ApproverContainer; +import com.pusong.business.service.approver.ApproverService; +import com.pusong.common.core.exception.ServiceException; +import com.pusong.common.core.service.OssService; +import com.pusong.common.core.utils.DateUtils; +import com.pusong.common.core.utils.MapstructUtils; +import com.pusong.common.core.utils.StringUtils; +import com.pusong.common.mybatis.core.page.PageQuery; +import com.pusong.common.mybatis.core.page.TableDataInfo; +import com.pusong.system.service.ISysOssService; +import jakarta.annotation.Resource; +import lombok.RequiredArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import com.pusong.business.domain.PsTaskMain; +import com.pusong.business.mapper.PsTaskMainMapper; +import com.pusong.business.service.IPsTaskService; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * 主任务Service业务层处理 + * + * @author wls + * @date 2024-08-07 + */ +@RequiredArgsConstructor +@Service +public class PsTaskServiceImpl implements IPsTaskService { + + private static final Logger log = LoggerFactory.getLogger(PsTaskServiceImpl.class); + private final PsTaskMainMapper baseMapper; + private final PsTaskAppointMapper appointMapper; + private final IPsTaskMediaService mediaService; + private final IPsCompanyInfoService companyInfoService; + private final ISysOssService ossService; + @Resource + private ApproverContainer approverContainer; + /** + * 新增主任务 + * + * @param add 主任务 + * @return 是否新增成功 + */ + @Override + public Boolean insert(PsTaskMain add) { + boolean flag = baseMapper.insert(add) > 0; + + return flag; + } + + /** + * 分页查询主任务列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 主任务分页列表 + */ + public TableDataInfo queryPageList(PsTaskQueryBo bo, PageQuery pageQuery){ + QueryWrapper lqw = buildQueryWrapper(bo); + Page page = baseMapper.queryTaskPageList(pageQuery.build(), lqw); + for (PsTaskMainVo vo : page.getRecords()) { + if(vo.getStartDate() != null){ + vo.setNumOfDat(DateUtils.calWorkDate(vo.getStartDate(),new Date())+1); + } + } + return TableDataInfo.build(page); + } + + /** + * 分页查询子任务列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 主任务分页列表 + */ + public TableDataInfo queryChildPageList(PsTaskQueryBo bo, PageQuery pageQuery){ + QueryWrapper lqw = buildQueryWrapper(bo); + lqw.eq("appo.appoint_type",bo.getAppointType()); + Page page = baseMapper.queryChildTaskPageList(pageQuery.build(), lqw); + for (PsTaskMainVo vo : page.getRecords()) { + if(vo.getStartDate() != null){ + vo.setNumOfDat(DateUtils.calWorkDate(vo.getStartDate(),new Date())+1); + } + } + return TableDataInfo.build(page); + } + + /** + * 根据任务id查询任务的公司信息和资料信息 + * + * @param id 任务主表主键 + * @return 公司及资料信息 + */ + public PsTaskMainVo queryInfo(Long id){ + //查询任务信息 + PsTaskMain mainTask = baseMapper.selectById(id); + //查询公司信息 + PsCompanyInfoVo companyInfoVo = companyInfoService.queryById(mainTask.getCompanyId()); + //查询资料信息 + List list = mediaService.queryByTaskId(mainTask.getId()); + PsTaskMainVo psTaskMainVo = new PsTaskMainVo(); + psTaskMainVo.setCompanyInfoVo(companyInfoVo); + psTaskMainVo.setTaskMediaVoList(list); + return psTaskMainVo; + } + + /** + * 上传资料和公司信息 + * + * @param save 公司及资料信息 + * @return + */ + @Override + @Transactional + public void saveInfo(MediaCompanySaveBo save){ + //1.1信息校验 + PsTaskMain taskMain = baseMapper.selectById(save.getId()); + if(!TaskStatusEnum.canUpload(taskMain.getTaskStatus())){ + log.error("任务已完成,无法修改"); + throw new ServiceException("任务已完成,无法修改"); + } + if(save.getPsCompanyInfo().getId() != null || !save.getPsCompanyInfo().getId().equals( taskMain.getCompanyId())){ + log.error("公司id不同或为空"); + throw new ServiceException("非法请求"); + } + if(CollectionUtils.isEmpty(save.getMediaBoList())){ + boolean repetition = save.getMediaBoList().stream().map(PsTaskMediaBo::getMediaType) + .collect(Collectors.groupingBy(Function.identity(), Collectors.counting())) + .entrySet().stream().anyMatch(e -> e.getValue() > 1); + if(repetition){ + log.error("请求的任务类型重复"); + throw new ServiceException("请求的任务类型重复,请刷新页面重试"); + } + } + + //1.2保存公司信息 + companyInfoService.saveBo(save.getPsCompanyInfo()); + if(CollectionUtils.isEmpty(save.getMediaBoList())){ + return; + } + //2.1查询原始的合同资料信息 + List mediaList = mediaService.queryByTaskId(save.getId()); + //此次需要保存的资料id(后续删除使用) + List ossIdList = new ArrayList<>(); + save.getMediaBoList().forEach(item->{ + item.setTaskId(taskMain.getId()); + item.setContractCode(taskMain.getContractCode()); + if(StringUtils.isNotBlank(item.getMediaOssId()) && !StringUtils.equals("-1",item.getMediaOssId())){ + ossIdList.addAll(List.of(item.getMediaOssId().split(","))); + } + }); + //2.2保存最新的合同资料信息 + mediaService.saveMediaList(save.getMediaBoList()); + //把历史的资料id储存到list中 + List list = mediaList.stream().filter(item -> StringUtils.isNotBlank(item.getMediaOssId())).map(item -> item.getMediaOssId().split(",")).flatMap(Arrays::stream).collect(Collectors.toList()); + //去掉与本次保存重叠的资料,和-1 + list.removeIf(item->StringUtils.equals("-1", item) || ossIdList.contains(item)); + //2.3删除无用资料 + if(CollectionUtils.isNotEmpty(list)){ + ossService.deleteWithValidByIds(list.stream().map(Long::parseLong).collect(Collectors.toList()),null); + } + } + /** + * 任务委派 + * + * @param bo 任务委派请求信息 + * @return + */ + @Override + @Transactional + public void appoint(AppointBo bo){ + //前置校验 + PsTaskMain mainTask = baseMapper.selectById(bo.getId()); + if(!TaskStatusEnum.canAppoint(mainTask.getTaskStatus())){ + throw new ServiceException("任务已完成,无法继续派单"); + } + List list = appointMapper.selectList(Wrappers.lambdaQuery() + .eq(PsTaskAppoint::getDelFlag,"0").eq(PsTaskAppoint::getTaskId, bo.getId()) + .eq(PsTaskAppoint::getAppointType, bo.getAppointType()) + .ne(PsTaskAppoint::getAppointStatus, AppointStatusEnum.CANCEL.getCode())); + if(CollectionUtils.isNotEmpty(list)){ + throw new ServiceException("操作失败,任务已委派"); + } + //如果是第一次派单,需要修改任务状态 + if(StringUtils.equals(TaskStatusEnum.INIT.getCode(),mainTask.getTaskStatus())){ + PsTaskMain update = new PsTaskMain(); + update.setId(mainTask.getId()); + update.setTaskStatus(TaskStatusEnum.ING.getCode()); + baseMapper.updateById(update); + } + PsTaskAppoint psTaskAppoint = new PsTaskAppoint(); + psTaskAppoint.setAppointStatus(AppointStatusEnum.ING.getCode()); + psTaskAppoint.setAppointType(bo.getAppointType()); + psTaskAppoint.setContractCode(mainTask.getContractCode()); + psTaskAppoint.setTaskId(mainTask.getId()); + psTaskAppoint.setExecutor(bo.getUserId()); + appointMapper.insert(psTaskAppoint); + } + /** + * 主任务完成 + * + * @param id 任务主键id + * @return + */ + public void finishMain(Long id){ + PsTaskMain main = baseMapper.selectById(id); + if(!TaskStatusEnum.canFinish(main.getTaskStatus())){ + throw new ServiceException("此任务无法执行此操作,请刷新页面后重新操作"); + } + List list = appointMapper.selectList(Wrappers.lambdaQuery() + .eq(PsTaskAppoint::getDelFlag,"0").eq(PsTaskAppoint::getTaskId, id) + .notIn(PsTaskAppoint::getAppointStatus, AppointStatusEnum.getEndStauts())); + if(CollectionUtils.isNotEmpty(list)){ + throw new ServiceException("操作失败,子任务未完成"); + } + ApproverService service = approverContainer.getService(ApproverTypeEnum.TASKFINISH.getCode()); + service.apply(id+"",main.getContractCode(),null,null); + main.setTaskStatus(TaskStatusEnum.OA.getCode()); + } + /** + * 子任务完成 + * + * @param id 任务主键id + * @return + */ + public void finishChild(Long id,String desc){ + PsTaskAppoint appoint = appointMapper.selectById(id); + if(StringUtils.equals("3",appoint.getAppointType()) && StringUtils.isBlank(desc)){ + throw new ServiceException("请填写特勤备注"); + } + if(!AppointStatusEnum.canFinish(appoint.getAppointStatus())){ + throw new ServiceException("此任务无法执行此操作,请刷新页面后重新操作"); + } + appoint.setAppointStatus(AppointStatusEnum.FINISH.getCode()); + appoint.setTaskDesc(desc); + appointMapper.updateById(appoint); + } + + /** + * 获取任务执行者列表 + * + * @param id 主任务主键id + * @return + */ + public Map getExecutors(Long id){ + List list = appointMapper.selectVoList(Wrappers.lambdaQuery() + .eq(PsTaskAppoint::getDelFlag,"0").eq(PsTaskAppoint::getTaskId, id) + .ne(PsTaskAppoint::getAppointStatus, AppointStatusEnum.CANCEL.getCode())); + Map map = new HashMap<>(); + if(CollectionUtils.isNotEmpty(list)){ + map = list.stream().collect(Collectors.groupingBy(PsTaskAppointVo::getAppointType, + Collectors.collectingAndThen(Collectors.maxBy(Comparator.comparingLong(PsTaskAppointVo::getId)), Optional::get))); + } + return map; + } + + + /** + * 任务改派 + * @param id 任务委派表id + * @param executorId 任务新的执行者id + */ + public void taskReset(Long id,Long executorId){ + PsTaskAppoint appoint = appointMapper.selectById(id); + if(!AppointStatusEnum.canReset(appoint.getAppointStatus())){ + throw new ServiceException("操作失败,子任务状态无法改派"); + } + appoint.setExecutor(executorId); + appointMapper.updateById(appoint); + } + + + private QueryWrapper buildQueryWrapper(PsTaskQueryBo bo) { + QueryWrapper lqw = new QueryWrapper(); + lqw.eq("del_flag","0"); + lqw.ne("task_status",TaskStatusEnum.CANCEL.getCode()); + lqw.like(StringUtils.isNotBlank(bo.getCompanyName()), "com.company_name", bo.getCompanyName());//公司地址 + lqw.like(StringUtils.isNotBlank(bo.getCustomerNum()), "com.customer_num", bo.getCustomerNum());//纳税人识别号 + lqw.eq(StringUtils.isNotBlank(bo.getCustomerCert()), "com.customer_cert", bo.getCustomerCert());//纳税人资格 + lqw.like(StringUtils.isNotBlank(bo.getCustomManagerName()), "us.nick_name", bo.getCustomManagerName());//销售经理姓名 + lqw.like(StringUtils.isNotBlank(bo.getCompanyAdress()), "com.company_adress", bo.getCompanyAdress());//公司地址 + lqw.like(StringUtils.isNotBlank(bo.getMobile()), "com.legal_person_phone", bo.getMobile());//法人手机号 + lqw.like(StringUtils.isNotBlank(bo.getIdNo()), "com.legal_person_idcard", bo.getIdNo());//法人身份证 + lqw.like(StringUtils.isNotBlank(bo.getName()), "com.legal_person_name", bo.getName());//法人姓名 + //服务项目编码集合 + lqw.exists(CollectionUtils.isNotEmpty(bo.getServiceProjectCode()), "select 1 from ps_contract_business_detail detail " + + "where detail.contract_code = con.contract_code and detail.business_project in ("+StringUtils.join(bo.getServiceProjectCode(),",")+")");//服务项目编码集合 + //执行者姓名 + lqw.exists(StringUtils.isNotBlank(bo.getExecutor()), "select 1 from ps_task_appoint appoint,sys_user su " + + "where appoint.executor = su.user_id and appoint.task_id = main.id and su.nick_name like '%" + bo.getExecutor() + "%'"); + return lqw; + } + + + + +// /** +// * 查询主任务 +// * +// * @param id 主键 +// * @return 主任务 +// */ +// @Override +// public PsTaskMainVo queryById(Long id){ +// return baseMapper.selectVoById(id); +// } +// +// /** +// * 分页查询主任务列表 +// * +// * @param bo 查询条件 +// * @param pageQuery 分页参数 +// * @return 主任务分页列表 +// */ +// @Override +// public TableDataInfo queryPageList(PsTaskMainBo bo, PageQuery pageQuery) { +// LambdaQueryWrapper lqw = buildQueryWrapper(bo); +// Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); +// return TableDataInfo.build(result); +// } +// +// /** +// * 查询符合条件的主任务列表 +// * +// * @param bo 查询条件 +// * @return 主任务列表 +// */ +// @Override +// public List queryList(PsTaskMainBo bo) { +// LambdaQueryWrapper lqw = buildQueryWrapper(bo); +// return baseMapper.selectVoList(lqw); +// } +// +// private LambdaQueryWrapper buildQueryWrapper(PsTaskMainBo bo) { +// Map params = bo.getParams(); +// LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); +// lqw.eq(StringUtils.isNotBlank(bo.getContractCode()), PsTaskMain::getContractCode, bo.getContractCode()); +// lqw.eq(StringUtils.isNotBlank(bo.getTaskType()), PsTaskMain::getTaskType, bo.getTaskType()); +// lqw.eq(bo.getStartDate() != null, PsTaskMain::getStartDate, bo.getStartDate()); +// lqw.eq(StringUtils.isNotBlank(bo.getTaskStatus()), PsTaskMain::getTaskStatus, bo.getTaskStatus()); +// return lqw; +// } +// +// +// +// /** +// * 修改主任务 +// * +// * @param bo 主任务 +// * @return 是否修改成功 +// */ +// @Override +// public Boolean updateByBo(PsTaskMainBo bo) { +// PsTaskMain update = MapstructUtils.convert(bo, PsTaskMain.class); +// validEntityBeforeSave(update); +// return baseMapper.updateById(update) > 0; +// } +// +// /** +// * 保存前的数据校验 +// */ +// private void validEntityBeforeSave(PsTaskMain entity){ +// //TODO 做一些数据校验,如唯一约束 +// } +// +// /** +// * 校验并批量删除主任务信息 +// * +// * @param ids 待删除的主键集合 +// * @param isValid 是否进行有效性校验 +// * @return 是否删除成功 +// */ +// @Override +// public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { +// if(isValid){ +// //TODO 做一些业务上的校验,判断是否需要校验 +// } +// return baseMapper.deleteBatchIds(ids) > 0; +// } +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskWorkRecordServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskWorkRecordServiceImpl.java new file mode 100644 index 0000000..14f443b --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskWorkRecordServiceImpl.java @@ -0,0 +1,169 @@ +package com.pusong.business.service.impl; + +import com.pusong.business.domain.PsTaskAppoint; +import com.pusong.business.mapper.PsTaskAppointMapper; +import com.pusong.common.core.utils.MapstructUtils; +import com.pusong.common.core.utils.StringUtils; +import com.pusong.common.mybatis.core.page.TableDataInfo; +import com.pusong.common.mybatis.core.page.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.pusong.business.domain.bo.PsTaskWorkRecordBo; +import com.pusong.business.domain.vo.PsTaskWorkRecordVo; +import com.pusong.business.domain.PsTaskWorkRecord; +import com.pusong.business.mapper.PsTaskWorkRecordMapper; +import com.pusong.business.service.IPsTaskWorkRecordService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 外勤任务记录Service业务层处理 + * + * @author wls + * @date 2024-08-09 + */ +@RequiredArgsConstructor +@Service +public class PsTaskWorkRecordServiceImpl implements IPsTaskWorkRecordService { + + private final PsTaskWorkRecordMapper baseMapper; + private final PsTaskAppointMapper appointMapper; + + + /** + * 根据任务委派id查询工作进度列表 + * + * @param id 任务委派id + * @return 外勤任务记录列表 + */ + @Override + public List queryListByAppointId(Long id) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(PsTaskWorkRecord::getDelFlag,"0"); + lqw.eq(PsTaskWorkRecord::getTaskAppointId,id); + return baseMapper.selectVoList(lqw); + } + /** + * 新增外勤任务记录 + * + * @param bo 外勤任务记录 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(PsTaskWorkRecordBo bo) { + PsTaskAppoint appoint = appointMapper.selectById(bo.getTaskAppointId()); + PsTaskWorkRecord add = MapstructUtils.convert(bo, PsTaskWorkRecord.class); + add.setContractCode(appoint.getContractCode()); + boolean flag = baseMapper.insert(add) > 0; + return flag; + } + + +// /** +// * 查询外勤任务记录 +// * +// * @param id 主键 +// * @return 外勤任务记录 +// */ +// @Override +// public PsTaskWorkRecordVo queryById(Long id){ +// return baseMapper.selectVoById(id); +// } +// +// /** +// * 分页查询外勤任务记录列表 +// * +// * @param bo 查询条件 +// * @param pageQuery 分页参数 +// * @return 外勤任务记录分页列表 +// */ +// @Override +// public TableDataInfo queryPageList(PsTaskWorkRecordBo bo, PageQuery pageQuery) { +// LambdaQueryWrapper lqw = buildQueryWrapper(bo); +// Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); +// return TableDataInfo.build(result); +// } +// +// /** +// * 查询符合条件的外勤任务记录列表 +// * +// * @param bo 查询条件 +// * @return 外勤任务记录列表 +// */ +// @Override +// public List queryList(PsTaskWorkRecordBo bo) { +// LambdaQueryWrapper lqw = buildQueryWrapper(bo); +// return baseMapper.selectVoList(lqw); +// } +// +// private LambdaQueryWrapper buildQueryWrapper(PsTaskWorkRecordBo bo) { +// Map params = bo.getParams(); +// LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); +// lqw.eq(bo.getTaskAppointId() != null, PsTaskWorkRecord::getTaskAppointId, bo.getTaskAppointId()); +// lqw.eq(StringUtils.isNotBlank(bo.getContractCode()), PsTaskWorkRecord::getContractCode, bo.getContractCode()); +// lqw.eq(bo.getHandleDate() != null, PsTaskWorkRecord::getHandleDate, bo.getHandleDate()); +// lqw.eq(StringUtils.isNotBlank(bo.getHandleInfo()), PsTaskWorkRecord::getHandleInfo, bo.getHandleInfo()); +// lqw.eq(StringUtils.isNotBlank(bo.getHandlePlan()), PsTaskWorkRecord::getHandlePlan, bo.getHandlePlan()); +// lqw.eq(StringUtils.isNotBlank(bo.getNextType()), PsTaskWorkRecord::getNextType, bo.getNextType()); +// lqw.eq(StringUtils.isNotBlank(bo.getNextDesc()), PsTaskWorkRecord::getNextDesc, bo.getNextDesc()); +// lqw.eq(StringUtils.isNotBlank(bo.getNextDate()), PsTaskWorkRecord::getNextDate, bo.getNextDate()); +// return lqw; +// } +// +// /** +// * 新增外勤任务记录 +// * +// * @param bo 外勤任务记录 +// * @return 是否新增成功 +// */ +// @Override +// public Boolean insertByBo(PsTaskWorkRecordBo bo) { +// PsTaskWorkRecord add = MapstructUtils.convert(bo, PsTaskWorkRecord.class); +// validEntityBeforeSave(add); +// boolean flag = baseMapper.insert(add) > 0; +// if (flag) { +// bo.setId(add.getId()); +// } +// return flag; +// } +// +// /** +// * 修改外勤任务记录 +// * +// * @param bo 外勤任务记录 +// * @return 是否修改成功 +// */ +// @Override +// public Boolean updateByBo(PsTaskWorkRecordBo bo) { +// PsTaskWorkRecord update = MapstructUtils.convert(bo, PsTaskWorkRecord.class); +// validEntityBeforeSave(update); +// return baseMapper.updateById(update) > 0; +// } +// +// /** +// * 保存前的数据校验 +// */ +// private void validEntityBeforeSave(PsTaskWorkRecord entity){ +// //TODO 做一些数据校验,如唯一约束 +// } +// +// /** +// * 校验并批量删除外勤任务记录信息 +// * +// * @param ids 待删除的主键集合 +// * @param isValid 是否进行有效性校验 +// * @return 是否删除成功 +// */ +// @Override +// public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { +// if(isValid){ +// //TODO 做一些业务上的校验,判断是否需要校验 +// } +// return baseMapper.deleteBatchIds(ids) > 0; +// } +} diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractInfoMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractInfoMapper.xml index bd4c7da..61cdbd6 100644 --- a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractInfoMapper.xml +++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractInfoMapper.xml @@ -7,7 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskAppointMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskAppointMapper.xml new file mode 100644 index 0000000..e068d3d --- /dev/null +++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskAppointMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMainMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMainMapper.xml new file mode 100644 index 0000000..85c2c98 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMainMapper.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMediaMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMediaMapper.xml new file mode 100644 index 0000000..c1e2e26 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMediaMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskWorkRecordMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskWorkRecordMapper.xml new file mode 100644 index 0000000..0d24d7a --- /dev/null +++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskWorkRecordMapper.xml @@ -0,0 +1,7 @@ + + + + +