10-20-决算清

This commit is contained in:
2025-10-20 19:26:08 +08:00
parent fbcb9ca3f2
commit 1aa77e5eda
23 changed files with 799 additions and 19 deletions

View File

@ -131,7 +131,7 @@ public class XzdJsqdTz extends BaseEntity {
/**
* wbs
*/
private String wbs;
private String tzhwbs;
/**
* 备注

View File

@ -0,0 +1,51 @@
package org.dromara.xzd.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 质保金归还约定对象 xzd_zbjghyd
*
* @author Lion Li
* @date 2025-10-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("xzd_zbjghyd")
public class XzdZbjghyd extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id")
private Long id;
/**
* 关联id
*/
private Long mainId;
/**
* 质保期(月份)
*/
private Long zbq;
/**
* 归还比例
*/
private Long ghbl;
/**
* 备注
*/
private String remark;
}

View File

@ -10,10 +10,14 @@ import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import org.dromara.xzd.domain.XzdJsqdTz;
import org.dromara.xzd.domain.XzdZbjghyd;
import org.dromara.xzd.settlement.domain.XzdJsDeductionItems;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 承包合同竣工结算业务对象 xzd_contract_account
@ -168,4 +172,24 @@ public class XzdContractAccountBo extends BaseEntity {
private String fileId;
/**
* 决算清单
*/
private List<XzdJsqdTz> jsqd;
/**
* 奖励与扣款-奖励
*/
private List<XzdJsDeductionItems> jl;
/**
* 奖励与扣款-扣款
*/
private List<XzdJsDeductionItems> kk;
/**
* 质保金归还约定
*/
private List<XzdZbjghyd> zbjghyd;
}

View File

@ -125,9 +125,9 @@ public class XzdJsqdTzBo extends BaseEntity {
private String ywbs;
/**
* wbs
* 调整后wbs
*/
private String wbs;
private String tzhwbs;
/**
* 备注

View File

@ -1,6 +1,7 @@
package org.dromara.xzd.domain.bo;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.xzd.domain.XzdJsqdTz;
import org.dromara.xzd.domain.XzdWorkcontractCompletionAdjust;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
@ -9,10 +10,12 @@ import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import org.dromara.xzd.settlement.domain.XzdJsDeductionItems;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 承包合同竣工结算调整业务对象 xzd_workcontract_completion_adjust
@ -116,5 +119,19 @@ public class XzdWorkcontractCompletionAdjustBo extends BaseEntity {
*/
private Long danjuId;
/**
* 决算清单调整
*/
private List<XzdJsqdTz> jsqdTz;
/**
* 奖励与扣款-扣款
*/
private List<XzdJsDeductionItems> kk;
/**
* 奖励与扣款-奖励
*/
private List<XzdJsDeductionItems> jl;
}

View File

@ -0,0 +1,49 @@
package org.dromara.xzd.domain.bo;
import org.dromara.xzd.domain.XzdZbjghyd;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 质保金归还约定业务对象 xzd_zbjghyd
*
* @author Lion Li
* @date 2025-10-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = XzdZbjghyd.class, reverseConvertGenerate = false)
public class XzdZbjghydBo extends BaseEntity {
/**
* id
*/
@NotNull(message = "id不能为空", groups = { EditGroup.class })
private Long id;
/**
* 关联id
*/
private Long mainId;
/**
* 质保期(月份)
*/
private Long zbq;
/**
* 归还比例
*/
private Long ghbl;
/**
* 备注
*/
private String remark;
}

View File

@ -9,11 +9,15 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.xzd.domain.XzdJsqdTz;
import org.dromara.xzd.domain.XzdSettlementRules;
import org.dromara.xzd.domain.XzdZbjghyd;
import org.dromara.xzd.settlement.domain.XzdJsDeductionItems;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.io.Serializable;
import java.util.List;
/**
@ -214,4 +218,24 @@ public class XzdContractAccountVo implements Serializable {
private String fileId;
/**
* 决算清单
*/
private List<XzdJsqdTz> jsqd;
/**
* 奖励与扣款-奖励
*/
private List<XzdJsDeductionItems> jl;
/**
* 奖励与扣款-扣款
*/
private List<XzdJsDeductionItems> kk;
/**
* 质保金归还约定
*/
private List<XzdZbjghyd> zbjghyd;
}

View File

@ -152,10 +152,10 @@ public class XzdJsqdTzVo implements Serializable {
private String ywbs;
/**
* wbs
* 调整后wbs
*/
@ExcelProperty(value = "wbs")
private String wbs;
@ExcelProperty(value = "调整后wbs")
private String tzhwbs;
/**
* 备注

View File

@ -5,6 +5,7 @@ import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.xzd.domain.XzdContractAccount;
import org.dromara.xzd.domain.XzdJsqdTz;
import org.dromara.xzd.domain.XzdWorkcontractCompletionAdjust;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
@ -12,10 +13,12 @@ import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.xzd.settlement.domain.XzdJsDeductionItems;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.io.Serializable;
import java.util.List;
/**
@ -140,5 +143,19 @@ public class XzdWorkcontractCompletionAdjustVo implements Serializable {
@ExcelProperty(value = "单据引用ID")
private Long danjuId;
/**
* 决算清单调整
*/
private List<XzdJsqdTz> jsqdTz;
/**
* 奖励与扣款-扣款
*/
private List<XzdJsDeductionItems> kk;
/**
* 奖励与扣款-奖励
*/
private List<XzdJsDeductionItems> jl;
}

View File

@ -0,0 +1,58 @@
package org.dromara.xzd.domain.vo;
import org.dromara.xzd.domain.XzdZbjghyd;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 质保金归还约定视图对象 xzd_zbjghyd
*
* @author Lion Li
* @date 2025-10-20
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = XzdZbjghyd.class)
public class XzdZbjghydVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@ExcelProperty(value = "id")
private Long id;
/**
* 关联id
*/
@ExcelProperty(value = "关联id")
private Long mainId;
/**
* 质保期(月份)
*/
@ExcelProperty(value = "质保期(月份)")
private Long zbq;
/**
* 归还比例
*/
@ExcelProperty(value = "归还比例")
private Long ghbl;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@ -0,0 +1,15 @@
package org.dromara.xzd.mapper;
import org.dromara.xzd.domain.XzdZbjghyd;
import org.dromara.xzd.domain.vo.XzdZbjghydVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 质保金归还约定Mapper接口
*
* @author Lion Li
* @date 2025-10-20
*/
public interface XzdZbjghydMapper extends BaseMapperPlus<XzdZbjghyd, XzdZbjghydVo> {
}

View File

@ -0,0 +1,70 @@
package org.dromara.xzd.service;
import org.dromara.xzd.domain.vo.XzdZbjghydVo;
import org.dromara.xzd.domain.bo.XzdZbjghydBo;
import org.dromara.xzd.domain.XzdZbjghyd;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Collection;
import java.util.List;
/**
* 质保金归还约定Service接口
*
* @author Lion Li
* @date 2025-10-20
*/
public interface IXzdZbjghydService extends IService<XzdZbjghyd>{
/**
* 查询质保金归还约定
*
* @param id 主键
* @return 质保金归还约定
*/
XzdZbjghydVo queryById(Long id);
/**
* 分页查询质保金归还约定列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 质保金归还约定分页列表
*/
TableDataInfo<XzdZbjghydVo> queryPageList(XzdZbjghydBo bo, PageQuery pageQuery);
/**
* 查询符合条件的质保金归还约定列表
*
* @param bo 查询条件
* @return 质保金归还约定列表
*/
List<XzdZbjghydVo> queryList(XzdZbjghydBo bo);
/**
* 新增质保金归还约定
*
* @param bo 质保金归还约定
* @return 是否新增成功
*/
Boolean insertByBo(XzdZbjghydBo bo);
/**
* 修改质保金归还约定
*
* @param bo 质保金归还约定
* @return 是否修改成功
*/
Boolean updateByBo(XzdZbjghydBo bo);
/**
* 校验并批量删除质保金归还约定信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@ -14,11 +14,16 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.common.utils.BatchNumberGenerator;
import org.dromara.system.service.impl.SysOssServiceImpl;
import org.dromara.xzd.domain.XzdJsqdTz;
import org.dromara.xzd.domain.XzdSettlementRules;
import org.dromara.xzd.domain.XzdZbjghyd;
import org.dromara.xzd.domain.dto.QuerCorrespondentDto;
import org.dromara.xzd.domain.vo.XzdContractDetailsVo;
import org.dromara.xzd.domain.vo.XzdSettlementRulesVo;
import org.dromara.xzd.service.IXzdCorrespondentList;
import org.dromara.xzd.settlement.domain.XzdContractInventory;
import org.dromara.xzd.settlement.domain.XzdJsDeductionItems;
import org.dromara.xzd.settlement.service.impl.XzdJsDeductionItemsServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.dromara.xzd.domain.bo.XzdContractAccountBo;
@ -51,6 +56,12 @@ public class XzdContractAccountServiceImpl extends ServiceImpl<XzdContractAccoun
private IXzdCorrespondentList iXzdCorrespondentList;
@Autowired
private SysOssServiceImpl sysOssService;
@Autowired
private XzdJsDeductionItemsServiceImpl xzdJsDeductionItemsService;
@Autowired
private XzdZbjghydServiceImpl xzdZbjghydService;
@Autowired
private XzdJsqdTzServiceImpl xzdJsqdTzService;
/**
* 查询承包合同竣工结算
@ -141,6 +152,45 @@ public class XzdContractAccountServiceImpl extends ServiceImpl<XzdContractAccoun
if (!flag) {
return false;
}
//决算清单
if (bo.getJsqd() != null && !bo.getJsqd().isEmpty()){
for (XzdJsqdTz jsqdTz : bo.getJsqd()) {
jsqdTz.setMainId(add.getId());
jsqdTz.setType("1");
jsqdTz.setBm(BatchNumberGenerator.generateBatchNumber("JSQD-"));
}
xzdJsqdTzService.saveBatch(bo.getJsqd());
}
//奖励与扣款-奖励
if (bo.getJl() != null && !bo.getJl().isEmpty()){
for (XzdJsDeductionItems xzdJsDeductionItems : bo.getJl()) {
xzdJsDeductionItems.setMainDocId(add.getId());
xzdJsDeductionItems.setDetailType(2L);
xzdJsDeductionItems.setTableName("xzd_contract_account");
}
xzdJsDeductionItemsService.saveBatch(bo.getJl());
}
//奖励与扣款-扣款
if (bo.getKk() != null && !bo.getKk().isEmpty()){
for (XzdJsDeductionItems xzdJsDeductionItems : bo.getKk()) {
xzdJsDeductionItems.setMainDocId(add.getId());
xzdJsDeductionItems.setDetailType(1L);
xzdJsDeductionItems.setTableName("xzd_contract_account");
}
xzdJsDeductionItemsService.saveBatch(bo.getKk());
}
//质保金归还约定
if (bo.getZbjghyd() != null && !bo.getZbjghyd().isEmpty()){
for (XzdZbjghyd zbjghyd : bo.getZbjghyd()) {
zbjghyd.setMainId(add.getId());
}
xzdZbjghydService.saveBatch(bo.getZbjghyd());
}
return true;
}
@ -174,6 +224,71 @@ public class XzdContractAccountServiceImpl extends ServiceImpl<XzdContractAccoun
}
}
//决算清单
if (bo.getJsqd() != null && !bo.getJsqd().isEmpty()){
if (old.getJsqd() != null && !old.getJsqd().isEmpty()){
xzdJsqdTzService.removeByIds(old.getJsqd());
}
for (XzdJsqdTz businessChange : bo.getJsqd()) {
businessChange.setMainId(update.getId());
businessChange.setType("1");
}
xzdJsqdTzService.saveBatch(bo.getJsqd());
}else {
if (old.getJsqd() != null && !old.getJsqd().isEmpty()){
xzdJsqdTzService.removeByIds(old.getJsqd());
}
}
//奖励与扣款-奖励
if (bo.getJl() != null && !bo.getJl().isEmpty()){
if (old.getJl() != null && !old.getJl().isEmpty()){
xzdJsDeductionItemsService.removeByIds(old.getJl());
}
for (XzdJsDeductionItems xzdJsDeductionItems : bo.getJl()) {
xzdJsDeductionItems.setMainDocId(update.getId());
xzdJsDeductionItems.setDetailType(2L);
xzdJsDeductionItems.setTableName("xzd_contract_account");
}
xzdJsDeductionItemsService.saveBatch(bo.getJl());
}else {
if (old.getJl() != null && !old.getJl().isEmpty()){
xzdJsDeductionItemsService.removeByIds(old.getJl());
}
}
//奖励与扣款-扣款
if (bo.getKk() != null && !bo.getKk().isEmpty()){
if (old.getKk() != null && !old.getKk().isEmpty()){
xzdJsDeductionItemsService.removeByIds(old.getKk());
}
for (XzdJsDeductionItems xzdJsDeductionItems : bo.getKk()) {
xzdJsDeductionItems.setMainDocId(update.getId());
xzdJsDeductionItems.setDetailType(1L);
xzdJsDeductionItems.setTableName("xzd_contract_account");
}
xzdJsDeductionItemsService.saveBatch(bo.getKk());
}else {
if (old.getKk() != null && !old.getKk().isEmpty()){
xzdJsDeductionItemsService.removeByIds(old.getKk());
}
}
//质保金归还约定
if (bo.getZbjghyd() != null && !bo.getZbjghyd().isEmpty()){
if (old.getZbjghyd() != null && !old.getZbjghyd().isEmpty()){
xzdZbjghydService.removeByIds(old.getZbjghyd());
}
for (XzdZbjghyd zbjghyd : bo.getZbjghyd()) {
zbjghyd.setMainId(update.getId());
}
xzdZbjghydService.saveBatch(bo.getZbjghyd());
}else {
if (old.getZbjghyd() != null && !old.getZbjghyd().isEmpty()){
xzdZbjghydService.removeByIds(old.getZbjghyd());
}
}
return b;
}
@ -196,6 +311,28 @@ public class XzdContractAccountServiceImpl extends ServiceImpl<XzdContractAccoun
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
for (Long id : ids) {
XzdContractAccountVo vo = queryById(id);
//扣款与奖励
LambdaQueryWrapper<XzdJsDeductionItems> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(XzdJsDeductionItems::getMainDocId, id);
queryWrapper.eq(XzdJsDeductionItems::getTableName, "xzd_contract_account");
xzdJsDeductionItemsService.remove(queryWrapper);
//结算清单
LambdaQueryWrapper<XzdJsqdTz> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(XzdJsqdTz::getMainId, id);
queryWrapper1.eq(XzdJsqdTz::getType, "1");
xzdJsqdTzService.remove(queryWrapper1);
//质保金归还约定
LambdaQueryWrapper<XzdZbjghyd> queryWrapper2 = new LambdaQueryWrapper<>();
queryWrapper2.eq(XzdZbjghyd::getMainId, id);
xzdZbjghydService.remove(queryWrapper2);
}
return baseMapper.deleteByIds(ids) > 0;
}
@ -256,6 +393,39 @@ public class XzdContractAccountServiceImpl extends ServiceImpl<XzdContractAccoun
}
}
}
//决算清单
LambdaQueryWrapper<XzdJsqdTz> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(XzdJsqdTz::getMainId, vo.getId());
queryWrapper.eq(XzdJsqdTz::getType, "1");
List<XzdJsqdTz> jsqdTzs = xzdJsqdTzService.list(queryWrapper);
if (jsqdTzs != null && !jsqdTzs.isEmpty()){
vo.setJsqd(jsqdTzs);
}
//扣款与奖励-扣款
LambdaQueryWrapper<XzdJsDeductionItems> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(XzdJsDeductionItems::getMainDocId, vo.getId());
queryWrapper1.eq(XzdJsDeductionItems::getTableName, "xzd_contract_account");
queryWrapper1.eq(XzdJsDeductionItems::getDetailType, 1L);
List<XzdJsDeductionItems> xzdJsDeductionItems = xzdJsDeductionItemsService.list(queryWrapper1);
if (xzdJsDeductionItems != null && !xzdJsDeductionItems.isEmpty()){
vo.setKk(xzdJsDeductionItems);
}
//扣款与奖励-奖励
LambdaQueryWrapper<XzdJsDeductionItems> queryWrapper2 = new LambdaQueryWrapper<>();
queryWrapper2.eq(XzdJsDeductionItems::getMainDocId, vo.getId());
queryWrapper2.eq(XzdJsDeductionItems::getTableName, "xzd_contract_account");
queryWrapper2.eq(XzdJsDeductionItems::getDetailType, 2L);
List<XzdJsDeductionItems> xzdJsDeductionItems1 = xzdJsDeductionItemsService.list(queryWrapper2);
if (xzdJsDeductionItems1 != null && !xzdJsDeductionItems1.isEmpty()){
vo.setJl(xzdJsDeductionItems1);
}
//质保金归还约定
LambdaQueryWrapper<XzdZbjghyd> queryWrapper3 = new LambdaQueryWrapper<>();
queryWrapper3.eq(XzdZbjghyd::getMainId, vo.getId());
List<XzdZbjghyd> xzdZbjghyds = xzdZbjghydService.list(queryWrapper3);
if (xzdZbjghyds != null && !xzdZbjghyds.isEmpty()){
vo.setZbjghyd(xzdZbjghyds);
}
}
}

View File

@ -190,7 +190,7 @@ public class XzdContractProgressSettlementServiceImpl extends ServiceImpl<XzdCon
//合同内清单
if (bo.getHtnqd() != null && !bo.getHtnqd().isEmpty()){
for (XzdContractInventory inventory : bo.getHtnqd()) {
inventory.setType("合同内清单");
inventory.setType("2");
inventory.setCode(IdUtil.getSnowflakeNextIdStr());
inventory.setPrimaryMeterId(add.getId());
}
@ -209,7 +209,7 @@ public class XzdContractProgressSettlementServiceImpl extends ServiceImpl<XzdCon
if(bo.getHtwqd() != null && !bo.getHtwqd().isEmpty()){
for (XzdContractInventory xzdContractOutsideInventory : bo.getHtwqd()) {
xzdContractOutsideInventory.setPrimaryMeterId(add.getId());
xzdContractOutsideInventory.setType("合同外清单");
xzdContractOutsideInventory.setType("1");
xzdContractOutsideInventory.setCode(IdUtil.getSnowflakeNextIdStr());
}
xzdContractInventoryService.saveBatch(bo.getHtwqd());
@ -222,6 +222,7 @@ public class XzdContractProgressSettlementServiceImpl extends ServiceImpl<XzdCon
items.setTableName("xzd_contract_progress_settlement");
items.setDetailType(1L);
}
xzdJsDeductionItemsService.saveBatch(bo.getKk());
}
//奖励与扣款-奖励
@ -231,6 +232,7 @@ public class XzdContractProgressSettlementServiceImpl extends ServiceImpl<XzdCon
items.setTableName("xzd_contract_progress_settlement");
items.setDetailType(2L);
}
xzdJsDeductionItemsService.saveBatch(bo.getJl());
}
return flag;
@ -290,7 +292,7 @@ public class XzdContractProgressSettlementServiceImpl extends ServiceImpl<XzdCon
}
for (XzdContractInventory businessChange : bo.getHtnqd()) {
businessChange.setPrimaryMeterId(update.getId());
businessChange.setType("合同内清单");
businessChange.setType("2");
}
xzdContractInventoryService.saveBatch(bo.getHtnqd());
}else {
@ -307,6 +309,7 @@ public class XzdContractProgressSettlementServiceImpl extends ServiceImpl<XzdCon
for (XzdAlterationInventory businessChange : bo.getBgzjqd()) {
businessChange.setPrimaryMeterId(update.getId());
}
xzdAlterationInventoryService.saveBatch(bo.getBgzjqd());
}else {
if (old.getBgzjqd() != null && !old.getBgzjqd().isEmpty()){
xzdAlterationInventoryService.removeByIds(old.getBgzjqd());
@ -320,7 +323,12 @@ public class XzdContractProgressSettlementServiceImpl extends ServiceImpl<XzdCon
}
for (XzdContractInventory xzdContractOutsideInventory : bo.getHtwqd()) {
xzdContractOutsideInventory.setPrimaryMeterId(update.getId());
xzdContractOutsideInventory.setType("合同外清单");
xzdContractOutsideInventory.setType("1");
}
xzdContractInventoryService.saveBatch(bo.getHtwqd());
}else {
if (old.getHtwqd() != null && !old.getHtwqd().isEmpty()){
xzdContractInventoryService.removeByIds(old.getHtwqd());
}
}
@ -334,6 +342,7 @@ public class XzdContractProgressSettlementServiceImpl extends ServiceImpl<XzdCon
items.setTableName("xzd_contract_progress_settlement");
items.setDetailType(1L);
}
xzdJsDeductionItemsService.saveBatch(bo.getKk());
}else {
if (old.getKk() != null && !old.getKk().isEmpty()){
xzdJsDeductionItemsService.removeByIds(old.getKk());
@ -350,6 +359,7 @@ public class XzdContractProgressSettlementServiceImpl extends ServiceImpl<XzdCon
items.setDetailType(2L);
items.setTableName("xzd_contract_progress_settlement");
}
xzdJsDeductionItemsService.saveBatch(bo.getJl());
}else {
if (old.getJl() != null && !old.getJl().isEmpty()){
xzdJsDeductionItemsService.removeByIds(old.getJl());
@ -394,7 +404,7 @@ public class XzdContractProgressSettlementServiceImpl extends ServiceImpl<XzdCon
LambdaQueryWrapper<XzdContractInventory> lqw1 = new LambdaQueryWrapper<>();
lqw1.eq(XzdContractInventory::getPrimaryMeterId, id);
lqw1.eq(XzdContractInventory::getType, "合同内清单");
lqw1.eq(XzdContractInventory::getType, "2");
xzdContractInventoryService.remove(lqw1);
LambdaQueryWrapper<XzdAlterationInventory> lqw2 = new LambdaQueryWrapper<>();
@ -404,7 +414,7 @@ public class XzdContractProgressSettlementServiceImpl extends ServiceImpl<XzdCon
//合同外清单
LambdaQueryWrapper<XzdContractInventory> lqw3 = new LambdaQueryWrapper<>();
lqw3.eq(XzdContractInventory::getPrimaryMeterId, id);
lqw3.eq(XzdContractInventory::getType, "合同外清单");
lqw3.eq(XzdContractInventory::getType, "1");
xzdContractInventoryService.remove(lqw3);
//奖励与扣款-扣款
@ -496,7 +506,7 @@ public class XzdContractProgressSettlementServiceImpl extends ServiceImpl<XzdCon
//合同内清单
LambdaQueryWrapper<XzdContractInventory> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(XzdContractInventory::getPrimaryMeterId, vo.getId());
queryWrapper1.eq(XzdContractInventory::getType, "合同内清单");
queryWrapper1.eq(XzdContractInventory::getType, "2");
List<XzdContractInventory> list1 = xzdContractInventoryService.list(queryWrapper1);
if (list1 != null){
vo.setHtnqd(list1);
@ -511,7 +521,7 @@ public class XzdContractProgressSettlementServiceImpl extends ServiceImpl<XzdCon
//合同外清单
LambdaQueryWrapper<XzdContractInventory> queryWrapper3 = new LambdaQueryWrapper<>();
queryWrapper3.eq(XzdContractInventory::getPrimaryMeterId, vo.getId());
queryWrapper3.eq(XzdContractInventory::getType, "合同外清单");
queryWrapper3.eq(XzdContractInventory::getType, "1");
List<XzdContractInventory> list3 = xzdContractInventoryService.list(queryWrapper3);
if (list3 != null){
vo.setHtwqd(list3);

View File

@ -93,7 +93,7 @@ public class XzdJsqdTzServiceImpl extends ServiceImpl<XzdJsqdTzMapper, XzdJsqdTz
lqw.eq(bo.getTzhse() != null, XzdJsqdTz::getTzhse, bo.getTzhse());
lqw.eq(bo.getTzhjsse() != null, XzdJsqdTz::getTzhjsse, bo.getTzhjsse());
lqw.eq(StringUtils.isNotBlank(bo.getYwbs()), XzdJsqdTz::getYwbs, bo.getYwbs());
lqw.eq(StringUtils.isNotBlank(bo.getWbs()), XzdJsqdTz::getWbs, bo.getWbs());
lqw.eq(StringUtils.isNotBlank(bo.getTzhwbs()), XzdJsqdTz::getTzhwbs, bo.getTzhwbs());
lqw.eq(StringUtils.isNotBlank(bo.getSjly()), XzdJsqdTz::getSjly, bo.getSjly());
lqw.eq(bo.getSszj() != null, XzdJsqdTz::getSszj, bo.getSszj());
lqw.eq(bo.getSdzj() != null, XzdJsqdTz::getSdzj, bo.getSdzj());

View File

@ -16,6 +16,8 @@ import org.dromara.xzd.domain.*;
import org.dromara.xzd.domain.vo.XzdContractAccountVo;
import org.dromara.xzd.domain.vo.XzdContractDetailsVo;
import org.dromara.xzd.domain.vo.XzdProjectVo;
import org.dromara.xzd.settlement.domain.XzdJsDeductionItems;
import org.dromara.xzd.settlement.service.impl.XzdJsDeductionItemsServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.dromara.xzd.domain.bo.XzdWorkcontractCompletionAdjustBo;
@ -47,6 +49,10 @@ public class XzdWorkcontractCompletionAdjustServiceImpl extends ServiceImpl<XzdW
private XzdContractDetailsServiceImpl xzdContractDetailsService;
@Autowired
private XzdProjectServiceImpl xzdProjectService;
@Autowired
private XzdJsDeductionItemsServiceImpl xzdJsDeductionItemsService;
@Autowired
private XzdJsqdTzServiceImpl xzdJsqdTzService;
/**
* 查询承包合同竣工结算调整
@ -129,6 +135,35 @@ public class XzdWorkcontractCompletionAdjustServiceImpl extends ServiceImpl<XzdW
if (flag) {
bo.setId(add.getId());
}
//决算清单调整
if (bo.getJsqdTz() != null && !bo.getJsqdTz().isEmpty()){
for (XzdJsqdTz jsqdTz : bo.getJsqdTz()) {
jsqdTz.setMainId(add.getId());
jsqdTz.setType("2");
jsqdTz.setBm(BatchNumberGenerator.generateBatchNumber("JSQD-"));
}
xzdJsqdTzService.saveBatch(bo.getJsqdTz());
}
//奖励与扣款-奖励
if (bo.getJl() != null && !bo.getJl().isEmpty()){
for (XzdJsDeductionItems jl : bo.getJl()) {
jl.setMainDocId(add.getId());
jl.setDetailType(2L);
jl.setTableName("xzd_workcontract_completion_adjust");
}
xzdJsDeductionItemsService.saveBatch(bo.getJl());
}
//奖励与扣款-扣款
if (bo.getKk() != null && !bo.getKk().isEmpty()){
for (XzdJsDeductionItems kk : bo.getKk()) {
kk.setMainDocId(add.getId());
kk.setDetailType(1L);
kk.setTableName("xzd_workcontract_completion_adjust");
}
xzdJsDeductionItemsService.saveBatch(bo.getKk());
}
return flag;
}
@ -163,6 +198,48 @@ public class XzdWorkcontractCompletionAdjustServiceImpl extends ServiceImpl<XzdW
}
}
//决算清单
if (bo.getJsqdTz() != null && !bo.getJsqdTz().isEmpty()){
if (old.getJsqdTz() != null && !old.getJsqdTz().isEmpty()){
xzdJsqdTzService.removeByIds(old.getJsqdTz());
}
for (XzdJsqdTz businessChange : bo.getJsqdTz()) {
businessChange.setMainId(update.getId());
businessChange.setType("2");
}
xzdJsqdTzService.saveBatch(bo.getJsqdTz());
}else {
if (old.getJsqdTz() != null && !old.getJsqdTz().isEmpty()){
xzdJsqdTzService.removeByIds(old.getJsqdTz());
}
}
//奖励与扣款-奖励
if (bo.getJl() != null && !bo.getJl().isEmpty()){
if (old.getJl() != null && !old.getJl().isEmpty()){
xzdJsDeductionItemsService.removeByIds(old.getJl());
}
for (XzdJsDeductionItems jl : bo.getJl()) {
jl.setMainDocId(update.getId());
jl.setDetailType(2L);
jl.setTableName("xzd_workcontract_completion_adjust");
}
xzdJsDeductionItemsService.saveBatch(bo.getJl());
}
//奖励与扣款-扣款
if (bo.getKk() != null && !bo.getKk().isEmpty()){
if (old.getKk() != null && !old.getKk().isEmpty()){
xzdJsDeductionItemsService.removeByIds(old.getKk());
}
for (XzdJsDeductionItems kk : bo.getKk()) {
kk.setMainDocId(update.getId());
kk.setDetailType(1L);
kk.setTableName("xzd_workcontract_completion_adjust");
}
xzdJsDeductionItemsService.saveBatch(bo.getKk());
}
return baseMapper.updateById(update) > 0;
}
@ -195,6 +272,23 @@ public class XzdWorkcontractCompletionAdjustServiceImpl extends ServiceImpl<XzdW
sysOssService.deleteWithValidByIds(deleteIds, false);
}
}
//删除结算清单
LambdaQueryWrapper<XzdJsqdTz> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(XzdJsqdTz::getMainId, id);
queryWrapper.eq(XzdJsqdTz::getType, "2");
xzdJsqdTzService.remove(queryWrapper);
//删除奖励与扣款-奖励
LambdaQueryWrapper<XzdJsDeductionItems> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(XzdJsDeductionItems::getMainDocId, id);
queryWrapper1.eq(XzdJsDeductionItems::getDetailType, 2L);
queryWrapper1.eq(XzdJsDeductionItems::getTableName, "xzd_workcontract_completion_adjust");
xzdJsDeductionItemsService.remove(queryWrapper1);
//删除奖励与扣款-扣款
LambdaQueryWrapper<XzdJsDeductionItems> queryWrapper2 = new LambdaQueryWrapper<>();
queryWrapper2.eq(XzdJsDeductionItems::getMainDocId, id);
queryWrapper2.eq(XzdJsDeductionItems::getDetailType, 1L);
queryWrapper2.eq(XzdJsDeductionItems::getTableName, "xzd_workcontract_completion_adjust");
xzdJsDeductionItemsService.remove(queryWrapper2);
}
}
return baseMapper.deleteByIds(ids) > 0;
@ -233,6 +327,32 @@ public class XzdWorkcontractCompletionAdjustServiceImpl extends ServiceImpl<XzdW
}
}
}
//决算清单
LambdaQueryWrapper<XzdJsqdTz> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(XzdJsqdTz::getMainId, vo.getId());
queryWrapper.eq(XzdJsqdTz::getType, "2");
List<XzdJsqdTz> jsqdTzs = xzdJsqdTzService.list(queryWrapper);
if (jsqdTzs != null && !jsqdTzs.isEmpty()){
vo.setJsqdTz(jsqdTzs);
}
//奖励与扣款-奖励
LambdaQueryWrapper<XzdJsDeductionItems> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(XzdJsDeductionItems::getMainDocId, vo.getId());
queryWrapper1.eq(XzdJsDeductionItems::getDetailType, 2L);
queryWrapper1.eq(XzdJsDeductionItems::getTableName, "xzd_workcontract_completion_adjust");
List<XzdJsDeductionItems> jl = xzdJsDeductionItemsService.list(queryWrapper1);
if (jl != null && !jl.isEmpty()){
vo.setJl(jl);
}
//奖励与扣款-扣款
LambdaQueryWrapper<XzdJsDeductionItems> queryWrapper2 = new LambdaQueryWrapper<>();
queryWrapper2.eq(XzdJsDeductionItems::getMainDocId, vo.getId());
queryWrapper2.eq(XzdJsDeductionItems::getDetailType, 1L);
queryWrapper2.eq(XzdJsDeductionItems::getTableName, "xzd_workcontract_completion_adjust");
List<XzdJsDeductionItems> kk = xzdJsDeductionItemsService.list(queryWrapper2);
if (kk != null && !kk.isEmpty()){
vo.setKk(kk);
}
}
}

View File

@ -0,0 +1,132 @@
package org.dromara.xzd.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.dromara.xzd.domain.bo.XzdZbjghydBo;
import org.dromara.xzd.domain.vo.XzdZbjghydVo;
import org.dromara.xzd.domain.XzdZbjghyd;
import org.dromara.xzd.mapper.XzdZbjghydMapper;
import org.dromara.xzd.service.IXzdZbjghydService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 质保金归还约定Service业务层处理
*
* @author Lion Li
* @date 2025-10-20
*/
@RequiredArgsConstructor
@Service
public class XzdZbjghydServiceImpl extends ServiceImpl<XzdZbjghydMapper, XzdZbjghyd> implements IXzdZbjghydService {
private final XzdZbjghydMapper baseMapper;
/**
* 查询质保金归还约定
*
* @param id 主键
* @return 质保金归还约定
*/
@Override
public XzdZbjghydVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询质保金归还约定列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 质保金归还约定分页列表
*/
@Override
public TableDataInfo<XzdZbjghydVo> queryPageList(XzdZbjghydBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<XzdZbjghyd> lqw = buildQueryWrapper(bo);
Page<XzdZbjghydVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的质保金归还约定列表
*
* @param bo 查询条件
* @return 质保金归还约定列表
*/
@Override
public List<XzdZbjghydVo> queryList(XzdZbjghydBo bo) {
LambdaQueryWrapper<XzdZbjghyd> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<XzdZbjghyd> buildQueryWrapper(XzdZbjghydBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<XzdZbjghyd> lqw = Wrappers.lambdaQuery();
lqw.orderByDesc(XzdZbjghyd::getId);
lqw.eq(bo.getMainId() != null, XzdZbjghyd::getMainId, bo.getMainId());
lqw.eq(bo.getZbq() != null, XzdZbjghyd::getZbq, bo.getZbq());
lqw.eq(bo.getGhbl() != null, XzdZbjghyd::getGhbl, bo.getGhbl());
return lqw;
}
/**
* 新增质保金归还约定
*
* @param bo 质保金归还约定
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(XzdZbjghydBo bo) {
XzdZbjghyd add = MapstructUtils.convert(bo, XzdZbjghyd.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改质保金归还约定
*
* @param bo 质保金归还约定
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(XzdZbjghydBo bo) {
XzdZbjghyd update = MapstructUtils.convert(bo, XzdZbjghyd.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(XzdZbjghyd entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除质保金归还约定信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -130,6 +130,11 @@ public class XzdAlterationInventory extends BaseEntity {
*/
private BigDecimal cumulativeSettlementAmount;
/**
* 累计结算占合同比
*/
private BigDecimal ljjszhtb;
/**
* CBS
*/

View File

@ -185,7 +185,9 @@ public class XzdContractInventory extends BaseEntity {
*/
private String auditStatus;
/**
* 数据来源
*/
private String sjly;
}

View File

@ -129,6 +129,11 @@ public class XzdAlterationInventoryBo extends BaseEntity {
*/
private BigDecimal cumulativeSettlementAmount;
/**
* 累计结算占合同比
*/
private BigDecimal ljjszhtb;
/**
* CBS
*/

View File

@ -184,6 +184,9 @@ public class XzdContractInventoryBo extends BaseEntity {
*/
private String auditStatus;
/**
* 数据来源
*/
private String sjly;
}

View File

@ -154,6 +154,11 @@ public class XzdAlterationInventoryVo implements Serializable {
@ExcelProperty(value = "累计结算金额")
private BigDecimal cumulativeSettlementAmount;
/**
* 累计结算占合同比
*/
private BigDecimal ljjszhtb;
/**
* CBS
*/

View File

@ -224,6 +224,9 @@ public class XzdContractInventoryVo implements Serializable {
@ExcelProperty(value = "审核状态")
private String auditStatus;
/**
* 数据来源
*/
private String sjly;
}