生成合同
This commit is contained in:
parent
60610275f7
commit
78c917f69e
@ -78,7 +78,12 @@
|
||||
<#list item.detailBos as detail>
|
||||
<p class="content" style="text-indent:32pt">${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}
|
||||
|
@ -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();
|
||||
|
@ -71,9 +71,9 @@ public class PsContractOperateController extends BaseController {
|
||||
*/
|
||||
@SaCheckPermission("business:contractOperate:addReturnRecord")
|
||||
@PostMapping(value = "/addReturnRecord", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||
public R<Void> addReturnRecord(@RequestPart("files") List<MultipartFile> files,
|
||||
public R<Void> addReturnRecord(@RequestPart(value = "files" ,required = false) List<MultipartFile> files,
|
||||
@Validated(AddGroup.class) PsContractPayBo psContractPayBo)throws Exception {
|
||||
payService.addPay( files, psContractPayBo);
|
||||
payService.returnPay( files, psContractPayBo);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -53,7 +53,7 @@ public abstract class ApproverAbstractServiceImpl implements ApproverService {
|
||||
public void apply(String bussinessId,String contractCode, String desc, Object updateData){
|
||||
List<PsApproverRecord> list = approverRecordMapper.selectList(Wrappers.<PsApproverRecord>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<PsApproverRecordVo> queryList(PsApproverRecordBo bo, PageQuery pageQuery){
|
||||
QueryWrapper<PsApproverRecord> lqw = Wrappers.<PsApproverRecord>query().eq("app.business_type",approverType());
|
||||
QueryWrapper<PsApproverRecord> lqw = Wrappers.<PsApproverRecord>query().eq("app.business_type",approverType())
|
||||
.eq(bo.getId()!=null,"app.id",bo.getId())
|
||||
.orderByAsc("app.approver_status").orderByAsc("app.approver_date");
|
||||
Page<PsApproverRecordVo> res = recordMapper.selectPageApproverList(pageQuery.build(), lqw);
|
||||
if(CollectionUtils.isNotEmpty(res.getRecords())){
|
||||
res.getRecords().forEach(item->{
|
||||
item.setResidualMoney(item.getContractAmount().subtract(item.getPayMoney()));
|
||||
//装填回款记录
|
||||
//装填回款周期
|
||||
List<PsContractPayVo> 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;
|
||||
|
@ -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<PsApproverRecordVo> queryList(PsApproverRecordBo bo, PageQuery pageQuery){
|
||||
QueryWrapper<PsApproverRecord> lqw = Wrappers.<PsApproverRecord>query().eq("app.business_type",approverType());
|
||||
QueryWrapper<PsApproverRecord> lqw = Wrappers.<PsApproverRecord>query().eq("app.business_type",approverType())
|
||||
.eq(bo.getId()!=null,"app.id",bo.getId())
|
||||
.orderByAsc("app.approver_status").orderByAsc("app.approver_date");;
|
||||
Page<PsApproverRecordVo> 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;
|
||||
}
|
||||
|
@ -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<PsContractBusinessBo> businessBos = new ArrayList<>();
|
||||
vo.getBusinessVoList().forEach(item->{
|
||||
List<PsContractBusinessDetailBo> detailBos = new ArrayList<>();
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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查询回款记录
|
||||
|
@ -93,11 +93,13 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService {
|
||||
@Override
|
||||
public TableDataInfo<PsCustomInfoVo> 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());
|
||||
|
@ -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}
|
||||
</select>
|
||||
</mapper>
|
||||
|
@ -13,6 +13,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<sql id="queryContractList" >
|
||||
|
||||
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
|
||||
|
@ -65,6 +65,13 @@ public class SysUserController extends BaseController {
|
||||
public TableDataInfo<SysUserVo> list(SysUserBo user, PageQuery pageQuery) {
|
||||
return userService.selectPageUserList(user, pageQuery);
|
||||
}
|
||||
/**
|
||||
* 获取登陆人下的用户列表
|
||||
*/
|
||||
@GetMapping("/userlist")
|
||||
public R<List<SysUserVo>> userlist() {
|
||||
return R.ok(userService.selectUserList());
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出用户列表
|
||||
|
@ -17,7 +17,7 @@ public interface ISysUserService {
|
||||
|
||||
|
||||
TableDataInfo<SysUserVo> selectPageUserList(SysUserBo user, PageQuery pageQuery);
|
||||
|
||||
List<SysUserVo> selectUserList();
|
||||
/**
|
||||
* 根据条件分页查询用户列表
|
||||
*
|
||||
|
@ -70,6 +70,15 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前登录人下的用户列表
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<SysUserVo> selectUserList() {
|
||||
return baseMapper.selectUserList( this.buildQueryWrapper(new SysUserBo()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据条件分页查询用户列表
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user