diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/company/service/impl/PayCompanyManagementServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/company/service/impl/PayCompanyManagementServiceImpl.java index 095c1a00..d4b1de9e 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/company/service/impl/PayCompanyManagementServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/company/service/impl/PayCompanyManagementServiceImpl.java @@ -1,6 +1,7 @@ package com.jero.company.service.impl; import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -52,6 +53,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; @@ -742,43 +744,51 @@ public class PayCompanyManagementServiceImpl extends ServiceImpl updatePayCompanyManagementTemporary = new LambdaUpdateWrapper<>(); - updatePayCompanyManagementTemporary.eq(PayCompanyManagementTemporary::getCompanyId,payCompanyManagement.getId()); - updatePayCompanyManagementTemporary.ge(PayCompanyManagementTemporary::getEditTime,payCompanyManagement.getEditTime()); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getCompanyName,payCompanyManagement.getCompanyName()); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getCompanyAddress,payCompanyManagement.getCompanyAddress()); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getCompanyPhone,payCompanyManagement.getCompanyPhone()); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getPostalCode,payCompanyManagement.getPostalCode()); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getBankAccountName,payCompanyManagement.getBankAccountName()); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getOpeningBank,payCompanyManagement.getOpeningBank()); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getDutyCode,payCompanyManagement.getDutyCode()); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getStatus,PayCompanyManagementCommon.STATUS1); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getDataSource,payCompanyManagement.getDataSource()); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getRemarks,payCompanyManagement.getRemarks()); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getEditTime,payCompanyManagement.getEditTime()); - //updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getCreateBy,payCompanyManagement.getCreateBy()); - //updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getCreateTime,payCompanyManagement.getCreateTime()); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getUpdateBy,payCompanyManagement.getUpdateBy()); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getUpdateTime,payCompanyManagement.getUpdateTime()); - payCompanyManagementTemporaryService.update(updatePayCompanyManagementTemporary); + //更新人员 LambdaUpdateWrapper updatePayContactsManagement = new LambdaUpdateWrapper<>(); updatePayContactsManagement.eq(PayContactsManagement::getCompanyId,payCompanyManagement.getId()); updatePayContactsManagement.set(PayContactsManagement::getCompanyName,payCompanyManagement.getCompanyName()); payContactsManagementService.update(updatePayContactsManagement); + int thisYear = DateUtil.thisYear(); + //需要更新的临时企业id + List companyTemporaryIdList = new ArrayList<>(); // 更新普通项目 - LambdaUpdateWrapper updatePayCommonProject = new LambdaUpdateWrapper<>(); - updatePayCommonProject.eq(PayCommonProject::getChargeCompanyId,payCompanyManagement.getId()); - //updatePayCommonProject.ge(PayCommonProject::getCreateTime,payCompanyManagement.getEditTime()); - updatePayCommonProject.set(PayCommonProject::getChargeCompanyTemporaryName,payCompanyManagement.getCompanyName()); - updatePayCommonProject.exists(" select 1 from pay_company_management_temporary where " + - "pay_common_project.charge_company_temporary_id = id and create_time >= '" + DateTime.of(payCompanyManagement.getEditTime()) + "'"); - payCommonProjectService.update(updatePayCommonProject); + LambdaQueryWrapper quaryPayCommonProject = new LambdaQueryWrapper<>(); + quaryPayCommonProject.eq(PayCommonProject::getChargeCompanyId,payCompanyManagement.getId()); + + quaryPayCommonProject.eq(PayCommonProject::getYear,thisYear); + quaryPayCommonProject.and( + a -> { + a.eq(PayCommonProject::getPaidAmount, BigDecimal.ZERO) + .or() + .isNull(PayCommonProject::getPaidAmount); + }); + quaryPayCommonProject.and( + a -> { + a.eq(PayCommonProject::getInvoiceAmount, BigDecimal.ZERO) + .or() + .isNull(PayCommonProject::getInvoiceAmount); + }); + quaryPayCommonProject.and( + a -> { + a.eq(PayCommonProject::getConfirmAmount, BigDecimal.ZERO) + .or() + .isNull(PayCommonProject::getConfirmAmount); + }); + List list = payCommonProjectService.list(quaryPayCommonProject); + List collect = list.stream().map(PayCommonProject::getChargeCompanyTemporaryId).collect(Collectors.toList()); + companyTemporaryIdList.addAll(collect); + if (!collect.isEmpty()){ + LambdaUpdateWrapper updatePayCommonProject = new LambdaUpdateWrapper<>(); + updatePayCommonProject.in(PayCommonProject::getChargeCompanyTemporaryId,collect); + updatePayCommonProject.set(PayCommonProject::getChargeCompanyTemporaryName,payCompanyManagement.getCompanyName()); + payCommonProjectService.update(updatePayCommonProject); + } + // 更新工作组 LambdaUpdateWrapper updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>(); updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getChargeCompanyId,payCompanyManagement.getId()); - //updatePayWorkingGroupSubItem.ge(PayWorkingGroupSubItem::getCreateTime,payCompanyManagement.getEditTime()); updatePayWorkingGroupSubItem.exists(" select 1 from pay_company_management_temporary where " + "pay_working_group_subitem.charge_company_temporary_id = id and create_time >= '" + DateTime.of(payCompanyManagement.getEditTime()) + "'"); updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getChargeCompanyTemporaryName,payCompanyManagement.getCompanyName()); @@ -786,11 +796,31 @@ public class PayCompanyManagementServiceImpl extends ServiceImpl updatePayMemberProjectSubitem = new LambdaUpdateWrapper<>(); updatePayMemberProjectSubitem.eq(PayMemberProjectSubitem::getCompanyId,payCompanyManagement.getId()); - //updatePayMemberProjectSubitem.ge(PayMemberProjectSubitem::getCreateTime,payCompanyManagement.getEditTime()); updatePayMemberProjectSubitem.exists(" select 1 from pay_company_management_temporary where " + "pay_member_project_subitem.company_temporary_id = id and create_time >= '" + DateTime.of(payCompanyManagement.getEditTime()) + "'"); updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getCompanyName,payCompanyManagement.getCompanyName()); memberProjectSubitemService.update(updatePayMemberProjectSubitem); + + // 更新临时数据 + if (!companyTemporaryIdList.isEmpty()) { + LambdaUpdateWrapper updatePayCompanyManagementTemporary = new LambdaUpdateWrapper<>(); + updatePayCompanyManagementTemporary.in(PayCompanyManagementTemporary::getId,companyTemporaryIdList); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getCompanyName,payCompanyManagement.getCompanyName()); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getCompanyAddress,payCompanyManagement.getCompanyAddress()); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getCompanyPhone,payCompanyManagement.getCompanyPhone()); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getPostalCode,payCompanyManagement.getPostalCode()); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getBankAccountName,payCompanyManagement.getBankAccountName()); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getOpeningBank,payCompanyManagement.getOpeningBank()); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getDutyCode,payCompanyManagement.getDutyCode()); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getStatus,PayCompanyManagementCommon.STATUS1); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getDataSource,payCompanyManagement.getDataSource()); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getRemarks,payCompanyManagement.getRemarks()); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getEditTime,payCompanyManagement.getEditTime()); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getUpdateBy,payCompanyManagement.getUpdateBy()); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getUpdateTime,payCompanyManagement.getUpdateTime()); + payCompanyManagementTemporaryService.update(updatePayCompanyManagementTemporary); + } + // 更新合同 LambdaUpdateWrapper updatePayIncomeContract = new LambdaUpdateWrapper<>(); updatePayIncomeContract.eq(PayIncomeContract::getSignedCompanyId,payCompanyManagement.getId()); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayCommonProjectMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayCommonProjectMapper.xml index 0cb5ff51..ce89de09 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayCommonProjectMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayCommonProjectMapper.xml @@ -11,7 +11,7 @@ su.realname as principal_name, pcp.charge_company_id, pcp.charge_company_temporary_id, - pcp.charge_company_temporary_name, + if(pcp.charge_company_temporary_name = pcm.company_name, pcp.charge_company_temporary_name, concat(pcp.charge_company_temporary_name,'(更名为',pcm.company_name,')')) as charge_company_temporary_name, pcp.charge_use, pcp.contacts_id, pcp.contacts_temporary_id, @@ -45,12 +45,14 @@ FROM pay_common_project pcp left join sys_user su on pcp.principal_id = su.id LEFT JOIN pay_payment_record ppr ON ppr.project_id = pcp.id + left join pay_company_management_temporary pcmt on pcp.charge_company_temporary_id = pcmt.id + left join pay_company_management pcm on pcmt.company_id = pcm.id AND pcp.charge_project like concat('%',concat(#{payCommonProject.chargeProject},'%')) - AND pcp.charge_company_temporary_name like concat('%',concat(#{payCommonProject.chargeCompanyTemporaryName},'%')) + AND pcm.company_name like concat('%',concat(#{payCommonProject.chargeCompanyTemporaryName},'%')) AND pcp.contacts_temporary_name like concat('%',concat(#{payCommonProject.contactsTemporaryName},'%'))