修改合同
This commit is contained in:
parent
9403cf7c9c
commit
0017d23164
@ -7,12 +7,10 @@ import org.apache.commons.lang3.time.DateFormatUtils;
|
|||||||
import java.lang.management.ManagementFactory;
|
import java.lang.management.ManagementFactory;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.time.LocalDate;
|
import java.time.*;
|
||||||
import java.time.LocalDateTime;
|
import java.util.ArrayList;
|
||||||
import java.time.LocalTime;
|
|
||||||
import java.time.ZoneId;
|
|
||||||
import java.time.ZonedDateTime;
|
|
||||||
import java.util.Date;
|
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) {
|
public static int differentDaysByMillisecond(Date date1, Date date2) {
|
||||||
return Math.abs((int) ((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24)));
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算两个时间差
|
* 计算两个时间差
|
||||||
|
@ -2,6 +2,7 @@ package com.pusong.business.controller;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.pusong.business.domain.bo.PsContractInfoQueryBo;
|
||||||
import com.pusong.common.core.validate.QueryGroup;
|
import com.pusong.common.core.validate.QueryGroup;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
@ -68,7 +69,7 @@ public class PsContractInfoController extends BaseController {
|
|||||||
@Log(title = "根据客户id查询暂存的合同详情信息", businessType = BusinessType.INSERT)
|
@Log(title = "根据客户id查询暂存的合同详情信息", businessType = BusinessType.INSERT)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@GetMapping("/queryContract")
|
@GetMapping("/queryContract")
|
||||||
public R<PsContractInfoVo> queryContract(@NotEmpty Long customerId) {
|
public R<PsContractInfoVo> queryContract(@NotNull Long customerId) {
|
||||||
return R.ok(psContractInfoService.queryInfoByCustomId(customerId));
|
return R.ok(psContractInfoService.queryInfoByCustomId(customerId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -77,9 +78,31 @@ public class PsContractInfoController extends BaseController {
|
|||||||
*/
|
*/
|
||||||
@SaCheckPermission("business:contractInfo:list")
|
@SaCheckPermission("business:contractInfo:list")
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public TableDataInfo<PsContractInfoVo> list(PsContractInfoBo bo, PageQuery pageQuery) {
|
public TableDataInfo<PsContractInfoVo> list(PsContractInfoQueryBo bo, PageQuery pageQuery) {
|
||||||
return psContractInfoService.queryPageList(bo, pageQuery);
|
return psContractInfoService.queryPageList(bo, pageQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据合同编码查询合同信息
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("business:contractInfo:add")
|
||||||
|
@Log(title = "根据合同编码查询合同信息", businessType = BusinessType.INSERT)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@GetMapping("/queryContractByCode")
|
||||||
|
public R<PsContractInfoVo> queryContractByCode(@NotBlank String contractCode) {
|
||||||
|
return R.ok(psContractInfoService.queryContractByCode(contractCode));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改合同
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("business:contractList:edit")
|
||||||
|
@Log(title = "根据合同编码查询合同信息", businessType = BusinessType.INSERT)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PutMapping("/edit")
|
||||||
|
public R<Boolean> updateContractByCode(@Validated(EditGroup.class) @RequestBody PsContractInfoBo bo) {
|
||||||
|
return R.ok(psContractInfoService.updateContractByCode(bo));
|
||||||
|
}
|
||||||
//
|
//
|
||||||
// /**
|
// /**
|
||||||
// * 获取合同基本信息详细信息
|
// * 获取合同基本信息详细信息
|
||||||
|
@ -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<PsContractPayVo> 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<PsContractPayVo> list = psContractPayService.queryList(bo);
|
||||||
|
ExcelUtil.exportExcel(list, "合同回款记录", PsContractPayVo.class, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
*//**
|
||||||
|
* 获取合同回款记录详细信息
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
*//*
|
||||||
|
@SaCheckPermission("business:contractPay:query")
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public R<PsContractPayVo> 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<Void> 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<Void> 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<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||||
|
@PathVariable Long[] ids) {
|
||||||
|
return toAjax(psContractPayService.deleteWithValidByIds(List.of(ids), true));
|
||||||
|
}*/
|
||||||
|
}
|
@ -27,10 +27,6 @@ public class PsCompanyInfo extends TenantEntity {
|
|||||||
*/
|
*/
|
||||||
@TableId(value = "id")
|
@TableId(value = "id")
|
||||||
private Long id;
|
private Long id;
|
||||||
/**
|
|
||||||
* 创建的合同id
|
|
||||||
*/
|
|
||||||
private String contractCode;
|
|
||||||
/**
|
/**
|
||||||
* 客户id
|
* 客户id
|
||||||
*/
|
*/
|
||||||
|
@ -106,6 +106,8 @@ public class PsContractInfo extends TenantEntity {
|
|||||||
* 2逻辑删除 0 默认有效
|
* 2逻辑删除 0 默认有效
|
||||||
*/
|
*/
|
||||||
private Long delFlag;
|
private Long delFlag;
|
||||||
|
/**
|
||||||
|
* 合同回传状态0未回传1已回传
|
||||||
|
*/
|
||||||
|
private String rollBackStatus;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -20,7 +20,7 @@ import java.math.BigDecimal;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode
|
@EqualsAndHashCode
|
||||||
@AutoMapper(target = PsCompanyInfo.class, reverseConvertGenerate = false)
|
@AutoMapper(target = PsCompanyInfo.class)
|
||||||
public class PsCompanyInfoBo {
|
public class PsCompanyInfoBo {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -22,7 +22,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode
|
@EqualsAndHashCode
|
||||||
@AutoMapper(target = PsContractBusiness.class, reverseConvertGenerate = false)
|
@AutoMapper(target = PsContractBusiness.class)
|
||||||
public class PsContractBusinessBo {
|
public class PsContractBusinessBo {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -18,7 +18,7 @@ import java.math.BigDecimal;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@AutoMapper(target = PsContractBusinessDetail.class, reverseConvertGenerate = false)
|
@AutoMapper(target = PsContractBusinessDetail.class)
|
||||||
public class PsContractBusinessDetailBo extends BaseEntity {
|
public class PsContractBusinessDetailBo extends BaseEntity {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -23,7 +23,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode
|
@EqualsAndHashCode
|
||||||
@AutoMapper(target = PsContractInfo.class, reverseConvertGenerate = false)
|
@AutoMapper(target = PsContractInfo.class)
|
||||||
public class PsContractInfoBo {
|
public class PsContractInfoBo {
|
||||||
|
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -19,7 +19,7 @@ import java.math.BigDecimal;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@AutoMapper(target = PsCustomCallback.class, reverseConvertGenerate = false)
|
@AutoMapper(target = PsCustomCallback.class)
|
||||||
public class PsCustomCallbackBo extends BaseEntity {
|
public class PsCustomCallbackBo extends BaseEntity {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -20,7 +20,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode
|
@EqualsAndHashCode
|
||||||
@AutoMapper(target = PsCustomInfo.class, reverseConvertGenerate = false)
|
@AutoMapper(target = PsCustomInfo.class)
|
||||||
public class PsCustomInfoBo {
|
public class PsCustomInfoBo {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -23,7 +23,7 @@ import java.math.BigDecimal;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@AutoMapper(target = PsCustomPrice.class, reverseConvertGenerate = false)
|
@AutoMapper(target = PsCustomPrice.class)
|
||||||
public class PsCustomPriceBo extends BaseEntity {
|
public class PsCustomPriceBo extends BaseEntity {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -31,7 +31,10 @@ public class PsContractBusinessDetailVo implements Serializable {
|
|||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
private Long id;
|
||||||
/**
|
/**
|
||||||
* 合同编号
|
* 合同编号
|
||||||
*/
|
*/
|
||||||
|
@ -2,6 +2,7 @@ package com.pusong.business.domain.vo;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.pusong.business.domain.PsContractBusiness;
|
import com.pusong.business.domain.PsContractBusiness;
|
||||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
@ -32,7 +33,10 @@ public class PsContractBusinessVo implements Serializable {
|
|||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
private Long id;
|
||||||
/**
|
/**
|
||||||
* 合同编号
|
* 合同编号
|
||||||
*/
|
*/
|
||||||
|
@ -34,7 +34,6 @@ public class PsContractInfoVo implements Serializable {
|
|||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 合同编码
|
* 合同编码
|
||||||
*/
|
*/
|
||||||
@ -74,6 +73,11 @@ public class PsContractInfoVo implements Serializable {
|
|||||||
* 合同状态
|
* 合同状态
|
||||||
*/
|
*/
|
||||||
private String contractStatus;
|
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 String isProxy;
|
||||||
|
/**
|
||||||
|
* 所属客户经理
|
||||||
|
*/
|
||||||
|
private Long customManager;
|
||||||
|
/**
|
||||||
|
* 所属客户经理姓名
|
||||||
|
*/
|
||||||
|
private String customManagerName;
|
||||||
/**
|
/**
|
||||||
* 签约备注
|
* 签约备注
|
||||||
*/
|
*/
|
||||||
@ -108,14 +119,47 @@ public class PsContractInfoVo implements Serializable {
|
|||||||
* 文件系统ossId
|
* 文件系统ossId
|
||||||
*/
|
*/
|
||||||
private Long pdfId;
|
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 PsCompanyInfoVo psCompanyInfoVo;
|
||||||
|
/**
|
||||||
|
* 客户信息
|
||||||
|
*/
|
||||||
|
private PsCustomInfoVo psCustomInfoVo;
|
||||||
/**
|
/**
|
||||||
* 服务类别信息
|
* 服务类别信息
|
||||||
*/
|
*/
|
||||||
private List<PsContractBusinessVo> businessVoList;
|
private List<PsContractBusinessVo> businessVoList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 汇款记录信息信息
|
||||||
|
*/
|
||||||
|
private List<PsContractPayVo> contractPayVoList;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
@ -7,7 +7,11 @@ import lombok.Getter;
|
|||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public enum ContractStatusEnum {
|
public enum ContractStatusEnum {
|
||||||
INIT("10","暂存"),
|
INIT("10","暂存"),
|
||||||
CREATE("20","生成成功");
|
CREATE("20","生成成功(待回款)"),
|
||||||
|
RETURN("30","已回款(待派单处理)"),
|
||||||
|
EXECUTION("40","已派单(处理中)"),
|
||||||
|
SUCCESS("50","已完成(任务已全部完成+回款全部完成+合同已回传)"),
|
||||||
|
CANCELLATION("60","作废");
|
||||||
private String code;
|
private String code;
|
||||||
private String text;
|
private String text;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
}
|
@ -12,6 +12,8 @@ import com.pusong.common.mybatis.annotation.DataPermission;
|
|||||||
import com.pusong.common.mybatis.core.mapper.BaseMapperPlus;
|
import com.pusong.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 合同基本信息Mapper接口
|
* 合同基本信息Mapper接口
|
||||||
*
|
*
|
||||||
@ -27,4 +29,10 @@ public interface PsContractInfoMapper extends BaseMapperPlus<PsContractInfo, PsC
|
|||||||
})
|
})
|
||||||
Page<PsContractInfoVo> selectPageContractList(@Param("page") Page<PsContractInfo> page, @Param(Constants.WRAPPER) Wrapper<PsContractInfo> queryWrapper);
|
Page<PsContractInfoVo> selectPageContractList(@Param("page") Page<PsContractInfo> page, @Param(Constants.WRAPPER) Wrapper<PsContractInfo> queryWrapper);
|
||||||
|
|
||||||
|
@DataPermission({
|
||||||
|
@DataColumn(key = "deptName", value = "create_dept"),
|
||||||
|
@DataColumn(key = "userName", value = "create_by")
|
||||||
|
})
|
||||||
|
List<PsContractInfoVo> selectContractList(@Param(Constants.WRAPPER) Wrapper<PsContractInfo> queryWrapper);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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<PsContractPay, PsContractPayVo> {
|
||||||
|
|
||||||
|
}
|
@ -37,7 +37,7 @@ public interface PsCustomInfoMapper extends BaseMapperPlus<PsCustomInfo, PsCusto
|
|||||||
@DataColumn(key = "deptName", value = "create_dept"),
|
@DataColumn(key = "deptName", value = "create_dept"),
|
||||||
@DataColumn(key = "userName", value = "create_by")
|
@DataColumn(key = "userName", value = "create_by")
|
||||||
})
|
})
|
||||||
List<PsCustomInfoVo> selectPageCustomerList( @Param(Constants.WRAPPER) Wrapper<PsCustomInfo> queryWrapper);
|
List<PsCustomInfoVo> selectCustomerList( @Param(Constants.WRAPPER) Wrapper<PsCustomInfo> queryWrapper);
|
||||||
//
|
//
|
||||||
// @DataPermission({
|
// @DataPermission({
|
||||||
// @DataColumn(key = "deptName", value = "u.dept_id"),
|
// @DataColumn(key = "deptName", value = "u.dept_id"),
|
||||||
|
@ -16,53 +16,61 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public interface IPsContractBusinessService {
|
public interface IPsContractBusinessService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增合同服务类别
|
||||||
|
*
|
||||||
|
* @param boList 合同服务类别集合
|
||||||
|
* @param contractCode 合同编号
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
void saveList(List<PsContractBusinessBo> boList,String contractCode);
|
||||||
/**
|
/**
|
||||||
* 查询合同服务类别
|
* 查询合同服务类别
|
||||||
*
|
*
|
||||||
* @param id 主键
|
* @param id 主键
|
||||||
* @return 合同服务类别
|
* @return 合同服务类别
|
||||||
*/
|
*//*
|
||||||
PsContractBusinessVo queryById(Long id);
|
PsContractBusinessVo queryById(Long id);
|
||||||
|
|
||||||
/**
|
*//**
|
||||||
* 分页查询合同服务类别列表
|
* 分页查询合同服务类别列表
|
||||||
*
|
*
|
||||||
* @param bo 查询条件
|
* @param bo 查询条件
|
||||||
* @param pageQuery 分页参数
|
* @param pageQuery 分页参数
|
||||||
* @return 合同服务类别分页列表
|
* @return 合同服务类别分页列表
|
||||||
*/
|
*//*
|
||||||
TableDataInfo<PsContractBusinessVo> queryPageList(PsContractBusinessBo bo, PageQuery pageQuery);
|
TableDataInfo<PsContractBusinessVo> queryPageList(PsContractBusinessBo bo, PageQuery pageQuery);
|
||||||
|
|
||||||
/**
|
*//**
|
||||||
* 查询符合条件的合同服务类别列表
|
* 查询符合条件的合同服务类别列表
|
||||||
*
|
*
|
||||||
* @param bo 查询条件
|
* @param bo 查询条件
|
||||||
* @return 合同服务类别列表
|
* @return 合同服务类别列表
|
||||||
*/
|
*//*
|
||||||
List<PsContractBusinessVo> queryList(PsContractBusinessBo bo);
|
List<PsContractBusinessVo> queryList(PsContractBusinessBo bo);
|
||||||
|
|
||||||
/**
|
*//**
|
||||||
* 新增合同服务类别
|
* 新增合同服务类别
|
||||||
*
|
*
|
||||||
* @param bo 合同服务类别
|
* @param bo 合同服务类别
|
||||||
* @return 是否新增成功
|
* @return 是否新增成功
|
||||||
*/
|
*//*
|
||||||
Boolean insertByBo(PsContractBusinessBo bo);
|
Boolean insertByBo(PsContractBusinessBo bo);
|
||||||
|
|
||||||
/**
|
*//**
|
||||||
* 修改合同服务类别
|
* 修改合同服务类别
|
||||||
*
|
*
|
||||||
* @param bo 合同服务类别
|
* @param bo 合同服务类别
|
||||||
* @return 是否修改成功
|
* @return 是否修改成功
|
||||||
*/
|
*//*
|
||||||
Boolean updateByBo(PsContractBusinessBo bo);
|
Boolean updateByBo(PsContractBusinessBo bo);
|
||||||
|
|
||||||
/**
|
*//**
|
||||||
* 校验并批量删除合同服务类别信息
|
* 校验并批量删除合同服务类别信息
|
||||||
*
|
*
|
||||||
* @param ids 待删除的主键集合
|
* @param ids 待删除的主键集合
|
||||||
* @param isValid 是否进行有效性校验
|
* @param isValid 是否进行有效性校验
|
||||||
* @return 是否删除成功
|
* @return 是否删除成功
|
||||||
*/
|
*//*
|
||||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);*/
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.pusong.business.service;
|
package com.pusong.business.service;
|
||||||
|
|
||||||
import com.pusong.business.domain.PsContractInfo;
|
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.vo.PsContractInfoVo;
|
||||||
import com.pusong.business.domain.bo.PsContractInfoBo;
|
import com.pusong.business.domain.bo.PsContractInfoBo;
|
||||||
import com.pusong.common.mybatis.core.page.TableDataInfo;
|
import com.pusong.common.mybatis.core.page.TableDataInfo;
|
||||||
@ -34,13 +35,6 @@ public interface IPsContractInfoService {
|
|||||||
*/
|
*/
|
||||||
PsContractInfoVo queryInfoByCustomId(Long customerId);
|
PsContractInfoVo queryInfoByCustomId(Long customerId);
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询合同基本信息
|
|
||||||
*
|
|
||||||
* @param id 主键
|
|
||||||
* @return 合同基本信息
|
|
||||||
*/
|
|
||||||
// PsContractInfoVo queryById(Long id);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询合同基本信息列表
|
* 分页查询合同基本信息列表
|
||||||
@ -49,8 +43,22 @@ public interface IPsContractInfoService {
|
|||||||
* @param pageQuery 分页参数
|
* @param pageQuery 分页参数
|
||||||
* @return 合同基本信息分页列表
|
* @return 合同基本信息分页列表
|
||||||
*/
|
*/
|
||||||
TableDataInfo<PsContractInfoVo> queryPageList(PsContractInfoBo bo, PageQuery pageQuery);
|
TableDataInfo<PsContractInfoVo> queryPageList(PsContractInfoQueryBo bo, PageQuery pageQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据合同编码查询合同详情信息
|
||||||
|
*
|
||||||
|
* @param contractCode 合同编码
|
||||||
|
* @return 合同基本信息
|
||||||
|
*/
|
||||||
|
PsContractInfoVo queryContractByCode(String contractCode);
|
||||||
|
/**
|
||||||
|
* 根据合同编码修改合同信息
|
||||||
|
*
|
||||||
|
* @param bo 合同信息
|
||||||
|
* @return 合同基本信息
|
||||||
|
*/
|
||||||
|
boolean updateContractByCode(PsContractInfoBo bo);
|
||||||
/**
|
/**
|
||||||
* 查询符合条件的合同基本信息列表
|
* 查询符合条件的合同基本信息列表
|
||||||
*
|
*
|
||||||
|
@ -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<PsContractPayVo> queryListByContractCode(String contractCode,String business);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* *//**
|
||||||
|
* 查询合同回款记录
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
* @return 合同回款记录
|
||||||
|
*//*
|
||||||
|
PsContractPayVo queryById(Long id);
|
||||||
|
|
||||||
|
*//**
|
||||||
|
* 分页查询合同回款记录列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return 合同回款记录分页列表
|
||||||
|
*//*
|
||||||
|
TableDataInfo<PsContractPayVo> queryPageList(PsContractPayBo bo, PageQuery pageQuery);
|
||||||
|
|
||||||
|
*//**
|
||||||
|
* 查询符合条件的合同回款记录列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @return 合同回款记录列表
|
||||||
|
*//*
|
||||||
|
List<PsContractPayVo> 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<Long> ids, Boolean isValid);*/
|
||||||
|
}
|
@ -1,5 +1,8 @@
|
|||||||
package com.pusong.business.service.impl;
|
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.MapstructUtils;
|
||||||
import com.pusong.common.core.utils.StringUtils;
|
import com.pusong.common.core.utils.StringUtils;
|
||||||
import com.pusong.common.mybatis.core.page.TableDataInfo;
|
import com.pusong.common.mybatis.core.page.TableDataInfo;
|
||||||
@ -30,25 +33,59 @@ import java.util.Collection;
|
|||||||
public class PsContractBusinessServiceImpl implements IPsContractBusinessService {
|
public class PsContractBusinessServiceImpl implements IPsContractBusinessService {
|
||||||
|
|
||||||
private final PsContractBusinessMapper baseMapper;
|
private final PsContractBusinessMapper baseMapper;
|
||||||
|
private final PsContractBusinessDetailMapper businessDetailMapper;
|
||||||
/**
|
/**
|
||||||
|
* 新增合同服务类别
|
||||||
|
*
|
||||||
|
* @param boList 合同服务类别集合
|
||||||
|
* @param contractCode 合同编号
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void saveList(List<PsContractBusinessBo> boList,String contractCode) {
|
||||||
|
//1.删除所有服务类型和服务项目
|
||||||
|
baseMapper.delete(Wrappers.<PsContractBusiness>lambdaQuery()
|
||||||
|
.eq(PsContractBusiness::getContractCode,contractCode));
|
||||||
|
businessDetailMapper.delete(Wrappers.<PsContractBusinessDetail>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<PsContractBusinessDetail> details = MapstructUtils.convert(businessBo.getDetailBos(), PsContractBusinessDetail.class);
|
||||||
|
details.forEach(item -> {
|
||||||
|
item.setContractCode(contractCode);
|
||||||
|
item.setBusinessId(businessAdd.getId());
|
||||||
|
});
|
||||||
|
businessDetailMapper.insertBatch(details);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* *//**
|
||||||
* 查询合同服务类别
|
* 查询合同服务类别
|
||||||
*
|
*
|
||||||
* @param id 主键
|
* @param id 主键
|
||||||
* @return 合同服务类别
|
* @return 合同服务类别
|
||||||
*/
|
*//*
|
||||||
@Override
|
@Override
|
||||||
public PsContractBusinessVo queryById(Long id){
|
public PsContractBusinessVo queryById(Long id){
|
||||||
return baseMapper.selectVoById(id);
|
return baseMapper.selectVoById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
*//**
|
||||||
* 分页查询合同服务类别列表
|
* 分页查询合同服务类别列表
|
||||||
*
|
*
|
||||||
* @param bo 查询条件
|
* @param bo 查询条件
|
||||||
* @param pageQuery 分页参数
|
* @param pageQuery 分页参数
|
||||||
* @return 合同服务类别分页列表
|
* @return 合同服务类别分页列表
|
||||||
*/
|
*//*
|
||||||
@Override
|
@Override
|
||||||
public TableDataInfo<PsContractBusinessVo> queryPageList(PsContractBusinessBo bo, PageQuery pageQuery) {
|
public TableDataInfo<PsContractBusinessVo> queryPageList(PsContractBusinessBo bo, PageQuery pageQuery) {
|
||||||
LambdaQueryWrapper<PsContractBusiness> lqw = buildQueryWrapper(bo);
|
LambdaQueryWrapper<PsContractBusiness> lqw = buildQueryWrapper(bo);
|
||||||
@ -56,12 +93,12 @@ public class PsContractBusinessServiceImpl implements IPsContractBusinessService
|
|||||||
return TableDataInfo.build(result);
|
return TableDataInfo.build(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
*//**
|
||||||
* 查询符合条件的合同服务类别列表
|
* 查询符合条件的合同服务类别列表
|
||||||
*
|
*
|
||||||
* @param bo 查询条件
|
* @param bo 查询条件
|
||||||
* @return 合同服务类别列表
|
* @return 合同服务类别列表
|
||||||
*/
|
*//*
|
||||||
@Override
|
@Override
|
||||||
public List<PsContractBusinessVo> queryList(PsContractBusinessBo bo) {
|
public List<PsContractBusinessVo> queryList(PsContractBusinessBo bo) {
|
||||||
LambdaQueryWrapper<PsContractBusiness> lqw = buildQueryWrapper(bo);
|
LambdaQueryWrapper<PsContractBusiness> lqw = buildQueryWrapper(bo);
|
||||||
@ -79,12 +116,12 @@ public class PsContractBusinessServiceImpl implements IPsContractBusinessService
|
|||||||
return lqw;
|
return lqw;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
*//**
|
||||||
* 新增合同服务类别
|
* 新增合同服务类别
|
||||||
*
|
*
|
||||||
* @param bo 合同服务类别
|
* @param bo 合同服务类别
|
||||||
* @return 是否新增成功
|
* @return 是否新增成功
|
||||||
*/
|
*//*
|
||||||
@Override
|
@Override
|
||||||
public Boolean insertByBo(PsContractBusinessBo bo) {
|
public Boolean insertByBo(PsContractBusinessBo bo) {
|
||||||
PsContractBusiness add = MapstructUtils.convert(bo, PsContractBusiness.class);
|
PsContractBusiness add = MapstructUtils.convert(bo, PsContractBusiness.class);
|
||||||
@ -96,12 +133,12 @@ public class PsContractBusinessServiceImpl implements IPsContractBusinessService
|
|||||||
return flag;
|
return flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
*//**
|
||||||
* 修改合同服务类别
|
* 修改合同服务类别
|
||||||
*
|
*
|
||||||
* @param bo 合同服务类别
|
* @param bo 合同服务类别
|
||||||
* @return 是否修改成功
|
* @return 是否修改成功
|
||||||
*/
|
*//*
|
||||||
@Override
|
@Override
|
||||||
public Boolean updateByBo(PsContractBusinessBo bo) {
|
public Boolean updateByBo(PsContractBusinessBo bo) {
|
||||||
PsContractBusiness update = MapstructUtils.convert(bo, PsContractBusiness.class);
|
PsContractBusiness update = MapstructUtils.convert(bo, PsContractBusiness.class);
|
||||||
@ -109,25 +146,25 @@ public class PsContractBusinessServiceImpl implements IPsContractBusinessService
|
|||||||
return baseMapper.updateById(update) > 0;
|
return baseMapper.updateById(update) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
*//**
|
||||||
* 保存前的数据校验
|
* 保存前的数据校验
|
||||||
*/
|
*//*
|
||||||
private void validEntityBeforeSave(PsContractBusiness entity){
|
private void validEntityBeforeSave(PsContractBusiness entity){
|
||||||
//TODO 做一些数据校验,如唯一约束
|
//TODO 做一些数据校验,如唯一约束
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
*//**
|
||||||
* 校验并批量删除合同服务类别信息
|
* 校验并批量删除合同服务类别信息
|
||||||
*
|
*
|
||||||
* @param ids 待删除的主键集合
|
* @param ids 待删除的主键集合
|
||||||
* @param isValid 是否进行有效性校验
|
* @param isValid 是否进行有效性校验
|
||||||
* @return 是否删除成功
|
* @return 是否删除成功
|
||||||
*/
|
*//*
|
||||||
@Override
|
@Override
|
||||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||||
if(isValid){
|
if(isValid){
|
||||||
//TODO 做一些业务上的校验,判断是否需要校验
|
//TODO 做一些业务上的校验,判断是否需要校验
|
||||||
}
|
}
|
||||||
return baseMapper.deleteBatchIds(ids) > 0;
|
return baseMapper.deleteBatchIds(ids) > 0;
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
@ -6,16 +6,18 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||||
import com.pusong.business.domain.*;
|
import com.pusong.business.domain.*;
|
||||||
import com.pusong.business.domain.bo.*;
|
import com.pusong.business.domain.bo.*;
|
||||||
import com.pusong.business.domain.vo.PsCompanyInfoVo;
|
import com.pusong.business.domain.vo.*;
|
||||||
import com.pusong.business.domain.vo.PsContractBusinessVo;
|
import com.pusong.business.enums.CommonStatusEnum;
|
||||||
import com.pusong.business.domain.vo.PsCustomInfoVo;
|
|
||||||
import com.pusong.business.enums.ContractStatusEnum;
|
import com.pusong.business.enums.ContractStatusEnum;
|
||||||
|
import com.pusong.business.enums.PayBuinessStatusEnum;
|
||||||
import com.pusong.business.enums.TenplateEnum;
|
import com.pusong.business.enums.TenplateEnum;
|
||||||
import com.pusong.business.mapper.PsCompanyInfoMapper;
|
import com.pusong.business.mapper.PsCompanyInfoMapper;
|
||||||
import com.pusong.business.mapper.PsContractBusinessDetailMapper;
|
import com.pusong.business.mapper.PsContractBusinessDetailMapper;
|
||||||
import com.pusong.business.mapper.PsContractBusinessMapper;
|
import com.pusong.business.mapper.PsContractBusinessMapper;
|
||||||
import com.pusong.business.service.*;
|
import com.pusong.business.service.*;
|
||||||
|
import com.pusong.common.core.constant.UserConstants;
|
||||||
import com.pusong.common.core.exception.ServiceException;
|
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.MapstructUtils;
|
||||||
import com.pusong.common.core.utils.StringUtils;
|
import com.pusong.common.core.utils.StringUtils;
|
||||||
import com.pusong.common.doc.util.PdfGenerator;
|
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.domain.vo.SysOssVo;
|
||||||
import com.pusong.system.service.ISysOssService;
|
import com.pusong.system.service.ISysOssService;
|
||||||
import io.swagger.v3.core.util.Json;
|
import io.swagger.v3.core.util.Json;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import net.bytebuddy.implementation.bytecode.Throw;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.core.task.VirtualThreadTaskExecutor;
|
import org.springframework.core.task.VirtualThreadTaskExecutor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.pusong.business.domain.vo.PsContractInfoVo;
|
|
||||||
import com.pusong.business.mapper.PsContractInfoMapper;
|
import com.pusong.business.mapper.PsContractInfoMapper;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
@ -56,15 +59,18 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
|
|
||||||
private final PsContractInfoMapper baseMapper;
|
private final PsContractInfoMapper baseMapper;
|
||||||
private final PsContractBusinessMapper businessMapper;
|
private final PsContractBusinessMapper businessMapper;
|
||||||
private final PsContractBusinessDetailMapper businessDetailMapper;
|
// private final PsContractBusinessDetailMapper businessDetailMapper;
|
||||||
private final IPsContractBusinessService businessService;
|
private final IPsContractBusinessService businessService;
|
||||||
private final IPsContractBusinessDetailService businessDetailService;
|
private final IPsContractBusinessDetailService businessDetailService;
|
||||||
@Autowired
|
@Resource
|
||||||
private final IPsCompanyInfoService companyInfoService;
|
private final IPsCompanyInfoService companyInfoService;
|
||||||
@Autowired
|
@Resource
|
||||||
private final IPsCustomInfoService customInfoService;
|
private final IPsCustomInfoService customInfoService;
|
||||||
@Autowired
|
@Resource
|
||||||
private final ISysOssService ossService;
|
private final ISysOssService ossService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private final IPsContractPayService contractPayService;
|
||||||
/**
|
/**
|
||||||
* 生成合同
|
* 生成合同
|
||||||
*
|
*
|
||||||
@ -76,11 +82,11 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
@Transactional//开启事务
|
@Transactional//开启事务
|
||||||
public Boolean createContract(PsContractInfoBo bo,Integer type) {
|
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.如果已存在合同,则进行修改,否则新增
|
//3.如果已存在合同,则进行修改,否则新增
|
||||||
if(add == null){
|
if(add == null){
|
||||||
add = new PsContractInfo();
|
add = new PsContractInfo();
|
||||||
@ -90,63 +96,12 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
add.setCustomManager(LoginHelper.getUserId());//所属销售经理id
|
add.setCustomManager(LoginHelper.getUserId());//所属销售经理id
|
||||||
}
|
}
|
||||||
MapstructUtils.convert(bo, add);
|
MapstructUtils.convert(bo, add);
|
||||||
|
|
||||||
BigDecimal sum = bo.getBusinessList().stream().map(PsContractBusinessBo::getBusinessAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
BigDecimal sum = bo.getBusinessList().stream().map(PsContractBusinessBo::getBusinessAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
add.setContractAmount(sum);//合同总金额
|
add.setContractAmount(sum);//合同总金额
|
||||||
add.setContractStatus(type == 1?ContractStatusEnum.INIT.getCode():ContractStatusEnum.CREATE.getCode());//合同状态
|
add.setContractStatus(type == 1?ContractStatusEnum.INIT.getCode():ContractStatusEnum.CREATE.getCode());//合同状态
|
||||||
baseMapper.insertOrUpdate(add);
|
baseMapper.insertOrUpdate(add);
|
||||||
|
//4.删除所有服务类型和服务项目,.插入服务类型
|
||||||
//4.删除所有服务类型和服务项目
|
businessService.saveList(bo.getBusinessList(),bo.getContractCode());
|
||||||
businessMapper.delete(Wrappers.<PsContractBusiness>lambdaQuery()
|
|
||||||
.eq(PsContractBusiness::getContractCode,add.getContractCode()));
|
|
||||||
businessDetailMapper.delete(Wrappers.<PsContractBusinessDetail>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<PsContractBusinessDetail> 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<String,Object> 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);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -171,9 +126,8 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
if(vo.getCompanyId() != null){
|
if(vo.getCompanyId() != null){
|
||||||
vo.setPsCompanyInfoVo(companyInfoService.queryById(vo.getCompanyId()));
|
vo.setPsCompanyInfoVo(companyInfoService.queryById(vo.getCompanyId()));
|
||||||
}
|
}
|
||||||
//装填服务类型和服务项目信息
|
fillContractInfo(vo);
|
||||||
List<PsContractBusinessVo> list = businessMapper.selectBusinessList(vo.getContractCode());
|
|
||||||
vo.setBusinessVoList(list);
|
|
||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -184,7 +138,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
* @return 合同基本信息
|
* @return 合同基本信息
|
||||||
*/
|
*/
|
||||||
public List<PsContractInfo> queryByCode(Long customId,String code,ContractStatusEnum enu){
|
public List<PsContractInfo> queryByCode(Long customId,String code,ContractStatusEnum enu){
|
||||||
if(customId == null || StringUtils.isBlank(code)){
|
if(customId == null && StringUtils.isBlank(code)){
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return baseMapper.selectList(Wrappers.<PsContractInfo>lambdaQuery().eq(PsContractInfo::getDelFlag,"0")
|
return baseMapper.selectList(Wrappers.<PsContractInfo>lambdaQuery().eq(PsContractInfo::getDelFlag,"0")
|
||||||
@ -193,11 +147,149 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
.eq(enu != null ,PsContractInfo::getContractStatus,enu.getCode()));
|
.eq(enu != null ,PsContractInfo::getContractStatus,enu.getCode()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询合同信息列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return 合同基本信息分页列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<PsContractInfoVo> queryPageList(PsContractInfoQueryBo bo, PageQuery pageQuery) {
|
||||||
|
QueryWrapper<PsContractInfo> lqw = buildQueryWrapper(bo);
|
||||||
|
Page<PsContractInfoVo> 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<PsContractInfo> lqw = buildQueryWrapper(bo);
|
||||||
|
List<PsContractInfoVo> 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<String,Object> 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<PsContractInfo> buildQueryWrapper(PsContractInfoQueryBo bo) {
|
||||||
|
QueryWrapper<PsContractInfo> 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<PsContractBusinessVo> list = businessMapper.selectBusinessList(vo.getContractCode());
|
||||||
|
vo.setBusinessVoList(list);
|
||||||
|
//装填回款记录
|
||||||
|
List<PsContractPayVo> 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;
|
PsContractInfo add =null;
|
||||||
//插入或修改合同
|
//插入或修改合同
|
||||||
log.info("校验合同查询入参:{}",bo.getCustomId());
|
log.info("校验合同查询入参:{}",bo.getCustomId());
|
||||||
@ -210,7 +302,9 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
throw new ServiceException("系统异常,请联系管理员");
|
throw new ServiceException("系统异常,请联系管理员");
|
||||||
}
|
}
|
||||||
add = infos.get(0);
|
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());
|
log.error("此合已有暂存的合同,customerid:"+bo.getCustomId());
|
||||||
throw new ServiceException("此合同状态已变更,请刷新页面重新操作");
|
throw new ServiceException("此合同状态已变更,请刷新页面重新操作");
|
||||||
}
|
}
|
||||||
@ -218,46 +312,27 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
return add;
|
return add;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询合同基本信息列表
|
* 修改合同前置的校验
|
||||||
|
* 1.合同已回传 不可修改
|
||||||
*
|
*
|
||||||
* @param bo 查询条件
|
|
||||||
* @param pageQuery 分页参数
|
|
||||||
* @return 合同基本信息分页列表
|
|
||||||
*/
|
*/
|
||||||
@Override
|
private void beforeUpdateValid( PsContractInfoBo updateBo,PsContractInfoVo srcVo){
|
||||||
public TableDataInfo<PsContractInfoVo> queryPageList(PsContractInfoBo bo, PageQuery pageQuery) {
|
if(StringUtils.equals(CommonStatusEnum.N.getCode(),srcVo.getRollBackStatus())){
|
||||||
QueryWrapper<PsContractInfo> lqw = buildQueryWrapper(bo);
|
throw new ServiceException("合同已回传,不可修改");
|
||||||
Page<PsContractInfoVo> result = baseMapper.selectPageContractList(pageQuery.build(), lqw);
|
|
||||||
return TableDataInfo.build(result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private QueryWrapper<PsContractInfo> buildQueryWrapper(PsContractInfoBo bo) {
|
|
||||||
QueryWrapper<PsContractInfo> 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;
|
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 修改合同后操作
|
||||||
|
* 1.合同已派单:任务重置
|
||||||
|
* 2.已回款合同:新的合同金额<已付金额:展示申请退款
|
||||||
|
*/
|
||||||
|
private void beforeUpdateOperate( PsContractInfoBo updateBo,PsContractInfoVo srcVo){
|
||||||
|
|
||||||
|
if(StringUtils.equals(CommonStatusEnum.N.getCode(),srcVo.getRollBackStatus())){
|
||||||
|
throw new ServiceException("合同已回传,不可修改");
|
||||||
|
}
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 查询合同基本信息
|
* 查询合同基本信息
|
||||||
*
|
*
|
||||||
|
@ -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<PsContractPayVo> queryListByContractCode(String contractCode,String business){
|
||||||
|
if(StringUtils.isBlank(contractCode)){return new ArrayList<>();}
|
||||||
|
List<PsContractPayVo> list = baseMapper.selectVoList(Wrappers.<PsContractPay>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<PsContractPayVo> queryPageList(PsContractPayBo bo, PageQuery pageQuery) {
|
||||||
|
LambdaQueryWrapper<PsContractPay> lqw = buildQueryWrapper(bo);
|
||||||
|
Page<PsContractPayVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||||
|
return TableDataInfo.build(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
*//**
|
||||||
|
* 查询符合条件的合同回款记录列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @return 合同回款记录列表
|
||||||
|
*//*
|
||||||
|
@Override
|
||||||
|
public List<PsContractPayVo> queryList(PsContractPayBo bo) {
|
||||||
|
LambdaQueryWrapper<PsContractPay> lqw = buildQueryWrapper(bo);
|
||||||
|
return baseMapper.selectVoList(lqw);
|
||||||
|
}
|
||||||
|
|
||||||
|
private LambdaQueryWrapper<PsContractPay> buildQueryWrapper(PsContractPayBo bo) {
|
||||||
|
Map<String, Object> params = bo.getParams();
|
||||||
|
LambdaQueryWrapper<PsContractPay> 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<Long> ids, Boolean isValid) {
|
||||||
|
if(isValid){
|
||||||
|
//TODO 做一些业务上的校验,判断是否需要校验
|
||||||
|
}
|
||||||
|
return baseMapper.deleteBatchIds(ids) > 0;
|
||||||
|
}*/
|
||||||
|
}
|
@ -167,13 +167,14 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService {
|
|||||||
@Override
|
@Override
|
||||||
public List<PsCustomInfoVo> queryList(PsCustomInfoBo bo) {
|
public List<PsCustomInfoVo> queryList(PsCustomInfoBo bo) {
|
||||||
Wrapper<PsCustomInfo> lqw = buildQueryWrapper(bo);
|
Wrapper<PsCustomInfo> lqw = buildQueryWrapper(bo);
|
||||||
return baseMapper.selectPageCustomerList(lqw);
|
return baseMapper.selectCustomerList(lqw);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Wrapper<PsCustomInfo> buildQueryWrapper(PsCustomInfoBo bo) {
|
private Wrapper<PsCustomInfo> buildQueryWrapper(PsCustomInfoBo bo) {
|
||||||
QueryWrapper<PsCustomInfo> qw = Wrappers.query();
|
QueryWrapper<PsCustomInfo> qw = Wrappers.query();
|
||||||
//客户信息表条件
|
//客户信息表条件
|
||||||
qw.eq( "info.del_flag", 0);//删除标志
|
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.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.getCustomSource()), "info.custom_source", bo.getCustomSource());//来源
|
||||||
qw.eq(StringUtils.isNotBlank(bo.getCustomLevel()), "info.custom_level", bo.getCustomLevel());//客户级别
|
qw.eq(StringUtils.isNotBlank(bo.getCustomLevel()), "info.custom_level", bo.getCustomLevel());//客户级别
|
||||||
|
@ -5,10 +5,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<mapper namespace="com.pusong.business.mapper.PsContractBusinessMapper">
|
<mapper namespace="com.pusong.business.mapper.PsContractBusinessMapper">
|
||||||
|
|
||||||
<resultMap id="businessResult" type="com.pusong.business.domain.vo.PsContractBusinessVo">
|
<resultMap id="businessResult" type="com.pusong.business.domain.vo.PsContractBusinessVo">
|
||||||
<collection columnPrefix="DETAIL_" property="detailVoList" ofType="com.pusong.business.domain.vo.PsContractBusinessDetailVo" >
|
<id column="ID" property="id"></id>
|
||||||
<!--<id column="ID" property="id"></id>
|
<collection columnPrefix="detail_" property="detailVoList" ofType="com.pusong.business.domain.vo.PsContractBusinessDetailVo" >
|
||||||
<result column="CUSTOMER_NAME" property="customerName" />
|
<!-- <id column="ID" property="id"></id>-->
|
||||||
<result column="CUSTOMER_ID_NO" property="customerIdNo" />-->
|
<!-- <result column="CUSTOMER_NAME" property="customerName" />-->
|
||||||
|
<!-- <result column="CUSTOMER_ID_NO" property="customerIdNo" />-->
|
||||||
</collection>
|
</collection>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
@ -19,7 +20,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
detail.business_project_label detail_business_project_label,
|
detail.business_project_label detail_business_project_label,
|
||||||
detail.amount detail_amount,
|
detail.amount detail_amount,
|
||||||
detail.amount_desc detail_amount_desc,
|
detail.amount_desc detail_amount_desc,
|
||||||
detail.extent_info detail_extent_info,
|
detail.extent_info detail_extent_info
|
||||||
from ps_contract_business bus
|
from ps_contract_business bus
|
||||||
left join ps_contract_business_detail detail on bus.id = detail.business_id
|
left join ps_contract_business_detail detail on bus.id = detail.business_id
|
||||||
where bus.del_flag = 0
|
where bus.del_flag = 0
|
||||||
|
@ -3,5 +3,40 @@
|
|||||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.pusong.business.mapper.PsContractInfoMapper">
|
<mapper namespace="com.pusong.business.mapper.PsContractInfoMapper">
|
||||||
|
<resultMap id="contractResult" type="com.pusong.business.domain.vo.PsContractInfoVo">
|
||||||
|
<id column="contract_code" property="contractCode"></id>
|
||||||
|
<collection columnPrefix="com_" property="psCompanyInfoVo" ofType="com.pusong.business.domain.vo.PsCompanyInfoVo" >
|
||||||
|
</collection>
|
||||||
|
<collection columnPrefix="cus." property="psCustomInfoVo" ofType="com.pusong.business.domain.vo.PsCustomInfoVo" >
|
||||||
|
</collection>
|
||||||
|
</resultMap>
|
||||||
|
<sql id="queryContractList" >
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="selectPageContractList" resultMap="contractResult">
|
||||||
|
<include refid="queryContractList"/>
|
||||||
|
${ew.getCustomSqlSegment}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectContractList" resultMap="contractResult">
|
||||||
|
<include refid="queryContractList"/>
|
||||||
|
${ew.getCustomSqlSegment}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.pusong.business.mapper.PsContractPayMapper">
|
||||||
|
|
||||||
|
</mapper>
|
@ -5,14 +5,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<mapper namespace="com.pusong.business.mapper.PsCustomInfoMapper">
|
<mapper namespace="com.pusong.business.mapper.PsCustomInfoMapper">
|
||||||
|
|
||||||
|
|
||||||
<select id="selectPageCustomerList" resultType="com.pusong.business.domain.vo.PsCustomInfoVo">
|
<sql id="queryCustomerList" >
|
||||||
SELECT info.*
|
SELECT info.*
|
||||||
, usr.nick_name as custom_manager_name
|
, usr.nick_name as custom_manager_name
|
||||||
,psinfo.custom_introducer as custom_introducer_name,
|
,psinfo.custom_introducer as custom_introducer_name,
|
||||||
EXISTS(SELECT * FROM ps_contract_info coninfo WHERE coninfo.custom_id = info.id and coninfo.contract_status != '10') have_contract
|
EXISTS(SELECT * FROM ps_contract_info coninfo WHERE coninfo.custom_id = info.id and coninfo.contract_status != '10') have_contract
|
||||||
FROM ps_custom_info info
|
FROM ps_custom_info info
|
||||||
left join sys_user usr on info.custom_manager = usr.user_id and usr.del_flag = 0
|
left join sys_user usr on info.custom_manager = usr.user_id
|
||||||
left join ps_custom_info psinfo on info.custom_introducer = psinfo.id and psinfo.del_flag = 0
|
left join ps_custom_info psinfo on info.custom_introducer = psinfo.id
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="selectPageCustomerList" resultType="com.pusong.business.domain.vo.PsCustomInfoVo">
|
||||||
|
<include refid="queryCustomerList"/>
|
||||||
|
${ew.getCustomSqlSegment}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectCustomerList" resultType="com.pusong.business.domain.vo.PsCustomInfoVo">
|
||||||
|
<include refid="queryCustomerList"/>
|
||||||
${ew.getCustomSqlSegment}
|
${ew.getCustomSqlSegment}
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
Loading…
Reference in New Issue
Block a user