update 更改企业名称时处理项目的单位名称(普通项目完成)

This commit is contained in:
lijiarao
2023-12-26 18:06:11 +08:00
parent ae5020fe8e
commit b6402a410d
2 changed files with 63 additions and 31 deletions
@@ -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<PayCompanyManag
* @Exception
*/
private void updateBatchData(PayCompanyManagement payCompanyManagement){
// 更新临时数据
LambdaUpdateWrapper<PayCompanyManagementTemporary> 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<PayContactsManagement> updatePayContactsManagement = new LambdaUpdateWrapper<>();
updatePayContactsManagement.eq(PayContactsManagement::getCompanyId,payCompanyManagement.getId());
updatePayContactsManagement.set(PayContactsManagement::getCompanyName,payCompanyManagement.getCompanyName());
payContactsManagementService.update(updatePayContactsManagement);
int thisYear = DateUtil.thisYear();
//需要更新的临时企业id
List<String> companyTemporaryIdList = new ArrayList<>();
// 更新普通项目
LambdaUpdateWrapper<PayCommonProject> 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<PayCommonProject> 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<PayCommonProject> list = payCommonProjectService.list(quaryPayCommonProject);
List<String> collect = list.stream().map(PayCommonProject::getChargeCompanyTemporaryId).collect(Collectors.toList());
companyTemporaryIdList.addAll(collect);
if (!collect.isEmpty()){
LambdaUpdateWrapper<PayCommonProject> updatePayCommonProject = new LambdaUpdateWrapper<>();
updatePayCommonProject.in(PayCommonProject::getChargeCompanyTemporaryId,collect);
updatePayCommonProject.set(PayCommonProject::getChargeCompanyTemporaryName,payCompanyManagement.getCompanyName());
payCommonProjectService.update(updatePayCommonProject);
}
// 更新工作组
LambdaUpdateWrapper<PayWorkingGroupSubItem> 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<PayCompanyManag
// 更新会员
LambdaUpdateWrapper<PayMemberProjectSubitem> 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<PayCompanyManagementTemporary> 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<PayIncomeContract> updatePayIncomeContract = new LambdaUpdateWrapper<>();
updatePayIncomeContract.eq(PayIncomeContract::getSignedCompanyId,payCompanyManagement.getId());
@@ -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
<where>
<if test="payCommonProject.chargeProject != null and payCommonProject.chargeProject != ''">
AND pcp.charge_project like concat('%',concat(#{payCommonProject.chargeProject},'%'))
</if>
<if test="payCommonProject.chargeCompanyTemporaryName != null and payCommonProject.chargeCompanyTemporaryName != ''">
AND pcp.charge_company_temporary_name like concat('%',concat(#{payCommonProject.chargeCompanyTemporaryName},'%'))
AND pcm.company_name like concat('%',concat(#{payCommonProject.chargeCompanyTemporaryName},'%'))
</if>
<if test="payCommonProject.contactsTemporaryName != null and payCommonProject.contactsTemporaryName != ''">
AND pcp.contacts_temporary_name like concat('%',concat(#{payCommonProject.contactsTemporaryName},'%'))