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 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())); + } + /** * 根据条件分页查询用户列表 *