增加合同与公司对应关系表
目前完成生成合同接口,新增合同接口,修改合同接口,根据合同编码查询服务公司和服务类型接口
This commit is contained in:
parent
fd3f2d6654
commit
2c3e832a0c
@ -138,8 +138,10 @@ public class PsCompanyInfo extends TenantEntity {
|
|||||||
* 2逻辑删除 0 默认有效
|
* 2逻辑删除 0 默认有效
|
||||||
*/
|
*/
|
||||||
private Long delFlag;
|
private Long delFlag;
|
||||||
|
/**
|
||||||
|
* 公司类型1签约公司 2服务公司
|
||||||
|
*/
|
||||||
|
private String companyType;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -59,6 +59,9 @@ public class PsContractBusiness extends TenantEntity {
|
|||||||
* 2逻辑删除 0 默认有效
|
* 2逻辑删除 0 默认有效
|
||||||
*/
|
*/
|
||||||
private Long delFlag;
|
private Long delFlag;
|
||||||
|
/**
|
||||||
|
* 服务公司id
|
||||||
|
*/
|
||||||
|
private Long companyId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,47 @@
|
|||||||
|
package com.pusong.business.domain;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import com.pusong.common.tenant.core.TenantEntity;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 公司信息对象 ps_company_info
|
||||||
|
*
|
||||||
|
* @author wls
|
||||||
|
* @date 2024-07-29
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName("ps_contract_company")
|
||||||
|
public class PsContractCompany extends TenantEntity {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 公司ID
|
||||||
|
*/
|
||||||
|
@TableId(value = "id",type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 合同编码
|
||||||
|
*/
|
||||||
|
private String contractCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 公司id
|
||||||
|
*/
|
||||||
|
private Long companyId;
|
||||||
|
/**
|
||||||
|
* 2逻辑删除 0 默认有效
|
||||||
|
*/
|
||||||
|
private Long delFlag;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -13,6 +13,7 @@ import lombok.EqualsAndHashCode;
|
|||||||
import jakarta.validation.constraints.*;
|
import jakarta.validation.constraints.*;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 公司信息业务对象 ps_company_info
|
* 公司信息业务对象 ps_company_info
|
||||||
@ -139,4 +140,14 @@ public class PsCompanyInfoBo {
|
|||||||
* 发票类型
|
* 发票类型
|
||||||
*/
|
*/
|
||||||
private String billType;
|
private String billType;
|
||||||
|
/**
|
||||||
|
* 公司类型1签约公司 2服务公司
|
||||||
|
*/
|
||||||
|
private String companyType;
|
||||||
|
/**
|
||||||
|
* 合同服务类别
|
||||||
|
*/
|
||||||
|
@NotEmpty(message = "合同服务类别不能为空")
|
||||||
|
private List<PsContractBusinessBo> businessList;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -65,6 +65,10 @@ public class PsContractBusinessBo {
|
|||||||
*/
|
*/
|
||||||
@JsonFormat(pattern ="yyyy-MM-dd")
|
@JsonFormat(pattern ="yyyy-MM-dd")
|
||||||
private Date startDate;
|
private Date startDate;
|
||||||
|
/**
|
||||||
|
* 服务公司id
|
||||||
|
*/
|
||||||
|
private Long companyId;
|
||||||
/**
|
/**
|
||||||
* 合同服务项目
|
* 合同服务项目
|
||||||
*/
|
*/
|
||||||
|
@ -102,18 +102,18 @@ public class PsContractInfoBo {
|
|||||||
* 是否续费
|
* 是否续费
|
||||||
*/
|
*/
|
||||||
private String isDue;
|
private String isDue;
|
||||||
/**
|
|
||||||
* 合同服务类别
|
|
||||||
*/
|
|
||||||
@NotEmpty(message = "合同服务类别不能为空")
|
|
||||||
private List<PsContractBusinessBo> businessList;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 公司信息
|
* 签约公司信息
|
||||||
*/
|
*/
|
||||||
@NotEmpty(message = "公司信息不能为空")
|
@NotEmpty(message = "公司信息不能为空")
|
||||||
private PsCompanyInfoBo companyInfoBo;
|
private PsCompanyInfoBo companyInfoBo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 服务公司信息集合
|
||||||
|
*/
|
||||||
|
private List<PsCompanyInfoBo> serviceCompanyInfoList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改合同说明
|
* 修改合同说明
|
||||||
*/
|
*/
|
||||||
|
@ -16,7 +16,7 @@ import lombok.Data;
|
|||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -148,4 +148,8 @@ public class PsCompanyInfoVo implements Serializable {
|
|||||||
* 发票类型
|
* 发票类型
|
||||||
*/
|
*/
|
||||||
private String billType;
|
private String billType;
|
||||||
|
/**
|
||||||
|
* 服务类别信息
|
||||||
|
*/
|
||||||
|
private List<PsContractBusinessVo> businessVoList;
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,39 @@
|
|||||||
|
package com.pusong.business.domain.vo;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.pusong.common.tenant.core.TenantEntity;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 公司信息对象 ps_company_info
|
||||||
|
*
|
||||||
|
* @author wls
|
||||||
|
* @date 2024-07-29
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class PsContractCompanyVo {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 公司ID
|
||||||
|
*/
|
||||||
|
@TableId(value = "id",type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 合同编码
|
||||||
|
*/
|
||||||
|
private String contractCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 公司id
|
||||||
|
*/
|
||||||
|
private Long companyId;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -51,7 +51,7 @@ public class PsContractInfoVo implements Serializable {
|
|||||||
private Long customId;
|
private Long customId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 公司id
|
* 签约公司id
|
||||||
*/
|
*/
|
||||||
private Long companyId;
|
private Long companyId;
|
||||||
|
|
||||||
@ -190,7 +190,7 @@ public class PsContractInfoVo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String isDue;
|
private String isDue;
|
||||||
/**
|
/**
|
||||||
* 公司信息
|
* 签约公司信息(不会有服务类别)
|
||||||
*/
|
*/
|
||||||
private PsCompanyInfoVo psCompanyInfoVo;
|
private PsCompanyInfoVo psCompanyInfoVo;
|
||||||
/**
|
/**
|
||||||
@ -198,9 +198,9 @@ public class PsContractInfoVo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private PsCustomInfoVo psCustomInfoVo;
|
private PsCustomInfoVo psCustomInfoVo;
|
||||||
/**
|
/**
|
||||||
* 服务类别信息
|
* 服务公司信息
|
||||||
*/
|
*/
|
||||||
private List<PsContractBusinessVo> businessVoList;
|
private List<PsCompanyInfoVo> psCompanySerivceVo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 汇款记录信息信息
|
* 汇款记录信息信息
|
||||||
|
@ -11,6 +11,8 @@ import com.pusong.business.domain.vo.PsCompanyQueryVo;
|
|||||||
import com.pusong.common.mybatis.core.mapper.BaseMapperPlus;
|
import com.pusong.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 公司信息Mapper接口
|
* 公司信息Mapper接口
|
||||||
*
|
*
|
||||||
@ -20,4 +22,6 @@ import org.apache.ibatis.annotations.Param;
|
|||||||
public interface PsCompanyInfoMapper extends BaseMapperPlus<PsCompanyInfo, PsCompanyInfoVo> {
|
public interface PsCompanyInfoMapper extends BaseMapperPlus<PsCompanyInfo, PsCompanyInfoVo> {
|
||||||
|
|
||||||
Page<PsCompanyQueryVo> selectPageList(@Param("page") Page<PsApproverRecord> page, @Param(Constants.WRAPPER) Wrapper<PsCompanyInfo> queryWrapper);
|
Page<PsCompanyQueryVo> selectPageList(@Param("page") Page<PsApproverRecord> page, @Param(Constants.WRAPPER) Wrapper<PsCompanyInfo> queryWrapper);
|
||||||
|
|
||||||
|
List<PsCompanyInfoVo> selectServiceCompanyList(@Param(Constants.WRAPPER) Wrapper<PsCompanyInfoVo> queryWrapper);
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,23 @@
|
|||||||
|
package com.pusong.business.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.pusong.business.domain.PsApproverRecord;
|
||||||
|
import com.pusong.business.domain.PsCompanyInfo;
|
||||||
|
import com.pusong.business.domain.PsContractCompany;
|
||||||
|
import com.pusong.business.domain.vo.PsCompanyInfoVo;
|
||||||
|
import com.pusong.business.domain.vo.PsCompanyQueryVo;
|
||||||
|
import com.pusong.business.domain.vo.PsContractCompanyVo;
|
||||||
|
import com.pusong.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 公司信息Mapper接口
|
||||||
|
*
|
||||||
|
* @author wls
|
||||||
|
* @date 2024-07-29
|
||||||
|
*/
|
||||||
|
public interface PsContractCompanyMapper extends BaseMapperPlus<PsContractCompany, PsContractCompanyVo> {
|
||||||
|
|
||||||
|
}
|
@ -48,6 +48,13 @@ public interface IPsCompanyInfoService {
|
|||||||
* @return 是否新增成功
|
* @return 是否新增成功
|
||||||
*/
|
*/
|
||||||
Boolean saveBo(PsCompanyInfoBo bo);
|
Boolean saveBo(PsCompanyInfoBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存合同公司关联表
|
||||||
|
* @param list
|
||||||
|
* @param contractCode
|
||||||
|
*/
|
||||||
|
void saveContractCompany(List<PsCompanyInfoBo> list,String contractCode );
|
||||||
/**
|
/**
|
||||||
* 批量新增公司信息
|
* 批量新增公司信息
|
||||||
*
|
*
|
||||||
@ -65,4 +72,9 @@ public interface IPsCompanyInfoService {
|
|||||||
* @return 是否删除成功
|
* @return 是否删除成功
|
||||||
*/
|
*/
|
||||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据合同编码查询服务公司信息
|
||||||
|
*/
|
||||||
|
List<PsCompanyInfoVo> getServiceCompany(String controctCode);
|
||||||
}
|
}
|
||||||
|
@ -7,11 +7,13 @@ import com.pusong.business.domain.PsApproverRecord;
|
|||||||
import com.pusong.business.domain.PsContractInfo;
|
import com.pusong.business.domain.PsContractInfo;
|
||||||
import com.pusong.business.domain.PsTaskAppoint;
|
import com.pusong.business.domain.PsTaskAppoint;
|
||||||
import com.pusong.business.domain.PsTaskMain;
|
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.bo.PsContractInfoBo;
|
||||||
import com.pusong.business.domain.vo.PsContractInfoVo;
|
import com.pusong.business.domain.vo.PsContractInfoVo;
|
||||||
import com.pusong.business.enums.*;
|
import com.pusong.business.enums.*;
|
||||||
import com.pusong.business.mapper.PsTaskAppointMapper;
|
import com.pusong.business.mapper.PsTaskAppointMapper;
|
||||||
import com.pusong.business.mapper.PsTaskMainMapper;
|
import com.pusong.business.mapper.PsTaskMainMapper;
|
||||||
|
import com.pusong.business.service.IPsCompanyInfoService;
|
||||||
import com.pusong.business.service.IPsContractBusinessService;
|
import com.pusong.business.service.IPsContractBusinessService;
|
||||||
import com.pusong.business.service.IPsContractInfoService;
|
import com.pusong.business.service.IPsContractInfoService;
|
||||||
import com.pusong.business.service.IPsTaskService;
|
import com.pusong.business.service.IPsTaskService;
|
||||||
@ -40,6 +42,7 @@ public class UpdateContractApproverServiceImpl extends ApproverAbstractServiceIm
|
|||||||
private final IPsTaskService taskService;
|
private final IPsTaskService taskService;
|
||||||
private final PsTaskMainMapper taskMainMapper;
|
private final PsTaskMainMapper taskMainMapper;
|
||||||
private final PsTaskAppointMapper appointMapper;
|
private final PsTaskAppointMapper appointMapper;
|
||||||
|
private final IPsCompanyInfoService companyInfoService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 1 审批成功 合同状态变为待派单 合同已派单:任务重置
|
* 1 审批成功 合同状态变为待派单 合同已派单:任务重置
|
||||||
@ -52,9 +55,11 @@ public class UpdateContractApproverServiceImpl extends ApproverAbstractServiceIm
|
|||||||
PsContractInfoVo src = contractInfoService.queryContractByCode(psApproverRecord.getContractCode());
|
PsContractInfoVo src = contractInfoService.queryContractByCode(psApproverRecord.getContractCode());
|
||||||
//json化修改的数据
|
//json化修改的数据
|
||||||
PsContractInfoBo bo = JSON.parseObject(psApproverRecord.getUpdateData(),PsContractInfoBo.class);
|
PsContractInfoBo bo = JSON.parseObject(psApproverRecord.getUpdateData(),PsContractInfoBo.class);
|
||||||
|
List<PsContractBusinessBo> businessBoslist = bo.getServiceCompanyInfoList().stream().flatMap(com -> com.getBusinessList().stream()).toList();
|
||||||
//2.删除所有服务类型和服务项目,.插入服务类型
|
//2.删除所有服务类型和服务项目,.插入服务类型
|
||||||
businessService.saveList(bo.getBusinessList(),bo.getContractCode());
|
businessService.saveList(businessBoslist,bo.getContractCode());
|
||||||
|
//保存公司合同关联表
|
||||||
|
companyInfoService.saveContractCompany(bo.getServiceCompanyInfoList(),src.getContractCode());
|
||||||
//3.修改后操作
|
//3.修改后操作
|
||||||
afterUpdateOperate(bo, src);
|
afterUpdateOperate(bo, src);
|
||||||
//插入合同
|
//插入合同
|
||||||
|
@ -2,10 +2,12 @@ package com.pusong.business.service.impl;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||||
|
import com.pusong.business.domain.PsContractCompany;
|
||||||
import com.pusong.business.domain.PsContractInfo;
|
import com.pusong.business.domain.PsContractInfo;
|
||||||
import com.pusong.business.domain.bo.PsCompanyQueryBo;
|
import com.pusong.business.domain.bo.PsCompanyQueryBo;
|
||||||
import com.pusong.business.domain.vo.PsCompanyQueryVo;
|
import com.pusong.business.domain.vo.PsCompanyQueryVo;
|
||||||
import com.pusong.business.domain.vo.PsSalaryVo;
|
import com.pusong.business.domain.vo.PsSalaryVo;
|
||||||
|
import com.pusong.business.mapper.PsContractCompanyMapper;
|
||||||
import com.pusong.business.mapper.PsContractInfoMapper;
|
import com.pusong.business.mapper.PsContractInfoMapper;
|
||||||
import com.pusong.business.service.IPsContractInfoService;
|
import com.pusong.business.service.IPsContractInfoService;
|
||||||
import com.pusong.common.core.exception.ServiceException;
|
import com.pusong.common.core.exception.ServiceException;
|
||||||
@ -24,6 +26,7 @@ import com.pusong.business.domain.PsCompanyInfo;
|
|||||||
import com.pusong.business.mapper.PsCompanyInfoMapper;
|
import com.pusong.business.mapper.PsCompanyInfoMapper;
|
||||||
import com.pusong.business.service.IPsCompanyInfoService;
|
import com.pusong.business.service.IPsCompanyInfoService;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@ -39,6 +42,7 @@ import java.util.Collection;
|
|||||||
public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService {
|
public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService {
|
||||||
|
|
||||||
private final PsCompanyInfoMapper baseMapper;
|
private final PsCompanyInfoMapper baseMapper;
|
||||||
|
private final PsContractCompanyMapper contractCompanyMapper;
|
||||||
private final PsContractInfoMapper contractInfoMapper;
|
private final PsContractInfoMapper contractInfoMapper;
|
||||||
|
|
||||||
|
|
||||||
@ -110,14 +114,35 @@ public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService {
|
|||||||
// //如果存在重复名称则修改
|
// //如果存在重复名称则修改
|
||||||
// if(CollectionUtils.isNotEmpty(list)){bo.setId(list.get(0).getId());}
|
// if(CollectionUtils.isNotEmpty(list)){bo.setId(list.get(0).getId());}
|
||||||
// }
|
// }
|
||||||
|
//公司类型默认签约公司
|
||||||
PsCompanyInfo add = MapstructUtils.convert(bo, PsCompanyInfo.class);
|
PsCompanyInfo add = MapstructUtils.convert(bo, PsCompanyInfo.class);
|
||||||
|
//新增时公司类型默认为签约公司
|
||||||
|
add.setCompanyType(add.getId() == null && StringUtils.isBlank(add.getCompanyType())?"1":add.getCompanyType());
|
||||||
validEntityBeforeSave(add);
|
validEntityBeforeSave(add);
|
||||||
boolean flag = baseMapper.insertOrUpdate(add);
|
boolean flag = baseMapper.insertOrUpdate(add);
|
||||||
if (flag) {
|
if (flag) {
|
||||||
bo.setId(add.getId());
|
bo.setId(add.getId());
|
||||||
|
if(bo.getBusinessList() != null){//装填服务类型的公司id
|
||||||
|
bo.getBusinessList().forEach(b->b.setCompanyId(add.getId()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return flag;
|
return flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存公司合同关联表
|
||||||
|
*/
|
||||||
|
public void saveContractCompany(List<PsCompanyInfoBo> list,String contractCode ){
|
||||||
|
contractCompanyMapper.delete(Wrappers.<PsContractCompany>lambdaQuery().eq(PsContractCompany::getContractCode, contractCode));
|
||||||
|
List <PsContractCompany> saveList = new ArrayList<>();
|
||||||
|
for(PsCompanyInfoBo bo:list){
|
||||||
|
PsContractCompany contractCompany = new PsContractCompany();
|
||||||
|
contractCompany.setContractCode(contractCode);
|
||||||
|
contractCompany.setCompanyId(bo.getId());
|
||||||
|
saveList.add(contractCompany);
|
||||||
|
}
|
||||||
|
contractCompanyMapper.insertBatch(saveList);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 批量新增公司信息
|
* 批量新增公司信息
|
||||||
*
|
*
|
||||||
@ -133,9 +158,12 @@ public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService {
|
|||||||
/**
|
/**
|
||||||
* 保存前的数据校验
|
* 保存前的数据校验
|
||||||
*/
|
*/
|
||||||
private void validEntityBeforeSave(PsCompanyInfo entity){
|
private void validEntityBeforeSave(PsCompanyInfo info){
|
||||||
if(entity.getId() != null){
|
//新增公司时
|
||||||
//修改
|
if(info.getId() == null && StringUtils.equals(info.getCompanyType(),"2")){
|
||||||
|
Long count = baseMapper.selectCount(Wrappers.<PsCompanyInfo>lambdaQuery().eq(PsCompanyInfo::getCompanyType, "2")
|
||||||
|
.eq(PsCompanyInfo::getCompanyName, info.getCompanyName()).eq(PsCompanyInfo::getCustomerNum, info.getCustomerNum()));
|
||||||
|
if(count>0){throw new ServiceException("公司:"+info.getCompanyName()+";纳税人识别号:"+info.getCustomerNum()+" 已存在,请进行选择后重新提交");}
|
||||||
}
|
}
|
||||||
//TODO 修改公司时需要校验公司下是否有合同状态
|
//TODO 修改公司时需要校验公司下是否有合同状态
|
||||||
}
|
}
|
||||||
@ -155,4 +183,16 @@ public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService {
|
|||||||
}
|
}
|
||||||
return baseMapper.deleteBatchIds(ids) > 0;
|
return baseMapper.deleteBatchIds(ids) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据合同编码查询服务公司信息
|
||||||
|
* @param controctCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public List<PsCompanyInfoVo> getServiceCompany(String controctCode){
|
||||||
|
QueryWrapper<PsCompanyInfoVo> wq = Wrappers.<PsCompanyInfoVo>query().eq("pcc.del_flag", "0").eq("bus.del_flag","0")
|
||||||
|
.eq("det.del_flag","0").eq("pcc.controct_code", controctCode);
|
||||||
|
List<PsCompanyInfoVo> list = baseMapper.selectServiceCompanyList(wq);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -99,8 +99,14 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
if(bo.getCompanyInfoBo().getCustomId() == null){
|
if(bo.getCompanyInfoBo().getCustomId() == null){
|
||||||
bo.getCompanyInfoBo().setCustomId(bo.getCustomId());
|
bo.getCompanyInfoBo().setCustomId(bo.getCustomId());
|
||||||
}
|
}
|
||||||
//2.插入公司信息
|
//2.插入签约公司信息
|
||||||
companyInfoService.saveBo(bo.getCompanyInfoBo());
|
companyInfoService.saveBo(bo.getCompanyInfoBo());
|
||||||
|
//插入服务公司
|
||||||
|
for (PsCompanyInfoBo companyInfoBo : bo.getServiceCompanyInfoList()){
|
||||||
|
companyInfoBo.setCompanyType("2");
|
||||||
|
companyInfoService.saveBo(companyInfoBo);
|
||||||
|
}
|
||||||
|
|
||||||
//3.如果已存在合同,则进行修改,否则新增
|
//3.如果已存在合同,则进行修改,否则新增
|
||||||
if(add == null){
|
if(add == null){
|
||||||
add = new PsContractInfo();
|
add = new PsContractInfo();
|
||||||
@ -113,7 +119,9 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
MapstructUtils.convert(bo, add);
|
MapstructUtils.convert(bo, add);
|
||||||
}
|
}
|
||||||
add.setCompanyId(bo.getCompanyInfoBo().getId());//公司id
|
add.setCompanyId(bo.getCompanyInfoBo().getId());//公司id
|
||||||
bo.getBusinessList().forEach(item->{
|
|
||||||
|
List<PsContractBusinessBo> list = bo.getServiceCompanyInfoList().stream().flatMap(com -> com.getBusinessList().stream()).toList();
|
||||||
|
list.forEach(item->{
|
||||||
BigDecimal mony = BigDecimal.ZERO;
|
BigDecimal mony = BigDecimal.ZERO;
|
||||||
if(CollectionUtils.isNotEmpty(item.getDetailBos())){
|
if(CollectionUtils.isNotEmpty(item.getDetailBos())){
|
||||||
mony = item.getDetailBos().stream().map(PsContractBusinessDetailBo::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
mony = item.getDetailBos().stream().map(PsContractBusinessDetailBo::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
@ -123,14 +131,15 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
item.setBusinessAmount(mony);
|
item.setBusinessAmount(mony);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
//保存公司合同关联表
|
||||||
BigDecimal sum = bo.getBusinessList().stream().map(PsContractBusinessBo::getBusinessAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
companyInfoService.saveContractCompany(bo.getServiceCompanyInfoList(),add.getContractCode());
|
||||||
|
BigDecimal sum = list.stream().map(PsContractBusinessBo::getBusinessAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
add.setContractAmount(sum);//合同总金额
|
add.setContractAmount(sum);//合同总金额
|
||||||
add.setContractStatus(type == 1?ContractStatusEnum.INIT.getCode():ContractStatusEnum.CREATE.getCode());//合同状态
|
add.setContractStatus(type == 1?ContractStatusEnum.INIT.getCode():ContractStatusEnum.CREATE.getCode());//合同状态
|
||||||
add.setIsCancel(CommonStatusEnum.INIT.getCode());
|
add.setIsCancel(CommonStatusEnum.INIT.getCode());
|
||||||
baseMapper.insertOrUpdate(add);
|
baseMapper.insertOrUpdate(add);
|
||||||
//4.删除所有服务类型和服务项目,.插入服务类型
|
//4.删除所有服务类型和服务项目,.插入服务类型
|
||||||
businessService.saveList(bo.getBusinessList(),add.getContractCode());
|
businessService.saveList(list,add.getContractCode());
|
||||||
//7.生成合同
|
//7.生成合同
|
||||||
return makePdf(add,bo,true);
|
return makePdf(add,bo,true);
|
||||||
}
|
}
|
||||||
@ -149,7 +158,8 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
add.setCustomManager(LoginHelper.getUserId());//所属销售经理id
|
add.setCustomManager(LoginHelper.getUserId());//所属销售经理id
|
||||||
add.setCompanyId(bo.getCompanyInfoBo().getId());//公司id
|
add.setCompanyId(bo.getCompanyInfoBo().getId());//公司id
|
||||||
MapstructUtils.convert(bo, add);
|
MapstructUtils.convert(bo, add);
|
||||||
bo.getBusinessList().forEach(item->{
|
List<PsContractBusinessBo> list = bo.getServiceCompanyInfoList().stream().flatMap(com -> com.getBusinessList().stream()).toList();
|
||||||
|
list.forEach(item->{
|
||||||
BigDecimal mony = BigDecimal.ZERO;
|
BigDecimal mony = BigDecimal.ZERO;
|
||||||
if(CollectionUtils.isNotEmpty(item.getDetailBos())){
|
if(CollectionUtils.isNotEmpty(item.getDetailBos())){
|
||||||
mony = item.getDetailBos().stream().map(PsContractBusinessDetailBo::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
mony = item.getDetailBos().stream().map(PsContractBusinessDetailBo::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
@ -159,7 +169,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
item.setBusinessAmount(mony);
|
item.setBusinessAmount(mony);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
BigDecimal sum = bo.getBusinessList().stream().map(PsContractBusinessBo::getBusinessAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
BigDecimal sum = list.stream().map(PsContractBusinessBo::getBusinessAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
add.setContractAmount(sum);//合同总金额
|
add.setContractAmount(sum);//合同总金额
|
||||||
return makePdf(add,bo,false);
|
return makePdf(add,bo,false);
|
||||||
}
|
}
|
||||||
@ -180,12 +190,13 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
PsContractInfoVo vo = MapstructUtils.convert(info, PsContractInfoVo.class);
|
PsContractInfoVo vo = MapstructUtils.convert(info, PsContractInfoVo.class);
|
||||||
//装填公司信息
|
//装填签约公司信息
|
||||||
if(vo.getCompanyId() != null){
|
if(vo.getCompanyId() != null){
|
||||||
vo.setPsCompanyInfoVo(companyInfoService.queryById(vo.getCompanyId()));
|
vo.setPsCompanyInfoVo(companyInfoService.queryById(vo.getCompanyId()));
|
||||||
}
|
}
|
||||||
fillContractInfo(vo);
|
//装填服务公司信息
|
||||||
|
List<PsCompanyInfoVo> list = companyInfoService.getServiceCompany(vo.getContractCode());
|
||||||
|
vo.setPsCompanySerivceVo(list);
|
||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -270,8 +281,14 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
}
|
}
|
||||||
//3.插入公司信息
|
//3.插入公司信息
|
||||||
companyInfoService.saveBo(bo.getCompanyInfoBo());
|
companyInfoService.saveBo(bo.getCompanyInfoBo());
|
||||||
|
//插入服务公司
|
||||||
|
for (PsCompanyInfoBo companyInfoBo : bo.getServiceCompanyInfoList()){
|
||||||
|
companyInfoBo.setCompanyType("2");
|
||||||
|
companyInfoService.saveBo(companyInfoBo);
|
||||||
|
}
|
||||||
//4.装填合同信息
|
//4.装填合同信息
|
||||||
bo.getBusinessList().forEach(item->{
|
List<PsContractBusinessBo> list = bo.getServiceCompanyInfoList().stream().flatMap(com -> com.getBusinessList().stream()).toList();
|
||||||
|
list.forEach(item->{
|
||||||
BigDecimal mony = BigDecimal.ZERO;
|
BigDecimal mony = BigDecimal.ZERO;
|
||||||
if(CollectionUtils.isNotEmpty(item.getDetailBos())){
|
if(CollectionUtils.isNotEmpty(item.getDetailBos())){
|
||||||
mony = item.getDetailBos().stream().map(PsContractBusinessDetailBo::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
mony = item.getDetailBos().stream().map(PsContractBusinessDetailBo::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
@ -281,7 +298,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
item.setBusinessAmount(mony);
|
item.setBusinessAmount(mony);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
BigDecimal sum = bo.getBusinessList().stream().map(PsContractBusinessBo::getBusinessAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
BigDecimal sum = list.stream().map(PsContractBusinessBo::getBusinessAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
bo.setContractAmount(sum);//合同总金额
|
bo.setContractAmount(sum);//合同总金额
|
||||||
|
|
||||||
//5.已回款之后的合同修改后走审批
|
//5.已回款之后的合同修改后走审批
|
||||||
@ -301,7 +318,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
add.setCompanyId(bo.getCompanyInfoBo().getId());//公司id
|
add.setCompanyId(bo.getCompanyInfoBo().getId());//公司id
|
||||||
this.updateByCode(add);
|
this.updateByCode(add);
|
||||||
//4.删除所有服务类型和服务项目,.插入服务类型
|
//4.删除所有服务类型和服务项目,.插入服务类型
|
||||||
businessService.saveList(bo.getBusinessList(),add.getContractCode());
|
businessService.saveList(list,add.getContractCode());
|
||||||
makePdf(add,bo,true);
|
makePdf(add,bo,true);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@ -386,6 +403,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
* @param bo
|
* @param bo
|
||||||
*/
|
*/
|
||||||
public Long makePdf(PsContractInfo add ,PsContractInfoBo bo,boolean isSave){
|
public Long makePdf(PsContractInfo add ,PsContractInfoBo bo,boolean isSave){
|
||||||
|
//todo 合同pdf
|
||||||
Long ossId = null;
|
Long ossId = null;
|
||||||
SysDictData main = dictDataService.selectDict("contract_main", add.getContractMain());
|
SysDictData main = dictDataService.selectDict("contract_main", add.getContractMain());
|
||||||
bo.getBusinessList().forEach(item->{
|
bo.getBusinessList().forEach(item->{
|
||||||
@ -436,6 +454,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
log.error("生成pdf失败",e);
|
log.error("生成pdf失败",e);
|
||||||
}
|
}
|
||||||
return ossId;
|
return ossId;
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -611,10 +630,11 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
return qw;
|
return qw;
|
||||||
}
|
}
|
||||||
private PsContractInfoVo fillContractInfo(PsContractInfoVo vo){
|
private PsContractInfoVo fillContractInfo(PsContractInfoVo vo){
|
||||||
|
|
||||||
//装填服务类型和服务项目信息
|
//装填服务类型和服务项目信息
|
||||||
List<PsContractBusinessVo> list = businessService.selectBusinessList(List.of(vo.getContractCode()));
|
// List<PsContractBusinessVo> list = businessService.selectBusinessList(List.of(vo.getContractCode()));
|
||||||
vo.setBusinessTypeName(StringUtils.join(list.stream().map(PsContractBusinessVo::getBusinessType).collect(Collectors.toList()), ","));
|
// vo.setBusinessTypeName(StringUtils.join(list.stream().map(PsContractBusinessVo::getBusinessType).collect(Collectors.toList()), ","));
|
||||||
vo.setBusinessVoList(list);
|
|
||||||
fillMoney(vo);
|
fillMoney(vo);
|
||||||
if(vo.getFirstApplyDate() != null){
|
if(vo.getFirstApplyDate() != null){
|
||||||
Date date = new Date();
|
Date date = new Date();
|
||||||
@ -644,10 +664,10 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
if(StringUtils.equals(CommonStatusEnum.FAIL.getCode(),vo.getIsCancel())){
|
if(StringUtils.equals(CommonStatusEnum.FAIL.getCode(),vo.getIsCancel())){
|
||||||
vo.setContractStatusDesc(approverRecordService.getLastFail(vo.getContractCode(),vo.getContractCode(),List.of(ApproverTypeEnum.CANCELLA.getCode())));
|
vo.setContractStatusDesc(approverRecordService.getLastFail(vo.getContractCode(),vo.getContractCode(),List.of(ApproverTypeEnum.CANCELLA.getCode())));
|
||||||
}
|
}
|
||||||
//合同作废审批
|
// //合同作废审批
|
||||||
if(StringUtils.equals(CommonStatusEnum.FAIL.getCode(),vo.getIsCancel())){
|
// if(StringUtils.equals(CommonStatusEnum.FAIL.getCode(),vo.getIsCancel())){
|
||||||
vo.setContractStatusDesc(approverRecordService.getLastFail(vo.getContractCode(),vo.getContractCode(),List.of(ApproverTypeEnum.CANCELLA.getCode())));
|
// vo.setContractStatusDesc(approverRecordService.getLastFail(vo.getContractCode(),vo.getContractCode(),List.of(ApproverTypeEnum.CANCELLA.getCode())));
|
||||||
}
|
// }
|
||||||
//天数
|
//天数
|
||||||
if(vo.getEndServiceDate() != null){
|
if(vo.getEndServiceDate() != null){
|
||||||
int num = DateUtils.differentDaysByMillisecond(new Date(), vo.getEndServiceDate());
|
int num = DateUtils.differentDaysByMillisecond(new Date(), vo.getEndServiceDate());
|
||||||
|
@ -283,7 +283,7 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService {
|
|||||||
baseMapper.updateById(update);
|
baseMapper.updateById(update);
|
||||||
//修改公司信息
|
//修改公司信息
|
||||||
if(CollectionUtils.isNotEmpty(bo.getCompanyInfoBos())){
|
if(CollectionUtils.isNotEmpty(bo.getCompanyInfoBos())){
|
||||||
bo.getCompanyInfoBos().forEach(item->item.setCustomId(bo.getId()));
|
bo.getCompanyInfoBos().forEach(item->{item.setCustomId(bo.getId());item.setCompanyType("1");});
|
||||||
companyInfoService.saveBatchBo(bo.getCompanyInfoBos());
|
companyInfoService.saveBatchBo(bo.getCompanyInfoBos());
|
||||||
}
|
}
|
||||||
if(CollectionUtils.isNotEmpty(bo.getCompanyIds())){
|
if(CollectionUtils.isNotEmpty(bo.getCompanyIds())){
|
||||||
|
@ -3,6 +3,17 @@
|
|||||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.pusong.business.mapper.PsCompanyInfoMapper">
|
<mapper namespace="com.pusong.business.mapper.PsCompanyInfoMapper">
|
||||||
|
<resultMap id="serviceCompanyServiceResult" type="com.pusong.business.domain.vo.PsCompanyInfoVo">
|
||||||
|
<id column="ID" property="id"></id>
|
||||||
|
<collection columnPrefix="bus_" property="businessVoList" ofType="com.pusong.business.domain.vo.PsContractBusinessVo" >
|
||||||
|
<collection columnPrefix="detail_" property="detailVoList" ofType="com.pusong.business.domain.vo.PsContractBusinessDetailVo" >
|
||||||
|
<!-- <id column="ID" property="id"></id>-->
|
||||||
|
<!-- <result column="CUSTOMER_NAME" property="customerName" />-->
|
||||||
|
<!-- <result column="CUSTOMER_ID_NO" property="customerIdNo" />-->
|
||||||
|
</collection>
|
||||||
|
</collection>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
<select id="selectPageList" resultType="com.pusong.business.domain.vo.PsCompanyQueryVo">
|
<select id="selectPageList" resultType="com.pusong.business.domain.vo.PsCompanyQueryVo">
|
||||||
select cus.custom_manager,
|
select cus.custom_manager,
|
||||||
com.company_name,
|
com.company_name,
|
||||||
@ -19,4 +30,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
|
|
||||||
${ew.getCustomSqlSegment}
|
${ew.getCustomSqlSegment}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectServiceCompanyList" resultMap="serviceCompanyServiceResult">
|
||||||
|
select com.*,
|
||||||
|
bus.business_amount bus_business_amount,
|
||||||
|
bus.business_desc bus_business_desc,
|
||||||
|
bus.business_type bus_business_type,
|
||||||
|
bus.company_id bus_company_id,
|
||||||
|
bus.contract_code bus_contract_code,
|
||||||
|
bus.end_date bus_end_date,
|
||||||
|
bus.id bus_id,
|
||||||
|
bus.start_date bus_start_date,
|
||||||
|
det.contract_code detail_contract_code,
|
||||||
|
det.business_project detail_business_project,
|
||||||
|
det.business_project_label detail_business_project_label,
|
||||||
|
det.amount detail_amount,
|
||||||
|
det.amount_desc detail_amount_desc,
|
||||||
|
det.extent_info detail_extent_info
|
||||||
|
from ps_contract_company pcc
|
||||||
|
left join ps_company_info com on pcc.company_id = com.id
|
||||||
|
left join ps_contract_business bus on bus.company_id = com.id and bus.contract_code = pcc.contract_code
|
||||||
|
left join ps_contract_business_detail det on det.business_id = bus.id
|
||||||
|
${ew.getCustomSqlSegment}
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.pusong.business.mapper.PsContractCompanyMapper">
|
||||||
|
</mapper>
|
Loading…
Reference in New Issue
Block a user