From 2c3e832a0c743b95e85101d5408dc778615c4b10 Mon Sep 17 00:00:00 2001 From: 1073413548 <14628403+gjb0917@user.noreply.gitee.com> Date: Fri, 13 Sep 2024 15:27:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=90=88=E5=90=8C=E4=B8=8E?= =?UTF-8?q?=E5=85=AC=E5=8F=B8=E5=AF=B9=E5=BA=94=E5=85=B3=E7=B3=BB=E8=A1=A8?= =?UTF-8?q?=20=E7=9B=AE=E5=89=8D=E5=AE=8C=E6=88=90=E7=94=9F=E6=88=90?= =?UTF-8?q?=E5=90=88=E5=90=8C=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=90=88=E5=90=8C=E6=8E=A5=E5=8F=A3=EF=BC=8C=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=90=88=E5=90=8C=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E5=90=88=E5=90=8C=E7=BC=96=E7=A0=81=E6=9F=A5=E8=AF=A2=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=85=AC=E5=8F=B8=E5=92=8C=E6=9C=8D=E5=8A=A1=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pusong/business/domain/PsCompanyInfo.java | 6 +- .../business/domain/PsContractBusiness.java | 5 +- .../business/domain/PsContractCompany.java | 47 +++++++++++++++ .../business/domain/bo/PsCompanyInfoBo.java | 11 ++++ .../domain/bo/PsContractBusinessBo.java | 4 ++ .../business/domain/bo/PsContractInfoBo.java | 12 ++-- .../business/domain/vo/PsCompanyInfoVo.java | 6 +- .../domain/vo/PsContractCompanyVo.java | 39 ++++++++++++ .../business/domain/vo/PsContractInfoVo.java | 8 +-- .../business/mapper/PsCompanyInfoMapper.java | 4 ++ .../mapper/PsContractCompanyMapper.java | 23 +++++++ .../service/IPsCompanyInfoService.java | 12 ++++ .../UpdateContractApproverServiceImpl.java | 9 ++- .../impl/PsCompanyInfoServiceImpl.java | 46 +++++++++++++- .../impl/PsContractInfoServiceImpl.java | 60 ++++++++++++------- .../service/impl/PsCustomInfoServiceImpl.java | 2 +- .../mapper/business/PsCompanyInfoMapper.xml | 35 +++++++++++ .../business/PsContractCompanyMapper.xml | 6 ++ 18 files changed, 295 insertions(+), 40 deletions(-) create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractCompany.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractCompanyVo.java create mode 100644 pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsContractCompanyMapper.java create mode 100644 pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractCompanyMapper.xml diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsCompanyInfo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsCompanyInfo.java index 4ee4711..e84dbe9 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsCompanyInfo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsCompanyInfo.java @@ -138,8 +138,10 @@ public class PsCompanyInfo extends TenantEntity { * 2逻辑删除 0 默认有效 */ private Long delFlag; - - + /** + * 公司类型1签约公司 2服务公司 + */ + private String companyType; } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractBusiness.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractBusiness.java index 54f494d..0ad49dd 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractBusiness.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractBusiness.java @@ -59,6 +59,9 @@ public class PsContractBusiness extends TenantEntity { * 2逻辑删除 0 默认有效 */ private Long delFlag; - + /** + * 服务公司id + */ + private Long companyId; } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractCompany.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractCompany.java new file mode 100644 index 0000000..855927e --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractCompany.java @@ -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; + + + +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsCompanyInfoBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsCompanyInfoBo.java index 9d4f5bf..eeb9b7c 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsCompanyInfoBo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsCompanyInfoBo.java @@ -13,6 +13,7 @@ import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; import java.math.BigDecimal; import java.util.Date; +import java.util.List; /** * 公司信息业务对象 ps_company_info @@ -139,4 +140,14 @@ public class PsCompanyInfoBo { * 发票类型 */ private String billType; + /** + * 公司类型1签约公司 2服务公司 + */ + private String companyType; + /** + * 合同服务类别 + */ + @NotEmpty(message = "合同服务类别不能为空") + private List businessList; + } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractBusinessBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractBusinessBo.java index aa9cac8..c22a5bd 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractBusinessBo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractBusinessBo.java @@ -65,6 +65,10 @@ public class PsContractBusinessBo { */ @JsonFormat(pattern ="yyyy-MM-dd") private Date startDate; + /** + * 服务公司id + */ + private Long companyId; /** * 合同服务项目 */ diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractInfoBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractInfoBo.java index ed2dcb9..3f4a6ed 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractInfoBo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractInfoBo.java @@ -102,18 +102,18 @@ public class PsContractInfoBo { * 是否续费 */ private String isDue; - /** - * 合同服务类别 - */ - @NotEmpty(message = "合同服务类别不能为空") - private List businessList; /** - * 公司信息 + * 签约公司信息 */ @NotEmpty(message = "公司信息不能为空") private PsCompanyInfoBo companyInfoBo; + /** + * 服务公司信息集合 + */ + private List serviceCompanyInfoList; + /** * 修改合同说明 */ diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCompanyInfoVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCompanyInfoVo.java index 93b56fc..029fe30 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCompanyInfoVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCompanyInfoVo.java @@ -16,7 +16,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; import java.util.Date; - +import java.util.List; /** @@ -148,4 +148,8 @@ public class PsCompanyInfoVo implements Serializable { * 发票类型 */ private String billType; + /** + * 服务类别信息 + */ + private List businessVoList; } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractCompanyVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractCompanyVo.java new file mode 100644 index 0000000..342c963 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractCompanyVo.java @@ -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; + + + + +} 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 45b267f..bba69e8 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 @@ -51,7 +51,7 @@ public class PsContractInfoVo implements Serializable { private Long customId; /** - * 公司id + * 签约公司id */ private Long companyId; @@ -190,7 +190,7 @@ public class PsContractInfoVo implements Serializable { */ private String isDue; /** - * 公司信息 + * 签约公司信息(不会有服务类别) */ private PsCompanyInfoVo psCompanyInfoVo; /** @@ -198,9 +198,9 @@ public class PsContractInfoVo implements Serializable { */ private PsCustomInfoVo psCustomInfoVo; /** - * 服务类别信息 + * 服务公司信息 */ - private List businessVoList; + private List psCompanySerivceVo; /** * 汇款记录信息信息 diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsCompanyInfoMapper.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsCompanyInfoMapper.java index 21321ed..1e25709 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsCompanyInfoMapper.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsCompanyInfoMapper.java @@ -11,6 +11,8 @@ import com.pusong.business.domain.vo.PsCompanyQueryVo; import com.pusong.common.mybatis.core.mapper.BaseMapperPlus; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 公司信息Mapper接口 * @@ -20,4 +22,6 @@ import org.apache.ibatis.annotations.Param; public interface PsCompanyInfoMapper extends BaseMapperPlus { Page selectPageList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); + + List selectServiceCompanyList(@Param(Constants.WRAPPER) Wrapper queryWrapper); } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsContractCompanyMapper.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsContractCompanyMapper.java new file mode 100644 index 0000000..e3e86ee --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsContractCompanyMapper.java @@ -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 { + +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsCompanyInfoService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsCompanyInfoService.java index 589d15e..e887060 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsCompanyInfoService.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsCompanyInfoService.java @@ -48,6 +48,13 @@ public interface IPsCompanyInfoService { * @return 是否新增成功 */ Boolean saveBo(PsCompanyInfoBo bo); + + /** + * 保存合同公司关联表 + * @param list + * @param contractCode + */ + void saveContractCompany(List list,String contractCode ); /** * 批量新增公司信息 * @@ -65,4 +72,9 @@ public interface IPsCompanyInfoService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 根据合同编码查询服务公司信息 + */ + List getServiceCompany(String controctCode); } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/UpdateContractApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/UpdateContractApproverServiceImpl.java index c3df45d..80a6e05 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/UpdateContractApproverServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/UpdateContractApproverServiceImpl.java @@ -7,11 +7,13 @@ import com.pusong.business.domain.PsApproverRecord; import com.pusong.business.domain.PsContractInfo; import com.pusong.business.domain.PsTaskAppoint; 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.vo.PsContractInfoVo; import com.pusong.business.enums.*; import com.pusong.business.mapper.PsTaskAppointMapper; import com.pusong.business.mapper.PsTaskMainMapper; +import com.pusong.business.service.IPsCompanyInfoService; import com.pusong.business.service.IPsContractBusinessService; import com.pusong.business.service.IPsContractInfoService; import com.pusong.business.service.IPsTaskService; @@ -40,6 +42,7 @@ public class UpdateContractApproverServiceImpl extends ApproverAbstractServiceIm private final IPsTaskService taskService; private final PsTaskMainMapper taskMainMapper; private final PsTaskAppointMapper appointMapper; + private final IPsCompanyInfoService companyInfoService; /** * 1 审批成功 合同状态变为待派单 合同已派单:任务重置 @@ -52,9 +55,11 @@ public class UpdateContractApproverServiceImpl extends ApproverAbstractServiceIm PsContractInfoVo src = contractInfoService.queryContractByCode(psApproverRecord.getContractCode()); //json化修改的数据 PsContractInfoBo bo = JSON.parseObject(psApproverRecord.getUpdateData(),PsContractInfoBo.class); + List businessBoslist = bo.getServiceCompanyInfoList().stream().flatMap(com -> com.getBusinessList().stream()).toList(); //2.删除所有服务类型和服务项目,.插入服务类型 - businessService.saveList(bo.getBusinessList(),bo.getContractCode()); - + businessService.saveList(businessBoslist,bo.getContractCode()); + //保存公司合同关联表 + companyInfoService.saveContractCompany(bo.getServiceCompanyInfoList(),src.getContractCode()); //3.修改后操作 afterUpdateOperate(bo, src); //插入合同 diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCompanyInfoServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCompanyInfoServiceImpl.java index 6563315..158cf85 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCompanyInfoServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCompanyInfoServiceImpl.java @@ -2,10 +2,12 @@ package com.pusong.business.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.pusong.business.domain.PsContractCompany; import com.pusong.business.domain.PsContractInfo; import com.pusong.business.domain.bo.PsCompanyQueryBo; import com.pusong.business.domain.vo.PsCompanyQueryVo; import com.pusong.business.domain.vo.PsSalaryVo; +import com.pusong.business.mapper.PsContractCompanyMapper; import com.pusong.business.mapper.PsContractInfoMapper; import com.pusong.business.service.IPsContractInfoService; 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.service.IPsCompanyInfoService; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Collection; @@ -39,6 +42,7 @@ import java.util.Collection; public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService { private final PsCompanyInfoMapper baseMapper; + private final PsContractCompanyMapper contractCompanyMapper; private final PsContractInfoMapper contractInfoMapper; @@ -110,14 +114,35 @@ public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService { // //如果存在重复名称则修改 // if(CollectionUtils.isNotEmpty(list)){bo.setId(list.get(0).getId());} // } + //公司类型默认签约公司 PsCompanyInfo add = MapstructUtils.convert(bo, PsCompanyInfo.class); + //新增时公司类型默认为签约公司 + add.setCompanyType(add.getId() == null && StringUtils.isBlank(add.getCompanyType())?"1":add.getCompanyType()); validEntityBeforeSave(add); boolean flag = baseMapper.insertOrUpdate(add); if (flag) { bo.setId(add.getId()); + if(bo.getBusinessList() != null){//装填服务类型的公司id + bo.getBusinessList().forEach(b->b.setCompanyId(add.getId())); + } } return flag; } + + /** + * 保存公司合同关联表 + */ + public void saveContractCompany(List list,String contractCode ){ + contractCompanyMapper.delete(Wrappers.lambdaQuery().eq(PsContractCompany::getContractCode, contractCode)); + List 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){ - if(entity.getId() != null){ - //修改 + private void validEntityBeforeSave(PsCompanyInfo info){ + //新增公司时 + if(info.getId() == null && StringUtils.equals(info.getCompanyType(),"2")){ + Long count = baseMapper.selectCount(Wrappers.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 修改公司时需要校验公司下是否有合同状态 } @@ -155,4 +183,16 @@ public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService { } return baseMapper.deleteBatchIds(ids) > 0; } + + /** + * 根据合同编码查询服务公司信息 + * @param controctCode + * @return + */ + public List getServiceCompany(String controctCode){ + QueryWrapper wq = Wrappers.query().eq("pcc.del_flag", "0").eq("bus.del_flag","0") + .eq("det.del_flag","0").eq("pcc.controct_code", controctCode); + List list = baseMapper.selectServiceCompanyList(wq); + return list; + } } 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 d772c3a..b75de5b 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 @@ -99,8 +99,14 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { if(bo.getCompanyInfoBo().getCustomId() == null){ bo.getCompanyInfoBo().setCustomId(bo.getCustomId()); } - //2.插入公司信息 + //2.插入签约公司信息 companyInfoService.saveBo(bo.getCompanyInfoBo()); + //插入服务公司 + for (PsCompanyInfoBo companyInfoBo : bo.getServiceCompanyInfoList()){ + companyInfoBo.setCompanyType("2"); + companyInfoService.saveBo(companyInfoBo); + } + //3.如果已存在合同,则进行修改,否则新增 if(add == null){ add = new PsContractInfo(); @@ -113,7 +119,9 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { MapstructUtils.convert(bo, add); } add.setCompanyId(bo.getCompanyInfoBo().getId());//公司id - bo.getBusinessList().forEach(item->{ + + List list = bo.getServiceCompanyInfoList().stream().flatMap(com -> com.getBusinessList().stream()).toList(); + list.forEach(item->{ BigDecimal mony = BigDecimal.ZERO; if(CollectionUtils.isNotEmpty(item.getDetailBos())){ 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); } }); - - 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.setContractStatus(type == 1?ContractStatusEnum.INIT.getCode():ContractStatusEnum.CREATE.getCode());//合同状态 add.setIsCancel(CommonStatusEnum.INIT.getCode()); baseMapper.insertOrUpdate(add); //4.删除所有服务类型和服务项目,.插入服务类型 - businessService.saveList(bo.getBusinessList(),add.getContractCode()); + businessService.saveList(list,add.getContractCode()); //7.生成合同 return makePdf(add,bo,true); } @@ -149,7 +158,8 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { add.setCustomManager(LoginHelper.getUserId());//所属销售经理id add.setCompanyId(bo.getCompanyInfoBo().getId());//公司id MapstructUtils.convert(bo, add); - bo.getBusinessList().forEach(item->{ + List list = bo.getServiceCompanyInfoList().stream().flatMap(com -> com.getBusinessList().stream()).toList(); + list.forEach(item->{ BigDecimal mony = BigDecimal.ZERO; if(CollectionUtils.isNotEmpty(item.getDetailBos())){ 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); } }); - 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);//合同总金额 return makePdf(add,bo,false); } @@ -180,12 +190,13 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { return null; } PsContractInfoVo vo = MapstructUtils.convert(info, PsContractInfoVo.class); - //装填公司信息 + //装填签约公司信息 if(vo.getCompanyId() != null){ vo.setPsCompanyInfoVo(companyInfoService.queryById(vo.getCompanyId())); } - fillContractInfo(vo); - + //装填服务公司信息 + List list = companyInfoService.getServiceCompany(vo.getContractCode()); + vo.setPsCompanySerivceVo(list); return vo; } @@ -270,8 +281,14 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { } //3.插入公司信息 companyInfoService.saveBo(bo.getCompanyInfoBo()); + //插入服务公司 + for (PsCompanyInfoBo companyInfoBo : bo.getServiceCompanyInfoList()){ + companyInfoBo.setCompanyType("2"); + companyInfoService.saveBo(companyInfoBo); + } //4.装填合同信息 - bo.getBusinessList().forEach(item->{ + List list = bo.getServiceCompanyInfoList().stream().flatMap(com -> com.getBusinessList().stream()).toList(); + list.forEach(item->{ BigDecimal mony = BigDecimal.ZERO; if(CollectionUtils.isNotEmpty(item.getDetailBos())){ 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); } }); - 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);//合同总金额 //5.已回款之后的合同修改后走审批 @@ -301,7 +318,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { add.setCompanyId(bo.getCompanyInfoBo().getId());//公司id this.updateByCode(add); //4.删除所有服务类型和服务项目,.插入服务类型 - businessService.saveList(bo.getBusinessList(),add.getContractCode()); + businessService.saveList(list,add.getContractCode()); makePdf(add,bo,true); } return true; @@ -386,6 +403,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { * @param bo */ public Long makePdf(PsContractInfo add ,PsContractInfoBo bo,boolean isSave){ + //todo 合同pdf Long ossId = null; SysDictData main = dictDataService.selectDict("contract_main", add.getContractMain()); bo.getBusinessList().forEach(item->{ @@ -436,6 +454,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { log.error("生成pdf失败",e); } return ossId; + return null; } /** @@ -611,10 +630,11 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { return qw; } private PsContractInfoVo fillContractInfo(PsContractInfoVo vo){ + //装填服务类型和服务项目信息 - List list = businessService.selectBusinessList(List.of(vo.getContractCode())); - vo.setBusinessTypeName(StringUtils.join(list.stream().map(PsContractBusinessVo::getBusinessType).collect(Collectors.toList()), ",")); - vo.setBusinessVoList(list); +// List list = businessService.selectBusinessList(List.of(vo.getContractCode())); +// vo.setBusinessTypeName(StringUtils.join(list.stream().map(PsContractBusinessVo::getBusinessType).collect(Collectors.toList()), ",")); + fillMoney(vo); if(vo.getFirstApplyDate() != null){ Date date = new Date(); @@ -644,10 +664,10 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { if(StringUtils.equals(CommonStatusEnum.FAIL.getCode(),vo.getIsCancel())){ vo.setContractStatusDesc(approverRecordService.getLastFail(vo.getContractCode(),vo.getContractCode(),List.of(ApproverTypeEnum.CANCELLA.getCode()))); } - //合同作废审批 - if(StringUtils.equals(CommonStatusEnum.FAIL.getCode(),vo.getIsCancel())){ - vo.setContractStatusDesc(approverRecordService.getLastFail(vo.getContractCode(),vo.getContractCode(),List.of(ApproverTypeEnum.CANCELLA.getCode()))); - } +// //合同作废审批 +// if(StringUtils.equals(CommonStatusEnum.FAIL.getCode(),vo.getIsCancel())){ +// vo.setContractStatusDesc(approverRecordService.getLastFail(vo.getContractCode(),vo.getContractCode(),List.of(ApproverTypeEnum.CANCELLA.getCode()))); +// } //天数 if(vo.getEndServiceDate() != null){ int num = DateUtils.differentDaysByMillisecond(new Date(), vo.getEndServiceDate()); 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 803fc67..ceca7ce 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 @@ -283,7 +283,7 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService { baseMapper.updateById(update); //修改公司信息 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()); } if(CollectionUtils.isNotEmpty(bo.getCompanyIds())){ diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsCompanyInfoMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsCompanyInfoMapper.xml index 1f03788..1d96e0b 100644 --- a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsCompanyInfoMapper.xml +++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsCompanyInfoMapper.xml @@ -3,6 +3,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + + + + + + + + + + + diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractCompanyMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractCompanyMapper.xml new file mode 100644 index 0000000..a5f1405 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractCompanyMapper.xml @@ -0,0 +1,6 @@ + + + +