diff --git a/pusong-common/pusong-common-json/src/main/java/com/pusong/common/json/config/JacksonConfig.java b/pusong-common/pusong-common-json/src/main/java/com/pusong/common/json/config/JacksonConfig.java index ecb92c2..7aa6b51 100644 --- a/pusong-common/pusong-common-json/src/main/java/com/pusong/common/json/config/JacksonConfig.java +++ b/pusong-common/pusong-common-json/src/main/java/com/pusong/common/json/config/JacksonConfig.java @@ -48,7 +48,7 @@ public class JacksonConfig { //去掉最后面的0并转为字符串 // gen.writeString(value.stripTrailingZeros().toPlainString()); //保留两位小数 - gen.writeString(value.setScale(2, RoundingMode.HALF_UP).toPlainString()); + gen.writeString(value.setScale(0, RoundingMode.HALF_UP).toPlainString()); } } }); 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 9a11622..7638496 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 @@ -5,6 +5,7 @@ import java.util.List; import com.pusong.business.domain.bo.PsContractInfoQueryBo; import com.pusong.business.domain.bo.PsInvoiceBo; import com.pusong.business.domain.vo.PsContractBusinessVo; +import com.pusong.business.domain.vo.PsContractCountVo; import com.pusong.business.domain.vo.ServiceScheduleVo; import com.pusong.business.service.IPsContractBusinessService; import com.pusong.common.satoken.utils.LoginHelper; @@ -60,7 +61,7 @@ public class PsContractInfoController extends BaseController { @Log(title = "暂存合同", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping("/hold") - public R hold( @RequestBody PsContractInfoBo bo) { + public R hold(@RequestBody PsContractInfoBo bo) { return R.ok(psContractInfoService.createContract(bo,1)); } /** @@ -89,7 +90,16 @@ public class PsContractInfoController extends BaseController { @SaCheckPermission("business:contractInfo:LIST") @GetMapping("/list") public TableDataInfo list(PsContractInfoQueryBo bo, PageQuery pageQuery) { - return psContractInfoService.queryPageList(bo, pageQuery); + TableDataInfo psContractInfoVoTableDataInfo = psContractInfoService.queryPageList(bo, pageQuery); + + PsContractCountVo contractCountVo = psContractInfoService.countContractInfo(bo); + return psContractInfoVoTableDataInfo; + } + @SaCheckPermission("business:contractInfo:LIST") + @GetMapping("/countContractInfo") + public R countContractInfo(PsContractInfoQueryBo bo, PageQuery pageQuery) { + PsContractCountVo contractCountVo = psContractInfoService.countContractInfo(bo); + return R.ok(contractCountVo); } /** diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsCustomController.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsCustomController.java index f797414..40b77a4 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsCustomController.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsCustomController.java @@ -50,8 +50,8 @@ public class PsCustomController extends BaseController { @SaCheckPermission("business:customInfo:list") @GetMapping("/listByLoginUser") - public R>> listByLoginUser(String name) { - return R.ok(psCustomInfoService.listByLoginUser(name)); + public R>> listByLoginUser(String name, PageQuery pageQuery) { + return R.ok(psCustomInfoService.listByLoginUser(name, pageQuery)); } /** * 查询客户信息列表 diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractCompany.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractCompany.java index 855927e..dc39dd9 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractCompany.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractCompany.java @@ -42,6 +42,11 @@ public class PsContractCompany extends TenantEntity { */ private Long delFlag; + /** + * 工单备注 + */ + private String taskRemark; + } 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 a79fe03..8e5e7d4 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 @@ -245,4 +245,10 @@ public class PsCompanyInfoBo { this.businessAmount = businessList == null ? new BigDecimal(0) : businessList.stream().map(PsContractBusinessBo::getBusinessAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); return this.businessAmount; } + + + /** + * 工单备注 + */ + private String taskRemark; } 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 f8c6e74..2d46f61 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 @@ -163,6 +163,7 @@ public class PsContractInfoBo { */ private int firstPartyType; + public enum FIRSTPARTYTYPE{ COMPANY(1), INDIVIDUALS(2); diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/ContractAmountVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/ContractAmountVo.java new file mode 100644 index 0000000..e4cf2f2 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/ContractAmountVo.java @@ -0,0 +1,13 @@ +package com.pusong.business.domain.vo; + +import lombok.Data; + +import java.math.BigDecimal; +@Data +public class ContractAmountVo { + private String contractCode; + /** + * 合同金额 + */ + private BigDecimal contractAmount; +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractCountVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractCountVo.java new file mode 100644 index 0000000..608bef2 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractCountVo.java @@ -0,0 +1,56 @@ +package com.pusong.business.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.pusong.business.domain.PsContractInfo; +import com.pusong.common.translation.annotation.Translation; +import com.pusong.common.translation.constant.TransConstant; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + + +/** + * 合同基本信息视图对象 ps_contract_info + * + * @author wls + * @date 2024-07-29 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PsContractInfo.class) +public class PsContractCountVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 合同总金额 + */ + private BigDecimal contractAmount; + + /** + * 已付金额 + */ + private BigDecimal payMoney; + /** + * 退款金额 + */ + private BigDecimal returnMoney; + + /** + * 未付金额 = 所有已有回款合同的总金额 - 所有已有回款合同的已回款金额 + */ + private BigDecimal residualMoney; + /** + * 待付金额 = 所有没有回款合同的总金额 + */ + private BigDecimal waitPayMoney; + + +} 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 bfa574b..f1399a5 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 @@ -289,4 +289,7 @@ public class PsContractInfoVo implements Serializable { } return false; } + + private PsContractCountVo psContractCountVo; + } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsTaskMainVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsTaskMainVo.java index 0f24fc3..a16ba6e 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsTaskMainVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsTaskMainVo.java @@ -178,5 +178,10 @@ public class PsTaskMainVo implements Serializable { * 工单时间 */ private Date createTime; + + /** + * 工单备注 + */ + private String taskRemark; } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/ChannelAmountVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/ChannelAmountVo.java index b45f916..d4cb147 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/ChannelAmountVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/ChannelAmountVo.java @@ -29,13 +29,13 @@ public class ChannelAmountVo { /** * 成交总金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal all; /** * 总roi */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal roi; /** diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/ChannelPayInfo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/ChannelPayInfo.java index 9a85b42..6901afa 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/ChannelPayInfo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/ChannelPayInfo.java @@ -24,7 +24,7 @@ public class ChannelPayInfo { /** * 合同金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal contractAmount; /** * 支付类型1回款2退款 @@ -33,12 +33,12 @@ public class ChannelPayInfo { /** * 回款/退款金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal money; /** * 成本 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal cost; } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/DataAmountVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/DataAmountVo.java index 122360c..e6bf04f 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/DataAmountVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/DataAmountVo.java @@ -22,35 +22,35 @@ public class DataAmountVo { /** * 合同金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal money; /** * 已回款金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal payMoney; /** * 未回款金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal unPayMoney; /** * 项目成本 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal cost; /** * 投入 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal investCapital; /** * roi */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal roi; } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/MakeAmountVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/MakeAmountVo.java index f82f5ec..a3236d3 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/MakeAmountVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/MakeAmountVo.java @@ -23,7 +23,7 @@ public class MakeAmountVo { /** * 成交总金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal all; /** * 新签合同信息 diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/RenewalInfoVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/RenewalInfoVo.java index 8ccb239..0bbd84b 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/RenewalInfoVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/RenewalInfoVo.java @@ -26,7 +26,7 @@ public class RenewalInfoVo { /** * 到期合同总额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal contractAmount; /** @@ -42,12 +42,12 @@ public class RenewalInfoVo { /** * 已续费金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal payMoney; /** * 当月未续费金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal unPayMoney; /** diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/ReturnAmountVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/ReturnAmountVo.java index 041ff0f..8746685 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/ReturnAmountVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/ReturnAmountVo.java @@ -23,7 +23,7 @@ public class ReturnAmountVo { /** * 成交总金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal all; /** * 新签合同信息 @@ -56,17 +56,17 @@ public class ReturnAmountVo { /** * 合同金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal money; /** * 已回款金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal payMoney; /** * 未回款金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal unPayMoney; } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/ReturnMoneyInfoVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/ReturnMoneyInfoVo.java index 93daca1..9bdbeed 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/ReturnMoneyInfoVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/ReturnMoneyInfoVo.java @@ -35,17 +35,17 @@ public class ReturnMoneyInfoVo { /** * 当月合同回款金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal sumMoney; /** * 当月已回款金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal payMoney; /** * 当月未回款金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal unPayMoney; /** diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/SalasVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/SalasVo.java index 5b0c562..380b289 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/SalasVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/SalasVo.java @@ -47,19 +47,19 @@ public class SalasVo { /** * 已成交总额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal sumContractAmount; /** * 已回款金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal payContractAmount; /** * 未回款金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal unPayContractAmount; } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/UserAmountInfoVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/UserAmountInfoVo.java index 17ae1c6..63a21f4 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/UserAmountInfoVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/UserAmountInfoVo.java @@ -24,43 +24,43 @@ public class UserAmountInfoVo { /** * 合同总金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal sumAmount = new BigDecimal(0); /** * 已支付总金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal payedSumAmount = new BigDecimal(0); /** * 未支付金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal unPaySumAmount = new BigDecimal(0); /** * 托管类型合同总金额 类型号:4 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal tuoGuanAmount = new BigDecimal(0); /** * 续费类型合同总金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal xuFeiAmount = new BigDecimal(0); /** * 软件定制类型合同总金额 类型号:9 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal softwareDevAmount = new BigDecimal(0); /** * 其他类型合同总金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal otherAmount = new BigDecimal(0); /** * 转介绍的合同金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal jieShaoAmount = new BigDecimal(0); /** diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/UserAmountVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/UserAmountVo.java index 7aa28c1..4dbb034 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/UserAmountVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/UserAmountVo.java @@ -24,14 +24,9 @@ public class UserAmountVo { /** * 成交总金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal all; - - - - - /** * 各人员成交金额 */ diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/UserContractAmountInfo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/UserContractAmountInfo.java index bc54ad5..e5a5525 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/UserContractAmountInfo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/UserContractAmountInfo.java @@ -35,17 +35,17 @@ public class UserContractAmountInfo { /** * 服务类型金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal businessAmount; /** * 客户来源 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private String customSource; /** * 合同价格 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal contractAmount; /** * payId @@ -54,7 +54,7 @@ public class UserContractAmountInfo { /** * 已付款金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal payedMoney; /** diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/UserContractAmountVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/UserContractAmountVo.java index 4b1d561..d17d96b 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/UserContractAmountVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/home/UserContractAmountVo.java @@ -29,19 +29,19 @@ public class UserContractAmountVo { /** * 用户所有合同总金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal sumAmount = new BigDecimal(0); /** * 转介绍的合同金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal jieShaoAmount = new BigDecimal(0); /** * 其他类型合同总金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal otherAmount = new BigDecimal(0); /** * 转介绍合同数量 @@ -55,16 +55,16 @@ public class UserContractAmountVo { /** * 已支付总金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal jsPayedSumAmount=new BigDecimal(0); - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal otherPayedSumAmount=new BigDecimal(0); /** * 未支付金额 */ - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal jsUnPaySumAmount=new BigDecimal(0); - @JsonSerialize(using = BigDecimalSerializer.class) +// @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal otherUnPaySumAmount=new BigDecimal(0); /** diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/PayStatusEnum.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/PayStatusEnum.java index 64e44d7..4a88e94 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/PayStatusEnum.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/PayStatusEnum.java @@ -29,6 +29,6 @@ public enum PayStatusEnum { * @return */ public static List getStatus() { - return List.of(PAYAPPO.getCode(),FILE.getCode()); + return List.of(FILE.getCode(),PAYAPPO.getCode()); } } 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 8be2c55..cef10e4 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 @@ -6,10 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.pusong.business.domain.PsContractInfo; import com.pusong.business.domain.PsCustomInfo; import com.pusong.business.domain.PsSalaryContract; -import com.pusong.business.domain.vo.PsContractBusinessVo; -import com.pusong.business.domain.vo.PsContractInfoVo; -import com.pusong.business.domain.vo.PsCustomInfoVo; -import com.pusong.business.domain.vo.PsSalaryContractVo; +import com.pusong.business.domain.vo.*; import com.pusong.business.domain.vo.home.ChannelPayInfo; import com.pusong.business.domain.vo.home.SalasVo; import com.pusong.business.domain.vo.home.UserContractAmountInfo; @@ -19,6 +16,7 @@ import com.pusong.common.mybatis.core.mapper.BaseMapperPlus; import com.pusong.common.mybatis.enums.DataScopeType; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; import java.time.LocalDate; import java.time.temporal.Temporal; import java.util.List; @@ -33,6 +31,18 @@ import java.util.Map; public interface PsContractInfoMapper extends BaseMapperPlus { + + @DataPermission({ + @DataColumn(key = "userName", value = "info.custom_manager"), + @DataColumn(key = "deptName", value = "us.dept_id", dataScopeType = DataScopeType.CAIWU_HETONG) + }) + List selectCountContract(@Param(Constants.WRAPPER) Wrapper queryWrapper); + @DataPermission({ + @DataColumn(key = "userName", value = "info.custom_manager"), + @DataColumn(key = "deptName", value = "us.dept_id", dataScopeType = DataScopeType.CAIWU_HETONG) + }) + PsContractCountVo selectCountContractPay(@Param(Constants.WRAPPER) Wrapper queryWrapper); + @DataPermission({ @DataColumn(key = "userName", value = "info.custom_manager"), @DataColumn(key = "deptName", value = "us.dept_id", dataScopeType = DataScopeType.CAIWU_HETONG) 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 7442cab..6082920 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 @@ -3,6 +3,7 @@ package com.pusong.business.service; import com.pusong.business.domain.PsContractInfo; import com.pusong.business.domain.bo.PsContractInfoQueryBo; import com.pusong.business.domain.bo.PsInvoiceBo; +import com.pusong.business.domain.vo.PsContractCountVo; import com.pusong.business.domain.vo.PsContractInfoVo; import com.pusong.business.domain.bo.PsContractInfoBo; import com.pusong.business.domain.vo.PsSalaryContractVo; @@ -47,6 +48,8 @@ public interface IPsContractInfoService { PsContractInfoVo queryInfoByCustomId(Long customerId); void fillMoney(PsContractInfoVo vo); List queryByCode(Long customId, String code, String status); + + PsContractCountVo countContractInfo(PsContractInfoQueryBo bo); /** * 分页查询合同基本信息列表 * diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsCustomInfoService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsCustomInfoService.java index f274f26..5c031b0 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsCustomInfoService.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsCustomInfoService.java @@ -31,7 +31,7 @@ public interface IPsCustomInfoService { * 查询登陆人下所有的客户名称和id * @return 客户id和姓名 */ - List> listByLoginUser(String name); + List> listByLoginUser(String name, PageQuery pageQuery); /** * 分页查询客户基本信息列表 * diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCompanyInfoServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCompanyInfoServiceImpl.java index ed00567..ec64cdf 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCompanyInfoServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCompanyInfoServiceImpl.java @@ -321,13 +321,14 @@ public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService { /** * 保存公司合同关联表 */ - public void saveContractCompany(List list,String contractCode ){ + public void saveContractCompany(List list, String contractCode){ contractCompanyMapper.delete(Wrappers.lambdaQuery().eq(PsContractCompany::getContractCode, contractCode)); List saveList = new ArrayList<>(); - for(PsCompanyInfoBo bo:list){ + for(PsCompanyInfoBo bo : list){ PsContractCompany contractCompany = new PsContractCompany(); contractCompany.setContractCode(contractCode); contractCompany.setCompanyId(bo.getId()); + contractCompany.setTaskRemark(bo.getTaskRemark()); saveList.add(contractCompany); } contractCompanyMapper.insertBatch(saveList); 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 cba2e3e..3da48ad 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 @@ -95,6 +95,8 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { private final SysUserMapper sysUserMapper; private final ISysNoticeService noticeService; + private final PsContractPayMapper psContractPayMapper; + public static String getContractCode(){ Random random = new Random(); int randomNumber = random.nextInt(8999) + 1000; @@ -302,6 +304,77 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { } + public PsContractCountVo countContractInfo(PsContractInfoQueryBo bo){ + if(bo.getType() == null || bo.getType() == 1){//合同列表(要作废数据) + }else if(bo.getType() == 2){//待回款(不要作废数据) + bo.setInContractStatus(List.of(ContractStatusEnum.CREATE.getCode())); + }else if (bo.getType() == 3){//已回款(要特定的作废数据) + bo.setInContractStatus(ContractStatusEnum.getReturn()); + }else if (bo.getType() == 4){//托管续费合同 + bo.setInContractStatus(List.of(ContractStatusEnum.SUCCESS.getCode())); + log.info("托管服务"); + } + + QueryWrapper lqw = buildQueryWrapper(bo); + List contractCountList = baseMapper.selectCountContract(lqw); + if (contractCountList.isEmpty()){ + return new PsContractCountVo(); + } + Set allCode = new HashSet<>(); + BigDecimal allAmount = new BigDecimal(0); + for (ContractAmountVo contractAmountRes : contractCountList) { + allCode.add(contractAmountRes.getContractCode()); + allAmount = allAmount.add(contractAmountRes.getContractAmount()); + } + + QueryWrapper payVoQueryWrapper = new QueryWrapper<>(); + payVoQueryWrapper.in("contract_code", allCode); + payVoQueryWrapper.eq("del_flag", 0); + payVoQueryWrapper.eq("pay_status", '1'); + List psContractPayVos = psContractPayMapper.selectVoList(payVoQueryWrapper); + Map contractPay = new HashMap<>();//每个合同支付了多少钱 + BigDecimal payAll = new BigDecimal(0); + for (PsContractPayVo psContractPayVo : psContractPayVos) { + if ("1".equals(psContractPayVo.getBusinessType())){ + payAll = payAll.add(psContractPayVo.getMoney()); + BigDecimal nowPay = contractPay.getOrDefault(psContractPayVo.getContractCode(), new BigDecimal(0)); + nowPay = nowPay.add(psContractPayVo.getMoney()); + contractPay.put(psContractPayVo.getContractCode(), nowPay); + }else if ("2".equals(psContractPayVo.getBusinessType())) { + payAll = payAll.subtract(psContractPayVo.getMoney()); + BigDecimal nowPay = contractPay.getOrDefault(psContractPayVo.getContractCode(), new BigDecimal(0)); + nowPay = nowPay.subtract(psContractPayVo.getMoney()); + contractPay.put(psContractPayVo.getContractCode(), nowPay); + } + } + Set payedContract = new HashSet<>();//已支付的合同 + for (Map.Entry stringBigDecimalEntry : contractPay.entrySet()) { + if(stringBigDecimalEntry.getValue().doubleValue() > 0){ + payedContract.add(stringBigDecimalEntry.getKey()); + } + } + + //已有回款合同 总金额 + BigDecimal hasPayContractAmount = new BigDecimal(0); + //没有回款的合同 + BigDecimal noPayContractAmount = new BigDecimal(0); + for (ContractAmountVo contractAmountRes : contractCountList) { + if (payedContract.contains(contractAmountRes.getContractCode())) { + hasPayContractAmount = hasPayContractAmount.add(contractAmountRes.getContractAmount()); + }else{ + noPayContractAmount = noPayContractAmount.add(contractAmountRes.getContractAmount()); + } + } + + PsContractCountVo contractCountVo = new PsContractCountVo(); + contractCountVo.setContractAmount(allAmount); + contractCountVo.setPayMoney(payAll); + contractCountVo.setResidualMoney(hasPayContractAmount.subtract(payAll)); + contractCountVo.setWaitPayMoney(noPayContractAmount); + + return contractCountVo; + } + /** * 分页查询合同信息列表 * @@ -1007,8 +1080,8 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { qw.exists(CollectionUtils.isNotEmpty(bo.getServiceProjects()), "select 1 from ps_contract_business detail " + "where detail.contract_code = info.contract_code and detail.business_type in ("+StringUtils.join(bo.getServiceProjects(),",")+")");//服务项目编码集合 qw.between(bo.getMoneyEnd() != null && bo.getMoneyStart() !=null,"info.contract_amount",bo.getMoneyStart(),bo.getMoneyEnd()); - qw.orderByDesc("info.create_time"); - +// qw.orderByDesc("info.create_time"); + qw.orderByDesc("info.apply_date"); return qw; } private List fillContractInfo(List vos){ diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractPayServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractPayServiceImpl.java index b7cf7bd..7d719b8 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractPayServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractPayServiceImpl.java @@ -76,7 +76,7 @@ public class PsContractPayServiceImpl implements IPsContractPayService { .eq(code != null ,PsContractPay::getPayStatus, code) .notIn(PsContractPay::getPayStatus, PayStatusEnum.getStatus())//去掉无用的状态 .orderByAsc(PsContractPay::getPayDate)); - return list == null?new ArrayList<>():list; + return list == null ? new ArrayList<>() : list; } public List queryListByContractCode(List contractCode, String business, PayStatusEnum enu){ @@ -84,8 +84,8 @@ public class PsContractPayServiceImpl implements IPsContractPayService { String code = enu == null ? null :enu.getCode(); List list = baseMapper.selectVoList(Wrappers.lambdaQuery(). in(PsContractPay::getContractCode, contractCode).eq(PsContractPay::getDelFlag,0) - .eq(StringUtils.isNotBlank(business),PsContractPay::getBusinessType,business) - .eq(code != null ,PsContractPay::getPayStatus, code) + .eq(StringUtils.isNotBlank(business), PsContractPay::getBusinessType, business) + .eq(code != null, PsContractPay::getPayStatus, code) .notIn(PsContractPay::getPayStatus, PayStatusEnum.getStatus())//去掉无用的状态 .orderByAsc(PsContractPay::getPayDate)); return list == null?new ArrayList<>():list; 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 812d229..e2a142c 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 @@ -72,22 +72,43 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService { * @return 客户id和姓名 */ @Override - public List> listByLoginUser(String name) { - + public List> listByLoginUser(String name, PageQuery pageQuery) { //查询客户基本信息 - List list = baseMapper.selectList(new QueryWrapper().select("id", "custom_name","custom_mobile","create_time","custom_source") - .lambda().eq(PsCustomInfo::getDelFlag, 0).isNotNull(PsCustomInfo::getCustomName).ne(PsCustomInfo::getCustomName,"").ne(PsCustomInfo::getCustomName,"无") - .and(StringUtils.isNotBlank(name),wq->wq.like(PsCustomInfo::getCustomName,name).or().like(PsCustomInfo::getCustomMobile,name))); + Page list = baseMapper.selectVoPage(pageQuery.build() + , new QueryWrapper() + .select("id", "custom_name", "custom_mobile", "create_time", "custom_source") + .lambda().eq(PsCustomInfo::getDelFlag, 0).isNotNull(PsCustomInfo::getCustomName).ne(PsCustomInfo::getCustomName,"").ne(PsCustomInfo::getCustomName,"无") + .and(StringUtils.isNotBlank(name), wq->wq.like(PsCustomInfo::getCustomName,name).or().like(PsCustomInfo::getCustomMobile,name))); + + List ids = list.getRecords().stream().map(PsCustomInfoVo::getId).collect(Collectors.toList()); + + //查询公司信息 + List companyInfoVos = companyInfoMapper.selectVoList(Wrappers.lambdaQuery() + .in(PsCompanyInfo::getCustomId, ids) + .eq(PsCompanyInfo::getDelFlag, 0) + .eq(PsCompanyInfo::getCompanyType, "2") + ); + Map> id_companyMap = new HashMap<>(); + if(CollectionUtils.isNotEmpty(companyInfoVos)){ + //分组 + id_companyMap = companyInfoVos.stream().collect((Collectors.groupingBy(PsCompanyInfoVo::getCustomId))); + //排序 + id_companyMap.entrySet().forEach(entry->{ + entry.setValue(entry.getValue().stream().sorted(Comparator.comparingLong(PsCompanyInfoVo::getId)).collect(Collectors.toList())); + }); + } + List> listmap = new ArrayList<>(); - list.forEach(item->{ + for (PsCustomInfoVo item : list.getRecords()) { Map map = new HashMap<>(); map.put("id", item.getId()); map.put("customName", item.getCustomName()); map.put("custom_mobile", item.getCustomMobile()); map.put("createTime", DateUtils.toString(item.getCreateTime(),"yyyy-MM-dd")); map.put("customSource", item.getCustomSource()); + map.put("psCompanySerivceVo", id_companyMap.get(item.getId())); listmap.add(map); - }); + } return listmap; } @@ -151,7 +172,6 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService { entry.setValue(entry.getValue().stream().sorted(Comparator.comparingLong(PsCustomCallbackVo::getId).reversed()).collect(Collectors.toList())); }); } - //查询公司信息 List companyInfoVos = companyInfoMapper.selectVoList(Wrappers.lambdaQuery() .in(PsCompanyInfo::getCustomId, ids) diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsSalaryServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsSalaryServiceImpl.java index e501ddd..2bcabef 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsSalaryServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsSalaryServiceImpl.java @@ -66,6 +66,17 @@ public class PsSalaryServiceImpl implements IPsSalaryService { LocalDateTime deadline = bo.getEndDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); LocalDate thisMonth = DateUtils.getFirstDayZeroTimeByMonth().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); List adds = calSalaryBatch.calcData(deadline, thisMonth, false); + Collections.sort(adds, new Comparator() { + @Override + public int compare(PsSalaryVo o1, PsSalaryVo o2) { + if (o1.getSalaryMoney().doubleValue() > o2.getSalaryMoney().doubleValue()){ + return -1; + }else{ + return 1; + } + } + }); + List records = new ArrayList<>(); records.addAll(result.getRecords()); @@ -97,6 +108,8 @@ public class PsSalaryServiceImpl implements IPsSalaryService { lqw.le(bo.getEndDate() != null, "salary_date", bo.getEndDate()); lqw.ge(bo.getStartDate() != null, "salary_date", bo.getStartDate()); lqw.exists(StringUtils.isNotBlank(bo.getName()),"select 1 from sys_user su where su.user_id = ps_salary.user_id and su.nick_name like %"+bo.getName()+"%"); + lqw.orderByDesc("salary_money"); +// lqw.orderByAsc("CASE WHEN salary_money = 0 THEN 9999999999 ELSE salary_money END, salary_money"); return lqw; } /** diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java index da41311..446f870 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java @@ -119,8 +119,8 @@ public class PsTaskServiceImpl implements IPsTaskService { vo.setExtend(null); } }else{ - lqw.orderByAsc("CASE WHEN main.task_status = '30' THEN 1 ELSE 0 END "); - lqw.orderByAsc("assigned"); +// lqw.orderByAsc("CASE WHEN main.task_status = '30' THEN 1 ELSE 0 END "); +// lqw.orderByAsc("assigned"); lqw.orderByDesc("main.create_time"); page = baseMapper.queryTaskPageList(pageQuery.build(), lqw); } 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 7cd6023..0a9af76 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 @@ -45,6 +45,43 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ${ew.getCustomSqlSegment} + + +