停止代账

This commit is contained in:
mx 2024-10-17 11:06:11 +08:00
parent 64269c4ee4
commit aab8c19da5
11 changed files with 114 additions and 35 deletions

View File

@ -56,7 +56,43 @@ public class PsApproverRecordController extends BaseController {
public R<Void> approver(@NotBlank(message = "操作类型不能为空") String operate,
@NotNull(message = "数据id不能为空") String id, String desc) {
String[] ids = id.split(",");
contractInfoService.finish(psApproverRecordService.approver(operate, ids, desc));
contractInfoService.finish(psApproverRecordService.approver(operate, ids, desc, 0));
return R.ok();
}
/**
* 财务审批停止代账
*
* @param operate 2 通过 3拒绝
* @param id 审批表id
* @param desc 备注通过/拒绝原因
* @return
*/
@SaCheckPermission("cw:apply:btn")
@RepeatSubmit()
@GetMapping("/cwApproverStopAccount")
public R<Void> cwApproverStopAccount(@NotBlank(message = "操作类型不能为空") String operate,
@NotNull(message = "数据id不能为空") String id, String desc) {
String[] ids = id.split(",");
contractInfoService.finish(psApproverRecordService.approver(operate, ids, desc, 1));
return R.ok();
}
/**
* 总裁审批停止代账
*
* @param operate 2 通过 3拒绝
* @param id 审批表id
* @param desc 备注通过/拒绝原因
* @return
*/
@SaCheckPermission("zc:apply:btn")
@RepeatSubmit()
@GetMapping("/zcApproverStopAccount")
public R<Void> zcApproverStopAccount(@NotBlank(message = "操作类型不能为空") String operate,
@NotNull(message = "数据id不能为空") String id, String desc) {
String[] ids = id.split(",");
contractInfoService.finish(psApproverRecordService.approver(operate, ids, desc, 2));
return R.ok();
}

View File

@ -98,8 +98,8 @@ public class PsCompanyInfoController extends BaseController {
@SaCheckPermission("business:companyInfo:list")
@Log(title = "停止代账" )
@GetMapping("/applyTerminationService")
public R<Void> terminationService(PsCompanyQueryBo queryBo, PageQuery pageQuery) {
psCompanyInfoService.terminationService(queryBo.getId());
public R<Void> terminationService(Long serviceCompanyId) {
psCompanyInfoService.terminationService(serviceCompanyId);
return R.ok();
}

View File

@ -236,7 +236,10 @@ public class PsCompanyInfoBo {
* 跟进人员
*/
private List<Long> followUsers;
/**
* 服务状态0终止1正常
*/
private Integer serviceStatus;
public BigDecimal getContractAmount(){
this.businessAmount = businessList == null ? new BigDecimal(0) : businessList.stream().map(PsContractBusinessBo::getBusinessAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);

View File

@ -0,0 +1,17 @@
package com.pusong.business.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 审批表状态枚举
*/
@Getter
@AllArgsConstructor
public enum ApproverStepEnum {
INIT("0","未审批"),
CW_APPLY("1","财务审批成功"),
ZC_APPLY("2","总裁审批成功");
private String code;
private String text;
}

View File

@ -46,9 +46,10 @@ public interface IPsApproverRecordService {
*
* @param operate 2 通过 3拒绝
* @param id 审批表id
* @param from 0通用审批 1财务审批代账 2总裁审批代账
* @return
*/
String approver(String operate, String [] id,String desc);
String approver(String operate, String [] id,String desc, int from);
/**
* 根据条件查询最后一条审批失败的原因

View File

@ -1,26 +1,18 @@
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.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.*;
import com.pusong.business.domain.vo.PsApproverRecordVo;
import com.pusong.business.domain.bo.PsCompanyInfoBo;
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.vo.PsCompanyInfoVo;
import com.pusong.business.domain.vo.PsContractBusinessVo;
import com.pusong.business.domain.vo.PsContractInfoVo;
import com.pusong.business.enums.ApproverStatusEnum;
import com.pusong.business.enums.ApproverTypeEnum;
import com.pusong.business.enums.CommonStatusEnum;
import com.pusong.business.mapper.PsApproverRecordMapper;
import com.pusong.business.service.IPsContractBusinessService;
import com.pusong.business.service.IPsContractInfoService;
import com.pusong.common.core.utils.MapstructUtils;
import com.pusong.common.core.utils.StringUtils;
import com.pusong.common.mybatis.core.page.PageQuery;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
@ -56,6 +48,7 @@ public class SignApproverServiceImpl extends ApproverAbstractServiceImpl {
PsContractInfoBo bo = new PsContractInfoBo();
bo.setSignStatus(CommonStatusEnum.SUCCESS.getCode());
bo.setContactPersonName(vo.getContactPersonName());
bo.setContractMain(vo.getContractMain());
//合同信息
PsContractInfo info = new PsContractInfo();
BeanUtils.copyProperties(vo, info);

View File

@ -1,6 +1,8 @@
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.ApproverStepEnum;
import com.pusong.business.enums.ApproverTypeEnum;
import com.pusong.business.mapper.PsApproverRecordMapper;
import com.pusong.business.mapper.PsTaskAppointMapper;
@ -29,11 +31,23 @@ public class StopAccountServiceImpl extends ApproverAbstractServiceImpl {
private final IPsCompanyInfoService companyInfoService;
@Resource
private PsApproverRecordMapper recordMapper;
private final IPsCompanyInfoService psCompanyInfoService;
@Override
public void success(PsApproverRecord psApproverRecord) {
if (ApproverStepEnum.INIT.getCode().equals(psApproverRecord.getUpdateData())){
//转给总裁
psApproverRecord.setUpdateData(ApproverStepEnum.CW_APPLY.getCode());
return;
}
if (ApproverStepEnum.CW_APPLY.getCode().equals(psApproverRecord.getUpdateData())){
psApproverRecord.setUpdateData(ApproverStepEnum.ZC_APPLY.getCode());
//修改服务公司状态为终止
PsCompanyInfoBo bo = new PsCompanyInfoBo();
bo.setId(Long.valueOf(psApproverRecord.getBusinessId()));
bo.setServiceStatus(0);
psCompanyInfoService.update(bo);
}
}
/**

View File

@ -9,6 +9,7 @@ import com.pusong.business.domain.PsApproverRecord;
import com.pusong.business.domain.bo.PsApproverRecordBo;
import com.pusong.business.domain.vo.PsApproverRecordVo;
import com.pusong.business.enums.ApproverStatusEnum;
import com.pusong.business.enums.ApproverStepEnum;
import com.pusong.business.enums.ApproverTypeEnum;
import com.pusong.business.mapper.PsApproverRecordMapper;
import com.pusong.business.service.IPsApproverRecordService;
@ -90,16 +91,27 @@ public class PsApproverRecordServiceImpl implements IPsApproverRecordService {
*
* @param operate 2 通过 3拒绝
* @param ids 审批表id
* @param from 0通用审批 1财务审批代账 2总裁审批代账
* @return
*/
@Transactional
public String approver(String operate, String[] ids, String desc){
public String approver(String operate, String[] ids, String desc, int from){
for (String idStr : ids) {
Long id = Long.valueOf(idStr);
PsApproverRecord info = baseMapper.selectById(id);
if(!StringUtils.equals(ApproverStatusEnum.INIT.getCode(), info.getApproverStatus())){
throw new ServiceException("操作失败:该审批状态已变更");
}
if (from == 1){
if (!ApproverStepEnum.INIT.getCode().equals(info.getUpdateData())){
throw new ServiceException("操作失败:当前阶段财务不能审批");
}
}else if(from == 2){
if (!ApproverStepEnum.CW_APPLY.getCode().equals(info.getUpdateData())){
throw new ServiceException("操作失败:当前阶段总裁不能审批");
}
}
ApproverService service = container.getService(info.getBusinessType());
if(StringUtils.equals(ApproverStatusEnum.SUCCESS.getCode(),operate)){
service.success(info);

View File

@ -630,11 +630,11 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
map.put("serviceCompany", bo.getServiceCompanyInfoList());
map.put("main", JSON.parseObject(main.getRemark()));// 合同主体信息
map.put("mainId", bo.getContractMain());
if (bo.getContractMain().equals("1")){
if ("1".equals(bo.getContractMain())){
map.put(MAINPREFIX, "zx-");
}else if (bo.getContractMain().equals("2")){
}else if ("2".equals(bo.getContractMain())){
map.put(MAINPREFIX, "cs-");
}else if (bo.getContractMain().equals("3")){
}else if ("3".equals(bo.getContractMain())){
map.put(MAINPREFIX, "sw-");
}

View File

@ -528,7 +528,7 @@ public class PsTaskServiceImpl implements IPsTaskService {
lqw.eq(bo.getId() != null,"main.id",bo.getId());
lqw.in(bo.getExtendList() != null,"main.extend", bo.getExtendList());
lqw.in(bo.getExtendList() != null && !bo.getExtendList().isEmpty(),"main.extend", bo.getExtendList());
lqw.like(StringUtils.isNotBlank(bo.getContractCode()), "main.contract_code", bo.getContractCode());
lqw.like(StringUtils.isNotBlank(bo.getCompanyName()), "com.company_name", bo.getCompanyName());//公司名称
@ -702,9 +702,9 @@ public class PsTaskServiceImpl implements IPsTaskService {
PageQuery pageQuery = new PageQuery();
pageQuery.setPageSize(100);
Page<PsApproverRecordVo> res = recordMapper.selectPageFreeApproverList(pageQuery.build(), lqw);
if (!res.getRecords().isEmpty()){
List<String> approverIds = res.getRecords().stream().map(PsApproverRecordVo::idStr).toList();
PsTaskQueryBo psTaskQueryBo = new PsTaskQueryBo();
psTaskQueryBo.setExtendList(approverIds);
@ -715,6 +715,8 @@ public class PsTaskServiceImpl implements IPsTaskService {
for (PsApproverRecordVo record : res.getRecords()) {
record.setPsTaskMainVo(approverIdMap.get(record.idStr()));
}
}
return res;
}
}

View File

@ -27,6 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<sql id="queryTask">
select main.*,
main.id main_id,
main.id mainid,
con.is_proxy con_is_proxy,
con.apply_date con_apply_date,
con.is_due con_is_due,