diff --git a/doc/report.ftl b/doc/report.ftl
index e107beb..1fa52b5 100644
--- a/doc/report.ftl
+++ b/doc/report.ftl
@@ -135,6 +135,11 @@
#if>
#list>
+ <#if item.startDate?? && item.businessType == "2">
+
+ 服务期限:${item.startDate?string('yyyy年MM月dd日')}至${item.endDate?string('yyyy年MM月dd日')}
+
+ #if>
<#nt>
#list>
@@ -199,11 +204,11 @@
<#-- -->
<#--
-->
一、服务期限
- <#if contract.startServiceDate??>
- 本合同中的服务周期为
- ${contract.startServiceDate?string('yyyy年MM月dd日')}至${contract.endServiceDate?string('yyyy年MM月dd日')}。
-
- #if>
+<#-- <#if contract.startServiceDate??>-->
+<#-- 本合同中的服务周期为-->
+<#-- ${contract.startServiceDate?string('yyyy年MM月dd日')}至${contract.endServiceDate?string('yyyy年MM月dd日')}。-->
+<#--
-->
+<#-- #if>-->
本合同中的企业托管服务,在合同到期前 30 天,乙方有义务告知甲方。如果双方在合同期满前 30 天内未提出终止或变更要求,未办理交接手续,本合同将自行延期一年。如是其他业务,则以双方约定时间为准。
二、甲方权利与义务
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 861547d..d6607a0 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
@@ -1,32 +1,29 @@
package com.pusong.business.controller;
-import java.util.List;
-import java.util.Map;
-
-import cn.dev33.satoken.annotation.SaIgnore;
+import cn.dev33.satoken.annotation.SaCheckPermission;
import com.pusong.business.domain.bo.PsCustomCallbackBo;
+import com.pusong.business.domain.bo.PsCustomInfoBo;
import com.pusong.business.domain.bo.PsCustomPriceBo;
import com.pusong.business.domain.bo.PsCustomRecordQueryBo;
+import com.pusong.business.domain.vo.PsCustomInfoVo;
import com.pusong.business.domain.vo.PsCustomerRecordVo;
-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.business.service.IPsCustomInfoService;
import com.pusong.common.core.domain.R;
import com.pusong.common.core.validate.AddGroup;
import com.pusong.common.core.validate.EditGroup;
+import com.pusong.common.idempotent.annotation.RepeatSubmit;
+import com.pusong.common.log.annotation.Log;
import com.pusong.common.log.enums.BusinessType;
-import com.pusong.common.excel.utils.ExcelUtil;
-import com.pusong.business.domain.vo.PsCustomInfoVo;
-import com.pusong.business.domain.bo.PsCustomInfoBo;
-import com.pusong.business.service.IPsCustomInfoService;
+import com.pusong.common.mybatis.core.page.PageQuery;
import com.pusong.common.mybatis.core.page.TableDataInfo;
+import com.pusong.common.web.core.BaseController;
+import jakarta.validation.constraints.NotNull;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
/**
* 客户基本信息
@@ -143,7 +140,7 @@ public class PsCustomController extends BaseController {
@Log(title = "已完成客户" )
@GetMapping("/record")
public TableDataInfo record(PsCustomRecordQueryBo queryBo, PageQuery pageQuery) {
- return psCustomInfoService.getCustomerRecordList(queryBo,pageQuery);
+ return psCustomInfoService.getCustomerRecordList(queryBo, pageQuery);
}
diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractPay.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractPay.java
index e958ad2..f06f605 100644
--- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractPay.java
+++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractPay.java
@@ -1,14 +1,16 @@
package com.pusong.business.domain;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
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;
+import java.math.BigDecimal;
+import java.util.Date;
/**
* 合同回款记录对象 ps_contract_pay
@@ -83,5 +85,4 @@ public class PsContractPay extends TenantEntity {
@TableLogic
private Long delFlag;
-
}
diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsApproverRecordVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsApproverRecordVo.java
index 14a1ce4..3ed3d6a 100644
--- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsApproverRecordVo.java
+++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsApproverRecordVo.java
@@ -63,6 +63,8 @@ public class PsApproverRecordVo implements Serializable {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date applyDate;
+
+
/**
* 审批日期
*/
@@ -226,6 +228,17 @@ public class PsApproverRecordVo implements Serializable {
private PsTaskMainVo psTaskMainVo;
+ /**
+ * 合同签约时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date contactApplyDate;
+
+ /**
+ * 是否续费0新签 1续费
+ */
+ private String isDue;
+
public String getContractCodeAndBusinessType(){
return this.contractCode + "_" + this.businessType;
}
diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCompanyInfoVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCompanyInfoVo.java
index 2b40b3c..3c153f5 100644
--- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCompanyInfoVo.java
+++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCompanyInfoVo.java
@@ -200,6 +200,8 @@ public class PsCompanyInfoVo implements Serializable {
@Translation(type = TransConstant.USER_ID_TO_NICKNAME)
private Long customManager;
+ private String customManagerName;
+
/**
* 服务状态0终止1正常
*/
diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCustomerRecordVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCustomerRecordVo.java
index e6ba811..3be7e18 100644
--- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCustomerRecordVo.java
+++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCustomerRecordVo.java
@@ -2,10 +2,8 @@ package com.pusong.business.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.fasterxml.jackson.annotation.JsonFormat;
-import com.pusong.business.domain.PsTaskMain;
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;
@@ -156,8 +154,21 @@ public class PsCustomerRecordVo implements Serializable {
*/
private String freeFailDesc;
+ private String customLevel;
/**
* 回访记录vo(已完成客户列表使用)
*/
private List psCustomCallbackVo;
+
+ /**
+ * 报价金额DTO
+ */
+ private List psCustomPriceVo;
+
+ private BigDecimal price;
+
+ /**
+ * 是否已生成合同(1是0否)
+ */
+ private Integer haveContract;
}
diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/ApproverAbstractServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/ApproverAbstractServiceImpl.java
index 18945de..d7bff91 100644
--- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/ApproverAbstractServiceImpl.java
+++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/ApproverAbstractServiceImpl.java
@@ -1,6 +1,5 @@
package com.pusong.business.service.approver.impl;
-import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -17,7 +16,6 @@ import com.pusong.business.enums.ApproverTypeEnum;
import com.pusong.business.enums.PayStatusEnum;
import com.pusong.business.mapper.PsApproverRecordMapper;
import com.pusong.business.mapper.PsContractPayMapper;
-import com.pusong.business.service.IPsApproverRecordService;
import com.pusong.business.service.IPsCompanyInfoService;
import com.pusong.business.service.approver.ApproverContainer;
import com.pusong.business.service.approver.ApproverService;
@@ -98,7 +96,13 @@ public abstract class ApproverAbstractServiceImpl implements ApproverService {
.eq("app.del_flag","0")
.eq(StringUtils.isNotBlank(bo.getApproverStatus()),"app.approver_status",bo.getApproverStatus())
.like(StringUtils.isNotBlank(bo.getCustomerName()),"cus.custom_name",bo.getCustomerName())
- .like(StringUtils.isNotBlank(bo.getCompanyName()),"com.company_name",bo.getCompanyName())
+// .like(StringUtils.isNotBlank(bo.getCompanyName()),"com.company_name",bo.getCompanyName())
+
+ .and(StringUtils.isNotBlank(bo.getCompanyName()), wrapper -> wrapper
+ .like("info.contact_person_name",bo.getCompanyName())
+ .or()
+ .like("com.company_name",bo.getCompanyName()))
+
.like(StringUtils.isNotBlank(bo.getContractCode()),"app.contract_code",bo.getContractCode())
//销售经理姓名
.exists(StringUtils.isNotBlank(bo.getCustomManagerName()),"select 1 from sys_user su where su.user_id = info.custom_manager and su.nick_name like '%"+bo.getCustomManagerName()+"%'")
diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PayContractApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PayContractApproverServiceImpl.java
index 19e6255..fb726f1 100644
--- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PayContractApproverServiceImpl.java
+++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PayContractApproverServiceImpl.java
@@ -1,20 +1,15 @@
package com.pusong.business.service.approver.impl;
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.pusong.business.domain.PsApproverRecord;
import com.pusong.business.domain.PsContractInfo;
import com.pusong.business.domain.PsContractPay;
import com.pusong.business.domain.PsTaskMain;
-import com.pusong.business.domain.bo.PsContractPayBo;
import com.pusong.business.domain.vo.PsCompanyInfoVo;
import com.pusong.business.domain.vo.PsContractInfoVo;
-import com.pusong.business.domain.vo.PsContractPayVo;
import com.pusong.business.enums.*;
import com.pusong.business.service.IPsContractInfoService;
import com.pusong.business.service.IPsContractPayService;
import com.pusong.business.service.IPsTaskService;
-import com.pusong.common.core.utils.MapstructUtils;
import com.pusong.common.core.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -98,15 +93,20 @@ public class PayContractApproverServiceImpl extends ApproverAbstractServiceImpl
@Override
public void fail(PsApproverRecord psApproverRecord) {
- //如果是修改不做处理
- if(StringUtils.isNotBlank(psApproverRecord.getUpdateData())){
+ PsContractPay update = new PsContractPay();
+ update.setId(Long.valueOf(psApproverRecord.getBusinessId()));
+ update.setPayStatus(PayStatusEnum.FILE.getCode());
+ payService.updateById(update);
- }else {//如果是新增则修改状态
- //修改回款记录状态
- PsContractPay update = new PsContractPay();
- update.setId(Long.valueOf(psApproverRecord.getBusinessId()));
- update.setPayStatus(PayStatusEnum.FILE.getCode());
- payService.updateById(update);
- }
+// //如果是修改不做处理
+// if(StringUtils.isNotBlank(psApproverRecord.getUpdateData())){
+//
+// }else {//如果是新增则修改状态
+// //修改回款记录状态
+// PsContractPay update = new PsContractPay();
+// update.setId(Long.valueOf(psApproverRecord.getBusinessId()));
+// update.setPayStatus(PayStatusEnum.FILE.getCode());
+// payService.updateById(update);
+// }
}
}
diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/SignApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/SignApproverServiceImpl.java
index 5ff4eed..8ee6ae9 100644
--- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/SignApproverServiceImpl.java
+++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/SignApproverServiceImpl.java
@@ -49,6 +49,8 @@ public class SignApproverServiceImpl extends ApproverAbstractServiceImpl {
bo.setSignStatus(CommonStatusEnum.SUCCESS.getCode());
bo.setContactPersonName(vo.getContactPersonName());
bo.setContractMain(vo.getContractMain());
+ bo.setFirstPartyType(vo.getPsCompanyInfoVo() == null ? 2 : 1);
+
//合同信息
PsContractInfo info = new PsContractInfo();
BeanUtils.copyProperties(vo, info);
diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/StopAccountServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/StopAccountServiceImpl.java
index d2bb1cb..6d9fc24 100644
--- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/StopAccountServiceImpl.java
+++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/StopAccountServiceImpl.java
@@ -2,6 +2,7 @@ package com.pusong.business.service.approver.impl;
import com.pusong.business.domain.PsApproverRecord;
import com.pusong.business.domain.bo.PsCompanyInfoBo;
+import com.pusong.business.enums.ApproverStatusEnum;
import com.pusong.business.enums.ApproverStepEnum;
import com.pusong.business.enums.ApproverTypeEnum;
import com.pusong.business.mapper.PsApproverRecordMapper;
@@ -38,6 +39,7 @@ public class StopAccountServiceImpl extends ApproverAbstractServiceImpl {
if (ApproverStepEnum.INIT.getCode().equals(psApproverRecord.getUpdateData())){
//转给总裁
psApproverRecord.setUpdateData(ApproverStepEnum.CW_APPLY.getCode());
+ psApproverRecord.setApproverStatus(ApproverStatusEnum.INIT.getCode());
return;
}
if (ApproverStepEnum.CW_APPLY.getCode().equals(psApproverRecord.getUpdateData())){
diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/UpdateContractApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/UpdateContractApproverServiceImpl.java
index 5f486b5..66a0c65 100644
--- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/UpdateContractApproverServiceImpl.java
+++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/UpdateContractApproverServiceImpl.java
@@ -1,31 +1,23 @@
package com.pusong.business.service.approver.impl;
import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.pusong.business.domain.PsApproverRecord;
import com.pusong.business.domain.PsContractInfo;
-import com.pusong.business.domain.PsTaskAppoint;
-import com.pusong.business.domain.PsTaskMain;
-import com.pusong.business.domain.bo.PsContractBusinessBo;
import com.pusong.business.domain.bo.PsContractInfoBo;
import com.pusong.business.domain.vo.PsContractInfoVo;
-import com.pusong.business.enums.*;
+import com.pusong.business.enums.ApproverTypeEnum;
+import com.pusong.business.enums.CommonStatusEnum;
import com.pusong.business.mapper.PsTaskAppointMapper;
import com.pusong.business.mapper.PsTaskMainMapper;
import com.pusong.business.service.IPsCompanyInfoService;
import com.pusong.business.service.IPsContractBusinessService;
import com.pusong.business.service.IPsContractInfoService;
import com.pusong.business.service.IPsTaskService;
-import com.pusong.common.core.utils.MapstructUtils;
import com.pusong.common.core.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
-import java.util.List;
-import java.util.stream.Collectors;
-
/**
* 修改合同审批处理类
*/
@@ -113,7 +105,7 @@ public class UpdateContractApproverServiceImpl extends ApproverAbstractServiceIm
PsContractInfoBo bo = JSON.parseObject(psApproverRecord.getUpdateData(),PsContractInfoBo.class);
PsContractInfo add = new PsContractInfo();
add.setContractCode(psApproverRecord.getContractCode());
- add.setContractStatus(bo.getContractStatusCode());
+ add.setContractStatus(bo.getBeforeContractStatus());
contractInfoService.updateByCode(add);
}
}
diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsApproverRecordServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsApproverRecordServiceImpl.java
index d1f5997..dcda9c9 100644
--- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsApproverRecordServiceImpl.java
+++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsApproverRecordServiceImpl.java
@@ -114,11 +114,11 @@ public class PsApproverRecordServiceImpl implements IPsApproverRecordService {
ApproverService service = container.getService(info.getBusinessType());
if(StringUtils.equals(ApproverStatusEnum.SUCCESS.getCode(),operate)){
- service.success(info);
info.setApproverStatus(ApproverStatusEnum.SUCCESS.getCode());
+ service.success(info);
}else if (StringUtils.equals(ApproverStatusEnum.FAIL.getCode(),operate)){
- service.fail(info);
info.setApproverStatus(ApproverStatusEnum.FAIL.getCode());
+ service.fail(info);
}else{
throw new ServiceException("操作失败:不支持的操作类型");
}
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 162ef2c..9618385 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
@@ -12,6 +12,7 @@ import com.pusong.business.domain.bo.PsCompanyQueryBo;
import com.pusong.business.domain.bo.PsContractBusinessBo;
import com.pusong.business.domain.vo.PsCompanyInfoVo;
import com.pusong.business.domain.vo.PsContractBusinessVo;
+import com.pusong.business.enums.ApproverStepEnum;
import com.pusong.business.enums.ApproverTypeEnum;
import com.pusong.business.mapper.*;
import com.pusong.business.service.IPsCompanyInfoService;
@@ -333,10 +334,14 @@ public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService {
.eq("pcc.contract_code", controctCode);
List list = baseMapper.selectServiceCompanyList(wq);
for (PsCompanyInfoVo psCompanyInfoVo : list) {
- psCompanyInfoVo.setStartServiceDate(psCompanyInfoVo.getBusinessVoList().get(0).getStartDate());
- psCompanyInfoVo.setEndServiceDate(psCompanyInfoVo.getBusinessVoList().get(0).getEndDate());
- psCompanyInfoVo.setIsOld(psCompanyInfoVo.getBusinessVoList().get(0).getIsOld());
- psCompanyInfoVo.setIsProxy(psCompanyInfoVo.getBusinessVoList().get(0).getIsProxy());
+ for (PsContractBusinessVo psContractBusinessVo : psCompanyInfoVo.getBusinessVoList()) {
+ if ("1".equals(psContractBusinessVo.getIsProxy())){
+ psCompanyInfoVo.setStartServiceDate(psContractBusinessVo.getStartDate());
+ psCompanyInfoVo.setEndServiceDate(psContractBusinessVo.getEndDate());
+ psCompanyInfoVo.setIsOld(psContractBusinessVo.getIsOld());
+ psCompanyInfoVo.setIsProxy(psContractBusinessVo.getIsProxy());
+ }
+ }
}
return list;
}
@@ -353,10 +358,15 @@ public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService {
.in("pcc.contract_code", controctCodes);
List list = baseMapper.selectServiceCompanyList(wq);
for (PsCompanyInfoVo psCompanyInfoVo : list) {
- psCompanyInfoVo.setStartServiceDate(psCompanyInfoVo.getBusinessVoList().get(0).getStartDate());
- psCompanyInfoVo.setEndServiceDate(psCompanyInfoVo.getBusinessVoList().get(0).getEndDate());
- psCompanyInfoVo.setIsOld(psCompanyInfoVo.getBusinessVoList().get(0).getIsOld());
- psCompanyInfoVo.setIsProxy(psCompanyInfoVo.getBusinessVoList().get(0).getIsProxy());
+ for (PsContractBusinessVo psContractBusinessVo : psCompanyInfoVo.getBusinessVoList()) {
+ if ("1".equals(psContractBusinessVo.getIsProxy())){
+ psCompanyInfoVo.setStartServiceDate(psContractBusinessVo.getStartDate());
+ psCompanyInfoVo.setEndServiceDate(psContractBusinessVo.getEndDate());
+ psCompanyInfoVo.setIsOld(psContractBusinessVo.getIsOld());
+ psCompanyInfoVo.setIsProxy(psContractBusinessVo.getIsProxy());
+ }
+ }
+
}
return list;
}
@@ -369,6 +379,6 @@ public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService {
public void terminationService(Long serviceCompanyId) {
//发起审批
ApproverService service = container.getService(ApproverTypeEnum.STOPACCOUNT.getCode());
- service.apply(serviceCompanyId + "", "",null, "1");
+ service.apply(serviceCompanyId + "", "",null, ApproverStepEnum.INIT.getCode());
}
}
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 8088e2b..0027ba8 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
@@ -132,10 +132,12 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
}
for (PsContractBusinessBo psContractBusinessBo : companyInfoBo.getBusinessList()) {
- psContractBusinessBo.setStartDate(companyInfoBo.getStartServiceDate());
- psContractBusinessBo.setEndDate(companyInfoBo.getEndServiceDate());
- psContractBusinessBo.setIsOld(companyInfoBo.getIsOld());
- psContractBusinessBo.setIsProxy(companyInfoBo.getIsProxy());
+ if (psContractBusinessBo.getBusinessType().equals("2")){
+ psContractBusinessBo.setStartDate(companyInfoBo.getStartServiceDate());
+ psContractBusinessBo.setEndDate(companyInfoBo.getEndServiceDate());
+ psContractBusinessBo.setIsOld(companyInfoBo.getIsOld());
+ psContractBusinessBo.setIsProxy(companyInfoBo.getIsProxy());
+ }
}
}
@@ -210,6 +212,22 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
item.setBusinessAmount(mony);
}
});
+
+
+ //插入服务公司
+ for (PsCompanyInfoBo companyInfoBo : bo.getServiceCompanyInfoList()){
+ companyInfoBo.setCompanyType("2");
+ companyInfoBo.setCustomId(bo.getCustomId());
+ for (PsContractBusinessBo psContractBusinessBo : companyInfoBo.getBusinessList()) {
+ if (psContractBusinessBo.getBusinessType().equals("2")){
+ psContractBusinessBo.setStartDate(companyInfoBo.getStartServiceDate());
+ psContractBusinessBo.setEndDate(companyInfoBo.getEndServiceDate());
+ psContractBusinessBo.setIsOld(companyInfoBo.getIsOld());
+ psContractBusinessBo.setIsProxy(companyInfoBo.getIsProxy());
+ }
+ }
+ }
+
BigDecimal sum = list.stream().map(PsContractBusinessBo::getBusinessAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
add.setContractAmount(sum);//合同总金额
return makePdf(add,bo,false);
@@ -353,10 +371,11 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
//发起审批
ApproverService service = container.getService(ApproverTypeEnum.UPDATE.getCode());
service.apply(updateBo.getContractCode(),updateBo.getContractCode(),updateBo.getUpdateDesc(), JSON.toJSONString(updateBo));
- PsContractInfo info = new PsContractInfo();
- info.setContractCode(updateBo.getContractCode());
- info.setContractStatus(ContractStatusEnum.UPDATEAPPROVER.getCode());
- updateByCode(info);
+// 去掉了修改审批中状态 2024/10/17
+// PsContractInfo info = new PsContractInfo();
+// info.setContractCode(updateBo.getContractCode());
+// info.setContractStatus(ContractStatusEnum.UPDATEAPPROVER.getCode());
+// updateByCode(info);
return true;
}
@@ -876,7 +895,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
qw.ne( StringUtils.isNotBlank(bo.getContractStatus()),"info.is_cancel", CommonStatusEnum.SUCCESS.getCode());
qw.in( CollectionUtils.isNotEmpty(bo.getInContractStatus()),"info.contract_status", bo.getInContractStatus());
qw.notIn( CollectionUtils.isNotEmpty(bo.getNotInContractStatus()),"info.contract_status", bo.getNotInContractStatus());
- qw.eq( StringUtils.isNotBlank(bo.getContractCode()),"info.contract_code", bo.getContractCode());
+ qw.like( StringUtils.isNotBlank(bo.getContractCode()),"info.contract_code", bo.getContractCode());
qw.eq( StringUtils.isNotBlank(bo.getIsDue()),"info.is_due", bo.getIsDue());
//客户表条件
qw.like( StringUtils.isNotBlank(bo.getCustomName()),"cus.custom_name", bo.getCustomName());
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 07db075..337f31c 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
@@ -2,36 +2,39 @@ package com.pusong.business.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import com.pusong.business.domain.*;
-import com.pusong.business.domain.vo.PsContractInfoVo;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.pusong.business.domain.PsContractPay;
+import com.pusong.business.domain.bo.PsContractPayBo;
+import com.pusong.business.domain.vo.PsContractPayVo;
import com.pusong.business.domain.vo.PsRefundVo;
-import com.pusong.business.enums.*;
+import com.pusong.business.enums.ApproverTypeEnum;
+import com.pusong.business.enums.PayBuinessStatusEnum;
+import com.pusong.business.enums.PayStatusEnum;
+import com.pusong.business.mapper.PsContractPayMapper;
import com.pusong.business.service.IPsApproverRecordService;
+import com.pusong.business.service.IPsContractPayService;
import com.pusong.business.service.approver.ApproverContainer;
import com.pusong.business.service.approver.ApproverService;
import com.pusong.common.core.exception.ServiceException;
import com.pusong.common.core.utils.MapstructUtils;
import com.pusong.common.core.utils.StringUtils;
-import com.pusong.common.mybatis.core.page.TableDataInfo;
import com.pusong.common.mybatis.core.page.PageQuery;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.pusong.common.mybatis.core.page.TableDataInfo;
import com.pusong.system.domain.vo.SysOssVo;
import com.pusong.system.service.ISysOssService;
import jakarta.annotation.Resource;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
-import com.pusong.business.domain.bo.PsContractPayBo;
-import com.pusong.business.domain.vo.PsContractPayVo;
-import com.pusong.business.mapper.PsContractPayMapper;
-import com.pusong.business.service.IPsContractPayService;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.math.BigDecimal;
import java.math.RoundingMode;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
/**
* 合同回款记录Service业务层处理
@@ -186,8 +189,10 @@ public class PsContractPayServiceImpl implements IPsContractPayService {
.like(StringUtils.isNotBlank(companyName),"com.company_name",companyName)
.like(StringUtils.isNotBlank(mobile),"cus.custom_mobile",mobile)
.like(StringUtils.isNotBlank(name),"cus.custom_name",name)
- .in("pay.pay_status",List.of(PayStatusEnum.SUCCESS.getCode(),PayStatusEnum.PAYING.getCode()))
- .eq("pay.business_type","2");
+ .in("pay.pay_status",List.of(PayStatusEnum.SUCCESS.getCode(), PayStatusEnum.PAYING.getCode()))
+ .eq("pay.business_type","2")
+ .orderByDesc("pay.create_time")
+ ;
Page list = baseMapper.queryRefundList(pageQuery.build(), qw);
list.getRecords().forEach(info->{
List payList = queryListByContractCode(info.getContractCode(),null,PayStatusEnum.SUCCESS);
@@ -199,7 +204,7 @@ public class PsContractPayServiceImpl implements IPsContractPayService {
.map(PsContractPayVo::getMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal pay = netPay.subtract(returnMoney);
//已付金额(收款-退款)
- info.setPayMoney(pay.compareTo(BigDecimal.ZERO)>=0?pay:BigDecimal.ZERO);
+ info.setPayMoney(pay.compareTo(BigDecimal.ZERO) >= 0 ? pay : BigDecimal.ZERO);
});
return TableDataInfo.build(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 3702f77..8dc572d 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
@@ -225,7 +225,7 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService {
//关联客户信息表条件
qw.like(StringUtils.isNotBlank(bo.getCustomIntroducerName()), "psinfo.custom_name", bo.getCustomIntroducerName());//介绍人姓名
//公司名称
- qw.exists(StringUtils.isNotBlank(bo.getCompanyName()), "select 1 from ps_company_info com where info.id = com.custom_id and com.company_name like '%"+bo.getCompanyName()+"%'");
+ qw.exists(StringUtils.isNotBlank(bo.getCompanyName()), "select 1 from ps_company_info com where info.id = com.custom_id and company_type = '1' and del_flag = '0' and com.company_name like '%"+bo.getCompanyName()+"%'");
qw.exists(bo.getHaveContract() != null && bo.getHaveContract() == 1,"SELECT 1 FROM ps_contract_info psci WHERE psci.custom_id = info.id and psci.contract_status != '10' and psci.is_cancel != '03'");
qw.notExists(bo.getHaveContract() != null && bo.getHaveContract() == 0,"SELECT 1 FROM ps_contract_info psci WHERE psci.custom_id = info.id and psci.contract_status != '10' and psci.is_cancel != '03'");
qw.orderByDesc("info.create_time");//创建时间排序
@@ -428,9 +428,9 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService {
}
Map> id_callbackMap = new HashMap<>();
+ List ids = list.getRecords().stream().map(PsCustomerRecordVo::getId).collect(Collectors.toList());
//已完成客户的回访记录
if (queryBo.getType() != null && queryBo.getType() == 2) {
- List ids = list.getRecords().stream().map(PsCustomerRecordVo::getId).collect(Collectors.toList());
//查询回访记录详细
List callbacks = callbackMapper.selectVoList(Wrappers.lambdaQuery()
.in(PsCustomCallback::getCustomId, ids)
@@ -444,12 +444,34 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService {
});
}
}
+
+ //查询报价金额详细
+ List pices = priceMapper.selectVoList(Wrappers.lambdaQuery()
+ .in(PsCustomPrice::getCustomId, ids).eq(PsCustomPrice::getDelFlag,0));
+ Map> id_piceMap = new HashMap<>();
+ if(CollectionUtils.isNotEmpty(pices)){
+ //分组
+ id_piceMap = pices.stream().collect((Collectors.groupingBy(PsCustomPriceVo::getCustomId)));
+ //排序
+ id_piceMap.entrySet().forEach(entry->{
+ entry.setValue(entry.getValue().stream().sorted(Comparator.comparingInt(PsCustomPriceVo::getPriceBatch)).collect(Collectors.toList()));
+ });
+ }
+
+
for (PsCustomerRecordVo item : list.getRecords()){
//免费工单审批
item.setFreeFailDesc(approverRecordService.getLastFail(item.getContractCode(), item.getContractCode(), List.of(ApproverTypeEnum.FREE.getCode())));
//装填回访记录vo
item.setPsCustomCallbackVo(id_callbackMap.get(item.getId()));
+ //装填报价金额vo
+ item.setPsCustomPriceVo(id_piceMap.get(item.getId()));
+ //报价金额
+ if(CollectionUtils.isNotEmpty(item.getPsCustomPriceVo())){
+ item.setPrice(item.getPsCustomPriceVo().stream().map(PsCustomPriceVo::getServicePrice).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+ }
}
+
return TableDataInfo.build(list);
}
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 15243a5..e90dfb2 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
@@ -132,8 +132,8 @@ public class PsTaskServiceImpl implements IPsTaskService {
if (vo.getServiceCompanyId() != null){
// serviceCompanyIdList.add(vo.getServiceCompanyId());
// contractCode = vo.getContractCode();
- PsCompanyInfoVo psCompanyInfoVo = companyInfoService.queryVoAndProxyById(vo.getServiceCompanyId(), vo.getContractCode());
- vo.setPsCompanySerivceVo(psCompanyInfoVo);
+// PsCompanyInfoVo psCompanyInfoVo = companyInfoService.queryVoAndProxyById(vo.getServiceCompanyId(), vo.getContractCode());
+// vo.setPsCompanySerivceVo(psCompanyInfoVo);
}
if (vo.getTaskType().equals("2")){
vo.setBusinessTypeName(vo.getBusinessType());
@@ -141,13 +141,13 @@ public class PsTaskServiceImpl implements IPsTaskService {
}
//装填服务公司信息
- if (!serviceCompanyIdList.isEmpty()){
- List serviceCompany = companyInfoService.queryVoAndProxyByIds(serviceCompanyIdList, contractCode);
- Map serviceCompanyMap = serviceCompany.stream().collect(Collectors.toMap(PsCompanyInfoVo::getId, v -> v));
- for (PsTaskMainVo vo : page.getRecords()) {
- vo.setPsCompanySerivceVo(serviceCompanyMap.get(vo.getServiceCompanyId()));
- }
- }
+// if (!serviceCompanyIdList.isEmpty()){
+// List serviceCompany = companyInfoService.queryVoAndProxyByIds(serviceCompanyIdList, contractCode);
+// Map serviceCompanyMap = serviceCompany.stream().collect(Collectors.toMap(PsCompanyInfoVo::getId, v -> v));
+// for (PsTaskMainVo vo : page.getRecords()) {
+// vo.setPsCompanySerivceVo(serviceCompanyMap.get(vo.getServiceCompanyId()));
+// }
+// }
}
/**
@@ -539,8 +539,8 @@ public class PsTaskServiceImpl implements IPsTaskService {
lqw.like(StringUtils.isNotBlank(bo.getMobile()), "com.legal_person_phone", bo.getMobile());//法人手机号
lqw.like(StringUtils.isNotBlank(bo.getIdNo()), "com.legal_person_idcard", bo.getIdNo());//法人身份证
lqw.like(StringUtils.isNotBlank(bo.getName()), "com.legal_person_name", bo.getName());//法人姓名
- lqw.like(StringUtils.isNotBlank(bo.getCustomName()), "cus.custom_name", bo.getCustomName());//客户姓名
- lqw.like(StringUtils.isNotBlank(bo.getCustomMobile()), "cus.custom_mobile", bo.getCustomMobile());//客户电话
+ lqw.like(StringUtils.isNotBlank(bo.getCustomName()), "com.contact_person_name", bo.getCustomName());//客户姓名
+ lqw.like(StringUtils.isNotBlank(bo.getCustomMobile()), "com.contact_person_phone", bo.getCustomMobile());//客户电话
lqw.eq(StringUtils.isNotBlank(bo.getCustomScene()), "con.custom_scene", bo.getCustomScene());//是否到达现场
lqw.eq(StringUtils.isNotBlank(bo.getIsProxy()), "con.is_proxy", bo.getIsProxy());//是否代账
diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsApproverRecordMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsApproverRecordMapper.xml
index a80927e..60dcbdc 100644
--- a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsApproverRecordMapper.xml
+++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsApproverRecordMapper.xml
@@ -21,6 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
, info.contact_person_name
, info.contact_person_phone
, info.contact_person_idcard
+ , info.apply_date contact_apply_date
, com.id company_id
, com.company_name com_company_name
, com.legal_person_name com_legal_person_name
@@ -35,6 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
, (select GROUP_CONCAT(business.business_type SEPARATOR ',')
from ps_contract_business business where business.contract_code = info.contract_code) as business_type_name
, info.contract_status
+ , info.is_due
, (select IFNULL(sum(pa.money),0) from ps_contract_pay pa where pa.pay_status = 1 and pa.business_type = 1 and pa.contract_code = info.contract_code
)-(select IFNULL(sum(pay.money),0) from ps_contract_pay pay where pay.pay_status = 1 and pay.business_type = 2 and pay.contract_code = info.contract_code)
as pay_money
@@ -49,9 +51,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
,pay.pay_desc pay_pay_desc
from ps_approver_record app
- left join ps_contract_info info on app.contract_code = info.contract_code and app.del_flag = 0
- left join ps_company_info com on info.company_id = com.id
- left join ps_custom_info cus on cus.id = info.custom_id
+ left join ps_contract_info info on app.contract_code = info.contract_code and app.del_flag = 0
+ left join ps_company_info com on info.company_id = com.id
+ left join ps_custom_info cus on cus.id = info.custom_id
inner join ps_contract_pay pay on pay.id = app.business_id
diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsCustomInfoMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsCustomInfoMapper.xml
index b4b9a3b..697deab 100644
--- a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsCustomInfoMapper.xml
+++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsCustomInfoMapper.xml
@@ -44,6 +44,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
custom.create_time,
custom.custom_status,
custom.custom_source,
+ custom.custom_level,
(select pci.custom_name from ps_custom_info pci where pci.id = custom.custom_introducer limit 0,1) custom_introducer,
con.contract_code,
custom.custom_name,
@@ -67,6 +68,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
con.finish_date,
con.confirm_ossid,
(select par.approver_status from ps_approver_record par where par.contract_code = con.contract_code and business_type = 'free' order by id desc limit 0,1) approver_status
+ ,EXISTS(SELECT 1 FROM ps_contract_info coninfo WHERE coninfo.custom_id = custom.id and coninfo.contract_status != '10' and coninfo.is_cancel != '03') have_contract
from
ps_custom_info custom
left join
diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMainMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMainMapper.xml
index 6531dc3..d02dcc6 100644
--- a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMainMapper.xml
+++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMainMapper.xml
@@ -36,17 +36,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
con.is_due con_is_due,
con.contract_amount con_contract_amount,
con.custom_scene con_custom_scene,
- con.custom_manager con_custom_manager,
- usr.nick_name con_custom_manager_name,
con.sign_desc con_sign_desc,
com.id com_id,
- com.company_adress com_company_adress,
- com.company_name com_company_name,
- com.legal_person_name com_legal_person_name,
- com.legal_person_idcard com_legal_person_idcard,
- com.legal_person_phone com_legal_person_phone,
- com.customer_num com_customer_num,
- com.customer_cert com_customer_cert,
+ com.company_adress scom_company_adress,
+ com.company_name scom_company_name,
+ com.legal_person_name scom_legal_person_name,
+ com.legal_person_idcard scom_legal_person_idcard,
+ com.legal_person_phone scom_legal_person_phone,
+ com.contact_person_name scom_contact_person_name,
+ com.contact_person_phone scom_contact_person_phone,
+ com.customer_num scom_customer_num,
+ com.customer_cert scom_customer_cert,
+ usr.nick_name scom_custom_manager_name,
cus.id cus_id,
cus.custom_name cus_custom_name ,
cus.custom_mobile cus_custom_mobile,
@@ -63,9 +64,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
(select GROUP_CONCAT(business.business_type SEPARATOR ',') from ps_contract_business business where business.contract_code = con.contract_code and business.company_id = main.service_company_id and business.del_flag = '0') as business_type_name
from ps_task_main main
left join ps_contract_info con on main.contract_code = con.contract_code
- left join ps_company_info com on con.company_id = com.id
- left join ps_custom_info cus on con.custom_id = cus.id
- left join sys_user usr on con.custom_manager = usr.user_id
+ left join ps_company_info com on main.service_company_id = com.id
+ left join ps_custom_info cus on com.custom_id = cus.id
+ left join sys_user usr on cus.custom_manager = usr.user_id