10-15-承包合同竣工结算

This commit is contained in:
2025-10-15 19:52:55 +08:00
parent 467a972a6d
commit cce9ef98d8
4 changed files with 114 additions and 17 deletions

View File

@ -7,6 +7,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.io.Serial; import java.io.Serial;
@ -31,6 +32,11 @@ public class XzdContractAccount extends BaseEntity {
@TableId(value = "id") @TableId(value = "id")
private Long id; private Long id;
/**
* 单据编号
*/
private String documentCodeThis;
/** /**
* 标题 * 标题
*/ */
@ -66,12 +72,12 @@ public class XzdContractAccount extends BaseEntity {
/** /**
* 送审造价 * 送审造价
*/ */
private Long submittedCost; private BigDecimal submittedCost;
/** /**
* 审定总价 * 审定总价
*/ */
private Long totalPrice; private BigDecimal totalPrice;
/** /**
* 审定日期 * 审定日期
@ -118,7 +124,7 @@ public class XzdContractAccount extends BaseEntity {
/** /**
* 本期应收金额 * 本期应收金额
*/ */
private Long amountReceivable; private BigDecimal amountReceivable;
/** /**
* 竣工日期 * 竣工日期
@ -135,12 +141,12 @@ public class XzdContractAccount extends BaseEntity {
/** /**
* 本期决算总额 * 本期决算总额
*/ */
private Long settlementAmount; private BigDecimal settlementAmount;
/** /**
* 质保金金额(客户) * 质保金金额(客户)
*/ */
private Long warrantyAmount; private BigDecimal warrantyAmount;
/** /**
* 业主单位(客户) * 业主单位(客户)
@ -157,5 +163,6 @@ public class XzdContractAccount extends BaseEntity {
*/ */
private Long review; private Long review;
private String fileId;
} }

View File

@ -11,6 +11,7 @@ import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/** /**
@ -29,6 +30,11 @@ public class XzdContractAccountBo extends BaseEntity {
*/ */
private Long id; private Long id;
/**
* 单据编号
*/
private String documentCodeThis;
/** /**
* 标题 * 标题
*/ */
@ -63,12 +69,12 @@ public class XzdContractAccountBo extends BaseEntity {
/** /**
* 送审造价 * 送审造价
*/ */
private Long submittedCost; private BigDecimal submittedCost;
/** /**
* 审定总价 * 审定总价
*/ */
private Long totalPrice; private BigDecimal totalPrice;
/** /**
* 审定日期 * 审定日期
@ -100,7 +106,7 @@ public class XzdContractAccountBo extends BaseEntity {
/** /**
* 本期应收金额 * 本期应收金额
*/ */
private Long amountReceivable; private BigDecimal amountReceivable;
/** /**
* 竣工日期 * 竣工日期
@ -117,12 +123,12 @@ public class XzdContractAccountBo extends BaseEntity {
/** /**
* 本期决算总额 * 本期决算总额
*/ */
private Long settlementAmount; private BigDecimal settlementAmount;
/** /**
* 质保金金额(客户) * 质保金金额(客户)
*/ */
private Long warrantyAmount; private BigDecimal warrantyAmount;
/** /**
* 业主单位(客户) * 业主单位(客户)
@ -139,5 +145,6 @@ public class XzdContractAccountBo extends BaseEntity {
*/ */
private Long review; private Long review;
private String fileId;
} }

View File

@ -1,5 +1,6 @@
package org.dromara.xzd.domain.vo; package org.dromara.xzd.domain.vo;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
@ -35,6 +36,11 @@ public class XzdContractAccountVo implements Serializable {
@ExcelProperty(value = "id") @ExcelProperty(value = "id")
private Long id; private Long id;
/**
* 单据编号
*/
private String documentCodeThis;
/** /**
* 标题 * 标题
*/ */
@ -130,7 +136,7 @@ public class XzdContractAccountVo implements Serializable {
* 本期应收金额 * 本期应收金额
*/ */
@ExcelProperty(value = "本期应收金额") @ExcelProperty(value = "本期应收金额")
private Long amountReceivable; private BigDecimal amountReceivable;
/** /**
* 竣工日期 * 竣工日期
@ -150,13 +156,13 @@ public class XzdContractAccountVo implements Serializable {
* 本期决算总额 * 本期决算总额
*/ */
@ExcelProperty(value = "本期决算总额") @ExcelProperty(value = "本期决算总额")
private Long settlementAmount; private BigDecimal settlementAmount;
/** /**
* 质保金金额(客户) * 质保金金额(客户)
*/ */
@ExcelProperty(value = "质保金金额(客户)") @ExcelProperty(value = "质保金金额(客户)")
private Long warrantyAmount; private BigDecimal warrantyAmount;
/** /**
* 业主单位(客户) * 业主单位(客户)
@ -164,17 +170,33 @@ public class XzdContractAccountVo implements Serializable {
@ExcelProperty(value = "业主单位(客户)") @ExcelProperty(value = "业主单位(客户)")
private Long owner; private Long owner;
/**
* 业主单位名称
*/
private String ownerName;
/** /**
* 监理单位(客户) * 监理单位(客户)
*/ */
@ExcelProperty(value = "监理单位(客户)") @ExcelProperty(value = "监理单位(客户)")
private Long supervision; private Long supervision;
/**
* 监理单位名称
*/
private String supervisionName;
/** /**
* 审核单位(客户) * 审核单位(客户)
*/ */
@ExcelProperty(value = "审核单位(客户)") @ExcelProperty(value = "审核单位(客户)")
private Long review; private Long review;
/**
* 审核单位名称
*/
private String reviewName;
private String fileId;
} }

View File

@ -1,7 +1,9 @@
package org.dromara.xzd.service.impl; package org.dromara.xzd.service.impl;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.toolkit.ParameterUtils; import com.baomidou.mybatisplus.core.toolkit.ParameterUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -10,9 +12,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.system.service.impl.SysOssServiceImpl;
import org.dromara.xzd.domain.XzdSettlementRules; import org.dromara.xzd.domain.XzdSettlementRules;
import org.dromara.xzd.domain.dto.QuerCorrespondentDto;
import org.dromara.xzd.domain.vo.XzdContractDetailsVo; import org.dromara.xzd.domain.vo.XzdContractDetailsVo;
import org.dromara.xzd.domain.vo.XzdSettlementRulesVo; import org.dromara.xzd.domain.vo.XzdSettlementRulesVo;
import org.dromara.xzd.service.IXzdCorrespondentList;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.dromara.xzd.domain.bo.XzdContractAccountBo; import org.dromara.xzd.domain.bo.XzdContractAccountBo;
@ -21,6 +26,7 @@ import org.dromara.xzd.domain.XzdContractAccount;
import org.dromara.xzd.mapper.XzdContractAccountMapper; import org.dromara.xzd.mapper.XzdContractAccountMapper;
import org.dromara.xzd.service.IXzdContractAccountService; import org.dromara.xzd.service.IXzdContractAccountService;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Collection; import java.util.Collection;
@ -40,6 +46,10 @@ public class XzdContractAccountServiceImpl extends ServiceImpl<XzdContractAccoun
private XzdContractDetailsServiceImpl xzdContractDetailsService; private XzdContractDetailsServiceImpl xzdContractDetailsService;
@Autowired @Autowired
private XzdSettlementRulesServiceImpl xzdSettlementRulesService; private XzdSettlementRulesServiceImpl xzdSettlementRulesService;
@Autowired
private IXzdCorrespondentList iXzdCorrespondentList;
@Autowired
private SysOssServiceImpl sysOssService;
/** /**
* 查询承包合同竣工结算 * 查询承包合同竣工结算
@ -63,6 +73,7 @@ public class XzdContractAccountServiceImpl extends ServiceImpl<XzdContractAccoun
public TableDataInfo<XzdContractAccountVo> queryPageList(XzdContractAccountBo bo, PageQuery pageQuery) { public TableDataInfo<XzdContractAccountVo> queryPageList(XzdContractAccountBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<XzdContractAccount> lqw = buildQueryWrapper(bo); LambdaQueryWrapper<XzdContractAccount> lqw = buildQueryWrapper(bo);
Page<XzdContractAccountVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); Page<XzdContractAccountVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
setValue(result.getRecords());
return TableDataInfo.build(result); return TableDataInfo.build(result);
} }
@ -115,11 +126,12 @@ public class XzdContractAccountServiceImpl extends ServiceImpl<XzdContractAccoun
public Boolean insertByBo(XzdContractAccountBo bo) { public Boolean insertByBo(XzdContractAccountBo bo) {
XzdContractAccount add = MapstructUtils.convert(bo, XzdContractAccount.class); XzdContractAccount add = MapstructUtils.convert(bo, XzdContractAccount.class);
validEntityBeforeSave(add); validEntityBeforeSave(add);
add.setDocumentCodeThis(IdUtil.getSnowflakeNextIdStr());
boolean flag = baseMapper.insert(add) > 0; boolean flag = baseMapper.insert(add) > 0;
if (flag) { if (!flag) {
bo.setId(add.getId()); return false;
} }
return flag; return true;
} }
/** /**
@ -132,7 +144,27 @@ public class XzdContractAccountServiceImpl extends ServiceImpl<XzdContractAccoun
public Boolean updateByBo(XzdContractAccountBo bo) { public Boolean updateByBo(XzdContractAccountBo bo) {
XzdContractAccount update = MapstructUtils.convert(bo, XzdContractAccount.class); XzdContractAccount update = MapstructUtils.convert(bo, XzdContractAccount.class);
validEntityBeforeSave(update); validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0; XzdContractAccountVo old = queryById(update.getId());
boolean b = baseMapper.updateById(update) > 0;
//更新文件
if (bo.getFileId() != null && !bo.getFileId().isEmpty()){
if (old.getFileId() != null && !old.getFileId().isEmpty()) {
List<Long> oldFileId = Arrays.stream(old.getFileId().split(",")).map(Long::valueOf).toList();
List<Long> nowFileId = Arrays.stream(bo.getFileId().split(",")).map(Long::valueOf).toList();
for (Long l : oldFileId) {
if (!nowFileId.contains(l)) {
sysOssService.deleteWithValidByIds(List.of(l), false);
}
}
}
}else {
if (old.getFileId()!= null && !old.getFileId().isEmpty()){
List<Long> deleteIds = Arrays.stream(old.getFileId().split(",")).map(Long::valueOf).toList();
sysOssService.deleteWithValidByIds(deleteIds, false);
}
}
return b;
} }
/** /**
@ -183,6 +215,35 @@ public class XzdContractAccountServiceImpl extends ServiceImpl<XzdContractAccoun
vo.setSettlementRules(settlementRulesVo); vo.setSettlementRules(settlementRulesVo);
} }
} }
//业主单位
if (vo.getOwner() != null){
R<QuerCorrespondentDto> byid2 = iXzdCorrespondentList.getCustomerByid(vo.getOwner());
if (byid2 != null) {
if (byid2.getData().getXzdCustomerinformation() != null) {
vo.setOwnerName(byid2.getData().getXzdCustomerinformation().getUnitName());
}
}
}
//监理单位
if (vo.getSupervision() != null){
if (vo.getOwner() != null){
R<QuerCorrespondentDto> byid2 = iXzdCorrespondentList.getCustomerByid(vo.getSupervision());
if (byid2 != null) {
if (byid2.getData().getXzdCustomerinformation() != null) {
vo.setOwnerName(byid2.getData().getXzdCustomerinformation().getUnitName());
}
}
}
}
//审核单位
if (vo.getReview() != null){
R<QuerCorrespondentDto> byid2 = iXzdCorrespondentList.getCustomerByid(vo.getReview());
if (byid2 != null) {
if (byid2.getData().getXzdCustomerinformation() != null) {
vo.setReviewName(byid2.getData().getXzdCustomerinformation().getUnitName());
}
}
}
} }
} }