From 0017d23164ecba023f419506dd0c6556c570f157 Mon Sep 17 00:00:00 2001 From: 1073413548 <14628403+gjb0917@user.noreply.gitee.com> Date: Fri, 2 Aug 2024 10:36:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=90=88=E5=90=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pusong/common/core/utils/DateUtils.java | 29 +- .../controller/PsContractInfoController.java | 27 +- .../controller/PsContractPayController.java | 105 +++++++ .../pusong/business/domain/PsCompanyInfo.java | 4 - .../business/domain/PsContractInfo.java | 6 +- .../pusong/business/domain/PsContractPay.java | 83 +++++ .../business/domain/bo/PsCompanyInfoBo.java | 2 +- .../domain/bo/PsContractBusinessBo.java | 2 +- .../domain/bo/PsContractBusinessDetailBo.java | 2 +- .../business/domain/bo/PsContractInfoBo.java | 2 +- .../domain/bo/PsContractInfoQueryBo.java | 58 ++++ .../business/domain/bo/PsContractPayBo.java | 85 ++++++ .../domain/bo/PsCustomCallbackBo.java | 2 +- .../business/domain/bo/PsCustomInfoBo.java | 2 +- .../business/domain/bo/PsCustomPriceBo.java | 2 +- .../domain/vo/PsContractBusinessDetailVo.java | 5 +- .../domain/vo/PsContractBusinessVo.java | 6 +- .../business/domain/vo/PsContractInfoVo.java | 50 ++- .../business/domain/vo/PsContractPayVo.java | 95 ++++++ .../business/enums/CommonStatusEnum.java | 16 + .../business/enums/ContractStatusEnum.java | 6 +- .../business/enums/PayBuinessStatusEnum.java | 16 + .../business/mapper/PsContractInfoMapper.java | 8 + .../business/mapper/PsContractPayMapper.java | 15 + .../business/mapper/PsCustomInfoMapper.java | 2 +- .../service/IPsContractBusinessService.java | 32 +- .../service/IPsContractInfoService.java | 24 +- .../service/IPsContractPayService.java | 83 +++++ .../impl/PsContractBusinessServiceImpl.java | 67 +++- .../impl/PsContractInfoServiceImpl.java | 285 +++++++++++------- .../impl/PsContractPayServiceImpl.java | 154 ++++++++++ .../service/impl/PsCustomInfoServiceImpl.java | 3 +- .../business/PsContractBusinessMapper.xml | 11 +- .../mapper/business/PsContractInfoMapper.xml | 35 +++ .../mapper/business/PsContractPayMapper.xml | 7 + .../mapper/business/PsCustomInfoMapper.xml | 18 +- 36 files changed, 1172 insertions(+), 177 deletions(-) create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractPayController.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractPay.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractInfoQueryBo.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractPayBo.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractPayVo.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/CommonStatusEnum.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/PayBuinessStatusEnum.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsContractPayMapper.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractPayService.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractPayServiceImpl.java create mode 100644 pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractPayMapper.xml diff --git a/pusong-common/pusong-common-core/src/main/java/com/pusong/common/core/utils/DateUtils.java b/pusong-common/pusong-common-core/src/main/java/com/pusong/common/core/utils/DateUtils.java index ba1f05d..950de4c 100644 --- a/pusong-common/pusong-common-core/src/main/java/com/pusong/common/core/utils/DateUtils.java +++ b/pusong-common/pusong-common-core/src/main/java/com/pusong/common/core/utils/DateUtils.java @@ -7,12 +7,10 @@ import org.apache.commons.lang3.time.DateFormatUtils; import java.lang.management.ManagementFactory; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.LocalTime; -import java.time.ZoneId; -import java.time.ZonedDateTime; +import java.time.*; +import java.util.ArrayList; import java.util.Date; +import java.util.List; /** * 时间工具类 @@ -127,6 +125,27 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { public static int differentDaysByMillisecond(Date date1, Date date2) { return Math.abs((int) ((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24))); } + /** + * 计算相差天数(只计算工作日:周一到周五) + */ + public static int calWorkDate(Date date1, Date date2) { + LocalDate startDate = date1.toInstant() + .atZone(ZoneId.systemDefault()) + .toLocalDate(); + LocalDate endDate = date2.toInstant() + .atZone(ZoneId.systemDefault()) + .toLocalDate(); + + int i = 0; + while (startDate.isBefore(endDate)) { + if (!startDate.getDayOfWeek().equals(DayOfWeek.SATURDAY) + && !startDate.getDayOfWeek().equals(DayOfWeek.SUNDAY)) { + i++; + } + startDate = startDate.plusDays(1); + } + return i; + } /** * 计算两个时间差 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 108ce4a..c779506 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 @@ -2,6 +2,7 @@ package com.pusong.business.controller; import java.util.List; +import com.pusong.business.domain.bo.PsContractInfoQueryBo; import com.pusong.common.core.validate.QueryGroup; import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; @@ -68,7 +69,7 @@ public class PsContractInfoController extends BaseController { @Log(title = "根据客户id查询暂存的合同详情信息", businessType = BusinessType.INSERT) @RepeatSubmit() @GetMapping("/queryContract") - public R queryContract(@NotEmpty Long customerId) { + public R queryContract(@NotNull Long customerId) { return R.ok(psContractInfoService.queryInfoByCustomId(customerId)); } @@ -77,9 +78,31 @@ public class PsContractInfoController extends BaseController { */ @SaCheckPermission("business:contractInfo:list") @GetMapping("/list") - public TableDataInfo list(PsContractInfoBo bo, PageQuery pageQuery) { + public TableDataInfo list(PsContractInfoQueryBo bo, PageQuery pageQuery) { return psContractInfoService.queryPageList(bo, pageQuery); } + + /** + * 根据合同编码查询合同信息 + */ + @SaCheckPermission("business:contractInfo:add") + @Log(title = "根据合同编码查询合同信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @GetMapping("/queryContractByCode") + public R queryContractByCode(@NotBlank String contractCode) { + return R.ok(psContractInfoService.queryContractByCode(contractCode)); + } + + /** + * 修改合同 + */ + @SaCheckPermission("business:contractList:edit") + @Log(title = "根据合同编码查询合同信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PutMapping("/edit") + public R updateContractByCode(@Validated(EditGroup.class) @RequestBody PsContractInfoBo bo) { + return R.ok(psContractInfoService.updateContractByCode(bo)); + } // // /** // * 获取合同基本信息详细信息 diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractPayController.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractPayController.java new file mode 100644 index 0000000..abeb38b --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractPayController.java @@ -0,0 +1,105 @@ +package com.pusong.business.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +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.PsContractPayVo; +import com.pusong.business.domain.bo.PsContractPayBo; +import com.pusong.business.service.IPsContractPayService; +import com.pusong.common.mybatis.core.page.TableDataInfo; + +/** + * 合同回款记录 + * + * @author wls + * @date 2024-08-01 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/business/contractPay") +public class PsContractPayController extends BaseController { + + private final IPsContractPayService psContractPayService; + + /* *//** + * 查询合同回款记录列表 + *//* + @SaCheckPermission("business:contractPay:list") + @GetMapping("/list") + public TableDataInfo list(PsContractPayBo bo, PageQuery pageQuery) { + return psContractPayService.queryPageList(bo, pageQuery); + } + + *//** + * 导出合同回款记录列表 + *//* + @SaCheckPermission("business:contractPay:export") + @Log(title = "合同回款记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(PsContractPayBo bo, HttpServletResponse response) { + List list = psContractPayService.queryList(bo); + ExcelUtil.exportExcel(list, "合同回款记录", PsContractPayVo.class, response); + } + + *//** + * 获取合同回款记录详细信息 + * + * @param id 主键 + *//* + @SaCheckPermission("business:contractPay:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(psContractPayService.queryById(id)); + } + + *//** + * 新增合同回款记录 + *//* + @SaCheckPermission("business:contractPay:add") + @Log(title = "合同回款记录", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody PsContractPayBo bo) { + return toAjax(psContractPayService.insertByBo(bo)); + } + + *//** + * 修改合同回款记录 + *//* + @SaCheckPermission("business:contractPay:edit") + @Log(title = "合同回款记录", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody PsContractPayBo bo) { + return toAjax(psContractPayService.updateByBo(bo)); + } + + *//** + * 删除合同回款记录 + * + * @param ids 主键串 + *//* + @SaCheckPermission("business:contractPay:remove") + @Log(title = "合同回款记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(psContractPayService.deleteWithValidByIds(List.of(ids), true)); + }*/ +} 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 9f6b336..9765b2e 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 @@ -27,10 +27,6 @@ public class PsCompanyInfo extends TenantEntity { */ @TableId(value = "id") private Long id; - /** - * 创建的合同id - */ - private String contractCode; /** * 客户id */ 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 5a0c9f8..d825c23 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 @@ -106,6 +106,8 @@ public class PsContractInfo extends TenantEntity { * 2逻辑删除 0 默认有效 */ private Long delFlag; - - + /** + * 合同回传状态0未回传1已回传 + */ + private String rollBackStatus; } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractPay.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractPay.java new file mode 100644 index 0000000..b06a33a --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractPay.java @@ -0,0 +1,83 @@ +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.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 合同回款记录对象 ps_contract_pay + * + * @author wls + * @date 2024-08-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("ps_contract_pay") +public class PsContractPay extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id") + private Long id; + + /** + * 合同编码 + */ + private String contractCode; + + /** + * 回款金额 + */ + private BigDecimal money; + /** + * 业务类型1回款2退款 + */ + private String businessType; + /** + * 回款日期 + */ + private Date payDate; + + /** + * 回款类型(1全款,2分期) + */ + private String payType; + + /** + * 支付方式(1扫码,2对公,3现金) + */ + private String payMode; + + /** + * 收款主体 + */ + private String gathMain; + + /** + * 回款凭证(多个时用逗号分隔) + */ + private String payCertification; + + /** + * 回款备注 + */ + private String payDesc; + + /** + * 2逻辑删除 0 默认有效 + */ + @TableLogic + private Long delFlag; + + +} 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 b9ccdea..9f38937 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 @@ -20,7 +20,7 @@ import java.math.BigDecimal; */ @Data @EqualsAndHashCode -@AutoMapper(target = PsCompanyInfo.class, reverseConvertGenerate = false) +@AutoMapper(target = PsCompanyInfo.class) public class PsCompanyInfoBo { /** diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractBusinessBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractBusinessBo.java index dfb8e6e..552f32d 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractBusinessBo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractBusinessBo.java @@ -22,7 +22,7 @@ import java.util.List; */ @Data @EqualsAndHashCode -@AutoMapper(target = PsContractBusiness.class, reverseConvertGenerate = false) +@AutoMapper(target = PsContractBusiness.class) public class PsContractBusinessBo { /** 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 4c90130..51ba8bc 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 @@ -18,7 +18,7 @@ import java.math.BigDecimal; */ @Data @EqualsAndHashCode(callSuper = true) -@AutoMapper(target = PsContractBusinessDetail.class, reverseConvertGenerate = false) +@AutoMapper(target = PsContractBusinessDetail.class) public class PsContractBusinessDetailBo extends BaseEntity { /** diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractInfoBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractInfoBo.java index a8eb02d..5203e8e 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractInfoBo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractInfoBo.java @@ -23,7 +23,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; */ @Data @EqualsAndHashCode -@AutoMapper(target = PsContractInfo.class, reverseConvertGenerate = false) +@AutoMapper(target = PsContractInfo.class) public class PsContractInfoBo { 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 new file mode 100644 index 0000000..9790659 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractInfoQueryBo.java @@ -0,0 +1,58 @@ +package com.pusong.business.domain.bo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.pusong.business.domain.PsContractInfo; +import com.pusong.common.core.validate.AddGroup; +import com.pusong.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; +import java.util.List; + +/** + * 合同基本信息业务对象 ps_contract_info + * + * @author wls + * @date 2024-07-29 + */ +@Data +@EqualsAndHashCode +public class PsContractInfoQueryBo { + + /** + * 合同编码 + */ + private String contractCode; + /** + * 销售经理姓名 + */ + private String customManagerName; + /** + * 客户姓名 + */ + private String customName; + + /** + * 客户电话 + */ + private String customMobile; + + /** + * 公司名称 + */ + private String companyName; + + /** + * 合同状态 + */ + private String contractStatus; + + + + +} 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 new file mode 100644 index 0000000..2ed0f1f --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractPayBo.java @@ -0,0 +1,85 @@ +package com.pusong.business.domain.bo; + +import com.pusong.business.domain.PsContractPay; +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.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 合同回款记录业务对象 ps_contract_pay + * + * @author wls + * @date 2024-08-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = PsContractPay.class) +public class PsContractPayBo extends BaseEntity { + + /** + * 主键id + */ + @NotNull(message = "主键id不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 合同编码 + */ + @NotNull(message = "合同编码", groups = { AddGroup.class, EditGroup.class }) + private String contractCode; + /** + * 业务类型1回款2退款 + */ + @NotNull(message = "业务类型1回款2退款", groups = { AddGroup.class, EditGroup.class }) + private String businessType; + /** + * 回款金额 + */ + @NotNull(message = "回款金额不能为空", groups = { AddGroup.class, EditGroup.class }) + private BigDecimal money; + + /** + * 回款日期 + */ + @NotNull(message = "回款日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date payDate; + + /** + * 回款类型(1全款,2分期) + */ + @NotBlank(message = "回款类型(1全款,2分期)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String payType; + + /** + * 支付方式(1扫码,2对公,3现金) + */ + @NotBlank(message = "支付方式(1扫码,2对公,3现金)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String payMode; + + /** + * 收款主体 + */ + @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 payDesc; + + +} 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 d15d0d7..36162b5 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 @@ -19,7 +19,7 @@ import java.math.BigDecimal; */ @Data @EqualsAndHashCode(callSuper = true) -@AutoMapper(target = PsCustomCallback.class, reverseConvertGenerate = false) +@AutoMapper(target = PsCustomCallback.class) public class PsCustomCallbackBo extends BaseEntity { /** diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsCustomInfoBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsCustomInfoBo.java index e4b80ca..6f7eb63 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsCustomInfoBo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsCustomInfoBo.java @@ -20,7 +20,7 @@ import java.util.List; */ @Data @EqualsAndHashCode -@AutoMapper(target = PsCustomInfo.class, reverseConvertGenerate = false) +@AutoMapper(target = PsCustomInfo.class) public class PsCustomInfoBo { /** 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 85ab27e..07c8e6d 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 @@ -23,7 +23,7 @@ import java.math.BigDecimal; */ @Data @EqualsAndHashCode(callSuper = true) -@AutoMapper(target = PsCustomPrice.class, reverseConvertGenerate = false) +@AutoMapper(target = PsCustomPrice.class) public class PsCustomPriceBo extends BaseEntity { /** diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractBusinessDetailVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractBusinessDetailVo.java index 24fe4ab..79aaa8b 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractBusinessDetailVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractBusinessDetailVo.java @@ -31,7 +31,10 @@ public class PsContractBusinessDetailVo implements Serializable { @Serial private static final long serialVersionUID = 1L; - + /** + * 主键id + */ + private Long id; /** * 合同编号 */ diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractBusinessVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractBusinessVo.java index b1fcef8..d675417 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractBusinessVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractBusinessVo.java @@ -2,6 +2,7 @@ package com.pusong.business.domain.vo; import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.annotation.JsonFormat; import com.pusong.business.domain.PsContractBusiness; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; @@ -32,7 +33,10 @@ public class PsContractBusinessVo implements Serializable { @Serial private static final long serialVersionUID = 1L; - + /** + * 主键id + */ + private Long id; /** * 合同编号 */ 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 632ecbb..656239b 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 @@ -34,7 +34,6 @@ public class PsContractInfoVo implements Serializable { private static final long serialVersionUID = 1L; - /** * 合同编码 */ @@ -74,6 +73,11 @@ public class PsContractInfoVo implements Serializable { * 合同状态 */ private String contractStatus; + /** + * 合同状态名 + */ + @Translation(type = TransConstant.DICT_TYPE_TO_LABEL,other = "contract_status",mapper="contractStatus") + private String contractStatusName; /** * 签约日期 @@ -95,7 +99,14 @@ public class PsContractInfoVo implements Serializable { * 是否代账 */ private String isProxy; - + /** + * 所属客户经理 + */ + private Long customManager; + /** + * 所属客户经理姓名 + */ + private String customManagerName; /** * 签约备注 */ @@ -108,14 +119,47 @@ public class PsContractInfoVo implements Serializable { * 文件系统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; /** * 公司信息 */ private PsCompanyInfoVo psCompanyInfoVo; - + /** + * 客户信息 + */ + private PsCustomInfoVo psCustomInfoVo; /** * 服务类别信息 */ private List businessVoList; + /** + * 汇款记录信息信息 + */ + private List contractPayVoList; } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractPayVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractPayVo.java new file mode 100644 index 0000000..9315474 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractPayVo.java @@ -0,0 +1,95 @@ +package com.pusong.business.domain.vo; + +import java.math.BigDecimal; +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.PsContractPay; +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_contract_pay + * + * @author wls + * @date 2024-08-01 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PsContractPay.class) +public class PsContractPayVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ExcelProperty(value = "主键id") + private Long id; + + /** + * 合同id + */ + @ExcelProperty(value = "合同编码") + private String contractCode; + + /** + * 回款金额 + */ + @ExcelProperty(value = "回款金额") + private BigDecimal money; + /** + * 业务类型1回款2退款 + */ + private String businessType; + + /** + * 回款日期 + */ + @ExcelProperty(value = "回款日期") + private Date payDate; + + /** + * 回款类型(1全款,2分期) + */ + private String payType; + + /** + * 支付方式(1扫码,2对公,3现金) + */ + private String payMode; + + /** + * 收款主体 + */ + private String gathMain; + + /** + * 回款凭证(多个时用逗号分隔) + */ + private String payCertification; + + /** + * 回款备注 + */ + private String payDesc; + + /** + * 创建时间 + */ + private Date createTime; + +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/CommonStatusEnum.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/CommonStatusEnum.java new file mode 100644 index 0000000..3022aea --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/CommonStatusEnum.java @@ -0,0 +1,16 @@ +package com.pusong.business.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 通用状态枚举 + */ +@Getter +@AllArgsConstructor +public enum CommonStatusEnum { + Y("1","是"), + N("0","否"); + private String code; + private String text; +} 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 395d192..1693d23 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 @@ -7,7 +7,11 @@ import lombok.Getter; @AllArgsConstructor public enum ContractStatusEnum { INIT("10","暂存"), - CREATE("20","生成成功"); + CREATE("20","生成成功(待回款)"), + RETURN("30","已回款(待派单处理)"), + EXECUTION("40","已派单(处理中)"), + SUCCESS("50","已完成(任务已全部完成+回款全部完成+合同已回传)"), + CANCELLATION("60","作废"); private String code; private String text; } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/PayBuinessStatusEnum.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/PayBuinessStatusEnum.java new file mode 100644 index 0000000..9e32c00 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/PayBuinessStatusEnum.java @@ -0,0 +1,16 @@ +package com.pusong.business.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 支付业务类型 + */ +@Getter +@AllArgsConstructor +public enum PayBuinessStatusEnum { + PAY("1","回款"), + RETURN("2","退款"); + 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 59a46a1..417c3b3 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 @@ -12,6 +12,8 @@ import com.pusong.common.mybatis.annotation.DataPermission; import com.pusong.common.mybatis.core.mapper.BaseMapperPlus; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 合同基本信息Mapper接口 * @@ -27,4 +29,10 @@ 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") + }) + List selectContractList(@Param(Constants.WRAPPER) Wrapper queryWrapper); + } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsContractPayMapper.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsContractPayMapper.java new file mode 100644 index 0000000..5368efc --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsContractPayMapper.java @@ -0,0 +1,15 @@ +package com.pusong.business.mapper; + +import com.pusong.business.domain.PsContractPay; +import com.pusong.business.domain.vo.PsContractPayVo; +import com.pusong.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 合同回款记录Mapper接口 + * + * @author wls + * @date 2024-08-01 + */ +public interface PsContractPayMapper extends BaseMapperPlus { + +} 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 1284d0f..2b7bcb4 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 @@ -37,7 +37,7 @@ public interface PsCustomInfoMapper extends BaseMapperPlus selectPageCustomerList( @Param(Constants.WRAPPER) Wrapper queryWrapper); + List selectCustomerList( @Param(Constants.WRAPPER) Wrapper queryWrapper); // // @DataPermission({ // @DataColumn(key = "deptName", value = "u.dept_id"), 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 424fe5f..5e258b7 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 @@ -16,53 +16,61 @@ import java.util.List; */ public interface IPsContractBusinessService { + /** + * 新增合同服务类别 + * + * @param boList 合同服务类别集合 + * @param contractCode 合同编号 + * @return 是否新增成功 + */ + void saveList(List boList,String contractCode); /** * 查询合同服务类别 * * @param id 主键 * @return 合同服务类别 - */ + *//* PsContractBusinessVo queryById(Long id); - /** + *//** * 分页查询合同服务类别列表 * * @param bo 查询条件 * @param pageQuery 分页参数 * @return 合同服务类别分页列表 - */ + *//* TableDataInfo queryPageList(PsContractBusinessBo bo, PageQuery pageQuery); - /** + *//** * 查询符合条件的合同服务类别列表 * * @param bo 查询条件 * @return 合同服务类别列表 - */ + *//* List queryList(PsContractBusinessBo bo); - /** + *//** * 新增合同服务类别 * * @param bo 合同服务类别 * @return 是否新增成功 - */ + *//* Boolean insertByBo(PsContractBusinessBo bo); - /** + *//** * 修改合同服务类别 * * @param bo 合同服务类别 * @return 是否修改成功 - */ + *//* Boolean updateByBo(PsContractBusinessBo bo); - /** + *//** * 校验并批量删除合同服务类别信息 * * @param ids 待删除的主键集合 * @param isValid 是否进行有效性校验 * @return 是否删除成功 - */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + *//* + 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 7bd1081..399d82c 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 @@ -1,6 +1,7 @@ package com.pusong.business.service; import com.pusong.business.domain.PsContractInfo; +import com.pusong.business.domain.bo.PsContractInfoQueryBo; import com.pusong.business.domain.vo.PsContractInfoVo; import com.pusong.business.domain.bo.PsContractInfoBo; import com.pusong.common.mybatis.core.page.TableDataInfo; @@ -34,13 +35,6 @@ public interface IPsContractInfoService { */ PsContractInfoVo queryInfoByCustomId(Long customerId); - /** - * 查询合同基本信息 - * - * @param id 主键 - * @return 合同基本信息 - */ -// PsContractInfoVo queryById(Long id); /** * 分页查询合同基本信息列表 @@ -49,8 +43,22 @@ public interface IPsContractInfoService { * @param pageQuery 分页参数 * @return 合同基本信息分页列表 */ - TableDataInfo queryPageList(PsContractInfoBo bo, PageQuery pageQuery); + TableDataInfo queryPageList(PsContractInfoQueryBo bo, PageQuery pageQuery); + /** + * 根据合同编码查询合同详情信息 + * + * @param contractCode 合同编码 + * @return 合同基本信息 + */ + PsContractInfoVo queryContractByCode(String contractCode); + /** + * 根据合同编码修改合同信息 + * + * @param bo 合同信息 + * @return 合同基本信息 + */ + boolean updateContractByCode(PsContractInfoBo bo); /** * 查询符合条件的合同基本信息列表 * 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 new file mode 100644 index 0000000..d845dee --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractPayService.java @@ -0,0 +1,83 @@ +package com.pusong.business.service; + +import com.pusong.business.domain.vo.PsContractPayVo; +import com.pusong.business.domain.bo.PsContractPayBo; +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-01 + */ +public interface IPsContractPayService { + + /** + * 查询合同回款记录列表 + * + * @param contractCode 合同编码 + * @return 合同回款记录分页列表 + */ + List queryListByContractCode(String contractCode,String business); + + + + + + + + + /* *//** + * 查询合同回款记录 + * + * @param id 主键 + * @return 合同回款记录 + *//* + PsContractPayVo queryById(Long id); + + *//** + * 分页查询合同回款记录列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 合同回款记录分页列表 + *//* + TableDataInfo queryPageList(PsContractPayBo bo, PageQuery pageQuery); + + *//** + * 查询符合条件的合同回款记录列表 + * + * @param bo 查询条件 + * @return 合同回款记录列表 + *//* + List queryList(PsContractPayBo bo); + + *//** + * 新增合同回款记录 + * + * @param bo 合同回款记录 + * @return 是否新增成功 + *//* + Boolean insertByBo(PsContractPayBo bo); + + *//** + * 修改合同回款记录 + * + * @param bo 合同回款记录 + * @return 是否修改成功 + *//* + Boolean updateByBo(PsContractPayBo 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/impl/PsContractBusinessServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractBusinessServiceImpl.java index 507f2fb..1985a41 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 @@ -1,5 +1,8 @@ package com.pusong.business.service.impl; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.pusong.business.domain.PsContractBusinessDetail; +import com.pusong.business.mapper.PsContractBusinessDetailMapper; import com.pusong.common.core.utils.MapstructUtils; import com.pusong.common.core.utils.StringUtils; import com.pusong.common.mybatis.core.page.TableDataInfo; @@ -30,25 +33,59 @@ import java.util.Collection; public class PsContractBusinessServiceImpl implements IPsContractBusinessService { private final PsContractBusinessMapper baseMapper; - + private final PsContractBusinessDetailMapper businessDetailMapper; /** + * 新增合同服务类别 + * + * @param boList 合同服务类别集合 + * @param contractCode 合同编号 + * @return 是否新增成功 + */ + @Override + public void saveList(List boList,String contractCode) { + //1.删除所有服务类型和服务项目 + baseMapper.delete(Wrappers.lambdaQuery() + .eq(PsContractBusiness::getContractCode,contractCode)); + businessDetailMapper.delete(Wrappers.lambdaQuery() + .eq(PsContractBusinessDetail::getContractCode,contractCode)); + //2.插入服务类型 + for (PsContractBusinessBo businessBo : boList) { + PsContractBusiness businessAdd = MapstructUtils.convert(businessBo, PsContractBusiness.class); + businessAdd.setContractCode(contractCode); + baseMapper.insert(businessAdd); + if (CollectionUtils.isEmpty(businessBo.getDetailBos())) { + continue; + } + //6.插入服务项目 + List details = MapstructUtils.convert(businessBo.getDetailBos(), PsContractBusinessDetail.class); + details.forEach(item -> { + item.setContractCode(contractCode); + item.setBusinessId(businessAdd.getId()); + }); + businessDetailMapper.insertBatch(details); + } + } + + + + /* *//** * 查询合同服务类别 * * @param id 主键 * @return 合同服务类别 - */ + *//* @Override public PsContractBusinessVo queryById(Long id){ return baseMapper.selectVoById(id); } - /** + *//** * 分页查询合同服务类别列表 * * @param bo 查询条件 * @param pageQuery 分页参数 * @return 合同服务类别分页列表 - */ + *//* @Override public TableDataInfo queryPageList(PsContractBusinessBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); @@ -56,12 +93,12 @@ public class PsContractBusinessServiceImpl implements IPsContractBusinessService return TableDataInfo.build(result); } - /** + *//** * 查询符合条件的合同服务类别列表 * * @param bo 查询条件 * @return 合同服务类别列表 - */ + *//* @Override public List queryList(PsContractBusinessBo bo) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); @@ -79,12 +116,12 @@ public class PsContractBusinessServiceImpl implements IPsContractBusinessService return lqw; } - /** + *//** * 新增合同服务类别 * * @param bo 合同服务类别 * @return 是否新增成功 - */ + *//* @Override public Boolean insertByBo(PsContractBusinessBo bo) { PsContractBusiness add = MapstructUtils.convert(bo, PsContractBusiness.class); @@ -96,12 +133,12 @@ public class PsContractBusinessServiceImpl implements IPsContractBusinessService return flag; } - /** + *//** * 修改合同服务类别 * * @param bo 合同服务类别 * @return 是否修改成功 - */ + *//* @Override public Boolean updateByBo(PsContractBusinessBo bo) { PsContractBusiness update = MapstructUtils.convert(bo, PsContractBusiness.class); @@ -109,25 +146,25 @@ public class PsContractBusinessServiceImpl implements IPsContractBusinessService return baseMapper.updateById(update) > 0; } - /** + *//** * 保存前的数据校验 - */ + *//* private void validEntityBeforeSave(PsContractBusiness 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/PsContractInfoServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java index 4028092..c462171 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 @@ -6,16 +6,18 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.pusong.business.domain.*; import com.pusong.business.domain.bo.*; -import com.pusong.business.domain.vo.PsCompanyInfoVo; -import com.pusong.business.domain.vo.PsContractBusinessVo; -import com.pusong.business.domain.vo.PsCustomInfoVo; +import com.pusong.business.domain.vo.*; +import com.pusong.business.enums.CommonStatusEnum; import com.pusong.business.enums.ContractStatusEnum; +import com.pusong.business.enums.PayBuinessStatusEnum; import com.pusong.business.enums.TenplateEnum; import com.pusong.business.mapper.PsCompanyInfoMapper; import com.pusong.business.mapper.PsContractBusinessDetailMapper; import com.pusong.business.mapper.PsContractBusinessMapper; import com.pusong.business.service.*; +import com.pusong.common.core.constant.UserConstants; import com.pusong.common.core.exception.ServiceException; +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.doc.util.PdfGenerator; @@ -29,12 +31,13 @@ import com.pusong.common.translation.annotation.Translation; import com.pusong.system.domain.vo.SysOssVo; import com.pusong.system.service.ISysOssService; import io.swagger.v3.core.util.Json; +import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import net.bytebuddy.implementation.bytecode.Throw; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.task.VirtualThreadTaskExecutor; import org.springframework.stereotype.Service; -import com.pusong.business.domain.vo.PsContractInfoVo; import com.pusong.business.mapper.PsContractInfoMapper; import org.springframework.transaction.annotation.Transactional; @@ -56,15 +59,18 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { private final PsContractInfoMapper baseMapper; private final PsContractBusinessMapper businessMapper; - private final PsContractBusinessDetailMapper businessDetailMapper; +// private final PsContractBusinessDetailMapper businessDetailMapper; private final IPsContractBusinessService businessService; private final IPsContractBusinessDetailService businessDetailService; - @Autowired + @Resource private final IPsCompanyInfoService companyInfoService; - @Autowired + @Resource private final IPsCustomInfoService customInfoService; - @Autowired + @Resource private final ISysOssService ossService; + + @Resource + private final IPsContractPayService contractPayService; /** * 生成合同 * @@ -76,11 +82,11 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { @Transactional//开启事务 public Boolean createContract(PsContractInfoBo bo,Integer type) { - //1.插入公司信息 - companyInfoService.saveBo(bo.getCompanyInfoBo()); - //2校验 - PsContractInfo add = validEntity(bo); + //1校验 + PsContractInfo add = validEntity(bo,UserConstants.YES); + //2.插入公司信息 + companyInfoService.saveBo(bo.getCompanyInfoBo()); //3.如果已存在合同,则进行修改,否则新增 if(add == null){ add = new PsContractInfo(); @@ -90,63 +96,12 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { add.setCustomManager(LoginHelper.getUserId());//所属销售经理id } MapstructUtils.convert(bo, add); - BigDecimal sum = bo.getBusinessList().stream().map(PsContractBusinessBo::getBusinessAmount).reduce(BigDecimal.ZERO, BigDecimal::add); add.setContractAmount(sum);//合同总金额 add.setContractStatus(type == 1?ContractStatusEnum.INIT.getCode():ContractStatusEnum.CREATE.getCode());//合同状态 baseMapper.insertOrUpdate(add); - - //4.删除所有服务类型和服务项目 - businessMapper.delete(Wrappers.lambdaQuery() - .eq(PsContractBusiness::getContractCode,add.getContractCode())); - businessDetailMapper.delete(Wrappers.lambdaQuery() - .eq(PsContractBusinessDetail::getContractCode,add.getContractCode())); - - //5.插入服务类型 - for (PsContractBusinessBo businessBo : bo.getBusinessList()) { - PsContractBusiness businessAdd = MapstructUtils.convert(businessBo, PsContractBusiness.class); - businessAdd.setContractCode(add.getContractCode()); - businessMapper.insert(businessAdd); - if (CollectionUtils.isEmpty(businessBo.getDetailBos())) { - continue; - } - //6.插入服务项目 - List details = MapstructUtils.convert(businessBo.getDetailBos(), PsContractBusinessDetail.class); - String code = add.getContractCode(); - details.forEach(item -> { - item.setContractCode(code); - item.setBusinessId(businessAdd.getId()); - }); - businessDetailMapper.insertBatch(details); - } - try{ - //生成合同pdf - PsCustomInfo customer = customInfoService.listById(add.getCustomId()); - Map map = new HashMap<>(); - map.put("contract",add); - map.put("business",bo.getBusinessList()); - map.put("company",bo.getCompanyInfoBo()); - map.put("customer",customer); - map.put("customer",customer); - String path = System.getProperty("user.dir")+"test.pdf"; -// path = "D:/王立帅/临时/output.pdf"; - PdfGenerator.makePdf(map, path,TenplateEnum.CONTRACT.getName()); - File file = new File(path); - //上传到oss服务 - SysOssVo sysOssVo = ossService.upload(new File(path)); - //删除临时的合同文件 - if(file.exists())file.delete(); - //更新合同id - PsContractInfo psContractInfo = new PsContractInfo(); - psContractInfo.setId(add.getId()); - psContractInfo.setPdfId(sysOssVo.getOssId()); - baseMapper.updateById(psContractInfo); - //删除原合同 - if(add.getPdfId() != null)ossService.deleteWithValidByIds(Arrays.asList(add.getPdfId()),false); - }catch (Exception e){ - log.error("生成pdf失败",e); - } - + //4.删除所有服务类型和服务项目,.插入服务类型 + businessService.saveList(bo.getBusinessList(),bo.getContractCode()); return true; } @@ -171,9 +126,8 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { if(vo.getCompanyId() != null){ vo.setPsCompanyInfoVo(companyInfoService.queryById(vo.getCompanyId())); } - //装填服务类型和服务项目信息 - List list = businessMapper.selectBusinessList(vo.getContractCode()); - vo.setBusinessVoList(list); + fillContractInfo(vo); + return vo; } @@ -184,7 +138,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { * @return 合同基本信息 */ public List queryByCode(Long customId,String code,ContractStatusEnum enu){ - if(customId == null || StringUtils.isBlank(code)){ + if(customId == null && StringUtils.isBlank(code)){ return null; } return baseMapper.selectList(Wrappers.lambdaQuery().eq(PsContractInfo::getDelFlag,"0") @@ -193,11 +147,149 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { .eq(enu != null ,PsContractInfo::getContractStatus,enu.getCode())); } + + /** + * 分页查询合同信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 合同基本信息分页列表 + */ + @Override + public TableDataInfo queryPageList(PsContractInfoQueryBo bo, PageQuery pageQuery) { + QueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectPageContractList(pageQuery.build(), lqw); + if(CollectionUtils.isEmpty(result.getRecords())){ + return TableDataInfo.build(result); + } + //装填信息 + result.getRecords().forEach(this::fillContractInfo); + return TableDataInfo.build(result); + } + + /** + * 根据合同编码查询合同详情信息 + * + * @param contractCode 合同编码 + * @return 合同基本信息 + */ + public PsContractInfoVo queryContractByCode(String contractCode){ + PsContractInfoQueryBo bo = new PsContractInfoQueryBo(); + bo.setContractCode(contractCode); + QueryWrapper lqw = buildQueryWrapper(bo); + List result = baseMapper.selectContractList(lqw); + if(CollectionUtils.isEmpty(result)){return null;} + PsContractInfoVo vo = result.get(0); + //装填合同信息 + this.fillContractInfo(vo); + return vo; + } + + /** + * 根据合同编码修改合同信息(开启事务) + * + * @param bo 合同信息 + * @return 合同基本信息 + */ + @Transactional + public boolean updateContractByCode(PsContractInfoBo bo){ + //1获取合同详情 + PsContractInfoVo ps = queryContractByCode(bo.getContractCode()); + //2校验状态 + beforeUpdateValid(bo,ps); + //3.插入公司信息 + companyInfoService.saveBo(bo.getCompanyInfoBo()); + //4.删除所有服务类型和服务项目,.插入服务类型 + businessService.saveList(bo.getBusinessList(),bo.getContractCode()); + //5.修改后操作 + beforeUpdateOperate(bo,ps); + //合同审批 + PsContractInfo info = MapstructUtils.convert(ps, PsContractInfo.class); + //5.生成合同 + makePdf(info,bo); + return true; + } + + /** + * 生成pdf + * @param add + * @param bo + */ + private void makePdf(PsContractInfo add ,PsContractInfoBo bo){ + try{ + //生成合同pdf + PsCustomInfo customer = customInfoService.listById(add.getCustomId()); + Map map = new HashMap<>(); + map.put("contract",add); + map.put("business",bo.getBusinessList()); + map.put("company",bo.getCompanyInfoBo()); + map.put("customer",customer); + String path = System.getProperty("user.dir")+"test.pdf"; +// path = "D:/王立帅/临时/output.pdf"; + PdfGenerator.makePdf(map, path,TenplateEnum.CONTRACT.getName()); + File file = new File(path); + //上传到oss服务 + SysOssVo sysOssVo = ossService.upload(new File(path)); + //删除临时的合同文件 + if(file.exists())file.delete(); + //更新合同id + PsContractInfo psContractInfo = new PsContractInfo(); + psContractInfo.setId(add.getId()); + psContractInfo.setPdfId(sysOssVo.getOssId()); + baseMapper.updateById(psContractInfo); + //删除原合同 + if(add.getPdfId() != null)ossService.deleteWithValidByIds(List.of(add.getPdfId()),false); + }catch (Exception e){ + log.error("生成pdf失败",e); + } + } + + + private QueryWrapper buildQueryWrapper(PsContractInfoQueryBo bo) { + QueryWrapper qw = Wrappers.query(); + //删除标志 + qw.eq( "info.del_flag", 0);//删除标志 + //合同表条件 + qw.eq( StringUtils.isNotBlank(bo.getContractStatus()),"contract_status", bo.getContractStatus()); + //客户表条件 + qw.like( StringUtils.isNotBlank(bo.getCustomName()),"cus.custom_name", bo.getCustomName()); + qw.like( StringUtils.isNotBlank(bo.getCustomMobile()),"cus.custom_mobile", bo.getCustomMobile()); + //公司表条件 + qw.like( StringUtils.isNotBlank(bo.getCompanyName()),"com.company_name", bo.getCompanyName()); + //用户表条件 + qw.like( StringUtils.isNotBlank(bo.getCustomManagerName()),"us.nick_name", bo.getCustomManagerName()); + return qw; + } + private PsContractInfoVo fillContractInfo(PsContractInfoVo vo){ + //装填服务类型和服务项目信息 + List list = businessMapper.selectBusinessList(vo.getContractCode()); + vo.setBusinessVoList(list); + //装填回款记录 + List payList = contractPayService.queryListByContractCode(vo.getContractCode(),null); + vo.setContractPayVoList(payList); + //已付金额 + vo.setPayMoney(payList.stream().filter(item->StringUtils.equals(item.getBusinessType(), PayBuinessStatusEnum.PAY.getCode())) + .map(PsContractPayVo::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add)); + //退款金额 + vo.setReturnMoney(payList.stream().filter(item->StringUtils.equals(item.getBusinessType(), PayBuinessStatusEnum.RETURN.getCode())) + .map(PsContractPayVo::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add)); + //未付金额 + vo.setResidualMoney((vo.getContractAmount() == null ? BigDecimal.ZERO:vo.getContractAmount()).subtract(vo.getPayMoney())); + //付款周期 + if(payList.size() == 1){ + vo.setPeriod(1); + }else{ + //包含最后一天 + vo.setPeriod(DateUtils.calWorkDate(payList.get(0).getPayDate(),payList.get(payList.size()-1).getPayDate()) + 1); + } + return vo; + } /** * 数据校验并返回 + * isAdd:是否为增加/修改校验 * 校验:暂存的合同不止一个,暂存的合同并且不是传入的合同-》报错(暂存的合同只能有一个) */ - private PsContractInfo validEntity( PsContractInfoBo bo){ + private PsContractInfo validEntity( PsContractInfoBo bo,String... isAdd){ PsContractInfo add =null; //插入或修改合同 log.info("校验合同查询入参:{}",bo.getCustomId()); @@ -210,7 +302,9 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { throw new ServiceException("系统异常,请联系管理员"); } add = infos.get(0); - if(!StringUtils.equals(add.getContractCode(), bo.getContractCode())){ + //新增时校验是否有暂存的合同 + if(StringUtils.equals(isAdd.length<1?"":isAdd[0], UserConstants.YES) && + !StringUtils.equals(add.getContractCode(), bo.getContractCode())){ log.error("此合已有暂存的合同,customerid:"+bo.getCustomId()); throw new ServiceException("此合同状态已变更,请刷新页面重新操作"); } @@ -218,46 +312,27 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { return add; } - /** - * 分页查询合同基本信息列表 + * 修改合同前置的校验 + * 1.合同已回传 不可修改 * - * @param bo 查询条件 - * @param pageQuery 分页参数 - * @return 合同基本信息分页列表 */ - @Override - public TableDataInfo queryPageList(PsContractInfoBo bo, PageQuery pageQuery) { - QueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectPageContractList(pageQuery.build(), lqw); - return TableDataInfo.build(result); + private void beforeUpdateValid( PsContractInfoBo updateBo,PsContractInfoVo srcVo){ + if(StringUtils.equals(CommonStatusEnum.N.getCode(),srcVo.getRollBackStatus())){ + throw new ServiceException("合同已回传,不可修改"); + } } + /** + * 修改合同后操作 + * 1.合同已派单:任务重置 + * 2.已回款合同:新的合同金额<已付金额:展示申请退款 + */ + private void beforeUpdateOperate( PsContractInfoBo updateBo,PsContractInfoVo srcVo){ - private QueryWrapper buildQueryWrapper(PsContractInfoBo bo) { - QueryWrapper qw = Wrappers.query(); - //合同表条件 - qw.eq( "info.del_flag", 0);//删除标志 - -// lqw.eq(StringUtils.isNotBlank(bo.getContractCode()), PsContractInfo::getContractCode, bo.getContractCode()); -// lqw.like(StringUtils.isNotBlank(bo.getContractName()), PsContractInfo::getContractName, bo.getContractName()); -// lqw.eq(bo.getCustomId() != null, PsContractInfo::getCustomId, bo.getCustomId()); -// lqw.eq(bo.getCompanyId() != null, PsContractInfo::getCompanyId, bo.getCompanyId()); -// lqw.eq(StringUtils.isNotBlank(bo.getContractMain()), PsContractInfo::getContractMain, bo.getContractMain()); -// lqw.eq(bo.getCustomManager() != null, PsContractInfo::getCustomManager, bo.getCustomManager()); -// lqw.eq(bo.getContractAmount() != null, PsContractInfo::getContractAmount, bo.getContractAmount()); -// lqw.eq(StringUtils.isNotBlank(bo.getContractStatus()), PsContractInfo::getContractStatus, bo.getContractStatus()); -// lqw.between(params.get("beginApplyDate") != null && params.get("endApplyDate") != null, -// PsContractInfo::getApplyDate ,params.get("beginApplyDate"), params.get("endApplyDate")); -// lqw.eq(bo.getTimeLimit() != null, PsContractInfo::getTimeLimit, bo.getTimeLimit()); -// lqw.eq(StringUtils.isNotBlank(bo.getCustomScene()), PsContractInfo::getCustomScene, bo.getCustomScene()); -// lqw.eq(StringUtils.isNotBlank(bo.getIsProxy()), PsContractInfo::getIsProxy, bo.getIsProxy()); -// lqw.eq(StringUtils.isNotBlank(bo.getSignDesc()), PsContractInfo::getSignDesc, bo.getSignDesc()); -// lqw.eq(bo.getDelFlage() != null, PsContractInfo::getDelFlage, bo.getDelFlage()); - return qw; + if(StringUtils.equals(CommonStatusEnum.N.getCode(),srcVo.getRollBackStatus())){ + throw new ServiceException("合同已回传,不可修改"); + } } - - - /** * 查询合同基本信息 * 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 new file mode 100644 index 0000000..5df18b1 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractPayServiceImpl.java @@ -0,0 +1,154 @@ +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.PsContractPayBo; +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 java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 合同回款记录Service业务层处理 + * + * @author wls + * @date 2024-08-01 + */ +@RequiredArgsConstructor +@Service +public class PsContractPayServiceImpl implements IPsContractPayService { + + private final PsContractPayMapper baseMapper; + + + /** + * 查询合同回款记录列表 + * + * @param contractCode 合同编码 + * @return + */ + public List queryListByContractCode(String contractCode,String business){ + if(StringUtils.isBlank(contractCode)){return new ArrayList<>();} + List list = baseMapper.selectVoList(Wrappers.lambdaQuery(). + eq(PsContractPay::getContractCode, contractCode).eq(PsContractPay::getDelFlag,0) + .eq(StringUtils.isNotBlank(business),PsContractPay::getBusinessType,business) + .orderByAsc(PsContractPay::getPayDate)); + return list == null?new ArrayList<>():list; + } + + + /* *//** + * 查询合同回款记录 + * + * @param id 主键 + * @return 合同回款记录 + *//* + @Override + public PsContractPayVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + *//** + * 分页查询合同回款记录列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 合同回款记录分页列表 + *//* + @Override + public TableDataInfo queryPageList(PsContractPayBo 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(PsContractPayBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(PsContractPayBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getContractId() != null, PsContractPay::getContractId, bo.getContractId()); + lqw.eq(bo.getMoney() != null, PsContractPay::getMoney, bo.getMoney()); + lqw.eq(bo.getPayDate() != null, PsContractPay::getPayDate, bo.getPayDate()); + lqw.eq(StringUtils.isNotBlank(bo.getPayType()), PsContractPay::getPayType, bo.getPayType()); + lqw.eq(StringUtils.isNotBlank(bo.getPayMode()), PsContractPay::getPayMode, bo.getPayMode()); + lqw.eq(StringUtils.isNotBlank(bo.getGathMain()), PsContractPay::getGathMain, bo.getGathMain()); + lqw.eq(StringUtils.isNotBlank(bo.getPayCertification()), PsContractPay::getPayCertification, bo.getPayCertification()); + lqw.eq(StringUtils.isNotBlank(bo.getPayDesc()), PsContractPay::getPayDesc, bo.getPayDesc()); + return lqw; + } + + *//** + * 新增合同回款记录 + * + * @param bo 合同回款记录 + * @return 是否新增成功 + *//* + @Override + public Boolean insertByBo(PsContractPayBo bo) { + PsContractPay add = MapstructUtils.convert(bo, PsContractPay.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + *//** + * 修改合同回款记录 + * + * @param bo 合同回款记录 + * @return 是否修改成功 + *//* + @Override + public Boolean updateByBo(PsContractPayBo bo) { + PsContractPay update = MapstructUtils.convert(bo, PsContractPay.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + *//** + * 保存前的数据校验 + *//* + private void validEntityBeforeSave(PsContractPay 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/PsCustomInfoServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java index 53a2cc2..45e2257 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 @@ -167,13 +167,14 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService { @Override public List queryList(PsCustomInfoBo bo) { Wrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectPageCustomerList(lqw); + return baseMapper.selectCustomerList(lqw); } private Wrapper buildQueryWrapper(PsCustomInfoBo bo) { QueryWrapper qw = Wrappers.query(); //客户信息表条件 qw.eq( "info.del_flag", 0);//删除标志 + qw.like(bo.getId() != null, "info.id", bo.getId());//id qw.like(StringUtils.isNotBlank(bo.getCustomName()), "info.custom_name", bo.getCustomName());//姓名 qw.eq(StringUtils.isNotBlank(bo.getCustomSource()), "info.custom_source", bo.getCustomSource());//来源 qw.eq(StringUtils.isNotBlank(bo.getCustomLevel()), "info.custom_level", bo.getCustomLevel());//客户级别 diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractBusinessMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractBusinessMapper.xml index 72605f9..41fb425 100644 --- a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractBusinessMapper.xml +++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractBusinessMapper.xml @@ -5,10 +5,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - + + + + + @@ -19,7 +20,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" detail.business_project_label detail_business_project_label, detail.amount detail_amount, detail.amount_desc detail_amount_desc, - detail.extent_info detail_extent_info, + detail.extent_info detail_extent_info from ps_contract_business bus left join ps_contract_business_detail detail on bus.id = detail.business_id where bus.del_flag = 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 07bf92a..bd4c7da 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 @@ -3,5 +3,40 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + + + + + + select info.*, + com.company_name com_company_name, + com.company_adress com_company_adress, + com.company_account_bank com_company_account_bank, + com.legal_person_name com_legal_person_name, + com.legal_person_idcard com_legal_person_idcard, + com.legal_person_phone com_legal_person_phone, + cus.custom_name cus_custom_name , + cus.custom_mobile cus_custom_mobile, + us.nick_name custom_manager_name + from ps_contract_info info + left join ps_company_info com on info.company_id = com.id + left join ps_custom_info cus on info.custom_id = cus.id + left join sys_user us on info.custom_manager = us.user_id + + + + + + + diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractPayMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractPayMapper.xml new file mode 100644 index 0000000..c2bca39 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractPayMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsCustomInfoMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsCustomInfoMapper.xml index 8840d2a..4a47e95 100644 --- a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsCustomInfoMapper.xml +++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsCustomInfoMapper.xml @@ -5,14 +5,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + + ${ew.getCustomSqlSegment} + + +