diff --git a/doc/report.ftl b/doc/report.ftl
index b721c7c..3bef52e 100644
--- a/doc/report.ftl
+++ b/doc/report.ftl
@@ -78,7 +78,12 @@
<#list item.detailBos as detail>
${detail.businessProjectLabel}
<#if detail.extentInfo?? && detail.extentInfo != "">
- :${detail.extentInfo}
+ <#assign extenInfo = detail.extentInfo?split("$")>
+ :
+ <#list extenInfo as exten>
+ ${exten?split("#")[1]}
+ <#if exten_has_next>,#if>
+ #list>
#if>
<#if detail.amount??>
-金额:${detail.amount}
diff --git a/pusong-common/pusong-common-doc/src/main/java/com/pusong/common/doc/util/NumBerTool.java b/pusong-common/pusong-common-doc/src/main/java/com/pusong/common/doc/util/NumBerTool.java
index 206ed87..d370b6f 100644
--- a/pusong-common/pusong-common-doc/src/main/java/com/pusong/common/doc/util/NumBerTool.java
+++ b/pusong-common/pusong-common-doc/src/main/java/com/pusong/common/doc/util/NumBerTool.java
@@ -1,5 +1,7 @@
package com.pusong.common.doc.util;
+import com.pusong.common.core.utils.StringUtils;
+
public class NumBerTool {
private static final String[] NUMBERS = {"零", "壹", "贰", "叁", "肆", "伍", "陆",
"柒", "捌", "玖"};
@@ -102,7 +104,7 @@ public class NumBerTool {
chineseDecimal.append(decimals[i] == 0 ? ""
: (NUMBERS[decimals[i]] + DUNIT[i]));
}
- if(decimals.length == 0){
+ if(StringUtils.isBlank(chineseDecimal)){
chineseDecimal.append("整");
}
return chineseDecimal.toString();
diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractOperateController.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractOperateController.java
index 2844d68..fa9ad37 100644
--- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractOperateController.java
+++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractOperateController.java
@@ -71,9 +71,9 @@ public class PsContractOperateController extends BaseController {
*/
@SaCheckPermission("business:contractOperate:addReturnRecord")
@PostMapping(value = "/addReturnRecord", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
- public R addReturnRecord(@RequestPart("files") List files,
+ public R addReturnRecord(@RequestPart(value = "files" ,required = false) List files,
@Validated(AddGroup.class) PsContractPayBo psContractPayBo)throws Exception {
- payService.addPay( files, psContractPayBo);
+ payService.returnPay( files, psContractPayBo);
return R.ok();
}
diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractPayBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractPayBo.java
index 81a5b08..33b9e3f 100644
--- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractPayBo.java
+++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractPayBo.java
@@ -67,7 +67,7 @@ public class PsContractPayBo {
private String payMode;
/**
- * 收款主体
+ * 收款主体(退款时对公账号)
*/
private String gathMain;
@@ -78,12 +78,12 @@ public class PsContractPayBo {
// private String payCertification;
/**
- * 回款备注
+ * 回款/退款备注
*/
private String payDesc;
/**
- * 回款备注
+ * 修改回款时的备注 :回款备注
*/
private String updateDesc;
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 0a24da1..cfa9a63 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
@@ -194,4 +194,18 @@ public class PsContractInfoVo implements Serializable {
* 是否作废 02审批中03是04否
*/
private String isCancel;
+ /**
+ * 首次签约日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date firstApplyDate;
+
+ /**
+ * 合作年限
+ */
+ private String conTime;
+ /**
+ * 发票ossid
+ */
+ private String invoiceOssid;
}
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 56e8f25..32509c3 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
@@ -53,7 +53,7 @@ public abstract class ApproverAbstractServiceImpl implements ApproverService {
public void apply(String bussinessId,String contractCode, String desc, Object updateData){
List list = approverRecordMapper.selectList(Wrappers.lambdaQuery().eq(PsApproverRecord::getDelFlag, "0")
.eq(PsApproverRecord::getBusinessId, bussinessId).eq(PsApproverRecord::getBusinessType,approverType())
- .ne(PsApproverRecord::getApproverStatus, ApproverStatusEnum.INIT.getCode()));
+ .eq(PsApproverRecord::getApproverStatus, ApproverStatusEnum.INIT.getCode()));
if(CollectionUtils.isNotEmpty(list)){
throw new ServiceException("已存在同类型审批,请勿重复提交");
}
@@ -81,15 +81,20 @@ public abstract class ApproverAbstractServiceImpl implements ApproverService {
*/
@Override
public Page queryList(PsApproverRecordBo bo, PageQuery pageQuery){
- QueryWrapper lqw = Wrappers.query().eq("app.business_type",approverType());
+ QueryWrapper lqw = Wrappers.query().eq("app.business_type",approverType())
+ .eq(bo.getId()!=null,"app.id",bo.getId())
+ .orderByAsc("app.approver_status").orderByAsc("app.approver_date");
Page res = recordMapper.selectPageApproverList(pageQuery.build(), lqw);
if(CollectionUtils.isNotEmpty(res.getRecords())){
res.getRecords().forEach(item->{
item.setResidualMoney(item.getContractAmount().subtract(item.getPayMoney()));
- //装填回款记录
+ //装填回款周期
List payList = queryListByContractCode(bo.getBusinessId(),null, PayStatusEnum.SUCCESS);
- item.setPeriod(DateUtils.calWorkDate(payList.get(0).getPayDate(),payList.get(payList.size()-1).getPayDate()) + 1);
- item.setUpdateDataObject(JSON.parseObject(item.getUpdateData()));
+ if(CollectionUtils.isNotEmpty(payList)){
+ item.setPeriod(DateUtils.calWorkDate(payList.get(0).getPayDate(),payList.get(payList.size()-1).getPayDate()) + 1);
+ item.setUpdateDataObject(JSON.parseObject(item.getUpdateData()));
+ }
+
});
}
return res;
diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PublicApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PublicApproverServiceImpl.java
index d298c9e..0004234 100644
--- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PublicApproverServiceImpl.java
+++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PublicApproverServiceImpl.java
@@ -20,6 +20,7 @@ import com.pusong.business.mapper.PsApproverRecordMapper;
import com.pusong.business.mapper.PsCompanyInfoMapper;
import com.pusong.business.mapper.PsContractPayMapper;
import com.pusong.business.mapper.PsCustomInfoMapper;
+import com.pusong.common.core.service.UserService;
import com.pusong.common.core.utils.DateUtils;
import com.pusong.common.mybatis.core.page.PageQuery;
import jakarta.annotation.Resource;
@@ -49,6 +50,7 @@ public class PublicApproverServiceImpl extends ApproverAbstractServiceImpl {
private PsApproverRecordMapper recordMapper;
@Resource
private final PsCompanyInfoMapper companyInfoMapper;
+ private final UserService userService;
/**
* 1 审批成功 退款审批成功
* @param psApproverRecord 神瀑类
@@ -67,6 +69,10 @@ public class PublicApproverServiceImpl extends ApproverAbstractServiceImpl {
*/
@Override
public void fail(PsApproverRecord psApproverRecord) {
+ PsCustomInfo info = customInfoMapper.selectById(Long.valueOf(psApproverRecord.getBusinessId()));
+ info.setCustomStatus(CustomerStatusEnum.PUBLIC.getCode());
+ info.setCustomManager(Long.valueOf(psApproverRecord.getUpdateData()));
+ customInfoMapper.updateById(info);
}
/**
@@ -77,7 +83,9 @@ public class PublicApproverServiceImpl extends ApproverAbstractServiceImpl {
*/
@Override
public Page queryList(PsApproverRecordBo bo, PageQuery pageQuery){
- QueryWrapper lqw = Wrappers.query().eq("app.business_type",approverType());
+ QueryWrapper lqw = Wrappers.query().eq("app.business_type",approverType())
+ .eq(bo.getId()!=null,"app.id",bo.getId())
+ .orderByAsc("app.approver_status").orderByAsc("app.approver_date");;
Page res = recordMapper.selectPagePublicList(pageQuery.build(), lqw);
if(CollectionUtils.isEmpty(res.getRecords())){
return res;
@@ -97,7 +105,7 @@ public class PublicApproverServiceImpl extends ApproverAbstractServiceImpl {
});
}
for (PsApproverRecordVo info : res.getRecords()) {
- info.setCompanyInfoList(id_companyMap.get(info.getCompanyInfoList()));
+ info.setCompanyInfoList(id_companyMap.get(info.getCustomId()));
//最早的公司名称
if(CollectionUtils.isNotEmpty(info.getCompanyInfoList())){
//找到最近修改的公司名称
@@ -107,6 +115,8 @@ public class PublicApproverServiceImpl extends ApproverAbstractServiceImpl {
}else{
info.setCompanyNum(0);
}
+ //认领人id转姓名
+ info.setUpdateData(userService.selectNicknameById(Long.valueOf(info.getUpdateData())));
}
return res;
}
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 216ccb1..581f3de 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
@@ -7,10 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pusong.business.domain.PsApproverRecord;
import com.pusong.business.domain.PsContractInfo;
-import com.pusong.business.domain.bo.PsApproverRecordBo;
-import com.pusong.business.domain.bo.PsContractBusinessBo;
-import com.pusong.business.domain.bo.PsContractBusinessDetailBo;
-import com.pusong.business.domain.bo.PsContractInfoBo;
+import com.pusong.business.domain.bo.*;
import com.pusong.business.domain.vo.PsApproverRecordVo;
import com.pusong.business.domain.vo.PsContractInfoVo;
import com.pusong.business.enums.ApproverTypeEnum;
@@ -57,7 +54,9 @@ public class SignApproverServiceImpl extends ApproverAbstractServiceImpl {
//合同信息
PsContractInfo info = new PsContractInfo();
BeanUtils.copyProperties(vo,info);
-
+ PsCompanyInfoBo companyInfo = new PsCompanyInfoBo();
+ BeanUtils.copyProperties(vo.getPsCompanyInfoVo(), companyInfo);
+ bo.setCompanyInfoBo(companyInfo);
List businessBos = new ArrayList<>();
vo.getBusinessVoList().forEach(item->{
List detailBos = new ArrayList<>();
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 d0ce439..4e6816e 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
@@ -366,6 +366,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
SysDictData main = dictDataService.selectDict("contract_main", add.getContractMain());
bo.getBusinessList().forEach(item->{
item.setBusinessTypeName(dictDataService.selectDictLabel("contract_type",item.getBusinessType()));
+// item.getDetailBos().forEach(it->{it.getExtentInfo().});
});
try{
//生成合同pdf
@@ -520,6 +521,12 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
//包含最后一天
vo.setPeriod(DateUtils.calWorkDate(payList.get(0).getPayDate(),payList.get(payList.size()-1).getPayDate()) + 1);
}
+ Date date = new Date();
+ Date startDate = vo.getFirstApplyDate();
+ int year = (date.getYear() - startDate.getYear());
+ int month = (date.getMonth() - startDate.getMonth());
+ int day = (date.getDate() - startDate.getDate());
+ vo.setConTime((year>0?year+"年":"")+(month>0?month+"月":"")+(day>0?day+"天":"") );
//todo 签章未通过时查询未通过的原因
return vo;
}
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 5c34719..b68a783 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
@@ -112,7 +112,7 @@ public class PsContractPayServiceImpl implements IPsContractPayService {
baseMapper.insert(pay);
//发起审批
ApproverService service = container.getService(ApproverTypeEnum.RETURN.getCode());
- service.apply(pay.getId()+"",pay.getContractCode(),null, null);
+ service.apply(pay.getId()+"",pay.getContractCode(),payBo.getPayDesc(), pay.getMoney().stripTrailingZeros());
}
/**
* 根据主键id查询回款记录
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 e09a184..5e28b2c 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
@@ -93,11 +93,13 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService {
@Override
public TableDataInfo queryPageList(PsCustomInfoBo bo, PageQuery pageQuery) {
//查询客户基本信息
- bo.setNotCustomStatus(List.of(CustomerStatusEnum.PUBLIC.getCode()));
+
bo.setBlack(CommonStatusEnum.N.getCode());
if(bo.getType() == null || bo.getType() == 1){//任务列表
+ bo.setNotCustomStatus(CustomerStatusEnum.getPublic());
}else if(bo.getType() == 2){//黑名单
bo.setBlack(CommonStatusEnum.Y.getCode());
+ bo.setNotCustomStatus(CustomerStatusEnum.getPublic());
}else if(bo.getType() == 3){//公海
bo.setInCustomStatus(CustomerStatusEnum.getPublic());
}
@@ -410,6 +412,7 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService {
* 主动认领
* @param customerId 客户id
*/
+ @Transactional
public void claim(Long customerId){
PsCustomInfo psCustomInfo = baseMapper.selectById(customerId);
psCustomInfo.setCustomStatus(CustomerStatusEnum.CLAIMAPPROVER.getCode());
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 44b1e8d..08d6d56 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
@@ -16,8 +16,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
, info.contract_amount
, (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,
-
+ as pay_money
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
@@ -31,9 +30,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
, cus.custom_introducer
, cus.custom_name
, cus.custom_mobile
- , cus.custom_id
+ , cus.id custom_id
from ps_approver_record app
- left join ps_custom_info cus on app.business_id = info.custom_id
+ left join ps_custom_info cus on app.business_id = cus.id
${ew.getCustomSqlSegment}
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 c4bd60f..fe4621d 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
@@ -13,6 +13,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select info.*,
+ (select apply_date from ps_contract_info pci where pci.custom_id = info.custom_id order by pci.apply_date limit 0,1)
+ as first_apply_date,
com.id com_id,
com.company_name com_company_name,
com.company_adress com_company_adress,
@@ -23,7 +25,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
cus.id cus_id,
cus.custom_name cus_custom_name ,
cus.custom_mobile cus_custom_mobile,
- us.nick_name custom_manager_name
+ us.nick_name custom_manager_name,
+ (select ptm.invoice from ps_task_main ptm where ptm.task_type = '3'
+ and ptm.contract_code = info.contract_code and ptm.task_status = 30 limit 0,1) as invoiceOssid
+
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
diff --git a/pusong-modules/pusong-system/src/main/java/com/pusong/system/controller/system/SysUserController.java b/pusong-modules/pusong-system/src/main/java/com/pusong/system/controller/system/SysUserController.java
index cdddb07..59b3d15 100644
--- a/pusong-modules/pusong-system/src/main/java/com/pusong/system/controller/system/SysUserController.java
+++ b/pusong-modules/pusong-system/src/main/java/com/pusong/system/controller/system/SysUserController.java
@@ -65,6 +65,13 @@ public class SysUserController extends BaseController {
public TableDataInfo list(SysUserBo user, PageQuery pageQuery) {
return userService.selectPageUserList(user, pageQuery);
}
+ /**
+ * 获取登陆人下的用户列表
+ */
+ @GetMapping("/userlist")
+ public R> userlist() {
+ return R.ok(userService.selectUserList());
+ }
/**
* 导出用户列表
diff --git a/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/ISysUserService.java b/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/ISysUserService.java
index c6a7819..8fb0d93 100644
--- a/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/ISysUserService.java
+++ b/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/ISysUserService.java
@@ -17,7 +17,7 @@ public interface ISysUserService {
TableDataInfo selectPageUserList(SysUserBo user, PageQuery pageQuery);
-
+ List selectUserList();
/**
* 根据条件分页查询用户列表
*
diff --git a/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysUserServiceImpl.java b/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysUserServiceImpl.java
index 0f61dab..028cd60 100644
--- a/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysUserServiceImpl.java
+++ b/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysUserServiceImpl.java
@@ -70,6 +70,15 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
return TableDataInfo.build(page);
}
+ /**
+ * 获取当前登录人下的用户列表
+ * @return
+ */
+ @Override
+ public List selectUserList() {
+ return baseMapper.selectUserList( this.buildQueryWrapper(new SysUserBo()));
+ }
+
/**
* 根据条件分页查询用户列表
*