10-15-变更子表更新方式

This commit is contained in:
2025-10-15 19:08:43 +08:00
parent 1b590bbcbd
commit 00e5f5ede6
6 changed files with 248 additions and 55 deletions

View File

@ -74,6 +74,11 @@ public class XzdContractProgressSettlement extends BaseEntity {
*/
private String contractName;
/**
* 项目id
*/
private Long projectId;
/**
* 项目名称
*/

View File

@ -83,6 +83,11 @@ public class XzdContractProgressSettlementBo extends BaseEntity {
*/
private String contractName;
/**
* 项目id
*/
private Long projectId;
/**
* 项目名称
*/
@ -220,8 +225,12 @@ public class XzdContractProgressSettlementBo extends BaseEntity {
*/
private String fileId;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date beginCreateTime;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date endCreateTime;
/**

View File

@ -103,6 +103,11 @@ public class XzdContractProgressSettlementVo implements Serializable {
*/
private String contractCode;
/**
* 项目id
*/
private Long projectId;
/**
* 项目名称
*/

View File

@ -228,43 +228,122 @@ public class XzdContractChangeServiceImpl extends ServiceImpl<XzdContractChangeM
String tableName = XzdClassEnum.XZD_CONTRACT_CHANGE.getClassName();
//合同文本-预收款项
for (XzdContractAdvanceInfo advanceInfo : bo.getYsyfkx()) {
if (!old.getYsyfkx().contains(advanceInfo)){
xzdContractAdvanceInfoService.removeById(advanceInfo);
// if (bo.getYsyfkx() != null && !bo.getYsyfkx().isEmpty()) {
// for (XzdContractAdvanceInfo advanceInfo : bo.getYsyfkx()) {
// if (old.getYsyfkx() != null && !old.getYsyfkx().isEmpty())
// if (!old.getYsyfkx().contains(advanceInfo)) {
// xzdContractAdvanceInfoService.removeById(advanceInfo);
// }
// advanceInfo.setContractDetailsId(update.getId());
// advanceInfo.setTableName(tableName);
// }
// xzdContractAdvanceInfoService.saveOrUpdateBatch(bo.getYsyfkx());
// }else if (old.getYsyfkx() != null && !old.getYsyfkx().isEmpty()){
// xzdContractAdvanceInfoService.removeByIds(old.getYsyfkx());
// }
if (bo.getYsyfkx() != null && !bo.getYsyfkx().isEmpty()){
if (old.getYsyfkx() != null && !old.getYsyfkx().isEmpty()){
xzdContractAdvanceInfoService.removeByIds(old.getYsyfkx());
}
for (XzdContractAdvanceInfo businessChange : bo.getYsyfkx()) {
businessChange.setContractDetailsId(update.getId());
businessChange.setTableName(tableName);
}
xzdContractAdvanceInfoService.saveBatch(bo.getYsyfkx());
}else {
if (old.getYsyfkx() != null && !old.getYsyfkx().isEmpty()){
xzdContractAdvanceInfoService.removeByIds(old.getYsyfkx());
}
advanceInfo.setContractDetailsId(update.getId());
advanceInfo.setTableName(tableName);
}
xzdContractAdvanceInfoService.saveOrUpdateBatch(bo.getYsyfkx());
//合同条款-扣款与奖励项
for (XzdDeductionItems advanceInfo : bo.getKkyjlx()) {
if (!old.getKkyjlx().contains(advanceInfo)){
xzdDeductionItemsService.removeById(advanceInfo);
// if (bo.getKkyjlx() != null && !bo.getKkyjlx().isEmpty()) {
// for (XzdDeductionItems advanceInfo : bo.getKkyjlx()) {
// if (old.getKkyjlx() != null && !old.getKkyjlx().isEmpty()) {
// if (!old.getKkyjlx().contains(advanceInfo)) {
// xzdDeductionItemsService.removeById(advanceInfo);
// }
// advanceInfo.setContractDetailsId(update.getId());
// advanceInfo.setTableName(tableName);
// }
// }
// xzdDeductionItemsService.saveOrUpdateBatch(bo.getKkyjlx());
// }else if (old.getKkyjlx() != null && !old.getKkyjlx().isEmpty()){
// xzdDeductionItemsService.removeByIds(old.getKkyjlx());
// }
if (bo.getKkyjlx() != null && !bo.getKkyjlx().isEmpty()){
if (old.getKkyjlx() != null && !old.getKkyjlx().isEmpty()){
xzdDeductionItemsService.removeByIds(old.getKkyjlx());
}
for (XzdDeductionItems businessChange : bo.getKkyjlx()) {
businessChange.setContractDetailsId(update.getId());
businessChange.setTableName(tableName);
}
xzdDeductionItemsService.saveBatch(bo.getKkyjlx());
}else {
if (old.getKkyjlx() != null && !old.getKkyjlx().isEmpty()){
xzdDeductionItemsService.removeByIds(old.getKkyjlx());
}
advanceInfo.setContractDetailsId(update.getId());
advanceInfo.setTableName(tableName);
}
xzdDeductionItemsService.saveOrUpdateBatch(bo.getKkyjlx());
//合同条款-合同条款
for (XzdContractClause advanceInfo : bo.getHtkx()) {
if (!old.getHtkx().contains(advanceInfo)){
xzdContractClauseService.removeById(advanceInfo);
// if (bo.getHtkx() != null && !bo.getHtkx().isEmpty()) {
// for (XzdContractClause advanceInfo : bo.getHtkx()) {
// if (old.getHtkx() != null && !old.getHtkx().isEmpty()) {
// if (!old.getHtkx().contains(advanceInfo)) {
// xzdContractClauseService.removeById(advanceInfo);
// }
// advanceInfo.setContractDetailsId(update.getId());
// advanceInfo.setTableName(tableName);
// }
// }
// xzdContractClauseService.saveOrUpdateBatch(bo.getHtkx());
// }else if (old.getHtkx() != null && !old.getHtkx().isEmpty()) {
// xzdContractClauseService.removeByIds(old.getHtkx());
// }
if (bo.getHtkx() != null && !bo.getHtkx().isEmpty()){
if (old.getHtkx() != null && !old.getHtkx().isEmpty()){
xzdContractClauseService.removeByIds(old.getHtkx());
}
for (XzdContractClause businessChange : bo.getHtkx()) {
businessChange.setContractDetailsId(update.getId());
businessChange.setTableName(tableName);
}
xzdContractClauseService.saveBatch(bo.getHtkx());
}else {
if (old.getHtkx() != null && !old.getHtkx().isEmpty()){
xzdContractClauseService.removeByIds(old.getHtkx());
}
advanceInfo.setContractDetailsId(update.getId());
advanceInfo.setTableName(tableName);
}
xzdContractClauseService.saveOrUpdateBatch(bo.getHtkx());
//印章信息
for (XzdBusinessChange advanceInfo : bo.getSealInfo()) {
if (!old.getSealInfo().contains(advanceInfo)){
xzdBusinessChangeService.removeById(advanceInfo);
// if (bo.getSealInfo() != null && !bo.getSealInfo().isEmpty()) {
// for (XzdBusinessChange sealInfos : bo.getSealInfo()) {
// if (old.getSealInfo() != null && !old.getSealInfo().isEmpty()) {
// if (!old.getSealInfo().contains(sealInfos)) {
// xzdBusinessChangeService.removeById(sealInfos);
// }
// }
// sealInfos.setContractChangeId(update.getId());
// }
// xzdBusinessChangeService.saveOrUpdateBatch(bo.getSealInfo());
// }else if (old.getSealInfo() != null && !old.getSealInfo().isEmpty()) {
// xzdBusinessChangeService.removeByIds(old.getSealInfo());
// }
if (bo.getSealInfo() != null && !bo.getSealInfo().isEmpty()){
if (old.getSealInfo() != null && !old.getSealInfo().isEmpty()){
xzdBusinessChangeService.removeByIds(old.getSealInfo());
}
xzdBusinessChangeService.saveBatch(bo.getSealInfo());
}else {
if (old.getSealInfo() != null && !old.getSealInfo().isEmpty()){
xzdBusinessChangeService.removeByIds(old.getSealInfo());
}
advanceInfo.setContractChangeId(update.getId());
}
xzdBusinessChangeService.saveOrUpdateBatch(bo.getSealInfo());
//更新文件
if (bo.getFileId() != null && !bo.getFileId().isEmpty()){

View File

@ -236,44 +236,107 @@ public class XzdContractDetailsServiceImpl extends ServiceImpl<XzdContractDetail
setValue(old1);
old = old1.getFirst();
// if (bo.getSealInfo() != null && !bo.getSealInfo().isEmpty()){
// if (old.getSealInfo() != null && !old.getSealInfo().isEmpty()){
// xzdBusinessChangeService.removeByIds(old.getSealInfo());
// }
// for (XzdBusinessChange businessChange : bo.getSealInfo()) {
// businessChange.setContractChangeId(update.getId());
// }
// xzdBusinessChangeService.saveBatch(bo.getSealInfo());
// }else {
// if (old.getSealInfo() != null && !old.getSealInfo().isEmpty()){
// xzdBusinessChangeService.removeByIds(old.getSealInfo());
// }
// }
//合同文本-预收款项
for (XzdContractAdvanceInfo advanceInfo : bo.getYskx()) {
if (!old.getYskx().contains(advanceInfo)){
xzdContractAdvanceInfoService.removeById(advanceInfo);
if (bo.getYskx() != null && !bo.getYskx().isEmpty()){
if (old.getYskx() != null && !old.getYskx().isEmpty()){
xzdContractAdvanceInfoService.removeByIds(old.getYskx());
}
for (XzdContractAdvanceInfo businessChange : bo.getYskx()) {
businessChange.setContractDetailsId(update.getId());
businessChange.setTableName(tableName);
}
xzdContractAdvanceInfoService.saveBatch(bo.getYskx());
}else {
if (old.getYskx() != null && !old.getYskx().isEmpty()){
xzdContractAdvanceInfoService.removeByIds(old.getYskx());
}
advanceInfo.setContractDetailsId(update.getId());
advanceInfo.setTableName(tableName);
}
xzdContractAdvanceInfoService.saveOrUpdateBatch(bo.getYskx());
//合同条款-扣款与奖励项
for (XzdDeductionItems advanceInfo : bo.getKkyjlx()) {
if (!old.getKkyjlx().contains(advanceInfo)){
xzdDeductionItemsService.removeById(advanceInfo);
// for (XzdDeductionItems advanceInfo : bo.getKkyjlx()) {
// if (!old.getKkyjlx().contains(advanceInfo)){
// xzdDeductionItemsService.removeById(advanceInfo);
// }
// advanceInfo.setContractDetailsId(update.getId());
// advanceInfo.setTableName(tableName);
// }
// xzdDeductionItemsService.saveOrUpdateBatch(bo.getKkyjlx());
if (bo.getKkyjlx() != null && !bo.getKkyjlx().isEmpty()){
if (old.getKkyjlx() != null && !old.getKkyjlx().isEmpty()){
xzdDeductionItemsService.removeByIds(old.getKkyjlx());
}
for (XzdDeductionItems businessChange : bo.getKkyjlx()) {
businessChange.setContractDetailsId(update.getId());
businessChange.setTableName(tableName);
}
xzdDeductionItemsService.saveBatch(bo.getKkyjlx());
}else {
if (old.getYskx() != null && !old.getYskx().isEmpty()){
xzdDeductionItemsService.removeByIds(old.getYskx());
}
advanceInfo.setContractDetailsId(update.getId());
advanceInfo.setTableName(tableName);
}
xzdDeductionItemsService.saveOrUpdateBatch(bo.getKkyjlx());
//合同条款-合同条款
for (XzdContractClause advanceInfo : bo.getHttk()) {
if (!old.getHttk().contains(advanceInfo)){
xzdContractClauseService.removeById(advanceInfo);
// for (XzdContractClause advanceInfo : bo.getHttk()) {
// if (!old.getHttk().contains(advanceInfo)){
// xzdContractClauseService.removeById(advanceInfo);
// }
// advanceInfo.setContractDetailsId(update.getId());
// advanceInfo.setTableName(tableName);
// }
// xzdContractClauseService.saveOrUpdateBatch(bo.getHttk());
if (bo.getHttk() != null && !bo.getHttk().isEmpty()){
if (old.getHttk() != null && !old.getHttk().isEmpty()){
xzdContractClauseService.removeByIds(old.getHttk());
}
for (XzdContractClause businessChange : bo.getHttk()) {
businessChange.setContractDetailsId(update.getId());
businessChange.setTableName(tableName);
}
xzdContractClauseService.saveBatch(bo.getHttk());
}else {
if (old.getYskx() != null && !old.getYskx().isEmpty()){
xzdContractClauseService.removeByIds(old.getHttk());
}
advanceInfo.setContractDetailsId(update.getId());
advanceInfo.setTableName(tableName);
}
xzdContractClauseService.saveOrUpdateBatch(bo.getHttk());
//支付条款
for (XzdSettlementRules advanceInfo : bo.getZftk()) {
if (!old.getZftk().contains(advanceInfo)){
xzdSettlementRulesService.removeById(advanceInfo);
// for (XzdSettlementRules advanceInfo : bo.getZftk()) {
// if (!old.getZftk().contains(advanceInfo)){
// xzdSettlementRulesService.removeById(advanceInfo);
// }
// advanceInfo.setContractDetailsId(update.getId());
// }
// xzdSettlementRulesService.saveOrUpdateBatch(bo.getZftk());
if (bo.getZftk() != null && !bo.getZftk().isEmpty()){
if (old.getZftk() != null && !old.getZftk().isEmpty()){
xzdSettlementRulesService.removeByIds(old.getZftk());
}
for (XzdSettlementRules businessChange : bo.getZftk()) {
businessChange.setContractDetailsId(update.getId());
}
xzdSettlementRulesService.saveBatch(bo.getZftk());
}else {
if (old.getYskx() != null && !old.getYskx().isEmpty()){
xzdSettlementRulesService.removeByIds(old.getZftk());
}
advanceInfo.setContractDetailsId(update.getId());
}
xzdSettlementRulesService.saveOrUpdateBatch(bo.getZftk());
if (bo.getHtzytkyd() != null){
bo.getHtzytkyd().setContractDetailsId(update.getId());

View File

@ -16,6 +16,7 @@ import org.dromara.system.service.impl.SysDeptServiceImpl;
import org.dromara.system.service.impl.SysOssServiceImpl;
import org.dromara.xzd.domain.XzdBusinessChange;
import org.dromara.xzd.domain.XzdDeductionItems;
import org.dromara.xzd.domain.XzdSettlementRules;
import org.dromara.xzd.domain.dto.QuerCorrespondentDto;
import org.dromara.xzd.domain.vo.*;
import org.dromara.xzd.service.IXzdCorrespondentList;
@ -62,6 +63,8 @@ public class XzdContractProgressSettlementServiceImpl extends ServiceImpl<XzdCon
private XzdBusinessSealServiceImpl xzdBusinessSealService;
@Autowired
private XzdBusinessChangeServiceImpl xzdBusinessChangeService;
@Autowired
private XzdSettlementRulesServiceImpl xzdSettlementRulesService;
/**
* 查询承包合同进度结算
@ -114,6 +117,7 @@ public class XzdContractProgressSettlementServiceImpl extends ServiceImpl<XzdCon
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdContractProgressSettlement::getTitle, bo.getTitle());
lqw.eq(bo.getSettlementDate() != null, XzdContractProgressSettlement::getSettlementDate, bo.getSettlementDate());
lqw.eq(bo.getContractId() != null, XzdContractProgressSettlement::getContractId, bo.getContractId());
lqw.eq(bo.getProjectId() != null, XzdContractProgressSettlement::getProjectId, bo.getProjectId());
lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdContractProgressSettlement::getContractName, bo.getContractName());
lqw.like(StringUtils.isNotBlank(bo.getProjectName()), XzdContractProgressSettlement::getProjectName, bo.getProjectName());
lqw.eq(bo.getApprovalAmount() != null, XzdContractProgressSettlement::getApprovalAmount, bo.getApprovalAmount());
@ -140,8 +144,8 @@ public class XzdContractProgressSettlementServiceImpl extends ServiceImpl<XzdCon
lqw.eq(bo.getContractAmountInclude() != null, XzdContractProgressSettlement::getContractAmountInclude, bo.getContractAmountInclude());
lqw.eq(bo.getContractAmountExclude() != null, XzdContractProgressSettlement::getContractAmountExclude, bo.getContractAmountExclude());
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdContractProgressSettlement::getFileId, bo.getFileId());
lqw.between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null,
XzdContractProgressSettlement::getDocumentDate ,params.get("beginCreateTime"), params.get("endCreateTime"));
lqw.between(bo.getBeginCreateTime() != null && bo.getEndCreateTime() != null,
XzdContractProgressSettlement::getDocumentDate ,bo.getBeginCreateTime(), bo.getEndCreateTime());
return lqw;
}
@ -175,6 +179,7 @@ public class XzdContractProgressSettlementServiceImpl extends ServiceImpl<XzdCon
* @param bo 承包合同进度结算
* @return 是否修改成功
*/
@Transactional
@Override
public Boolean updateByBo(XzdContractProgressSettlementBo bo) {
XzdContractProgressSettlement update = MapstructUtils.convert(bo, XzdContractProgressSettlement.class);
@ -201,14 +206,36 @@ public class XzdContractProgressSettlementServiceImpl extends ServiceImpl<XzdCon
}
//印章信息
for (XzdBusinessChange advanceInfo : bo.getSealInfo()) {
if (!old.getSealInfo().contains(advanceInfo)){
xzdBusinessChangeService.removeById(advanceInfo);
}
advanceInfo.setContractChangeId(update.getId());
}
xzdBusinessChangeService.saveOrUpdateBatch(bo.getSealInfo());
// if (bo.getSealInfo() != null && !bo.getSealInfo().isEmpty()) {
// for (XzdBusinessChange advanceInfo : old.getSealInfo()) {
// if (!bo.getSealInfo().contains(advanceInfo)) {
// if (advanceInfo.getId() != null){
// xzdBusinessChangeService.removeById(advanceInfo);
// }else {
// advanceInfo.setContractChangeId(update.getId());
// xzdBusinessChangeService.save(advanceInfo);
// }
// }else {
// xzdBusinessChangeService.updateById(advanceInfo);
// }
// }
// }else if (old.getSealInfo() != null && !old.getSealInfo().isEmpty()){
// xzdBusinessChangeService.removeByIds(old.getSealInfo());
// }
if (bo.getSealInfo() != null && !bo.getSealInfo().isEmpty()){
if (old.getSealInfo() != null && !old.getSealInfo().isEmpty()){
xzdBusinessChangeService.removeByIds(old.getSealInfo());
}
for (XzdBusinessChange businessChange : bo.getSealInfo()) {
businessChange.setContractChangeId(update.getId());
}
xzdBusinessChangeService.saveBatch(bo.getSealInfo());
}else {
if (old.getSealInfo() != null && !old.getSealInfo().isEmpty()){
xzdBusinessChangeService.removeByIds(old.getSealInfo());
}
}
return baseMapper.updateById(update) > 0;
}
@ -313,6 +340,11 @@ public class XzdContractProgressSettlementServiceImpl extends ServiceImpl<XzdCon
}
}
vo.setSealInfo(list);
//支付条款
XzdSettlementRulesVo xzdSettlementRulesVo = xzdSettlementRulesService.queryById(vo.getPaymentTerms());
if (xzdSettlementRulesVo != null){
vo.setPaymentTermsName(xzdSettlementRulesVo.getType());
}
}
}