diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/ProjectDetailMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/ProjectDetailMapper.java new file mode 100644 index 00000000..b47879c8 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/ProjectDetailMapper.java @@ -0,0 +1,14 @@ +package com.jero.common.mapper; +import com.jero.project.entity.PayCommonProject; + +public interface ProjectDetailMapper { + /** + * @Description 查询项目信息 + * @Author lqt + * @Date 2021/9/14 + * @Param projectId 项目id + * @Return + * @Exception + */ + PayCommonProject queryProject(String projectId); +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/xml/ProjectDetailMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/xml/ProjectDetailMapper.xml new file mode 100644 index 00000000..155df450 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/xml/ProjectDetailMapper.xml @@ -0,0 +1,55 @@ + + + + + + \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/service/ProjectDetailService.java b/jero-boot-incoming-payment/src/main/java/com/jero/common/service/ProjectDetailService.java index e8e3afae..1441483b 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/common/service/ProjectDetailService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/service/ProjectDetailService.java @@ -1,18 +1,16 @@ package com.jero.common.service; -import com.alibaba.fastjson.JSONObject; +import com.jero.common.vo.ProjectDetailVO; public interface ProjectDetailService { /** - * @Description 获取企业信息,联系人信息,到账信息,开票邮寄记录 + * @Description 获取项目详情 * @Author lqt * @Date 2021/9/2 * @Param projectId项目id - * @Param companyId 企业id - * @Param contactsId 联系人id * @Return * @Exception */ - JSONObject getProjectDetail(String projectId,String companyId,String contactsId); + ProjectDetailVO getProjectDetail(String projectId); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/service/impl/ProjectDetailServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/common/service/impl/ProjectDetailServiceImpl.java index 6f20eb30..ffde459b 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/common/service/impl/ProjectDetailServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/service/impl/ProjectDetailServiceImpl.java @@ -1,22 +1,32 @@ package com.jero.common.service.impl; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.common.common.ProjectCommon; import com.jero.common.exception.JeroBootException; +import com.jero.common.mapper.ProjectDetailMapper; import com.jero.common.service.ProjectDetailService; +import com.jero.common.system.api.ISysBaseAPI; +import com.jero.common.util.PasswordUtil; +import com.jero.common.vo.ProjectDetailVO; +import com.jero.company.entity.PayCompanyManagement; +import com.jero.company.entity.PayContactsManagement; +import com.jero.company.service.IPayCompanyManagementService; +import com.jero.company.service.IPayContactsManagementService; import com.jero.mail.entity.PayMailBill; import com.jero.mail.service.IPayMailBillService; -import com.jero.pack.common.PackCommon; import com.jero.payment.entity.PayPaymentRecord; import com.jero.payment.service.IPayPaymentRecordService; +import com.jero.project.entity.PayCommonProject; import com.jero.temporary.entity.PayCompanyManagementTemporary; import com.jero.temporary.entity.PayContactsManagementTemporary; import com.jero.temporary.service.IPayCompanyManagementTemporaryService; import com.jero.temporary.service.IPayContactsManagementTemporaryService; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.List; import java.util.Objects; @@ -24,34 +34,116 @@ import java.util.Objects; public class ProjectDetailServiceImpl implements ProjectDetailService { @Autowired - IPayCompanyManagementTemporaryService payCompanyManagementTemporaryService; + private IPayCompanyManagementTemporaryService payCompanyManagementTemporaryService; @Autowired - IPayContactsManagementTemporaryService payContactsManagementTemporaryService; + private IPayContactsManagementTemporaryService payContactsManagementTemporaryService; @Autowired - IPayPaymentRecordService payPaymentRecordService; + private IPayCompanyManagementService payCompanyManagementService; @Autowired - IPayMailBillService payMailBillService; + private IPayContactsManagementService payContactsManagementService; + @Autowired + private IPayPaymentRecordService payPaymentRecordService; + @Autowired + private IPayMailBillService payMailBillService; + @Resource + private ProjectDetailMapper projectDetailMapper; + @Autowired + private ISysBaseAPI sysBaseAPI; @Override - public JSONObject getProjectDetail(String projectId, String companyId, String contactsId) { - if(StringUtils.isBlank(projectId) || StringUtils.isBlank(companyId) || StringUtils.isBlank(contactsId)){ - throw new JeroBootException("项目id、企业id、联系人id不能为空!"); + public ProjectDetailVO getProjectDetail(String projectId) { + if(StringUtils.isBlank(projectId)){ + throw new JeroBootException("项目id不能为空!"); + } + // 获取项目信息 + PayCommonProject payCommonProject = projectDetailMapper.queryProject(projectId); + if(Objects.isNull(payCommonProject)){ + throw new JeroBootException("项目不存在!"); + } + ProjectDetailVO projectDetailVO = new ProjectDetailVO(); + projectDetailVO.setPrincipalName(payCommonProject.getPrincipalName()); + projectDetailVO.setReceivableAmount(payCommonProject.getReceivableAmount()); + projectDetailVO.setRemarks(payCommonProject.getRemarks()); + projectDetailVO.setChargeWay(payCommonProject.getChargeWay()); + if(!Objects.isNull(payCommonProject.getChargeWay())){ + projectDetailVO.setChargeWay_dictText(sysBaseAPI.translateDict("payment_charge_use",String.valueOf(payCommonProject.getChargeWay()))); + } + projectDetailVO.setContractNum(payCommonProject.getContractNum()); + projectDetailVO.setNeedInvoice(payCommonProject.getNeedInvoice()); + if(!Objects.isNull(payCommonProject.getNeedInvoice())){ + projectDetailVO.setNeedInvoice_dictText(sysBaseAPI.translateDict("invoice_type",String.valueOf(payCommonProject.getNeedInvoice()))); + } + projectDetailVO.setPack(payCommonProject.getPack()); + if(!Objects.isNull(payCommonProject.getPack())){ + projectDetailVO.setPack_dictText(sysBaseAPI.translateDict("yn",String.valueOf(payCommonProject.getPack()))); + } + // 标协会员,直接查询企业,联系人 + if(Objects.equals(payCommonProject.getProjectType(), ProjectCommon.PROJECT_TYPE5)){ + PayCompanyManagement payCompanyManagement = payCompanyManagementService.getById(payCommonProject.getChargeCompanyTemporaryId()); + if(Objects.isNull(payCompanyManagement)){ + throw new JeroBootException("企业不存在!"); + } + projectDetailVO.setCompanyName(payCompanyManagement.getCompanyName()); + projectDetailVO.setPostalCodeCompany(payCompanyManagement.getPostalCode()); + projectDetailVO.setCompanyAddress(payCompanyManagement.getCompanyAddress()); + PayContactsManagement payContactsManagement = payContactsManagementService.getById(payCommonProject.getContactsTemporaryId()); + if(Objects.isNull(payContactsManagement)){ + throw new JeroBootException("联系人不存在!"); + } + projectDetailVO.setName(payContactsManagement.getName()); + projectDetailVO.setGender(payContactsManagement.getGender()); + if(!Objects.isNull(payContactsManagement.getGender())){ + projectDetailVO.setGender_dictText(sysBaseAPI.translateDict("sex",String.valueOf(payContactsManagement.getGender()))); + } + projectDetailVO.setPost(payContactsManagement.getPost()); + if(!StringUtils.isBlank(payContactsManagement.getPhone())){ + projectDetailVO.setPhone(PasswordUtil.decrypt(payContactsManagement.getPhone())); + } + if(!StringUtils.isBlank(payContactsManagement.getEmail())){ + projectDetailVO.setEmail(PasswordUtil.decrypt(payContactsManagement.getEmail())); + } + projectDetailVO.setPostalCodeContacts(payContactsManagement.getPostalCode()); + projectDetailVO.setContactAddress(payContactsManagement.getContactAddress()); + + }else{ + PayCompanyManagementTemporary payCompanyManagementTemporary = payCompanyManagementTemporaryService.getById(payCommonProject.getChargeCompanyTemporaryId()); + if(Objects.isNull(payCompanyManagementTemporary)){ + throw new JeroBootException("企业不存在!"); + } + projectDetailVO.setCompanyName(payCompanyManagementTemporary.getCompanyName()); + projectDetailVO.setPostalCodeCompany(payCompanyManagementTemporary.getPostalCode()); + projectDetailVO.setCompanyAddress(payCompanyManagementTemporary.getCompanyAddress()); + PayContactsManagementTemporary payContactsManagementTemporary = payContactsManagementTemporaryService.getById(payCommonProject.getContactsTemporaryId()); + if(Objects.isNull(payContactsManagementTemporary)){ + throw new JeroBootException("联系人不存在!"); + } + projectDetailVO.setName(payContactsManagementTemporary.getName()); + projectDetailVO.setGender(payContactsManagementTemporary.getGender()); + if(!Objects.isNull(payContactsManagementTemporary.getGender())){ + projectDetailVO.setGender_dictText(sysBaseAPI.translateDict("sex",String.valueOf(payContactsManagementTemporary.getGender()))); + } + projectDetailVO.setPost(payContactsManagementTemporary.getPost()); + if(!StringUtils.isBlank(payContactsManagementTemporary.getPhone())){ + projectDetailVO.setPhone(PasswordUtil.decrypt(payContactsManagementTemporary.getPhone())); + } + if(!StringUtils.isBlank(payContactsManagementTemporary.getEmail())){ + projectDetailVO.setEmail(PasswordUtil.decrypt(payContactsManagementTemporary.getEmail())); + } + projectDetailVO.setPostalCodeContacts(payContactsManagementTemporary.getPostalCode()); + projectDetailVO.setContactAddress(payContactsManagementTemporary.getContactAddress()); } - JSONObject json = new JSONObject(); - // 企业信息 - PayCompanyManagementTemporary payCompanyManagementTemporary = payCompanyManagementTemporaryService.getById(companyId); - json.put("company",payCompanyManagementTemporary); - // 联系人信息 - PayContactsManagementTemporary payContactsManagementTemporary = payContactsManagementTemporaryService.getById(contactsId); - json.put("contacts",payContactsManagementTemporary); // 到账信息 LambdaQueryWrapper queryWrapperPayPaymentRecord = new LambdaQueryWrapper<>(); queryWrapperPayPaymentRecord.eq(PayPaymentRecord::getProjectId,projectId); List payPaymentRecordList = payPaymentRecordService.list(queryWrapperPayPaymentRecord); - json.put("paymentRecord",payPaymentRecordList); + if(!CollectionUtils.isEmpty(payPaymentRecordList)){ + projectDetailVO.setPaymentRecord(payPaymentRecordList); + } // 开票邮寄记录 List listMailBillVO = payMailBillService.selectMailBillVO(projectId); - json.put("mailBill",listMailBillVO); - return json; + if(!CollectionUtils.isEmpty(listMailBillVO)){ + projectDetailVO.setMailBill(listMailBillVO); + } + return projectDetailVO; } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/vo/ProjectDetailVO.java b/jero-boot-incoming-payment/src/main/java/com/jero/common/vo/ProjectDetailVO.java new file mode 100644 index 00000000..7411ed93 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/vo/ProjectDetailVO.java @@ -0,0 +1,131 @@ +package com.jero.common.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.jero.mail.entity.PayMailBill; +import com.jero.payment.entity.PayPaymentRecord; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.List; + +@Data +public class ProjectDetailVO implements Serializable { + /** + * 项目负责人 + */ + @ApiModelProperty(value = "项目负责人") + private String principalName; + /** + * 应收金额 + */ + @ApiModelProperty(value = "应收金额") + @JsonFormat(shape = JsonFormat.Shape.STRING) + private BigDecimal receivableAmount; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + private String remarks; + /** + * 来款方式 + */ + @ApiModelProperty(value = "来款方式") + private Integer chargeWay; + /** + * 来款方式 + */ + @ApiModelProperty(value = "来款方式") + private String chargeWay_dictText; + /** + * 合同编号 + */ + @ApiModelProperty(value = "合同编号") + private String contractNum; + /** + * 是否需要发票 + */ + @ApiModelProperty(value = "是否需要发票") + private Integer needInvoice; + /** + * 是否需要发票 + */ + @ApiModelProperty(value = "是否需要发票") + private String needInvoice_dictText; + /** + * 是否打包 + */ + @ApiModelProperty(value = "是否打包") + private Integer pack; + /** + * 是否打包 + */ + @ApiModelProperty(value = "是否打包") + private String pack_dictText; + /** + * 来款企业 + */ + @ApiModelProperty(value = "来款企业") + private String companyName; + /** + * 企业邮编 + */ + @ApiModelProperty(value = "企业邮编") + private String postalCodeCompany; + /** + * 企业地址 + */ + @ApiModelProperty(value = "企业地址") + private String companyAddress; + /** + * 企业联系人 + */ + @ApiModelProperty(value = "企业联系人") + private String name; + /** + * 企业联系人性别 + */ + @ApiModelProperty(value = "企业联系人性别") + private Integer gender; + /** + * 企业联系人性别 + */ + @ApiModelProperty(value = "企业联系人性别") + private String gender_dictText; + /** + * 企业联系人职务 + */ + @ApiModelProperty(value = "企业联系人职务") + private String post; + /** + * 企业联系人电话 + */ + @ApiModelProperty(value = "企业联系人电话") + private String phone; + /** + * 企业联系人邮箱 + */ + @ApiModelProperty(value = "企业联系人邮箱") + private String email; + /** + * 企业联系人邮编 + */ + @ApiModelProperty(value = "企业联系人邮编") + private String postalCodeContacts; + /** + * 企业联系人地址 + */ + @ApiModelProperty(value = "企业联系人地址") + private String contactAddress; + /** + * 到账信息 + */ + @ApiModelProperty(value = "到账信息") + private List paymentRecord; + /** + * 开票邮寄记录 + */ + @ApiModelProperty(value = "开票邮寄记录") + private List mailBill; + +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PayIncomeContractServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PayIncomeContractServiceImpl.java index ea951a94..ff4da928 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PayIncomeContractServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PayIncomeContractServiceImpl.java @@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.exception.JeroBootException; -import com.jero.common.service.ProjectPackService; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.ValidUtil; import com.jero.contract.common.PayIncomeContractCommon; @@ -21,6 +20,7 @@ import com.jero.contract.service.IPayIncomeContractInstallmentService; import com.jero.contract.service.IPayIncomeContractService; import com.jero.contract.vo.PayIncomeContractInput; import com.jero.contract.vo.ProjectOutput; +import com.jero.meeting.service.IPayMeetingService; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.service.ISysUserService; import com.jero.pack.entity.PayPackCompany; @@ -44,9 +44,7 @@ import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; - import javax.annotation.Resource; -import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -89,6 +87,8 @@ public class PayIncomeContractServiceImpl extends ServiceImpl queryPageList(Page page, PayIncomeContract payIncomeContract, String chargeStatus,String projectName, String startTime, String endTime) { @@ -306,6 +306,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl updatePayCommonProject = new LambdaUpdateWrapper<>(); @@ -381,6 +382,9 @@ public class PayIncomeContractServiceImpl extends ServiceImpl payMailBillProjectLambdaQueryWrapper = new LambdaQueryWrapper<>(); payMailBillProjectLambdaQueryWrapper.eq(PayMailBillProject::getBillId,keyId); PayMailBillProject one1 = iPayMailBillProjectService.getOne(payMailBillProjectLambdaQueryWrapper); - JSONObject projectDetail = projectDetailService.getProjectDetail(one1.getProjectId(), one.getCompanyId(), one.getId()); - //根据项目id企业id和联系人id获取项目详情 - LambdaQueryWrapper payMemberProjectSubitemLambdaQueryWrapper = new LambdaQueryWrapper<>(); - payMemberProjectSubitemLambdaQueryWrapper.eq(PayMemberProjectSubitem::getCompanyId,one.getCompanyId()); - payMemberProjectSubitemLambdaQueryWrapper.eq(PayMemberProjectSubitem::getCompanyContactId,one.getId()); - payMemberProjectSubitemLambdaQueryWrapper.eq(PayMemberProjectSubitem::getProjectId,one1.getProjectId()); - PayMemberProjectSubitem payMemberProjectSubitem = iPayMemberProjectSubitemService.getOne(payMemberProjectSubitemLambdaQueryWrapper, false); - projectDetail.put("payMemberProjectSubitem",payMemberProjectSubitem); - return Result.OK(projectDetail); + ProjectDetailVO projectDetailVO = projectDetailService.getProjectDetail(one1.getProjectId()); + return Result.OK(projectDetailVO); } /** diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/pack/service/impl/PayPackCompanyServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/pack/service/impl/PayPackCompanyServiceImpl.java index 9111d07f..8ae7fa7c 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/pack/service/impl/PayPackCompanyServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/pack/service/impl/PayPackCompanyServiceImpl.java @@ -69,6 +69,9 @@ public class PayPackCompanyServiceImpl extends ServiceImpl query = new LambdaQueryWrapper<>(); query.eq(PayPackCompany::getCompanyId,payPackCompany.getCompanyId()); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java index 811f4cba..bbd8402d 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java @@ -19,6 +19,7 @@ import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.base.controller.JeroController; import com.jero.common.system.query.QueryGenerator; import com.jero.common.util.ValidUtil; +import com.jero.common.vo.ProjectDetailVO; import com.jero.contract.entity.PayIncomeContract; import com.jero.contract.entity.PayIncomeContractAssociated; import com.jero.contract.service.IPayIncomeContractAssociatedService; @@ -282,16 +283,12 @@ public class PayCommonProjectController extends JeroController