From 83b4a31249f78cb699791a0351c32c027d0de8b7 Mon Sep 17 00:00:00 2001 From: 1073413548 <14628403+gjb0917@user.noreply.gitee.com> Date: Tue, 13 Aug 2024 09:44:26 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E6=88=90=E5=90=88=E5=90=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PsApproverRecordController.java | 85 +++++++++------ .../controller/PsContractInfoController.java | 17 +++ .../business/domain/PsApproverRecord.java | 4 +- .../pusong/business/domain/PsCustomInfo.java | 4 + .../pusong/business/domain/PsTaskMain.java | 5 +- .../pusong/business/domain/PsTaskMedia.java | 8 +- .../domain/bo/PsApproverRecordBo.java | 4 +- .../business/domain/bo/PsTaskMediaBo.java | 8 +- .../domain/vo/PsApproverRecordVo.java | 4 +- .../business/domain/vo/PsCustomInfoVo.java | 10 +- .../business/domain/vo/PsTaskMediaVo.java | 17 ++- .../business/enums/ContractStatusEnum.java | 1 + .../service/IPsApproverRecordService.java | 51 +++++---- .../service/IPsContractInfoService.java | 14 +++ .../business/service/IPsTaskMediaService.java | 5 +- .../service/approver/ApproverService.java | 4 +- .../impl/ApproverAbstractServiceImpl.java | 6 +- .../impl/PayContractApproverServiceImpl.java | 2 + .../UpdateContractApproverServiceImpl.java | 41 ++++++- .../impl/PsApproverRecordServiceImpl.java | 102 +++++++++++------- .../impl/PsContractBusinessServiceImpl.java | 2 + .../impl/PsContractInfoServiceImpl.java | 69 ++++++------ .../service/impl/PsCustomInfoServiceImpl.java | 15 ++- .../service/impl/PsTaskMediaServiceImpl.java | 12 ++- .../service/impl/PsTaskServiceImpl.java | 8 +- 25 files changed, 329 insertions(+), 169 deletions(-) diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsApproverRecordController.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsApproverRecordController.java index 5d54378..103e5aa 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsApproverRecordController.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsApproverRecordController.java @@ -46,60 +46,75 @@ public class PsApproverRecordController extends BaseController { } /** - * 导出审批记录列表 + * 审批 + * + * @param operate (2 通过 3拒绝) + * @param id 审批表id + * @param desc 备注(通过/拒绝原因) + * @return */ - @SaCheckPermission("business:approverRecord:export") - @Log(title = "审批记录", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(PsApproverRecordBo bo, HttpServletResponse response) { - List list = psApproverRecordService.queryList(bo); - ExcelUtil.exportExcel(list, "审批记录", PsApproverRecordVo.class, response); + @SaCheckPermission("business:approverRecord:list") + @GetMapping("/approver") + public R approver(@NotBlank(message = "操作类型不能为空") String operate, + @NotNull(message = "数据id不能为空") Long id, String desc) { + psApproverRecordService.approver(operate, id,desc); + return R.ok(); } +// /** +// * 导出审批记录列表 +// */ +// @SaCheckPermission("business:approverRecord:export") +// @Log(title = "审批记录", businessType = BusinessType.EXPORT) +// @PostMapping("/export") +// public void export(PsApproverRecordBo bo, HttpServletResponse response) { +// List list = psApproverRecordService.queryList(bo); +// ExcelUtil.exportExcel(list, "审批记录", PsApproverRecordVo.class, response); +// } + /** * 获取审批记录详细信息 * * @param id 主键 */ @SaCheckPermission("business:approverRecord:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { + @GetMapping("/getById") + public R getInfo(@NotNull(message = "主键不能为空") Long id) { return R.ok(psApproverRecordService.queryById(id)); } - /** +/* *//** * 新增审批记录 - */ + *//* @SaCheckPermission("business:approverRecord:add") @Log(title = "审批记录", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() public R add(@Validated(AddGroup.class) @RequestBody PsApproverRecordBo bo) { return toAjax(psApproverRecordService.insertByBo(bo)); - } + }*/ - /** - * 修改审批记录 - */ - @SaCheckPermission("business:approverRecord:edit") - @Log(title = "审批记录", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody PsApproverRecordBo bo) { - return toAjax(psApproverRecordService.updateByBo(bo)); - } +// /** +// * 修改审批记录 +// */ +// @SaCheckPermission("business:approverRecord:edit") +// @Log(title = "审批记录", businessType = BusinessType.UPDATE) +// @RepeatSubmit() +// @PutMapping() +// public R edit(@Validated(EditGroup.class) @RequestBody PsApproverRecordBo bo) { +// return toAjax(psApproverRecordService.updateByBo(bo)); +// } - /** - * 删除审批记录 - * - * @param ids 主键串 - */ - @SaCheckPermission("business:approverRecord:remove") - @Log(title = "审批记录", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(psApproverRecordService.deleteWithValidByIds(List.of(ids), true)); - } +// /** +// * 删除审批记录 +// * +// * @param ids 主键串 +// */ +// @SaCheckPermission("business:approverRecord:remove") +// @Log(title = "审批记录", businessType = BusinessType.DELETE) +// @DeleteMapping("/{ids}") +// public R remove(@NotEmpty(message = "主键不能为空") +// @PathVariable Long[] ids) { +// return toAjax(psApproverRecordService.deleteWithValidByIds(List.of(ids), true)); +// } } 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 48e2466..cc22e21 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 @@ -148,6 +148,23 @@ public class PsContractInfoController extends BaseController { public R> queryServiceByCode(@NotBlank String contractCode) { return R.ok(businessService.selectBusinessList(contractCode)); } + + + + /** + * 开发票(开发票操作) + */ + @SaCheckPermission("business:contractInfo:list") + @Log(title = "合同开发票", businessType = BusinessType.INSERT) + @RepeatSubmit() + @GetMapping("/invoice") + public R invoice(@NotBlank String contractCode) { + psContractInfoService.invoice(contractCode); + return R.ok(); + } + + + // // /** // * 获取合同基本信息详细信息 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 6070772..5515885 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 @@ -68,9 +68,9 @@ public class PsApproverRecord extends TenantEntity { */ private String approverDesc; /** - * 修改前数据 + * 修改后数据 */ - private String beforeData; + private String updateData; /** * 2逻辑删除 0 默认有效 */ diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsCustomInfo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsCustomInfo.java index ead6269..6489ac8 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsCustomInfo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsCustomInfo.java @@ -79,6 +79,10 @@ public class PsCustomInfo extends TenantEntity { * 颜色 */ private String color; + /** + * 历史的所属客户经理 + */ + private String historyCustomManager; /** * 2逻辑删除 0 默认有效 */ 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 index e6fa944..1fbdfdf 100644 --- 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 @@ -32,7 +32,10 @@ public class PsTaskMain extends TenantEntity { * 公司id */ private Long companyId; - + /** + * 客户编码 + */ + private Long customId; /** * 合同编码 */ 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 index 2d068df..36802d1 100644 --- 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 @@ -28,14 +28,14 @@ public class PsTaskMedia extends TenantEntity { private Long id; /** - * 主任务表id + * 客户id */ - private Long taskId; + private Long customId; /** - * 合同编号 + * 公司id */ - private String contractCode; + private Long companyId; /** * 资料类型 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 e671e6a..a9360c5 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 @@ -74,9 +74,9 @@ public class PsApproverRecordBo { private String approverDesc; /** - * 修改前数据 + * 修改后数据 */ @NotBlank(message = "修改前数据") - private String beforeData; + private String updateData; } 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 index 2f40af2..8c53481 100644 --- 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 @@ -26,14 +26,14 @@ public class PsTaskMediaBo { private Long id; /** - * 主任务表id + * 客户id */ - private Long taskId; + private Long customId; /** - * 合同编号 + * 公司id */ - private String contractCode; + private Long companyId; /** * 资料类型 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 6efe552..d052a0d 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 @@ -84,7 +84,7 @@ public class PsApproverRecordVo implements Serializable { private String approverDesc; /** - * 修改前数据 + * 修改后数据 */ - private String beforeData; + private String updateData; } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCustomInfoVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCustomInfoVo.java index 313e497..59b3cf7 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCustomInfoVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCustomInfoVo.java @@ -138,7 +138,15 @@ public class PsCustomInfoVo implements Serializable { * 公司数量 */ private Integer companyNum; - + /** + * 历史的所属客户经理 + */ + private String historyCustomManager; + /** + * 历史的所属客户经理 + */ + @Translation(type = TransConstant.USER_ID_TO_NICKNAME,mapper = "historyCustomManager") + private String historyCustomManagerName; /** * 是否已生成合同(1是0否) */ 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 index 4af8b44..2628eb0 100644 --- 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 @@ -33,18 +33,17 @@ public class PsTaskMediaVo implements Serializable { */ @ExcelProperty(value = "主键id") private Long id; + /** + * 客户id + */ + @ExcelProperty(value = "客户id") + private Long customId; /** - * 主任务表id + * 公司id */ - @ExcelProperty(value = "主任务表id") - private Long taskId; - - /** - * 合同编号 - */ - @ExcelProperty(value = "合同编号") - private String contractCode; + @ExcelProperty(value = "公司id") + private Long companyId; /** * 资料类型 diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/ContractStatusEnum.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/ContractStatusEnum.java index d4df322..fed399e 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/ContractStatusEnum.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/ContractStatusEnum.java @@ -13,6 +13,7 @@ public enum ContractStatusEnum { INIT("10","暂存"), CREATE("20","生成成功(待回款)"), RETURN("30","已回款(待派单处理)"), + UPDATEAPPROVER("33","修改审批中"), EXECUTION("40","已派单(处理中)"), SUCCESS("50","已完成(任务已全部完成+回款全部完成+合同已回传)"), CANCELLATION("60","已作废"), diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsApproverRecordService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsApproverRecordService.java index 4c148bd..f6c1a1f 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsApproverRecordService.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsApproverRecordService.java @@ -42,27 +42,36 @@ public interface IPsApproverRecordService { List queryList(PsApproverRecordBo bo); /** - * 新增审批记录 + * 审批 * - * @param bo 审批记录 - * @return 是否新增成功 + * @param operate (2 通过 3拒绝) + * @param id 审批表id + * @return */ - Boolean insertByBo(PsApproverRecordBo bo); - - /** - * 修改审批记录 - * - * @param bo 审批记录 - * @return 是否修改成功 - */ - Boolean updateByBo(PsApproverRecordBo bo); - - /** - * 校验并批量删除审批记录信息 - * - * @param ids 待删除的主键集合 - * @param isValid 是否进行有效性校验 - * @return 是否删除成功 - */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + void approver(String operate, Long id,String desc); +// +// /** +// * 新增审批记录 +// * +// * @param bo 审批记录 +// * @return 是否新增成功 +// */ +// Boolean insertByBo(PsApproverRecordBo bo); +// +// /** +// * 修改审批记录 +// * +// * @param bo 审批记录 +// * @return 是否修改成功 +// */ +// Boolean updateByBo(PsApproverRecordBo 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/IPsContractInfoService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractInfoService.java index 8b1176d..8c0b173 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 @@ -86,6 +86,20 @@ public interface IPsContractInfoService { * @return */ PsContractInfo updateByCode(PsContractInfo info); + + /** + * 生成合同pdf + * @param add + * @param bo + */ + Long makePdf(PsContractInfo add ,PsContractInfoBo bo); + + /** + * 开发票(开发票操作) + * @param contractCode + * @return + */ + void invoice(String contractCode); /** * 查询符合条件的合同基本信息列表 * 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 index b64f176..53bdb26 100644 --- 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 @@ -19,10 +19,11 @@ public interface IPsTaskMediaService { /** * 查询任务资料 * - * @param id 主键 + * @param customerId 客户id + * @param companyId 公司id * @return 任务资料 */ - List queryByTaskId(Long id); + List queryByTaskId(Long customerId,Long companyId); /** * 保存影响资料信息 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 b3d275c..d8d1eec 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 @@ -9,9 +9,9 @@ public interface ApproverService { * @param bussinessId 关联业务id * @param contractCode 合同编码 * @param desc 审批说明 - * @param src 源数据 + * @param updateData 修改后的数据 */ - public void apply( String bussinessId,String contractCode, String desc, Object src); + public void apply( String bussinessId,String contractCode, String desc, Object updateData); /** * 成功 */ 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 dc50986..edc1dc3 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 @@ -32,9 +32,9 @@ public abstract class ApproverAbstractServiceImpl implements ApproverService { * 通用申请方法 * @param bussinessId * @param desc - * @param src + * @param updateData */ - public void apply(String bussinessId,String contractCode, String desc, Object src){ + public void apply(String bussinessId,String contractCode, String desc, Object updateData){ List list = approverRecordMapper.selectList(Wrappers.lambdaQuery().eq(PsApproverRecord::getDelFlag, "0") .eq(PsApproverRecord::getBusinessId, bussinessId).eq(PsApproverRecord::getBusinessType,approverType()) .ne(PsApproverRecord::getApproverStatus, ApproverStatusEnum.INIT.getCode())); @@ -47,7 +47,7 @@ public abstract class ApproverAbstractServiceImpl implements ApproverService { record.setContractCode(contractCode); record.setBusinessType(approverType()); record.setApplyDesc(desc); - record.setBeforeData(src == null?null:JSON.toJSONString(src)); + record.setUpdateData(updateData == null?null:JSON.toJSONString(updateData)); record.setApplyDate(new Date()); record.setApproverStatus(ApproverStatusEnum.INIT.getCode()); approverRecordMapper.insert(record); 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 index f7de328..a8a4d25 100644 --- 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 @@ -57,6 +57,8 @@ public class PayContractApproverServiceImpl extends ApproverAbstractServiceImpl psTaskMain.setContractCode(psApproverRecord.getContractCode()); psTaskMain.setTaskType(TaskTypeEnum.CONTRACT.getCode()); psTaskMain.setTaskStatus(TaskStatusEnum.INIT.getCode()); + psTaskMain.setCompanyId(info.getCompanyId()); + psTaskMain.setCustomId(info.getCustomId()); taskMainService.insert(psTaskMain); log.info("修改合同状态"); PsContractInfo updateInfo = new PsContractInfo(); 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 439838d..b112060 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,8 +1,17 @@ package com.pusong.business.service.approver.impl; +import com.alibaba.fastjson.JSON; import com.pusong.business.domain.PsApproverRecord; +import com.pusong.business.domain.PsContractInfo; +import com.pusong.business.domain.bo.PsContractInfoBo; +import com.pusong.business.domain.vo.PsContractInfoVo; import com.pusong.business.enums.ApproverStatusEnum; import com.pusong.business.enums.ApproverTypeEnum; +import com.pusong.business.enums.CommonStatusEnum; +import com.pusong.business.service.IPsContractBusinessService; +import com.pusong.business.service.IPsContractInfoService; +import com.pusong.common.core.utils.MapstructUtils; +import com.pusong.common.core.utils.StringUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -15,6 +24,8 @@ public class UpdateContractApproverServiceImpl extends ApproverAbstractServiceIm public String approverType() { return ApproverTypeEnum.UPDATE.getCode(); } + private final IPsContractBusinessService businessService; + private final IPsContractInfoService contractInfoService; /** * 1 审批成功合同已派单:任务重置 @@ -22,9 +33,37 @@ public class UpdateContractApproverServiceImpl extends ApproverAbstractServiceIm */ @Override public void success(PsApproverRecord psApproverRecord) { + //1查询源数据 + PsContractInfoVo src = contractInfoService.queryContractByCode(psApproverRecord.getContractCode()); + //json化修改的数据 + PsContractInfoBo bo = JSON.parseObject(psApproverRecord.getUpdateData(),PsContractInfoBo.class); + //2.删除所有服务类型和服务项目,.插入服务类型 + businessService.saveList(bo.getBusinessList(),bo.getContractCode()); + + //3.修改后操作 + afterUpdateOperate(bo, src); + //插入合同 + PsContractInfo add = new PsContractInfo(); + add.setCompanyId(bo.getCompanyInfoBo().getId());//公司id + MapstructUtils.convert(bo, add); + contractInfoService.updateByCode(add); + //4.生成合同 + contractInfoService.makePdf(add,bo); + } + /** + * 修改合同后操作 + * 1.已回款之后的合同修改后走审批 + * 2.已回款合同:新的合同金额<已付金额:展示申请退款 + * 3.合同签字盖章成功:修改合同成功,合同签字盖章变回未签章状态,需重新进行签章申请 + */ + private void afterUpdateOperate(PsContractInfoBo updateBo, PsContractInfoVo srcVo){ + + //3.签章:合同签字盖章成功:修改合同成功,合同签字盖章变回未签章状态,需重新进行签章申请 + if(StringUtils.equals(srcVo.getSignStatus(), CommonStatusEnum.SUCCESS.getCode()) ){ + updateBo.setSignStatus(CommonStatusEnum.INIT.getCode()); + } } - @Override public void fail(PsApproverRecord psApproverRecord) { 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 567c43f..968a5dd 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 @@ -1,5 +1,11 @@ package com.pusong.business.service.impl; +import com.pusong.business.enums.ApproverStatusEnum; +import com.pusong.business.enums.ApproverTypeEnum; +import com.pusong.business.enums.TaskStatusEnum; +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.utils.MapstructUtils; import com.pusong.common.core.utils.StringUtils; import com.pusong.common.mybatis.core.page.TableDataInfo; @@ -30,6 +36,7 @@ import java.util.Collection; public class PsApproverRecordServiceImpl implements IPsApproverRecordService { private final PsApproverRecordMapper baseMapper; + private final ApproverContainer container; /** * 查询审批记录 @@ -81,34 +88,55 @@ public class PsApproverRecordServiceImpl implements IPsApproverRecordService { } /** - * 新增审批记录 + * 审批 * - * @param bo 审批记录 - * @return 是否新增成功 + * @param operate (2 通过 3拒绝) + * @param id 审批表id + * @return */ - @Override - public Boolean insertByBo(PsApproverRecordBo bo) { - PsApproverRecord add = MapstructUtils.convert(bo, PsApproverRecord.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); + public void approver(String operate, Long id,String desc){ + PsApproverRecord info = baseMapper.selectById(id); + if(!StringUtils.equals(ApproverStatusEnum.INIT.getCode(),info.getApproverStatus())){ + throw new ServiceException("操作失败:该审批状态已变更"); + } + ApproverService service = container.getService(info.getApproverType()); + if(StringUtils.equals(ApproverStatusEnum.SUCCESS.getCode(),operate)){ + service.success(info); + }else if (StringUtils.equals(ApproverStatusEnum.FAIL.getCode(),operate)){ + service.fail(info); + }else{ + throw new ServiceException("操作失败:不支持的操作类型"); } - return flag; } +// /** +// * 新增审批记录 +// * +// * @param bo 审批记录 +// * @return 是否新增成功 +// */ +// @Override +// public Boolean insertByBo(PsApproverRecordBo bo) { +// PsApproverRecord add = MapstructUtils.convert(bo, PsApproverRecord.class); +// validEntityBeforeSave(add); +// boolean flag = baseMapper.insert(add) > 0; +// if (flag) { +// bo.setId(add.getId()); +// } +// return flag; +// } - /** - * 修改审批记录 - * - * @param bo 审批记录 - * @return 是否修改成功 - */ - @Override - public Boolean updateByBo(PsApproverRecordBo bo) { - PsApproverRecord update = MapstructUtils.convert(bo, PsApproverRecord.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } +// /** +// * 修改审批记录 +// * +// * @param bo 审批记录 +// * @return 是否修改成功 +// */ +// @Override +// public Boolean updateByBo(PsApproverRecordBo bo) { +// PsApproverRecord update = MapstructUtils.convert(bo, PsApproverRecord.class); +// validEntityBeforeSave(update); +// return baseMapper.updateById(update) > 0; +// } /** * 保存前的数据校验 @@ -117,18 +145,18 @@ public class PsApproverRecordServiceImpl implements IPsApproverRecordService { //TODO 做一些数据校验,如唯一约束 } - /** - * 校验并批量删除审批记录信息 - * - * @param ids 待删除的主键集合 - * @param isValid 是否进行有效性校验 - * @return 是否删除成功 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } +// /** +// * 校验并批量删除审批记录信息 +// * +// * @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/PsContractBusinessServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractBusinessServiceImpl.java index d56aae3..1ec6a96 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 @@ -95,6 +95,8 @@ public class PsContractBusinessServiceImpl implements IPsContractBusinessService } + + /* *//** * 查询合同服务类别 * 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 5c564eb..91643ad 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 @@ -64,6 +64,8 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { @Resource private final ApproverContainer container; + + private final IPsTaskService taskMainService; /** * 生成合同 * @@ -94,7 +96,10 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { if(CollectionUtils.isNotEmpty(item.getDetailBos())){ mony = item.getDetailBos().stream().map(PsContractBusinessDetailBo::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); } - item.setBusinessAmount(mony); + //服务类别填了才会修改服务项目的金额 + if(mony.compareTo(BigDecimal.ZERO) > 0){ + item.setBusinessAmount(mony); + } }); BigDecimal sum = bo.getBusinessList().stream().map(PsContractBusinessBo::getBusinessAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); @@ -221,17 +226,17 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { //4.装填合同信息 BigDecimal sum = bo.getBusinessList().stream().map(PsContractBusinessBo::getBusinessAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); bo.setContractAmount(sum);//合同总金额 - //5.删除所有服务类型和服务项目,.插入服务类型 - businessService.saveList(bo.getBusinessList(),bo.getContractCode()); - //6.修改后操作 - afterUpdateOperate(bo, src); - //插入合同 - PsContractInfo add = new PsContractInfo(); - add.setCompanyId(bo.getCompanyInfoBo().getId());//公司id - MapstructUtils.convert(bo, add); - this.updateByCode(add); - //7.生成合同 - makePdf(add,bo); + + //5.已回款之后的合同修改后走审批 + if(ContractStatusEnum.isReturn(src.getContractStatus())){ + //发起审批 + ApproverService service = container.getService(ApproverTypeEnum.UPDATE.getCode()); + service.apply(bo.getContractCode(),bo.getContractCode(),bo.getUpdateDesc(), JSON.toJSONString(bo)); + } + PsContractInfo info = new PsContractInfo(); + info.setContractCode(bo.getContractCode()); + info.setContractStatus(ContractStatusEnum.UPDATEAPPROVER.getCode()); + updateByCode(info); return true; } @@ -302,7 +307,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { * @param add * @param bo */ - private Long makePdf(PsContractInfo add ,PsContractInfoBo bo){ + public Long makePdf(PsContractInfo add ,PsContractInfoBo bo){ Long ossId = null; try{ //生成合同pdf @@ -312,6 +317,11 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { map.put("business",bo.getBusinessList()); map.put("company",bo.getCompanyInfoBo()); map.put("customer",customer); + String head = "合同编号:PS-"+add.getContractCode()+" 客户编号:"+customer.getId(); + //合同标题 + map.put(PdfGenerator.HEAD,head); + //是否签章 + map.put(PdfGenerator.SIGN,StringUtils.equals(CommonStatusEnum.SUCCESS.getCode(),bo.getSignStatus())); String path = System.getProperty("user.dir")+"test.pdf"; log.info(JSON.toJSONString(map)); // path = "D:/王立帅/临时/output.pdf"; @@ -335,6 +345,20 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { return ossId; } + /** + * 开发票(开发票操作) + * @param contractCode + * @return + */ + public void invoice(String contractCode){ + log.info("合同未回款过,初始化任务主表"); + PsTaskMain psTaskMain = new PsTaskMain(); + psTaskMain.setContractCode(contractCode); + psTaskMain.setTaskType(TaskTypeEnum.INVOICE.getCode()); + psTaskMain.setTaskStatus(TaskStatusEnum.INIT.getCode()); + taskMainService.insert(psTaskMain); + } + private QueryWrapper buildQueryWrapper(PsContractInfoQueryBo bo) { QueryWrapper qw = Wrappers.query(); @@ -431,26 +455,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { throw new ServiceException("合同已完成,不可修改"); } } - /** - * 修改合同后操作 - * 1.已回款之后的合同修改后走审批 - * 2.已回款合同:新的合同金额<已付金额:展示申请退款 - * 3.合同签字盖章成功:修改合同成功,合同签字盖章变回未签章状态,需重新进行签章申请 - */ - private void afterUpdateOperate( PsContractInfoBo updateBo,PsContractInfoVo srcVo){ - //1.已回款之后的合同修改后走审批 - if(ContractStatusEnum.isReturn(srcVo.getContractStatus())){ - //发起审批 - ApproverService service = container.getService(ApproverTypeEnum.UPDATE.getCode()); - service.apply(updateBo.getContractCode(),updateBo.getContractCode(),updateBo.getUpdateDesc(), JSON.toJSONString(srcVo)); - } - //3.签章:合同签字盖章成功:修改合同成功,合同签字盖章变回未签章状态,需重新进行签章申请 - if(StringUtils.equals(srcVo.getSignStatus(),CommonStatusEnum.SUCCESS.getCode()) ){ - updateBo.setSignStatus(CommonStatusEnum.INIT.getCode()); - } - - } /** * 查询合同基本信息 * diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java index 9b1bd36..cea7391 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java @@ -2,7 +2,9 @@ package com.pusong.business.service.impl; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.pusong.business.domain.PsCompanyInfo; import com.pusong.business.domain.PsCustomCallback; @@ -262,7 +264,7 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService { } /** - * 校验并批量删除客户基本信息信息 + * 修改客户状态 * * @param id 主键id * @param type 操作类型 @@ -274,9 +276,18 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService { if(true){ //todo 校验原数据状态是否可以更改 } + LambdaUpdateWrapper wq = Wrappers.lambdaUpdate().eq(PsCustomInfo::getId, id); switch (type){ case 1://移入公海 psCustomInfo.setCustomStatus(CustomerStatusEnum.PUBLIC.getCode()); + //拼装历史的所属客户经理 + if(StringUtils.isBlank(psCustomInfo.getHistoryCustomManager())){ + psCustomInfo.setHistoryCustomManager(psCustomInfo.getCustomManager()+""); + }else { + psCustomInfo.setHistoryCustomManager(psCustomInfo.getHistoryCustomManager()+","+psCustomInfo.getCustomManager()); + } + wq.set(PsCustomInfo::getCustomManager,null); + psCustomInfo.setCustomManager(null); break; case 2://拉黑 psCustomInfo.setBlack("1"); @@ -284,7 +295,7 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService { break; } - return baseMapper.updateById(psCustomInfo) > 0; + return baseMapper.update(psCustomInfo,wq) > 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 index 773c0d7..7cfeb0d 100644 --- 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 @@ -34,20 +34,22 @@ public class PsTaskMediaServiceImpl implements IPsTaskMediaService { /** * 查询任务资料 * - * @param id 主键 + * @param customerId 客户id + * @param companyId 公司id * @return 任务资料 */ @Override - public List queryByTaskId(Long id){ + public List queryByTaskId(Long customerId,Long companyId){ PsTaskMediaBo bo = new PsTaskMediaBo(); - bo.setTaskId(id); + bo.setCustomId(customerId); + bo.setCompanyId(companyId); 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(bo.getCustomId() != null, PsTaskMedia::getCustomId, bo.getCustomId()); + lqw.eq(bo.getCompanyId() != null, PsTaskMedia::getCompanyId, bo.getCompanyId()); lqw.eq(StringUtils.isNotBlank(bo.getMediaType()), PsTaskMedia::getMediaType, bo.getMediaType()); lqw.eq(StringUtils.isNotBlank(bo.getMediaOssId()), PsTaskMedia::getMediaOssId, bo.getMediaOssId()); return lqw; 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 index 7d040c5..1dc67bd 100644 --- 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 @@ -124,7 +124,7 @@ public class PsTaskServiceImpl implements IPsTaskService { //查询公司信息 PsCompanyInfoVo companyInfoVo = companyInfoService.queryById(mainTask.getCompanyId()); //查询资料信息 - List list = mediaService.queryByTaskId(mainTask.getId()); + List list = mediaService.queryByTaskId(mainTask.getCustomId(),mainTask.getCompanyId()); PsTaskMainVo psTaskMainVo = new PsTaskMainVo(); psTaskMainVo.setCompanyInfoVo(companyInfoVo); psTaskMainVo.setTaskMediaVoList(list); @@ -166,12 +166,12 @@ public class PsTaskServiceImpl implements IPsTaskService { return; } //2.1查询原始的合同资料信息 - List mediaList = mediaService.queryByTaskId(save.getId()); + List mediaList = mediaService.queryByTaskId(taskMain.getCustomId(),taskMain.getCompanyId()); //此次需要保存的资料id(后续删除使用) List ossIdList = new ArrayList<>(); save.getMediaBoList().forEach(item->{ - item.setTaskId(taskMain.getId()); - item.setContractCode(taskMain.getContractCode()); + item.setCustomId(taskMain.getCustomId()); + item.setCompanyId(taskMain.getCompanyId()); if(StringUtils.isNotBlank(item.getMediaOssId()) && !StringUtils.equals("-1",item.getMediaOssId())){ ossIdList.addAll(List.of(item.getMediaOssId().split(","))); }