diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/common/ProjectCommon.java b/jero-boot-incoming-payment/src/main/java/com/jero/common/common/ProjectCommon.java new file mode 100644 index 00000000..3a693353 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/common/ProjectCommon.java @@ -0,0 +1,40 @@ +package com.jero.common.common; + +public class ProjectCommon { + /** + * 打包(1:是,0:否) + */ + public final static Integer PACKAGING0 = 0; + /** + * 打包(1:是,0:否) + */ + public final static Integer PACKAGING1 = 1; + /** + * 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目) + */ + public final static String PROJECT_TYPE1 = "1"; + /** + * 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目) + */ + public final static String PROJECT_TYPE2 = "2"; + /** + * 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目) + */ + public final static String PROJECT_TYPE3 = "3"; + /** + * 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目) + */ + public final static String PROJECT_TYPE4 = "4"; + /** + * 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目) + */ + public final static String PROJECT_TYPE5 = "5"; + /** + * 来源(1:收入合同,2:打包管理) + */ + public final static Integer COME1 = 1; + /** + * 来源(1:收入合同,2:打包管理) + */ + public final static Integer COME2 = 2; +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/service/ProjectPackService.java b/jero-boot-incoming-payment/src/main/java/com/jero/common/service/ProjectPackService.java new file mode 100644 index 00000000..0a5f4897 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/service/ProjectPackService.java @@ -0,0 +1,16 @@ +package com.jero.common.service; + +public interface ProjectPackService { + /** + * @Description 更新项目状态 + * @Author lqt + * @Date 2021/9/12 + * @Param projectId 项目id + * @Param projectType 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目) + * @Param packStatus 打包(1:是,0:否) + * @Param packId 打包id + * @Return + * @Exception + */ + void updateProjectStatus(String projectId,String projectType,String packStatus,String packId); +} 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 aaf68e6a..6f20eb30 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 @@ -6,6 +6,7 @@ import com.jero.common.exception.JeroBootException; import com.jero.common.service.ProjectDetailService; 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.temporary.entity.PayCompanyManagementTemporary; @@ -17,6 +18,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Objects; + @Service public class ProjectDetailServiceImpl implements ProjectDetailService { diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/service/impl/ProjectPackServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/common/service/impl/ProjectPackServiceImpl.java new file mode 100644 index 00000000..cf11497e --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/service/impl/ProjectPackServiceImpl.java @@ -0,0 +1,148 @@ +package com.jero.common.service.impl; + +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.jero.common.exception.JeroBootException; +import com.jero.common.service.ProjectPackService; +import com.jero.common.system.vo.LoginUser; +import com.jero.meeting.entity.PayMeetingSituation; +import com.jero.meeting.service.IPayMeetingSituationService; +import com.jero.member.entity.PayMemberProjectSubitem; +import com.jero.member.entity.TbMemberProjectSubitem; +import com.jero.member.service.IPayMemberProjectSubitemService; +import com.jero.member.service.ITbMemberProjectSubitemService; +import com.jero.pack.common.PackCommon; +import com.jero.pack.entity.PayPackCompany; +import com.jero.pack.service.IPayPackCompanyService; +import com.jero.project.entity.PayCommonProject; +import com.jero.project.entity.PayWorkingGroupSubItem; +import com.jero.project.service.IPayCommonProjectService; +import com.jero.project.service.IPayWorkingGroupSubItemService; +import org.apache.shiro.SecurityUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.Date; +import java.util.Objects; + +@Service +public class ProjectPackServiceImpl implements ProjectPackService { + @Autowired + private IPayCommonProjectService payCommonProjectService; + @Autowired + private IPayWorkingGroupSubItemService payWorkingGroupSubItemService; + @Resource + private IPayMeetingSituationService payMeetingSituationService; + @Resource + private IPayMemberProjectSubitemService payMemberProjectSubitemService; + @Resource + private ITbMemberProjectSubitemService tbMemberProjectSubitemService; + @Autowired + private IPayPackCompanyService payPackCompanyService; + + + @Override + public void updateProjectStatus(String projectId, String projectType, String packStatus,String packId) { + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + PayPackCompany payPackCompany = payPackCompanyService.getById(packId); + if(Objects.isNull(payPackCompany)){ + throw new JeroBootException("打包企业不存在!"); + } + switch (projectType){ + // 普通项目 + case PackCommon.PROJECT_TYPE1: + // 验证项目是否存在 + PayCommonProject payCommonProjectOld = payCommonProjectService.getById(projectId); + if(Objects.isNull(payCommonProjectOld)){ + throw new JeroBootException("项目不存在!"); + } + // 验证企业是否正确 + if(!Objects.equals(payCommonProjectOld.getChargeCompanyId(),payPackCompany.getCompanyId())){ + throw new JeroBootException("企业不匹配!"); + } + LambdaUpdateWrapper payCommonProject = new LambdaUpdateWrapper<>(); + payCommonProject.eq(PayCommonProject::getId,projectId); + payCommonProject.set(PayCommonProject::getPack,packStatus); + payCommonProject.set(PayCommonProject::getUpdateBy,sysUser.getUsername()); + payCommonProject.set(PayCommonProject::getUpdateTime,new Date()); + payCommonProjectService.update(payCommonProject); + break; + // 工作组项目 + case PackCommon.PROJECT_TYPE2: + // 验证项目是否存在 + PayWorkingGroupSubItem payWorkingGroupSubItemOld = payWorkingGroupSubItemService.getById(projectId); + if(Objects.isNull(payWorkingGroupSubItemOld)){ + throw new JeroBootException("项目不存在!"); + } + // 验证企业是否正确 + if(!Objects.equals(payWorkingGroupSubItemOld.getChargeCompanyId(),payPackCompany.getCompanyId())){ + throw new JeroBootException("企业不匹配!"); + } + LambdaUpdateWrapper payWorkingGroupSubItem = new LambdaUpdateWrapper<>(); + payWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getId,projectId); + payWorkingGroupSubItem.set(PayWorkingGroupSubItem::getPack,packStatus); + payWorkingGroupSubItem.set(PayWorkingGroupSubItem::getUpdateBy,sysUser.getUsername()); + payWorkingGroupSubItem.set(PayWorkingGroupSubItem::getUpdateTime,new Date()); + payWorkingGroupSubItemService.update(payWorkingGroupSubItem); + break; + // 会议项目 + case PackCommon.PROJECT_TYPE3: + // 验证项目是否存在 + PayMeetingSituation payMeetingSituationOld = payMeetingSituationService.getById(projectId); + if(Objects.isNull(payMeetingSituationOld)){ + throw new JeroBootException("项目不存在!"); + } + // 验证企业是否正确 + if(!Objects.equals(payMeetingSituationOld.getCompanyId(),payPackCompany.getCompanyId())){ + throw new JeroBootException("企业不匹配!"); + } + LambdaUpdateWrapper payMeetingSituation = new LambdaUpdateWrapper<>(); + payMeetingSituation.eq(PayMeetingSituation::getId,projectId); + payMeetingSituation.set(PayMeetingSituation::getPack,packStatus); + payMeetingSituation.set(PayMeetingSituation::getAmountReceivable,new BigDecimal("0.00")); + payMeetingSituation.set(PayMeetingSituation::getPaidAmount,new BigDecimal("0.00")); + payMeetingSituation.set(PayMeetingSituation::getUpdateBy,sysUser.getUsername()); + payMeetingSituation.set(PayMeetingSituation::getUpdateTime,new Date()); + payMeetingSituationService.update(payMeetingSituation); + break; + // 会员项目 + case PackCommon.PROJECT_TYPE4: + // 验证项目是否存在 + PayMemberProjectSubitem payMemberProjectSubitemOld = payMemberProjectSubitemService.getById(projectId); + if(Objects.isNull(payMemberProjectSubitemOld)){ + throw new JeroBootException("项目不存在!"); + } + // 验证企业是否正确 + if(!Objects.equals(payMemberProjectSubitemOld.getCompanyId(),payPackCompany.getCompanyId())){ + throw new JeroBootException("企业不匹配!"); + } + LambdaUpdateWrapper payMemberProjectSubitem = new LambdaUpdateWrapper<>(); + payMemberProjectSubitem.eq(PayMemberProjectSubitem::getId,projectId); + payMemberProjectSubitem.set(PayMemberProjectSubitem::getPack,packStatus); + payMemberProjectSubitem.set(PayMemberProjectSubitem::getUpdateBy,sysUser.getUsername()); + payMemberProjectSubitem.set(PayMemberProjectSubitem::getUpdateTime,new Date()); + payMemberProjectSubitemService.update(payMemberProjectSubitem); + break; + // 标协会员 + case PackCommon.PROJECT_TYPE5: + // 验证项目是否存在 + TbMemberProjectSubitem tbMemberProjectSubitemOld = tbMemberProjectSubitemService.getById(projectId); + if(Objects.isNull(tbMemberProjectSubitemOld)){ + throw new JeroBootException("项目不存在!"); + } + // 验证企业是否正确 + if(!Objects.equals(tbMemberProjectSubitemOld.getCompanyId(),payPackCompany.getCompanyId())){ + throw new JeroBootException("企业不匹配!"); + } + LambdaUpdateWrapper tbMemberProjectSubitem = new LambdaUpdateWrapper<>(); + tbMemberProjectSubitem.eq(TbMemberProjectSubitem::getId,projectId); + tbMemberProjectSubitem.set(TbMemberProjectSubitem::getPack,packStatus); + tbMemberProjectSubitem.set(TbMemberProjectSubitem::getUpdateBy,sysUser.getUsername()); + tbMemberProjectSubitem.set(TbMemberProjectSubitem::getUpdateTime,new Date()); + tbMemberProjectSubitemService.update(tbMemberProjectSubitem); + break; + default:break; + } + } +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/common/PayIncomeContractCommon.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/common/PayIncomeContractCommon.java index 50b8b687..715f2fff 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/common/PayIncomeContractCommon.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/common/PayIncomeContractCommon.java @@ -83,4 +83,13 @@ public class PayIncomeContractCommon { */ public final static List LIST_SPENDING_CONTRACT_INSTALLMENT = Arrays.asList("阶段","期应收","期应收时间","期实收","期实收时间"); + /** + * 来源(1:收入合同,2:打包管理) + */ + public final static Integer COME1 = 1; + /** + * 来源(1:收入合同,2:打包管理) + */ + public final static Integer COME2 = 2; + } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/controller/PayIncomeContractController.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/controller/PayIncomeContractController.java index c003be5c..8420bccd 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/controller/PayIncomeContractController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/controller/PayIncomeContractController.java @@ -99,7 +99,6 @@ public class PayIncomeContractController extends JeroController page = new Page<>(pageNo, pageSize); IPage pageList = payIncomeContractService.queryPageList(page, payIncomeContract,chargeStatus,projectName,startTime,endTime); return Result.OK(pageList); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/entity/PayIncomeContractAssociated.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/entity/PayIncomeContractAssociated.java index ccae0538..57eb560d 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/entity/PayIncomeContractAssociated.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/entity/PayIncomeContractAssociated.java @@ -2,6 +2,7 @@ package com.jero.contract.entity; import java.io.Serializable; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/PayIncomeContractMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/PayIncomeContractMapper.java index c32c51d8..208364f1 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/PayIncomeContractMapper.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/PayIncomeContractMapper.java @@ -38,6 +38,5 @@ public interface PayIncomeContractMapper extends BaseMapper { * @Return * @Exception */ - // todo 缺少会议,会员项目数据 List getAssociated(@Param("contractId") String contractId); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/xml/PayIncomeContractMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/xml/PayIncomeContractMapper.xml index 65471748..5b5785e5 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/xml/PayIncomeContractMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/xml/PayIncomeContractMapper.xml @@ -47,11 +47,23 @@ LEFT JOIN pay_income_contract_associated pica ON pica.contract_id = pic.id LEFT JOIN ( - select id,charge_project AS projectName from pay_common_project - union all - select pwgs.id,pwg.working_group_project AS projectName from pay_working_group_subitem pwgs - left join pay_working_group pwg ON pwg.id = pwgs.working_group_id - WHERE pwg.working_group_project is not null and pwg.working_group_project!='' + SELECT id,charge_project AS projectName FROM pay_common_project + UNION ALL + SELECT pwgs.id,pwg.working_group_project AS projectName FROM pay_working_group_subitem pwgs + LEFT JOIN pay_working_group pwg ON pwg.id = pwgs.working_group_id + WHERE pwg.working_group_project IS NOT NULL AND pwg.working_group_project != '' + UNION ALL + SELECT sit.id,meeting.meeting_name AS projectName FROM pay_meeting meeting + INNER JOIN pay_meeting_situation sit ON meeting.id = sit.meeting_id + WHERE meeting.meeting_name IS NOT NULL AND meeting.meeting_name != '' + UNION ALL + SELECT msub.id,pmp.project_name AS projectName FROM pay_member_project pmp + INNER JOIN pay_member_project_subitem msub ON pmp.id = msub.project_id + WHERE pmp.project_name IS NOT NULL AND pmp.project_name != '' + UNION ALL + SELECT tmsub.id,tmember.project_name AS projectName FROM tb_member_project tmember + INNER JOIN tb_member_project_subitem tmsub ON tmember.id=tmsub.project_id + where tmember.project_name IS NOT NULL AND tmember.project_name != '' ) project ON project.id = pica.project_id GROUP BY pic.id ) aa @@ -116,6 +128,57 @@ JOIN pay_working_group_subitem pwgs ON pica.project_id = pwgs.id LEFT JOIN pay_working_group pwg ON pwgs.working_group_id = pwg.id WHERE pica.contract_id = #{contractId} + UNION ALL + SELECT + pica.id AS id, + pica.contract_id AS contractId, + sit.id AS projectId, + '3' AS projectType, + meeting.meeting_name AS chargeProject, + sit.charge_use AS chargeUse, + sit.company_name AS chargeCompanyName, + sit.amount_receivable AS receivableAmount, + sit.paid_amount AS paidAmount, + meeting.director_name AS principalName, + pica.create_time AS createTime + FROM pay_income_contract_associated pica + JOIN pay_meeting_situation sit ON pica.project_id = sit.id + LEFT JOIN pay_meeting meeting ON meeting.id = sit.meeting_id + WHERE pica.contract_id = #{contractId} + UNION ALL + SELECT + pica.id AS id, + pica.contract_id AS contractId, + msub.id AS projectId, + '4' AS projectType, + pmp.project_name AS chargeProject, + msub.charge_use AS chargeUse, + msub.company_name AS chargeCompanyName, + msub.amount_receivable AS receivableAmount, + msub.paid_amount AS paidAmount, + pmp.director_name AS principalName, + pica.create_time AS createTime + FROM pay_income_contract_associated pica + JOIN pay_member_project_subitem msub ON pica.project_id = msub.id + LEFT JOIN pay_member_project pmp ON pmp.id=msub.project_id + WHERE pica.contract_id = #{contractId} + UNION ALL + SELECT + pica.id AS id, + pica.contract_id AS contractId, + tmsub.id AS projectId, + '5' AS projectType, + tmember.project_name AS chargeProject, + tmsub.charge_use AS chargeUse, + tmsub.company_name AS chargeCompanyName, + tmsub.amount_receivable AS receivableAmount, + tmsub.paid_amount AS paidAmount, + tmember.director_name AS principalName, + pica.create_time AS createTime + FROM pay_income_contract_associated pica + JOIN tb_member_project_subitem tmsub ON pica.project_id = tmsub.id + LEFT JOIN tb_member_project tmember ON tmember.id=tmsub.project_id + WHERE pica.contract_id = #{contractId} ) a ORDER BY createTime,projectId DESC 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 74beda59..ef08ee6c 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,6 +6,7 @@ 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; @@ -22,6 +23,10 @@ import com.jero.contract.vo.PayIncomeContractInput; import com.jero.contract.vo.ProjectOutput; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.service.ISysUserService; +import com.jero.pack.entity.PayPackCompany; +import com.jero.pack.entity.PayPackCompanyProject; +import com.jero.pack.service.IPayPackCompanyProjectService; +import com.jero.pack.service.IPayPackCompanyService; import com.jero.project.common.PayProjectCommon; import com.jero.project.entity.PayCommonProject; import com.jero.project.entity.PayWorkingGroup; @@ -42,6 +47,7 @@ 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; @@ -80,6 +86,12 @@ public class PayIncomeContractServiceImpl extends ServiceImpl queryPageList(Page page, PayIncomeContract payIncomeContract, String chargeStatus,String projectName, String startTime, String endTime) { @@ -152,6 +164,23 @@ public class PayIncomeContractServiceImpl extends ServiceImpl queryPayPackCompany = new LambdaQueryWrapper<>(); + queryPayPackCompany.eq(PayPackCompany::getCompanyId,payIncomeContract.getSignedCompanyId()); + queryPayPackCompany.eq(PayPackCompany::getPackYear,payIncomeContract.getPackYear()); + List listPayPackCompany = payPackCompanyService.list(queryPayPackCompany); + //不存在打包企业 添加打包企业 + if(CollectionUtils.isEmpty(listPayPackCompany)){ + PayPackCompany payPackCompanyData = new PayPackCompany(); + payPackCompanyData.setCompanyId(payIncomeContract.getSignedCompanyId()); + payPackCompanyData.setCompanyContactId(payIncomeContract.getSignedCompanyId()); + payPackCompanyData.setPackYear(payIncomeContract.getPackYear()); + payPackCompanyData.setPackContactId(payIncomeContract.getSignedContactsId()); + payPackCompanyService.addPayPackCompany(payPackCompanyData); + } + } + return payIncomeContract; } @@ -265,7 +294,6 @@ public class PayIncomeContractServiceImpl extends ServiceImpl updatePayCommonProject = new LambdaUpdateWrapper<>(); updatePayCommonProject.eq(PayCommonProject::getId,p.getProjectId()); if(!StringUtils.isBlank(payCommonProject.getContractNum())){ @@ -292,7 +320,11 @@ public class PayIncomeContractServiceImpl extends ServiceImpl queryPayPackCompany = new LambdaQueryWrapper<>(); + queryPayPackCompany.eq(PayPackCompany::getCompanyId,companyId); + queryPayPackCompany.eq(PayPackCompany::getPackYear,packYear); + List listPayPackCompany = payPackCompanyService.list(queryPayPackCompany); + PayPackCompany payPackCompany = new PayPackCompany(); + //不存在打包企业 添加打包企业 + if(CollectionUtils.isEmpty(listPayPackCompany)){ + PayPackCompany payPackCompanyData = new PayPackCompany(); + payPackCompanyData.setCompanyId(companyId); + payPackCompanyData.setCompanyContactId(contactsId); + payPackCompanyData.setPackYear(packYear); + payPackCompanyData.setPackContactId(contactsId); + payPackCompanyService.addPayPackCompany(payPackCompanyData); + LambdaQueryWrapper queryPayPackCompanyNew = new LambdaQueryWrapper<>(); + queryPayPackCompanyNew.eq(PayPackCompany::getCompanyId,companyId); + queryPayPackCompanyNew.eq(PayPackCompany::getPackYear,packYear); + List listPayPackCompanyNew = payPackCompanyService.list(queryPayPackCompanyNew); + payPackCompany = listPayPackCompanyNew.get(0); + }else{ + payPackCompany = listPayPackCompany.get(0); + } + // 更新打包实收金额 + LambdaUpdateWrapper updatePayPackCompany = new LambdaUpdateWrapper<>(); + updatePayPackCompany.eq(PayPackCompany::getPackChargeTotal,payPackCompany.getPackChargeTotal().add(receivableAmount)); + updatePayPackCompany.eq(PayPackCompany::getReceiptExpense,payPackCompany.getReceiptExpense().add(paidAmount)); + updatePayPackCompany.set(PayPackCompany::getId,payPackCompany.getId()); + // todo 更新开票金额与未开票金额 + payPackCompanyService.update(updatePayPackCompany); + // 添加打包企业成员 + PayPackCompanyProject payPackCompanyProject = new PayPackCompanyProject(); + payPackCompanyProject.setPackId(payPackCompany.getId()); + payPackCompanyProject.setProjectId(projectId); + payPackCompanyProject.setCome(PayIncomeContractCommon.COME1); + payPackCompanyProject.setProjectId(PayIncomeContractCommon.PROJECT_TYPE1); + payPackCompanyProjectService.save(payPackCompanyProject); + } + } + /** * @Description 验证项目是否被合同关联 * @Author lqt * @Date 2021/9/6 @@ -386,7 +470,6 @@ public class PayIncomeContractServiceImpl extends ServiceImpl updatePayCommonProject = new LambdaUpdateWrapper<>(); - updatePayCommonProject.set(PayCommonProject::getUpdateBy,sysUser.getUsername()); - updatePayCommonProject.set(PayCommonProject::getUpdateTime,new Date()); - updatePayCommonProject.set(PayCommonProject::getPack,PayIncomeContractCommon.PACK0); - updatePayCommonProject.eq(PayCommonProject::getId,payIncomeContractAssociated.getProjectId()); - payCommonProjectService.update(updatePayCommonProject); + LambdaQueryWrapper queryPayPackCompanyProject = new LambdaQueryWrapper<>(); + queryPayPackCompanyProject.eq(PayPackCompanyProject::getProjectId,payCommonProject.getId()); + List listPayPackCompanyProject = payPackCompanyProjectService.list(queryPayPackCompanyProject); + // todo 如果在打包企业中&& 来源为支出合同,取消打包,变更打包企业金额 否则不进行操作 + if(!CollectionUtils.isEmpty(listPayPackCompanyProject) && Objects.equals(listPayPackCompanyProject.get(0).getCome(),PayIncomeContractCommon.COME1)){ + payPackCompanyService.update(); + payPackCompanyProjectService.removeById(listPayPackCompanyProject.get(0).getId()); + LambdaUpdateWrapper updatePayCommonProject = new LambdaUpdateWrapper<>(); + updatePayCommonProject.set(PayCommonProject::getUpdateBy,sysUser.getUsername()); + updatePayCommonProject.set(PayCommonProject::getUpdateTime,new Date()); + updatePayCommonProject.set(PayCommonProject::getPack,PayIncomeContractCommon.PACK0); + updatePayCommonProject.eq(PayCommonProject::getId,payIncomeContractAssociated.getProjectId()); + payCommonProjectService.update(updatePayCommonProject); + } } break; case PayIncomeContractCommon.PROJECT_TYPE2: diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/pack/common/PackCommon.java b/jero-boot-incoming-payment/src/main/java/com/jero/pack/common/PackCommon.java index 36025276..eb2f171d 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/pack/common/PackCommon.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/pack/common/PackCommon.java @@ -10,7 +10,26 @@ public class PackCommon { * 打包(1:是,0:否) */ public final static Integer PACKAGING1 = 1; - + /** + * 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目) + */ + public final static String PROJECT_TYPE1 = "1"; + /** + * 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目) + */ + public final static String PROJECT_TYPE2 = "2"; + /** + * 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目) + */ + public final static String PROJECT_TYPE3 = "3"; + /** + * 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目) + */ + public final static String PROJECT_TYPE4 = "4"; + /** + * 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目) + */ + public final static String PROJECT_TYPE5 = "5"; /** * 来源(1:收入合同,2:打包管理) */ diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/pack/controller/PayPackCompanyController.java b/jero-boot-incoming-payment/src/main/java/com/jero/pack/controller/PayPackCompanyController.java index 2e9a150e..ffd161e9 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/pack/controller/PayPackCompanyController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/pack/controller/PayPackCompanyController.java @@ -14,11 +14,16 @@ import com.jero.common.api.vo.Result; import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.system.base.controller.JeroController; import com.jero.common.system.query.QueryGenerator; +import com.jero.common.util.PasswordUtil; import com.jero.common.util.ValidUtil; +import com.jero.company.entity.PayContactsManagement; +import com.jero.company.service.IPayContactsManagementService; import com.jero.pack.entity.PayPackCompany; import com.jero.pack.entity.PayPackCompanyProject; import com.jero.pack.service.IPayPackCompanyProjectService; import com.jero.pack.service.IPayPackCompanyService; +import com.jero.temporary.entity.PayContactsManagementTemporary; +import com.jero.temporary.service.IPayContactsManagementTemporaryService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -43,6 +48,8 @@ public class PayPackCompanyController extends JeroController queryWrapper = QueryGenerator.initQueryWrapper(payPackCompany, req.getParameterMap()); Page page = new Page(pageNo, pageSize); IPage pageList = payPackCompanyService.page(page, queryWrapper); + if(!CollectionUtils.isEmpty(pageList.getRecords())){ + List list = pageList.getRecords(); + list.forEach(p->{ + + }); + } return Result.OK(pageList); } @@ -80,20 +93,8 @@ public class PayPackCompanyController extends JeroController query = new LambdaQueryWrapper<>(); - query.eq(PayPackCompany::getCompanyId,payPackCompany.getCompanyId()); - query.eq(PayPackCompany::getPackYear,payPackCompany.getPackYear()); - PayPackCompany payPackCompanyNew = payPackCompanyService.getOne(query); - if(!Objects.isNull(payPackCompanyNew)){ - return Result.error("该年份下已存在此打包企业!"); - } - }catch (Exception e){ - log.error("",e); - return Result.error("该年份下已存在此打包企业!"); - } - payPackCompanyService.save(payPackCompany); + payPackCompanyService.addPayPackCompany(payPackCompany); return Result.OK("添加成功!"); } @@ -111,19 +112,7 @@ public class PayPackCompanyController extends JeroController query = new LambdaQueryWrapper<>(); - query.eq(PayPackCompany::getCompanyId,payPackCompany.getCompanyId()); - query.eq(PayPackCompany::getPackYear,payPackCompany.getPackYear()); - PayPackCompany payPackCompanyNew = payPackCompanyService.getOne(query); - if(!Objects.isNull(payPackCompanyNew) && !Objects.equals(payPackCompany.getId(),payPackCompanyNew.getId())){ - return Result.error("该年份下已存在此打包企业!"); - } - }catch (Exception e){ - log.error("",e); - return Result.error("该年份下已存在此打包企业!"); - } - payPackCompanyService.updateById(payPackCompany); + payPackCompanyService.editPayPackCompany(payPackCompany); return Result.OK("编辑成功!"); } @@ -196,6 +185,15 @@ public class PayPackCompanyController extends JeroController queryListAll(PayPackCompanyProjectInput input) { - if(Objects.isNull(input.getPack())){ + if(Objects.isNull(input.getPackId())){ return Result.error("打包id不能为空"); } PayPackCompany payPackCompany = payPackCompanyService.getById(input.getPackId()); @@ -110,6 +110,7 @@ public class PayPackCompanyProjectController extends JeroController list = payPackCompanyProjectService.queryPackListAll(input); @@ -142,15 +143,8 @@ public class PayPackCompanyProjectController extends JeroController select project.*,ppcp.come from pay_pack_company_project ppcp - LEFT JOIN pay_payment_record ppr ON ppr.project_id = ppcp.project_id - - AND DATE_FORMAT(ppr.payment_date,'%Y') = #{paymentDate} - LEFT JOIN ( select c.id,c.charge_project, c.charge_use, c.principal_id,c.principal_name,c.charge_company_temporary_name,c.receivable_amount,c.paid_amount,c.need_invoice,c.pack,c.in_account,c.make_invoice,c.mail,c.create_time,1 as projectType from pay_common_project c - + AND c.charge_company_id = #{companyId} - + AND c.charge_project LIKE CONCAT('%',CONCAT(#{projectName},'%')) @@ -30,10 +26,10 @@ from pay_working_group g inner join pay_working_group_subitem gsub on g.id = gsub.charge_company_id - + AND gsub.charge_company_id = #{companyId} - + AND g.working_group_project LIKE CONCAT('%',CONCAT(#{projectName},'%')) @@ -46,10 +42,10 @@ from pay_meeting meeting inner join pay_meeting_situation sit on meeting.id = sit.meeting_id - + AND sit.company_id = #{companyId} - + AND meeting.meeting_name LIKE CONCAT('%',CONCAT(#{projectName},'%')) @@ -58,18 +54,18 @@ UNION ALL - select msub.id,member.project_name,msub.charge_use,member.director_id,member.director_name,msub.company_name,msub.amount_receivable,msub.paid_amount,msub.need_invoice,msub.pack,msub.in_account,msub.make_invoice,msub.mail,msub.create_time,4 - from pay_member_project member - inner join pay_member_project_subitem msub on member.id=msub.project_id + select msub.id,pmp.project_name,msub.charge_use,pmp.director_id,pmp.director_name,msub.company_name,msub.amount_receivable,msub.paid_amount,msub.need_invoice,msub.pack,msub.in_account,msub.make_invoice,msub.mail,msub.create_time,4 + from pay_member_project pmp + inner join pay_member_project_subitem msub on pmp.id = msub.project_id - + AND msub.company_id = #{companyId} - - AND member.project_name LIKE CONCAT('%',CONCAT(#{projectName},'%')) + + AND pmp.project_name LIKE CONCAT('%',CONCAT(#{projectName},'%')) - AND member.particular_year = #{year} + AND pmp.particular_year = #{year} @@ -78,31 +74,36 @@ from tb_member_project tmember inner join tb_member_project_subitem tmsub on tmember.id=tmsub.project_id - + AND tmsub.company_id = #{companyId} - + AND tmember.project_name LIKE CONCAT('%',CONCAT(#{projectName},'%')) AND tmember.year = #{year} - ) project ON project.id = ppr.project_id + ) project ON project.id = ppcp.project_id + LEFT JOIN pay_payment_record ppr ON ppr.project_id = project.id + + AND DATE_FORMAT(ppr.payment_date,'%Y') = #{paymentDate} + GROUP BY ppcp.project_id ORDER BY ppcp.create_time desc