结算信息
This commit is contained in:
@ -56,7 +56,7 @@ public class XzdPurchaseContractSuspendBo extends BaseEntity {
|
||||
/**
|
||||
* 终止日期
|
||||
*/
|
||||
private Date terminationDate;
|
||||
private LocalDate terminationDate;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
|
||||
@ -1,8 +1,13 @@
|
||||
package org.dromara.xzd.contractManagement.caigoucontractTermination.domain.vo;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import org.dromara.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.xzd.contractManagement.caigoucontractTermination.domain.XzdPurchaseContractSuspend;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
@ -35,12 +40,17 @@ public class XzdPurchaseContractSuspendVo implements Serializable {
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 采购合同信息ID(合同编号)
|
||||
*/
|
||||
@ExcelDictFormat(readConverterExp = "合=同编号")
|
||||
private Long contractInformationId;
|
||||
|
||||
/**
|
||||
* 采购合同信息ID(合同编码)
|
||||
*/
|
||||
@ExcelProperty(value = "采购合同信息ID", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "合=同编码")
|
||||
private Long contractInformationId;
|
||||
private String contractInformationIdName;
|
||||
|
||||
/**
|
||||
* 单据编码
|
||||
@ -70,7 +80,7 @@ public class XzdPurchaseContractSuspendVo implements Serializable {
|
||||
* 终止日期
|
||||
*/
|
||||
@ExcelProperty(value = "终止日期")
|
||||
private Date terminationDate;
|
||||
private LocalDate terminationDate;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
@ -84,12 +94,25 @@ public class XzdPurchaseContractSuspendVo implements Serializable {
|
||||
@ExcelProperty(value = "乙方单位")
|
||||
private Long artyBUnit;
|
||||
|
||||
/**
|
||||
* 乙方单位名称
|
||||
*/
|
||||
@ExcelProperty(value = "乙方单位名称")
|
||||
private String artyBUnitName;
|
||||
|
||||
/**
|
||||
* 甲方单位
|
||||
*/
|
||||
@ExcelProperty(value = "甲方单位")
|
||||
private Long partyAUnit;
|
||||
|
||||
/**
|
||||
* 甲方单位名称
|
||||
*/
|
||||
@ExcelProperty(value = "甲方单位名称")
|
||||
private String partyAUnitName;
|
||||
|
||||
|
||||
/**
|
||||
* 终止原因
|
||||
*/
|
||||
@ -157,4 +180,24 @@ public class XzdPurchaseContractSuspendVo implements Serializable {
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createByName;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private LocalDateTime createTime;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package org.dromara.xzd.contractManagement.caigoucontractTermination.service.impl;
|
||||
|
||||
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.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
@ -12,6 +13,14 @@ import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdBidPreProjectVo;
|
||||
import org.dromara.xzd.contractManagement.purchaseManagement.domain.XzdPurchaseContractInformation;
|
||||
import org.dromara.xzd.contractManagement.purchaseManagement.domain.vo.XzdPurchaseContractInformationVo;
|
||||
import org.dromara.xzd.contractManagement.purchaseManagement.service.IXzdPurchaseContractInformationService;
|
||||
import org.dromara.xzd.domain.XzdSettlementRules;
|
||||
import org.dromara.xzd.domain.dto.QuerCorrespondentDto;
|
||||
import org.dromara.xzd.service.IXzdCorrespondentList;
|
||||
import org.dromara.xzd.service.IXzdSettlementRulesService;
|
||||
import org.dromara.xzd.service.impl.XzdSupplierInfoServiceImpl;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjungong.domain.vo.SettlementOfSubcontractingCompletionVo;
|
||||
import org.dromara.xzd.utilS.AreaUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -40,6 +49,17 @@ public class XzdPurchaseContractSuspendServiceImpl extends ServiceImpl<XzdPurcha
|
||||
|
||||
private final XzdPurchaseContractSuspendMapper baseMapper;
|
||||
|
||||
private final IXzdSettlementRulesService xzdSettlementRulesService;
|
||||
|
||||
private final IXzdPurchaseContractInformationService xzdPurchaseContractInformationService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private XzdSupplierInfoServiceImpl xzdSupplierInfoService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private IXzdCorrespondentList iXzdCorrespondentList;
|
||||
@Autowired
|
||||
private SysOssServiceImpl sysOssService;
|
||||
|
||||
@ -53,7 +73,45 @@ public class XzdPurchaseContractSuspendServiceImpl extends ServiceImpl<XzdPurcha
|
||||
*/
|
||||
@Override
|
||||
public XzdPurchaseContractSuspendVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
XzdPurchaseContractSuspendVo vo = baseMapper.selectVoById(id);
|
||||
List<XzdPurchaseContractSuspendVo> res = List.of(vo);
|
||||
setValue(res);
|
||||
return res.getFirst();
|
||||
}
|
||||
|
||||
private void setValue(List<XzdPurchaseContractSuspendVo> res) {
|
||||
|
||||
for (XzdPurchaseContractSuspendVo item : res) {
|
||||
// //项目名称
|
||||
// if (item.getProject() != null){
|
||||
// String projectName = xzdProjectService.queryNameById(item.getProject());
|
||||
// if (projectName != null){
|
||||
// item.setProjectName(projectName);
|
||||
// }
|
||||
// }
|
||||
//甲方单位(客户信息列表)
|
||||
R<QuerCorrespondentDto> byid = iXzdCorrespondentList.getCustomerByid(item.getPartyAUnit());
|
||||
if (byid!=null){
|
||||
if (byid.getData().getXzdCustomerinformation() != null){
|
||||
item.setPartyAUnitName(byid.getData().getXzdCustomerinformation().getUnitName());
|
||||
}
|
||||
}
|
||||
//乙方单位(供应商信息列表)
|
||||
if (item.getArtyBUnit() != null){
|
||||
String unitName = xzdSupplierInfoService.queryNameById(item.getArtyBUnit());
|
||||
if (unitName != null){
|
||||
item.setArtyBUnitName(unitName);
|
||||
}
|
||||
}
|
||||
// 采购合同信息编码
|
||||
if (item.getContractInformationId() != null){
|
||||
XzdPurchaseContractInformationVo queryById = xzdPurchaseContractInformationService.queryById(item.getContractInformationId());
|
||||
if (queryById != null){
|
||||
item.setContractInformationIdName(queryById.getContractCode());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -67,6 +125,7 @@ public class XzdPurchaseContractSuspendServiceImpl extends ServiceImpl<XzdPurcha
|
||||
public TableDataInfo<XzdPurchaseContractSuspendVo> queryPageList(XzdPurchaseContractSuspendBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<XzdPurchaseContractSuspend> lqw = buildQueryWrapper(bo);
|
||||
Page<XzdPurchaseContractSuspendVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
setValue(result.getRecords());
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
@ -121,9 +180,9 @@ public class XzdPurchaseContractSuspendServiceImpl extends ServiceImpl<XzdPurcha
|
||||
|
||||
Long l = baseMapper.selectCount(new LambdaQueryWrapper<XzdPurchaseContractSuspend>().gt(XzdPurchaseContractSuspend::getCreateTime, LocalDate.now()));
|
||||
String s = areaUtil.generateDateBasedNumber();
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
|
||||
add.setReceiptsCode(s+"-"+(l+1));
|
||||
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
@ -162,7 +221,6 @@ public class XzdPurchaseContractSuspendServiceImpl extends ServiceImpl<XzdPurcha
|
||||
if(isValid){
|
||||
|
||||
}
|
||||
|
||||
for (Long id : ids) {
|
||||
XzdPurchaseContractSuspendVo vo = baseMapper.selectVoById(id);
|
||||
// 删除附件
|
||||
|
||||
@ -147,7 +147,7 @@ public class XzdPurchaseContractAlteration extends BaseEntity {
|
||||
private Long changeSiteManager;
|
||||
|
||||
/**
|
||||
* 变更后现场经理
|
||||
* 变更后合同备注
|
||||
*/
|
||||
private Long changeContractRemarks;
|
||||
|
||||
@ -160,6 +160,15 @@ public class XzdPurchaseContractAlteration extends BaseEntity {
|
||||
* 项目类型
|
||||
*/
|
||||
private String projectType;
|
||||
/**
|
||||
* 变更价税合计
|
||||
*/
|
||||
private String changeInTotalAmount;
|
||||
|
||||
/**
|
||||
* 变更后价税合计
|
||||
*/
|
||||
private String revisedTotalAmount;
|
||||
|
||||
/**
|
||||
* 付款额不能超合同额:1-是,0-否
|
||||
|
||||
@ -150,7 +150,7 @@ public class XzdPurchaseContractAlterationBo extends BaseEntity {
|
||||
private Long changeSiteManager;
|
||||
|
||||
/**
|
||||
* 变更后现场经理
|
||||
* 变更后合同备注
|
||||
*/
|
||||
private Long changeContractRemarks;
|
||||
|
||||
@ -164,6 +164,15 @@ public class XzdPurchaseContractAlterationBo extends BaseEntity {
|
||||
*/
|
||||
private String projectType;
|
||||
|
||||
/**
|
||||
* 变更价税合计
|
||||
*/
|
||||
private String changeInTotalAmount;
|
||||
|
||||
/**
|
||||
* 变更后价税合计
|
||||
*/
|
||||
private String revisedTotalAmount;
|
||||
/**
|
||||
* 付款额不能超合同额:1-是,0-否
|
||||
*/
|
||||
@ -205,6 +214,11 @@ public class XzdPurchaseContractAlterationBo extends BaseEntity {
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
private LocalDate startDate;
|
||||
|
||||
private LocalDate endDate;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 预收款项
|
||||
|
||||
@ -2,8 +2,13 @@ package org.dromara.xzd.contractManagement.caigouhetongbiangeng.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import org.dromara.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.xzd.contractManagement.caigouhetongbiangeng.domain.XzdPurchaseContractAlteration;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
@ -12,9 +17,11 @@ import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import org.dromara.xzd.contractManagement.purchaseManagement.domain.vo.XzdPurchaseContractInformationVo;
|
||||
import org.dromara.xzd.domain.*;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
@ -179,7 +186,7 @@ public class XzdPurchaseContractAlterationVo implements Serializable {
|
||||
/**
|
||||
* 变更后现场经理
|
||||
*/
|
||||
@ExcelProperty(value = "变更后现场经理")
|
||||
@ExcelProperty(value = "变更后合同备注")
|
||||
private Long changeContractRemarks;
|
||||
|
||||
/**
|
||||
@ -230,6 +237,25 @@ public class XzdPurchaseContractAlterationVo implements Serializable {
|
||||
@ExcelProperty(value = "文件ID")
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createByName;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ -242,11 +268,45 @@ public class XzdPurchaseContractAlterationVo implements Serializable {
|
||||
@ExcelProperty(value = "审核状态")
|
||||
private String auditStatus;
|
||||
|
||||
/**
|
||||
* 变更价税合计
|
||||
*/
|
||||
private String changeInTotalAmount;
|
||||
|
||||
/**
|
||||
* 采购合同信息
|
||||
* 变更后价税合计
|
||||
*/
|
||||
private XzdPurchaseContractInformationVo xzdPurchaseContractInformationVo;
|
||||
private String revisedTotalAmount;
|
||||
/**
|
||||
* 预收款项
|
||||
*/
|
||||
private List<XzdContractAdvanceInfo> yskx;
|
||||
|
||||
/**
|
||||
* 扣款与奖励项
|
||||
*/
|
||||
private List<XzdDeductionItems> kkyjlx;
|
||||
|
||||
/**
|
||||
* 合同条款
|
||||
*/
|
||||
private List<XzdContractClause> httk;
|
||||
|
||||
/**
|
||||
* 支付条款
|
||||
*/
|
||||
private List<XzdSettlementRules> zftk;
|
||||
|
||||
/**
|
||||
* 合同主要条款约定
|
||||
*/
|
||||
private XzdContractDepositInfo htzytkyd;
|
||||
|
||||
|
||||
// /**
|
||||
// * 采购合同信息
|
||||
// */
|
||||
// private XzdPurchaseContractInformationVo xzdPurchaseContractInformationVo;
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package org.dromara.xzd.contractManagement.caigouhetongbiangeng.service.impl;
|
||||
|
||||
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.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
@ -12,10 +13,8 @@ import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||
import org.dromara.xzd.contractManagement.purchaseManagement.domain.vo.XzdPurchaseContractInformationVo;
|
||||
import org.dromara.xzd.contractManagement.purchaseManagement.service.IXzdPurchaseContractInformationService;
|
||||
import org.dromara.xzd.domain.XzdContractAdvanceInfo;
|
||||
import org.dromara.xzd.domain.XzdContractClause;
|
||||
import org.dromara.xzd.domain.XzdDeductionItems;
|
||||
import org.dromara.xzd.domain.XzdSettlementRules;
|
||||
import org.dromara.xzd.domain.*;
|
||||
import org.dromara.xzd.domain.dto.QuerCorrespondentDto;
|
||||
import org.dromara.xzd.enums.XzdClassEnum;
|
||||
import org.dromara.xzd.service.IXzdContractAdvanceInfoService;
|
||||
import org.dromara.xzd.service.IXzdContractClauseService;
|
||||
@ -64,6 +63,13 @@ public class XzdPurchaseContractAlterationServiceImpl extends ServiceImpl<XzdPur
|
||||
@Autowired
|
||||
private SysOssServiceImpl sysOssService;
|
||||
|
||||
@Autowired
|
||||
private XzdProjectServiceImpl xzdProjectService;
|
||||
@Autowired
|
||||
private IXzdCorrespondentList iXzdCorrespondentList;
|
||||
@Autowired
|
||||
private XzdSupplierInfoServiceImpl xzdSupplierInfoService;
|
||||
|
||||
/**
|
||||
* 查询采购合同变更
|
||||
*
|
||||
@ -73,12 +79,50 @@ public class XzdPurchaseContractAlterationServiceImpl extends ServiceImpl<XzdPur
|
||||
@Override
|
||||
public XzdPurchaseContractAlterationVo queryById(Long id){
|
||||
XzdPurchaseContractAlterationVo xzdPurchaseContractAlterationVo = baseMapper.selectVoById(id);
|
||||
XzdPurchaseContractInformationVo vo = iXzdPurchaseContractInformationService.queryById(xzdPurchaseContractAlterationVo.getContractInformationId());
|
||||
xzdPurchaseContractAlterationVo.setXzdPurchaseContractInformationVo( vo);
|
||||
|
||||
List<XzdPurchaseContractAlterationVo> list = List.of(xzdPurchaseContractAlterationVo);
|
||||
setValue(list);
|
||||
return xzdPurchaseContractAlterationVo;
|
||||
}
|
||||
|
||||
public void setValue(List<XzdPurchaseContractAlterationVo> infos){
|
||||
|
||||
for (XzdPurchaseContractAlterationVo item : infos) {
|
||||
|
||||
//合同文本-预收款项
|
||||
LambdaQueryWrapper<XzdContractAdvanceInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(XzdContractAdvanceInfo::getContractDetailsId, item.getId());
|
||||
List<XzdContractAdvanceInfo> advanceInfos = xzdContractAdvanceInfoService.list(lambdaQueryWrapper);
|
||||
item.setYskx(advanceInfos);
|
||||
|
||||
//合同条款-扣款与奖励项
|
||||
LambdaQueryWrapper<XzdDeductionItems> lambdaQueryWrapper1 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper1.eq(XzdDeductionItems::getContractDetailsId, item.getId());
|
||||
List<XzdDeductionItems> list = xzdDeductionItemsService.list(lambdaQueryWrapper1);
|
||||
item.setKkyjlx(list);
|
||||
|
||||
//合同条款-合同条款
|
||||
LambdaQueryWrapper<XzdContractClause> lambdaQueryWrapper2 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper2.eq(XzdContractClause::getContractDetailsId, item.getId());
|
||||
List<XzdContractClause> list1 = xzdContractClauseService.list(lambdaQueryWrapper2);
|
||||
item.setHttk(list1);
|
||||
|
||||
//支付条款
|
||||
LambdaQueryWrapper<XzdSettlementRules> lambdaQueryWrapper3 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper3.eq(XzdSettlementRules::getContractDetailsId, item.getId());
|
||||
List<XzdSettlementRules> list2 = xzdSettlementRulesService.list(lambdaQueryWrapper3);
|
||||
item.setZftk(list2);
|
||||
|
||||
//合同文本-合同主要条款约定
|
||||
LambdaQueryWrapper<XzdContractDepositInfo> lambdaQueryWrapper4 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper4.eq(XzdContractDepositInfo::getContractDetailsId, item.getId());
|
||||
XzdContractDepositInfo list3 = xzdContractDepositInfoService.getOne(lambdaQueryWrapper4);
|
||||
item.setHtzytkyd(list3);
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询采购合同变更列表
|
||||
*
|
||||
@ -113,6 +157,11 @@ public class XzdPurchaseContractAlterationServiceImpl extends ServiceImpl<XzdPur
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getReceiptsCode()), XzdPurchaseContractAlteration::getReceiptsCode, bo.getReceiptsCode());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdPurchaseContractAlteration::getTitle, bo.getTitle());
|
||||
lqw.eq(bo.getDocumentDate() != null, XzdPurchaseContractAlteration::getDocumentDate, bo.getDocumentDate());
|
||||
lqw.ge(bo.getStartDate() != null, XzdPurchaseContractAlteration::getDocumentDate, bo.getStartDate());
|
||||
lqw.le(bo.getEndDate() != null, XzdPurchaseContractAlteration::getDocumentDate, bo.getEndDate());
|
||||
|
||||
|
||||
|
||||
lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdPurchaseContractAlteration::getContractName, bo.getContractName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getContractType()), XzdPurchaseContractAlteration::getContractType, bo.getContractType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAlterationType()), XzdPurchaseContractAlteration::getAlterationType, bo.getAlterationType());
|
||||
@ -158,11 +207,10 @@ public class XzdPurchaseContractAlterationServiceImpl extends ServiceImpl<XzdPur
|
||||
validEntityBeforeSave(add);
|
||||
String tableName = XzdClassEnum.CAIGOUHETONG_INFORMATION.getClassName();
|
||||
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
/**
|
||||
* 预收款项
|
||||
*/
|
||||
HashMap<String, Object> hashMap = new HashMap<>();
|
||||
hashMap.put("contract_detailsId", add.getId());
|
||||
List<XzdContractAdvanceInfo> yskx = bo.getYskx();
|
||||
yskx.forEach(item -> {
|
||||
item.setTableName(tableName);
|
||||
@ -187,7 +235,6 @@ public class XzdPurchaseContractAlterationServiceImpl extends ServiceImpl<XzdPur
|
||||
item.setContractDetailsId(add.getId());
|
||||
});
|
||||
iXzdContractClauseService.saveBatch(httk);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
@ -273,23 +320,23 @@ public class XzdPurchaseContractAlterationServiceImpl extends ServiceImpl<XzdPur
|
||||
}
|
||||
}
|
||||
}
|
||||
//合同文本-预收款项
|
||||
LambdaQueryWrapper<XzdContractAdvanceInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.in(XzdContractAdvanceInfo::getContractDetailsId, ids);
|
||||
xzdContractAdvanceInfoService.remove(lambdaQueryWrapper);
|
||||
//合同条款-扣款与奖励项
|
||||
LambdaQueryWrapper<XzdDeductionItems> lambdaQueryWrapper1 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper1.in(XzdDeductionItems::getContractDetailsId, ids);
|
||||
xzdDeductionItemsService.remove(lambdaQueryWrapper1);
|
||||
//合同条款-合同条款
|
||||
LambdaQueryWrapper<XzdContractClause> lambdaQueryWrapper2 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper2.in(XzdContractClause::getContractDetailsId, ids);
|
||||
xzdContractClauseService.remove(lambdaQueryWrapper2);
|
||||
//支付条款
|
||||
LambdaQueryWrapper<XzdSettlementRules> lambdaQueryWrapper3 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper3.in(XzdSettlementRules::getContractDetailsId, ids);
|
||||
xzdSettlementRulesService.remove(lambdaQueryWrapper3);
|
||||
}
|
||||
//合同文本-预收款项
|
||||
LambdaQueryWrapper<XzdContractAdvanceInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.in(XzdContractAdvanceInfo::getContractDetailsId, ids);
|
||||
xzdContractAdvanceInfoService.remove(lambdaQueryWrapper);
|
||||
//合同条款-扣款与奖励项
|
||||
LambdaQueryWrapper<XzdDeductionItems> lambdaQueryWrapper1 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper1.in(XzdDeductionItems::getContractDetailsId, ids);
|
||||
xzdDeductionItemsService.remove(lambdaQueryWrapper1);
|
||||
//合同条款-合同条款
|
||||
LambdaQueryWrapper<XzdContractClause> lambdaQueryWrapper2 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper2.in(XzdContractClause::getContractDetailsId, ids);
|
||||
xzdContractClauseService.remove(lambdaQueryWrapper2);
|
||||
//支付条款
|
||||
LambdaQueryWrapper<XzdSettlementRules> lambdaQueryWrapper3 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper3.in(XzdSettlementRules::getContractDetailsId, ids);
|
||||
xzdSettlementRulesService.remove(lambdaQueryWrapper3);
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
|
||||
@ -0,0 +1,105 @@
|
||||
package org.dromara.xzd.contractManagement.fenbaohetongbiangg.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongbiangg.domain.vo.XzdSubcontractChangeVo;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongbiangg.domain.bo.XzdSubcontractChangeBo;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongbiangg.service.IXzdSubcontractChangeService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 分包合同变更
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-14
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/fenbaohetongbiangg/subcontractChange")
|
||||
public class XzdSubcontractChangeController extends BaseController {
|
||||
|
||||
private final IXzdSubcontractChangeService xzdSubcontractChangeService;
|
||||
|
||||
/**
|
||||
* 查询分包合同变更列表
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongbiangg:subcontractChange:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<XzdSubcontractChangeVo> list(XzdSubcontractChangeBo bo, PageQuery pageQuery) {
|
||||
return xzdSubcontractChangeService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出分包合同变更列表
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongbiangg:subcontractChange:export")
|
||||
@Log(title = "分包合同变更", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(XzdSubcontractChangeBo bo, HttpServletResponse response) {
|
||||
List<XzdSubcontractChangeVo> list = xzdSubcontractChangeService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "分包合同变更", XzdSubcontractChangeVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取分包合同变更详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongbiangg:subcontractChange:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<XzdSubcontractChangeVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(xzdSubcontractChangeService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增分包合同变更
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongbiangg:subcontractChange:add")
|
||||
@Log(title = "分包合同变更", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody XzdSubcontractChangeBo bo) {
|
||||
return toAjax(xzdSubcontractChangeService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改分包合同变更
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongbiangg:subcontractChange:edit")
|
||||
@Log(title = "分包合同变更", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody XzdSubcontractChangeBo bo) {
|
||||
return toAjax(xzdSubcontractChangeService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除分包合同变更
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongbiangg:subcontractChange:remove")
|
||||
@Log(title = "分包合同变更", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(xzdSubcontractChangeService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,218 @@
|
||||
package org.dromara.xzd.contractManagement.fenbaohetongbiangg.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* 分包合同变更对象 xzd_subcontract_change
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-14
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("xzd_subcontract_change")
|
||||
public class XzdSubcontractChange extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据编码
|
||||
*/
|
||||
private String documentCode;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
private LocalDate documentDate;
|
||||
|
||||
/**
|
||||
* 合同编码
|
||||
*/
|
||||
private Long contractCode;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 合同类型(字典)
|
||||
*/
|
||||
private String contractType;
|
||||
|
||||
/**
|
||||
* 变更类型(字典)
|
||||
*/
|
||||
private String changeType;
|
||||
|
||||
/**
|
||||
* 项目
|
||||
*/
|
||||
private String project;
|
||||
|
||||
/**
|
||||
* 经营模式
|
||||
*/
|
||||
private String businessModel;
|
||||
|
||||
/**
|
||||
* 组织
|
||||
*/
|
||||
private String organization;
|
||||
|
||||
/**
|
||||
* 甲方单位
|
||||
*/
|
||||
private String partyAUnit;
|
||||
|
||||
/**
|
||||
* 乙方单位
|
||||
*/
|
||||
private String partyBUnit;
|
||||
|
||||
/**
|
||||
* 原合同造价
|
||||
*/
|
||||
private BigDecimal originalContractCost;
|
||||
|
||||
/**
|
||||
* 变更价税合计
|
||||
*/
|
||||
private BigDecimal changeTaxInclusiveTotal;
|
||||
|
||||
/**
|
||||
* 变更后总造价
|
||||
*/
|
||||
private BigDecimal postChangeTotalCost;
|
||||
|
||||
/**
|
||||
* 累计变更金额
|
||||
*/
|
||||
private BigDecimal cumulativeChangeAmount;
|
||||
|
||||
/**
|
||||
* 可用目标成本
|
||||
*/
|
||||
private BigDecimal availableTargetCost;
|
||||
|
||||
/**
|
||||
* 目标成本
|
||||
*/
|
||||
private BigDecimal targetCost;
|
||||
|
||||
/**
|
||||
* 目标成本项
|
||||
*/
|
||||
private String targetCostItem;
|
||||
|
||||
/**
|
||||
* 警示
|
||||
*/
|
||||
private String warning;
|
||||
|
||||
/**
|
||||
* 支付条款
|
||||
*/
|
||||
private String paymentTerms;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remarks;
|
||||
|
||||
/**
|
||||
* 是否用印
|
||||
*/
|
||||
private Long isStamped;
|
||||
|
||||
/**
|
||||
* 变更后项目经理
|
||||
*/
|
||||
private Long postChangeProjectManager;
|
||||
|
||||
/**
|
||||
* 变更后项目责任人
|
||||
*/
|
||||
private Long postChangeProjectOwner;
|
||||
|
||||
/**
|
||||
* 变更后现场经理
|
||||
*/
|
||||
private Long postChangeSiteManager;
|
||||
|
||||
/**
|
||||
* 变更后合同备注
|
||||
*/
|
||||
private String postChangeContractRemarks;
|
||||
|
||||
/**
|
||||
* 项目大类(字典)
|
||||
*/
|
||||
private String projectCategory;
|
||||
|
||||
/**
|
||||
* 项目类型(字典)
|
||||
*/
|
||||
private String projectType;
|
||||
|
||||
/**
|
||||
* 付款额不能超合同额
|
||||
*/
|
||||
private Long isPaymentNotExceedContract;
|
||||
|
||||
/**
|
||||
* 付款额不能超合同额支付比
|
||||
*/
|
||||
private BigDecimal paymentNotExceedRatio;
|
||||
|
||||
/**
|
||||
* 预结算/结算额不能超合同额
|
||||
*/
|
||||
private Long isPreSettlementNotExceedContract;
|
||||
|
||||
/**
|
||||
* 预结算/结算额不能超合同额比例
|
||||
*/
|
||||
private BigDecimal preSettlementNotExceedRatio;
|
||||
|
||||
/**
|
||||
* 实时刷新
|
||||
*/
|
||||
private Long isRealTimeRefresh;
|
||||
|
||||
/**
|
||||
* 合同累计变更金额
|
||||
*/
|
||||
private BigDecimal contractCumulativeChangeAmount;
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 单据引用ID
|
||||
*/
|
||||
private Long danjuId;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,244 @@
|
||||
package org.dromara.xzd.contractManagement.fenbaohetongbiangg.domain.bo;
|
||||
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongbiangg.domain.XzdSubcontractChange;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import org.dromara.xzd.domain.XzdContractAdvanceInfo;
|
||||
import org.dromara.xzd.domain.XzdContractClause;
|
||||
import org.dromara.xzd.domain.XzdDeductionItems;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 分包合同变更业务对象 xzd_subcontract_change
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-14
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = XzdSubcontractChange.class, reverseConvertGenerate = false)
|
||||
public class XzdSubcontractChangeBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@NotNull(message = "不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据编码
|
||||
*/
|
||||
@NotBlank(message = "单据编码不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String documentCode;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
private LocalDate documentDate;
|
||||
|
||||
/**
|
||||
* 合同编码
|
||||
*/
|
||||
private Long contractCode;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 合同类型(字典)
|
||||
*/
|
||||
private String contractType;
|
||||
|
||||
/**
|
||||
* 变更类型(字典)
|
||||
*/
|
||||
private String changeType;
|
||||
|
||||
/**
|
||||
* 项目
|
||||
*/
|
||||
private String project;
|
||||
|
||||
/**
|
||||
* 经营模式
|
||||
*/
|
||||
private String businessModel;
|
||||
|
||||
/**
|
||||
* 组织
|
||||
*/
|
||||
private String organization;
|
||||
|
||||
/**
|
||||
* 甲方单位
|
||||
*/
|
||||
private String partyAUnit;
|
||||
|
||||
/**
|
||||
* 乙方单位
|
||||
*/
|
||||
private String partyBUnit;
|
||||
|
||||
/**
|
||||
* 原合同造价
|
||||
*/
|
||||
private BigDecimal originalContractCost;
|
||||
|
||||
/**
|
||||
* 变更价税合计
|
||||
*/
|
||||
private BigDecimal changeTaxInclusiveTotal;
|
||||
|
||||
/**
|
||||
* 变更后总造价
|
||||
*/
|
||||
private BigDecimal postChangeTotalCost;
|
||||
|
||||
/**
|
||||
* 累计变更金额
|
||||
*/
|
||||
private BigDecimal cumulativeChangeAmount;
|
||||
|
||||
/**
|
||||
* 可用目标成本
|
||||
*/
|
||||
private BigDecimal availableTargetCost;
|
||||
|
||||
/**
|
||||
* 目标成本
|
||||
*/
|
||||
private BigDecimal targetCost;
|
||||
|
||||
/**
|
||||
* 目标成本项
|
||||
*/
|
||||
private String targetCostItem;
|
||||
|
||||
/**
|
||||
* 警示
|
||||
*/
|
||||
private String warning;
|
||||
|
||||
/**
|
||||
* 支付条款
|
||||
*/
|
||||
private String paymentTerms;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remarks;
|
||||
|
||||
/**
|
||||
* 是否用印
|
||||
*/
|
||||
private Long isStamped;
|
||||
|
||||
/**
|
||||
* 变更后项目经理
|
||||
*/
|
||||
private Long postChangeProjectManager;
|
||||
|
||||
/**
|
||||
* 变更后项目责任人
|
||||
*/
|
||||
private Long postChangeProjectOwner;
|
||||
|
||||
/**
|
||||
* 变更后现场经理
|
||||
*/
|
||||
private Long postChangeSiteManager;
|
||||
|
||||
/**
|
||||
* 变更后合同备注
|
||||
*/
|
||||
private String postChangeContractRemarks;
|
||||
|
||||
/**
|
||||
* 项目大类(字典)
|
||||
*/
|
||||
private String projectCategory;
|
||||
|
||||
/**
|
||||
* 项目类型(字典)
|
||||
*/
|
||||
private String projectType;
|
||||
|
||||
/**
|
||||
* 付款额不能超合同额
|
||||
*/
|
||||
private Long isPaymentNotExceedContract;
|
||||
|
||||
/**
|
||||
* 付款额不能超合同额支付比
|
||||
*/
|
||||
private BigDecimal paymentNotExceedRatio;
|
||||
|
||||
/**
|
||||
* 预结算/结算额不能超合同额
|
||||
*/
|
||||
private Long isPreSettlementNotExceedContract;
|
||||
|
||||
/**
|
||||
* 预结算/结算额不能超合同额比例
|
||||
*/
|
||||
private BigDecimal preSettlementNotExceedRatio;
|
||||
|
||||
/**
|
||||
* 实时刷新
|
||||
*/
|
||||
private Long isRealTimeRefresh;
|
||||
|
||||
/**
|
||||
* 合同累计变更金额
|
||||
*/
|
||||
private BigDecimal contractCumulativeChangeAmount;
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 单据引用ID
|
||||
*/
|
||||
private Long danjuId;
|
||||
|
||||
|
||||
private LocalDate startTime;
|
||||
private LocalDate endTime;
|
||||
|
||||
|
||||
/**
|
||||
* 预收款项
|
||||
*/
|
||||
private List<XzdContractAdvanceInfo> yskx;
|
||||
|
||||
/**
|
||||
* 扣款与奖励项
|
||||
*/
|
||||
private List<XzdDeductionItems> kkyjlx;
|
||||
|
||||
/**
|
||||
* 合同条款
|
||||
*/
|
||||
private List<XzdContractClause> httk;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,325 @@
|
||||
package org.dromara.xzd.contractManagement.fenbaohetongbiangg.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import org.dromara.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongbiangg.domain.XzdSubcontractChange;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
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.contractManagement.fenbaohetongxinxi.domain.XzdSubcontract;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongxinxi.domain.vo.XzdSubcontractVo;
|
||||
import org.dromara.xzd.domain.*;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 分包合同变更视图对象 xzd_subcontract_change
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-14
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = XzdSubcontractChange.class)
|
||||
public class XzdSubcontractChangeVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@ExcelProperty(value = "")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据编码
|
||||
*/
|
||||
@ExcelProperty(value = "单据编码")
|
||||
private String documentCode;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
@ExcelProperty(value = "标题")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
@ExcelProperty(value = "单据日期")
|
||||
private LocalDate documentDate;
|
||||
|
||||
/**
|
||||
* 合同编码
|
||||
*/
|
||||
@ExcelProperty(value = "合同编码")
|
||||
private Long contractCode;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
@ExcelProperty(value = "合同名称")
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 合同类型(字典)
|
||||
*/
|
||||
@ExcelProperty(value = "合同类型", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "字=典")
|
||||
private String contractType;
|
||||
|
||||
/**
|
||||
* 变更类型(字典)
|
||||
*/
|
||||
@ExcelProperty(value = "变更类型", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "字=典")
|
||||
private String changeType;
|
||||
|
||||
/**
|
||||
* 项目
|
||||
*/
|
||||
@ExcelProperty(value = "项目")
|
||||
private String project;
|
||||
|
||||
/**
|
||||
* 经营模式
|
||||
*/
|
||||
@ExcelProperty(value = "经营模式")
|
||||
private String businessModel;
|
||||
|
||||
/**
|
||||
* 组织
|
||||
*/
|
||||
@ExcelProperty(value = "组织")
|
||||
private String organization;
|
||||
|
||||
/**
|
||||
* 甲方单位
|
||||
*/
|
||||
@ExcelProperty(value = "甲方单位")
|
||||
private String partyAUnit;
|
||||
|
||||
/**
|
||||
* 乙方单位
|
||||
*/
|
||||
@ExcelProperty(value = "乙方单位")
|
||||
private String partyBUnit;
|
||||
|
||||
/**
|
||||
* 原合同造价
|
||||
*/
|
||||
@ExcelProperty(value = "原合同造价")
|
||||
private BigDecimal originalContractCost;
|
||||
|
||||
/**
|
||||
* 变更价税合计
|
||||
*/
|
||||
@ExcelProperty(value = "变更价税合计")
|
||||
private BigDecimal changeTaxInclusiveTotal;
|
||||
|
||||
/**
|
||||
* 变更后总造价
|
||||
*/
|
||||
@ExcelProperty(value = "变更后总造价")
|
||||
private BigDecimal postChangeTotalCost;
|
||||
|
||||
/**
|
||||
* 累计变更金额
|
||||
*/
|
||||
@ExcelProperty(value = "累计变更金额")
|
||||
private BigDecimal cumulativeChangeAmount;
|
||||
|
||||
/**
|
||||
* 可用目标成本
|
||||
*/
|
||||
@ExcelProperty(value = "可用目标成本")
|
||||
private BigDecimal availableTargetCost;
|
||||
|
||||
/**
|
||||
* 目标成本
|
||||
*/
|
||||
@ExcelProperty(value = "目标成本")
|
||||
private BigDecimal targetCost;
|
||||
|
||||
/**
|
||||
* 目标成本项
|
||||
*/
|
||||
@ExcelProperty(value = "目标成本项")
|
||||
private String targetCostItem;
|
||||
|
||||
/**
|
||||
* 警示
|
||||
*/
|
||||
@ExcelProperty(value = "警示")
|
||||
private String warning;
|
||||
|
||||
/**
|
||||
* 支付条款
|
||||
*/
|
||||
@ExcelProperty(value = "支付条款")
|
||||
private String paymentTerms;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remarks;
|
||||
|
||||
/**
|
||||
* 是否用印
|
||||
*/
|
||||
@ExcelProperty(value = "是否用印")
|
||||
private Long isStamped;
|
||||
|
||||
/**
|
||||
* 变更后项目经理
|
||||
*/
|
||||
@ExcelProperty(value = "变更后项目经理")
|
||||
private Long postChangeProjectManager;
|
||||
|
||||
/**
|
||||
* 变更后项目责任人
|
||||
*/
|
||||
@ExcelProperty(value = "变更后项目责任人")
|
||||
private Long postChangeProjectOwner;
|
||||
|
||||
/**
|
||||
* 变更后现场经理
|
||||
*/
|
||||
@ExcelProperty(value = "变更后现场经理")
|
||||
private Long postChangeSiteManager;
|
||||
|
||||
/**
|
||||
* 变更后合同备注
|
||||
*/
|
||||
@ExcelProperty(value = "变更后合同备注")
|
||||
private String postChangeContractRemarks;
|
||||
|
||||
/**
|
||||
* 项目大类(字典)
|
||||
*/
|
||||
@ExcelProperty(value = "项目大类", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "字=典")
|
||||
private String projectCategory;
|
||||
|
||||
/**
|
||||
* 项目类型(字典)
|
||||
*/
|
||||
@ExcelProperty(value = "项目类型", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "字=典")
|
||||
private String projectType;
|
||||
|
||||
/**
|
||||
* 付款额不能超合同额
|
||||
*/
|
||||
@ExcelProperty(value = "付款额不能超合同额")
|
||||
private Long isPaymentNotExceedContract;
|
||||
|
||||
/**
|
||||
* 付款额不能超合同额支付比
|
||||
*/
|
||||
@ExcelProperty(value = "付款额不能超合同额支付比")
|
||||
private BigDecimal paymentNotExceedRatio;
|
||||
|
||||
/**
|
||||
* 预结算/结算额不能超合同额
|
||||
*/
|
||||
@ExcelProperty(value = "预结算/结算额不能超合同额")
|
||||
private Long isPreSettlementNotExceedContract;
|
||||
|
||||
/**
|
||||
* 预结算/结算额不能超合同额比例
|
||||
*/
|
||||
@ExcelProperty(value = "预结算/结算额不能超合同额比例")
|
||||
private BigDecimal preSettlementNotExceedRatio;
|
||||
|
||||
/**
|
||||
* 实时刷新
|
||||
*/
|
||||
@ExcelProperty(value = "实时刷新")
|
||||
private Long isRealTimeRefresh;
|
||||
|
||||
/**
|
||||
* 合同累计变更金额
|
||||
*/
|
||||
@ExcelProperty(value = "合同累计变更金额")
|
||||
private BigDecimal contractCumulativeChangeAmount;
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
@ExcelProperty(value = "文件id ", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "多=个文件逗号分隔")
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 单据引用ID
|
||||
*/
|
||||
@ExcelProperty(value = "单据引用ID")
|
||||
private Long danjuId;
|
||||
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createByName;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 预收款项
|
||||
*/
|
||||
private List<XzdContractAdvanceInfo> yskx;
|
||||
|
||||
/**
|
||||
* 扣款与奖励项
|
||||
*/
|
||||
private List<XzdDeductionItems> kkyjlx;
|
||||
|
||||
/**
|
||||
* 合同条款
|
||||
*/
|
||||
private List<XzdContractClause> httk;
|
||||
|
||||
/**
|
||||
* 支付条款
|
||||
*/
|
||||
private List<XzdSettlementRules> zftk;
|
||||
|
||||
/**
|
||||
* 合同主要条款约定
|
||||
*/
|
||||
private XzdContractDepositInfo htzytkyd;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package org.dromara.xzd.contractManagement.fenbaohetongbiangg.mapper;
|
||||
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongbiangg.domain.XzdSubcontractChange;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongbiangg.domain.vo.XzdSubcontractChangeVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 分包合同变更Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-14
|
||||
*/
|
||||
public interface XzdSubcontractChangeMapper extends BaseMapperPlus<XzdSubcontractChange, XzdSubcontractChangeVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,70 @@
|
||||
package org.dromara.xzd.contractManagement.fenbaohetongbiangg.service;
|
||||
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongbiangg.domain.vo.XzdSubcontractChangeVo;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongbiangg.domain.bo.XzdSubcontractChangeBo;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongbiangg.domain.XzdSubcontractChange;
|
||||
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-14
|
||||
*/
|
||||
public interface IXzdSubcontractChangeService extends IService<XzdSubcontractChange>{
|
||||
|
||||
/**
|
||||
* 查询分包合同变更
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 分包合同变更
|
||||
*/
|
||||
XzdSubcontractChangeVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询分包合同变更列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 分包合同变更分页列表
|
||||
*/
|
||||
TableDataInfo<XzdSubcontractChangeVo> queryPageList(XzdSubcontractChangeBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的分包合同变更列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 分包合同变更列表
|
||||
*/
|
||||
List<XzdSubcontractChangeVo> queryList(XzdSubcontractChangeBo bo);
|
||||
|
||||
/**
|
||||
* 新增分包合同变更
|
||||
*
|
||||
* @param bo 分包合同变更
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(XzdSubcontractChangeBo bo);
|
||||
|
||||
/**
|
||||
* 修改分包合同变更
|
||||
*
|
||||
* @param bo 分包合同变更
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(XzdSubcontractChangeBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除分包合同变更信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,355 @@
|
||||
package org.dromara.xzd.contractManagement.fenbaohetongbiangg.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
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.dromara.system.service.impl.SysOssServiceImpl;
|
||||
import org.dromara.xzd.contractManagement.caigouhetongbiangeng.domain.vo.XzdPurchaseContractAlterationVo;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongxinxi.domain.vo.XzdSubcontractVo;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongxinxi.service.IXzdSubcontractService;
|
||||
import org.dromara.xzd.contractManagement.purchaseManagement.service.IXzdPurchaseContractInformationService;
|
||||
import org.dromara.xzd.domain.*;
|
||||
import org.dromara.xzd.enums.XzdClassEnum;
|
||||
import org.dromara.xzd.service.IXzdContractAdvanceInfoService;
|
||||
import org.dromara.xzd.service.IXzdContractClauseService;
|
||||
import org.dromara.xzd.service.IXzdDeductionItemsService;
|
||||
import org.dromara.xzd.service.impl.XzdContractAdvanceInfoServiceImpl;
|
||||
import org.dromara.xzd.service.impl.XzdContractClauseServiceImpl;
|
||||
import org.dromara.xzd.service.impl.XzdDeductionItemsServiceImpl;
|
||||
import org.dromara.xzd.service.impl.XzdSettlementRulesServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongbiangg.domain.bo.XzdSubcontractChangeBo;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongbiangg.domain.vo.XzdSubcontractChangeVo;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongbiangg.domain.XzdSubcontractChange;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongbiangg.mapper.XzdSubcontractChangeMapper;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongbiangg.service.IXzdSubcontractChangeService;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 分包合同变更Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-14
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class XzdSubcontractChangeServiceImpl extends ServiceImpl<XzdSubcontractChangeMapper, XzdSubcontractChange> implements IXzdSubcontractChangeService {
|
||||
|
||||
private final XzdSubcontractChangeMapper baseMapper;
|
||||
|
||||
private final IXzdContractAdvanceInfoService iXzdContractAdvanceInfoService;
|
||||
|
||||
private final IXzdDeductionItemsService iXzdDeductionItemsService;
|
||||
|
||||
private final IXzdContractClauseService iXzdContractClauseService;
|
||||
|
||||
private final IXzdSubcontractService iXzdSubcontractService;
|
||||
|
||||
private final SysOssServiceImpl sysOssService;
|
||||
|
||||
@Autowired
|
||||
private XzdContractAdvanceInfoServiceImpl xzdContractAdvanceInfoService;
|
||||
@Autowired
|
||||
private XzdDeductionItemsServiceImpl xzdDeductionItemsService;
|
||||
@Autowired
|
||||
private XzdContractClauseServiceImpl xzdContractClauseService;
|
||||
@Autowired
|
||||
private XzdSettlementRulesServiceImpl xzdSettlementRulesService;
|
||||
|
||||
|
||||
/**
|
||||
* 查询分包合同变更
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 分包合同变更
|
||||
*/
|
||||
@Override
|
||||
public XzdSubcontractChangeVo queryById(Long id) {
|
||||
XzdSubcontractChangeVo xzdSubcontractChangeVo = baseMapper.selectVoById(id);
|
||||
List<XzdSubcontractChangeVo> list = List.of(xzdSubcontractChangeVo);
|
||||
setValue(list);
|
||||
|
||||
return xzdSubcontractChangeVo;
|
||||
}
|
||||
|
||||
private void setValue(List<XzdSubcontractChangeVo> lists) {
|
||||
for (XzdSubcontractChangeVo item : lists) {
|
||||
|
||||
//合同文本-预收款项
|
||||
LambdaQueryWrapper<XzdContractAdvanceInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(XzdContractAdvanceInfo::getContractDetailsId, item.getId());
|
||||
List<XzdContractAdvanceInfo> advanceInfos = xzdContractAdvanceInfoService.list(lambdaQueryWrapper);
|
||||
item.setYskx(advanceInfos);
|
||||
|
||||
//合同条款-扣款与奖励项
|
||||
LambdaQueryWrapper<XzdDeductionItems> lambdaQueryWrapper1 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper1.eq(XzdDeductionItems::getContractDetailsId, item.getId());
|
||||
List<XzdDeductionItems> list = xzdDeductionItemsService.list(lambdaQueryWrapper1);
|
||||
item.setKkyjlx(list);
|
||||
|
||||
//合同条款-合同条款
|
||||
LambdaQueryWrapper<XzdContractClause> lambdaQueryWrapper2 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper2.eq(XzdContractClause::getContractDetailsId, item.getId());
|
||||
List<XzdContractClause> list1 = xzdContractClauseService.list(lambdaQueryWrapper2);
|
||||
item.setHttk(list1);
|
||||
|
||||
//支付条款
|
||||
LambdaQueryWrapper<XzdSettlementRules> lambdaQueryWrapper3 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper3.eq(XzdSettlementRules::getContractDetailsId, item.getId());
|
||||
List<XzdSettlementRules> list2 = xzdSettlementRulesService.list(lambdaQueryWrapper3);
|
||||
item.setZftk(list2);
|
||||
|
||||
// //合同文本-合同主要条款约定
|
||||
// LambdaQueryWrapper<XzdContractDepositInfo> lambdaQueryWrapper4 = new LambdaQueryWrapper<>();
|
||||
// lambdaQueryWrapper4.eq(XzdContractDepositInfo::getContractDetailsId, item.getId());
|
||||
// XzdContractDepositInfo list3 = xzdContractDepositInfoService.getOne(lambdaQueryWrapper4);
|
||||
// item.setHtzytkyd(list3);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询分包合同变更列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 分包合同变更分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<XzdSubcontractChangeVo> queryPageList(XzdSubcontractChangeBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<XzdSubcontractChange> lqw = buildQueryWrapper(bo);
|
||||
Page<XzdSubcontractChangeVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的分包合同变更列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 分包合同变更列表
|
||||
*/
|
||||
@Override
|
||||
public List<XzdSubcontractChangeVo> queryList(XzdSubcontractChangeBo bo) {
|
||||
LambdaQueryWrapper<XzdSubcontractChange> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<XzdSubcontractChange> buildQueryWrapper(XzdSubcontractChangeBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<XzdSubcontractChange> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(XzdSubcontractChange::getId);
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDocumentCode()), XzdSubcontractChange::getDocumentCode, bo.getDocumentCode());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdSubcontractChange::getTitle, bo.getTitle());
|
||||
lqw.eq(bo.getDocumentDate() != null, XzdSubcontractChange::getDocumentDate, bo.getDocumentDate());
|
||||
lqw.ge(bo.getStartTime() != null, XzdSubcontractChange::getDocumentDate, bo.getStartTime());
|
||||
lqw.le(bo.getEndTime() != null, XzdSubcontractChange::getDocumentDate, bo.getEndTime());
|
||||
|
||||
|
||||
|
||||
lqw.eq(bo.getContractCode() != null, XzdSubcontractChange::getContractCode, bo.getContractCode());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdSubcontractChange::getContractName, bo.getContractName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getContractType()), XzdSubcontractChange::getContractType, bo.getContractType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getChangeType()), XzdSubcontractChange::getChangeType, bo.getChangeType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProject()), XzdSubcontractChange::getProject, bo.getProject());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBusinessModel()), XzdSubcontractChange::getBusinessModel, bo.getBusinessModel());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getOrganization()), XzdSubcontractChange::getOrganization, bo.getOrganization());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPartyAUnit()), XzdSubcontractChange::getPartyAUnit, bo.getPartyAUnit());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPartyBUnit()), XzdSubcontractChange::getPartyBUnit, bo.getPartyBUnit());
|
||||
lqw.eq(bo.getOriginalContractCost() != null, XzdSubcontractChange::getOriginalContractCost, bo.getOriginalContractCost());
|
||||
lqw.eq(bo.getChangeTaxInclusiveTotal() != null, XzdSubcontractChange::getChangeTaxInclusiveTotal, bo.getChangeTaxInclusiveTotal());
|
||||
lqw.eq(bo.getPostChangeTotalCost() != null, XzdSubcontractChange::getPostChangeTotalCost, bo.getPostChangeTotalCost());
|
||||
lqw.eq(bo.getCumulativeChangeAmount() != null, XzdSubcontractChange::getCumulativeChangeAmount, bo.getCumulativeChangeAmount());
|
||||
lqw.eq(bo.getAvailableTargetCost() != null, XzdSubcontractChange::getAvailableTargetCost, bo.getAvailableTargetCost());
|
||||
lqw.eq(bo.getTargetCost() != null, XzdSubcontractChange::getTargetCost, bo.getTargetCost());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTargetCostItem()), XzdSubcontractChange::getTargetCostItem, bo.getTargetCostItem());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getWarning()), XzdSubcontractChange::getWarning, bo.getWarning());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPaymentTerms()), XzdSubcontractChange::getPaymentTerms, bo.getPaymentTerms());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), XzdSubcontractChange::getRemarks, bo.getRemarks());
|
||||
lqw.eq(bo.getIsStamped() != null, XzdSubcontractChange::getIsStamped, bo.getIsStamped());
|
||||
lqw.eq(bo.getPostChangeProjectManager() != null, XzdSubcontractChange::getPostChangeProjectManager, bo.getPostChangeProjectManager());
|
||||
lqw.eq(bo.getPostChangeProjectOwner() != null, XzdSubcontractChange::getPostChangeProjectOwner, bo.getPostChangeProjectOwner());
|
||||
lqw.eq(bo.getPostChangeSiteManager() != null, XzdSubcontractChange::getPostChangeSiteManager, bo.getPostChangeSiteManager());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPostChangeContractRemarks()), XzdSubcontractChange::getPostChangeContractRemarks, bo.getPostChangeContractRemarks());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectCategory()), XzdSubcontractChange::getProjectCategory, bo.getProjectCategory());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectType()), XzdSubcontractChange::getProjectType, bo.getProjectType());
|
||||
lqw.eq(bo.getIsPaymentNotExceedContract() != null, XzdSubcontractChange::getIsPaymentNotExceedContract, bo.getIsPaymentNotExceedContract());
|
||||
lqw.eq(bo.getPaymentNotExceedRatio() != null, XzdSubcontractChange::getPaymentNotExceedRatio, bo.getPaymentNotExceedRatio());
|
||||
lqw.eq(bo.getIsPreSettlementNotExceedContract() != null, XzdSubcontractChange::getIsPreSettlementNotExceedContract, bo.getIsPreSettlementNotExceedContract());
|
||||
lqw.eq(bo.getPreSettlementNotExceedRatio() != null, XzdSubcontractChange::getPreSettlementNotExceedRatio, bo.getPreSettlementNotExceedRatio());
|
||||
lqw.eq(bo.getIsRealTimeRefresh() != null, XzdSubcontractChange::getIsRealTimeRefresh, bo.getIsRealTimeRefresh());
|
||||
lqw.eq(bo.getContractCumulativeChangeAmount() != null, XzdSubcontractChange::getContractCumulativeChangeAmount, bo.getContractCumulativeChangeAmount());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdSubcontractChange::getFileId, bo.getFileId());
|
||||
lqw.eq(bo.getDanjuId() != null, XzdSubcontractChange::getDanjuId, bo.getDanjuId());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增分包合同变更
|
||||
*
|
||||
* @param bo 分包合同变更
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(XzdSubcontractChangeBo bo) {
|
||||
XzdSubcontractChange add = MapstructUtils.convert(bo, XzdSubcontractChange.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
String tableName = XzdClassEnum.CAIGOUHETONG_INFORMATION.getClassName();
|
||||
|
||||
/**
|
||||
* 预收款项
|
||||
*/
|
||||
HashMap<String, Object> hashMap = new HashMap<>();
|
||||
hashMap.put("contract_detailsId", add.getId());
|
||||
List<XzdContractAdvanceInfo> yskx = bo.getYskx();
|
||||
yskx.forEach(item -> {
|
||||
item.setTableName(tableName);
|
||||
item.setContractDetailsId(add.getId());
|
||||
});
|
||||
iXzdContractAdvanceInfoService.saveBatch(yskx);
|
||||
/**
|
||||
* 扣款与奖励项
|
||||
*/
|
||||
List<XzdDeductionItems> kkyjlx = bo.getKkyjlx();
|
||||
kkyjlx.forEach(item -> {
|
||||
item.setTableName(tableName);
|
||||
item.setContractDetailsId(add.getId());
|
||||
});
|
||||
iXzdDeductionItemsService.saveBatch(kkyjlx);
|
||||
/**
|
||||
* 合同条款
|
||||
*/
|
||||
List<XzdContractClause> httk = bo.getHttk();
|
||||
httk.forEach(item -> {
|
||||
item.setTableName(tableName);
|
||||
item.setContractDetailsId(add.getId());
|
||||
});
|
||||
iXzdContractClauseService.saveBatch(httk);
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改分包合同变更
|
||||
*
|
||||
* @param bo 分包合同变更
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(XzdSubcontractChangeBo bo) {
|
||||
XzdSubcontractChange add = MapstructUtils.convert(bo, XzdSubcontractChange.class);
|
||||
/**
|
||||
* 预收款项 优先删除数据在添加
|
||||
*/
|
||||
String tableName = XzdClassEnum.PURCHASE_CONTRACT_INFORMATION.getClassName();
|
||||
HashMap<String, Object> hashMap = new HashMap<>();
|
||||
hashMap.put("contract_details_id", add.getId());
|
||||
XzdSubcontractChangeVo xzdSubcontractChangeVo = baseMapper.selectVoById(add.getId());
|
||||
if (xzdSubcontractChangeVo == null){
|
||||
throw new ServiceException("数据不存在");
|
||||
}
|
||||
List<XzdContractAdvanceInfo> yskx = bo.getYskx();
|
||||
iXzdContractAdvanceInfoService.getBaseMapper().deleteByMap(hashMap);
|
||||
if (yskx != null){
|
||||
yskx.forEach(item -> {
|
||||
item.setTableName(tableName);
|
||||
item.setContractDetailsId(add.getId());
|
||||
});
|
||||
iXzdContractAdvanceInfoService.saveBatch(yskx);
|
||||
}
|
||||
/**
|
||||
* 扣款与奖励项
|
||||
*/
|
||||
List<XzdDeductionItems> kkyjlx = bo.getKkyjlx();
|
||||
iXzdDeductionItemsService.getBaseMapper().deleteByMap(hashMap);
|
||||
if(kkyjlx != null){
|
||||
kkyjlx.forEach(item -> {
|
||||
item.setTableName(tableName);
|
||||
item.setContractDetailsId(add.getId());
|
||||
});
|
||||
iXzdDeductionItemsService.saveBatch(kkyjlx);
|
||||
}
|
||||
/**
|
||||
* 合同条款
|
||||
*/
|
||||
List<XzdContractClause> httk = bo.getHttk();
|
||||
iXzdContractClauseService.getBaseMapper().deleteByMap(hashMap);
|
||||
if (httk != null){
|
||||
httk.forEach(item -> {
|
||||
item.setTableName(tableName);
|
||||
item.setContractDetailsId(add.getId());
|
||||
});
|
||||
iXzdContractClauseService.saveBatch(httk);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return baseMapper.updateById(add) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(XzdSubcontractChange entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除分包合同变更信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
|
||||
}
|
||||
for (Long id : ids) {
|
||||
XzdSubcontractChangeVo vo = baseMapper.selectVoById(id);
|
||||
if (vo != null){
|
||||
//删除附件
|
||||
if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){
|
||||
List<Long> deleteIds = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList();
|
||||
if (!deleteIds.isEmpty()) {
|
||||
sysOssService.deleteWithValidByIds(deleteIds, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//合同文本-预收款项
|
||||
LambdaQueryWrapper<XzdContractAdvanceInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.in(XzdContractAdvanceInfo::getContractDetailsId, ids);
|
||||
xzdContractAdvanceInfoService.remove(lambdaQueryWrapper);
|
||||
//合同条款-扣款与奖励项
|
||||
LambdaQueryWrapper<XzdDeductionItems> lambdaQueryWrapper1 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper1.in(XzdDeductionItems::getContractDetailsId, ids);
|
||||
xzdDeductionItemsService.remove(lambdaQueryWrapper1);
|
||||
//合同条款-合同条款
|
||||
LambdaQueryWrapper<XzdContractClause> lambdaQueryWrapper2 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper2.in(XzdContractClause::getContractDetailsId, ids);
|
||||
xzdContractClauseService.remove(lambdaQueryWrapper2);
|
||||
//支付条款
|
||||
LambdaQueryWrapper<XzdSettlementRules> lambdaQueryWrapper3 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper3.in(XzdSettlementRules::getContractDetailsId, ids);
|
||||
xzdSettlementRulesService.remove(lambdaQueryWrapper3);
|
||||
|
||||
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@ -203,7 +203,7 @@ public class XzdSubcontract extends BaseEntity {
|
||||
/**
|
||||
* 备案时间
|
||||
*/
|
||||
private LocalDateTime filingTime;
|
||||
private LocalDate filingTime;
|
||||
|
||||
/**
|
||||
* WBS
|
||||
|
||||
@ -29,13 +29,11 @@ public class XzdSubcontractBo extends BaseEntity {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@NotNull(message = "不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 合同编码
|
||||
*/
|
||||
@NotBlank(message = "合同编码不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String contractCode;
|
||||
|
||||
/**
|
||||
@ -206,7 +204,7 @@ public class XzdSubcontractBo extends BaseEntity {
|
||||
/**
|
||||
* 备案时间
|
||||
*/
|
||||
private LocalDateTime filingTime;
|
||||
private LocalDate filingTime;
|
||||
|
||||
/**
|
||||
* WBS
|
||||
|
||||
@ -2,6 +2,8 @@ package org.dromara.xzd.contractManagement.fenbaohetongxinxi.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import org.dromara.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongxinxi.domain.XzdSubcontract;
|
||||
@ -321,7 +323,7 @@ public class XzdSubcontractVo implements Serializable {
|
||||
* 备案时间
|
||||
*/
|
||||
@ExcelProperty(value = "备案时间")
|
||||
private LocalDateTime filingTime;
|
||||
private LocalDate filingTime;
|
||||
|
||||
/**
|
||||
* WBS
|
||||
@ -389,6 +391,27 @@ public class XzdSubcontractVo implements Serializable {
|
||||
@ExcelProperty(value = "单据引用ID")
|
||||
private Long danjuId;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createByName;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 预收款项
|
||||
*/
|
||||
|
||||
@ -89,7 +89,7 @@ public class XzdSubcontractServiceImpl extends ServiceImpl<XzdSubcontractMapper,
|
||||
// 装填数据
|
||||
setValue(informationVo);
|
||||
|
||||
return baseMapper.selectVoById(id);
|
||||
return xzdSubcontractVo;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -109,8 +109,6 @@ public class XzdSubcontractServiceImpl extends ServiceImpl<XzdSubcontractMapper,
|
||||
|
||||
private void setValue(List<XzdSubcontractVo> infos) {
|
||||
for (XzdSubcontractVo item : infos) {
|
||||
|
||||
|
||||
//项目名称
|
||||
if (item.getProject() != null){
|
||||
String projectName = xzdProjectService.queryNameById(item.getProject());
|
||||
@ -270,8 +268,9 @@ public class XzdSubcontractServiceImpl extends ServiceImpl<XzdSubcontractMapper,
|
||||
validEntityBeforeSave(add);
|
||||
Long l = baseMapper.selectCount(new LambdaQueryWrapper<XzdSubcontract>().gt(XzdSubcontract::getCreateTime, LocalDate.now()));
|
||||
String s = areaUtil.generateDateBasedNumberByY();
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
|
||||
add.setContractCode(ZxdEnum.FENBAOHETONG_PREFIX.getTypeValue()+"-"+s+"-"+(l+1));
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
// 表名
|
||||
String tableName = XzdClassEnum.FENBAOHETONG_INFORMATION.getClassName();
|
||||
|
||||
|
||||
@ -0,0 +1,105 @@
|
||||
package org.dromara.xzd.contractManagement.fenbaohetongzhongzhi.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongzhongzhi.domain.vo.XzdSubcontractTerminationVo;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongzhongzhi.domain.bo.XzdSubcontractTerminationBo;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongzhongzhi.service.IXzdSubcontractTerminationService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 分包合同终止
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-14
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/fenbaohetongzhongzhi/subcontractTermination")
|
||||
public class XzdSubcontractTerminationController extends BaseController {
|
||||
|
||||
private final IXzdSubcontractTerminationService xzdSubcontractTerminationService;
|
||||
|
||||
/**
|
||||
* 查询分包合同终止列表
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongzhongzhi:subcontractTermination:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<XzdSubcontractTerminationVo> list(XzdSubcontractTerminationBo bo, PageQuery pageQuery) {
|
||||
return xzdSubcontractTerminationService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出分包合同终止列表
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongzhongzhi:subcontractTermination:export")
|
||||
@Log(title = "分包合同终止", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(XzdSubcontractTerminationBo bo, HttpServletResponse response) {
|
||||
List<XzdSubcontractTerminationVo> list = xzdSubcontractTerminationService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "分包合同终止", XzdSubcontractTerminationVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取分包合同终止详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongzhongzhi:subcontractTermination:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<XzdSubcontractTerminationVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(xzdSubcontractTerminationService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增分包合同终止
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongzhongzhi:subcontractTermination:add")
|
||||
@Log(title = "分包合同终止", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody XzdSubcontractTerminationBo bo) {
|
||||
return toAjax(xzdSubcontractTerminationService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改分包合同终止
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongzhongzhi:subcontractTermination:edit")
|
||||
@Log(title = "分包合同终止", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody XzdSubcontractTerminationBo bo) {
|
||||
return toAjax(xzdSubcontractTerminationService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除分包合同终止
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongzhongzhi:subcontractTermination:remove")
|
||||
@Log(title = "分包合同终止", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(xzdSubcontractTerminationService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,118 @@
|
||||
package org.dromara.xzd.contractManagement.fenbaohetongzhongzhi.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* 分包合同终止对象 xzd_subcontract_termination
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-14
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("xzd_subcontract_termination")
|
||||
public class XzdSubcontractTermination extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据编码
|
||||
*/
|
||||
private String documentCode;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
private LocalDate documentDate;
|
||||
|
||||
/**
|
||||
* 合同编号
|
||||
*/
|
||||
private Long contractNumber;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 终止日期
|
||||
*/
|
||||
private LocalDate terminationDate;
|
||||
|
||||
/**
|
||||
* 工程项目
|
||||
*/
|
||||
private String engineeringProject;
|
||||
|
||||
/**
|
||||
* 甲方单位
|
||||
*/
|
||||
private String partyAUnit;
|
||||
|
||||
/**
|
||||
* 乙方单位
|
||||
*/
|
||||
private String partyBUnit;
|
||||
|
||||
/**
|
||||
* 终止原因
|
||||
*/
|
||||
private String terminationReason;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remarks;
|
||||
|
||||
/**
|
||||
* 累计结算金额
|
||||
*/
|
||||
private BigDecimal cumulativeSettlementAmount;
|
||||
|
||||
/**
|
||||
* 累计付款金额
|
||||
*/
|
||||
private BigDecimal cumulativePaymentAmount;
|
||||
|
||||
/**
|
||||
* 项目大类(字典)
|
||||
*/
|
||||
private String projectCategory;
|
||||
|
||||
/**
|
||||
* 项目类型(字典)
|
||||
*/
|
||||
private String projectType;
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 单据引用ID
|
||||
*/
|
||||
private Long danjuId;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,116 @@
|
||||
package org.dromara.xzd.contractManagement.fenbaohetongzhongzhi.domain.bo;
|
||||
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongzhongzhi.domain.XzdSubcontractTermination;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* 分包合同终止业务对象 xzd_subcontract_termination
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-14
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = XzdSubcontractTermination.class, reverseConvertGenerate = false)
|
||||
public class XzdSubcontractTerminationBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据编码
|
||||
*/
|
||||
private String documentCode;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
private LocalDate documentDate;
|
||||
|
||||
/**
|
||||
* 合同编号
|
||||
*/
|
||||
private Long contractNumber;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 终止日期
|
||||
*/
|
||||
private LocalDate terminationDate;
|
||||
|
||||
/**
|
||||
* 工程项目
|
||||
*/
|
||||
private String engineeringProject;
|
||||
|
||||
/**
|
||||
* 甲方单位
|
||||
*/
|
||||
private String partyAUnit;
|
||||
|
||||
/**
|
||||
* 乙方单位
|
||||
*/
|
||||
private String partyBUnit;
|
||||
|
||||
/**
|
||||
* 终止原因
|
||||
*/
|
||||
private String terminationReason;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remarks;
|
||||
|
||||
/**
|
||||
* 累计结算金额
|
||||
*/
|
||||
private BigDecimal cumulativeSettlementAmount;
|
||||
|
||||
/**
|
||||
* 累计付款金额
|
||||
*/
|
||||
private BigDecimal cumulativePaymentAmount;
|
||||
|
||||
/**
|
||||
* 项目大类(字典)
|
||||
*/
|
||||
private String projectCategory;
|
||||
|
||||
/**
|
||||
* 项目类型(字典)
|
||||
*/
|
||||
private String projectType;
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 单据引用ID
|
||||
*/
|
||||
private Long danjuId;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,175 @@
|
||||
package org.dromara.xzd.contractManagement.fenbaohetongzhongzhi.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import org.dromara.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongzhongzhi.domain.XzdSubcontractTermination;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 分包合同终止视图对象 xzd_subcontract_termination
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-14
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = XzdSubcontractTermination.class)
|
||||
public class XzdSubcontractTerminationVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@ExcelProperty(value = "")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据编码
|
||||
*/
|
||||
@ExcelProperty(value = "单据编码")
|
||||
private String documentCode;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
@ExcelProperty(value = "标题")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
@ExcelProperty(value = "单据日期")
|
||||
private LocalDate documentDate;
|
||||
|
||||
/**
|
||||
* 合同编号
|
||||
*/
|
||||
@ExcelProperty(value = "合同编号")
|
||||
private Long contractNumber;
|
||||
/**
|
||||
* 合同编码
|
||||
*/
|
||||
@ExcelProperty(value = "合同编码")
|
||||
private String contractNumberName;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
@ExcelProperty(value = "合同名称")
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 终止日期
|
||||
*/
|
||||
@ExcelProperty(value = "终止日期")
|
||||
private LocalDate terminationDate;
|
||||
|
||||
/**
|
||||
* 工程项目
|
||||
*/
|
||||
@ExcelProperty(value = "工程项目")
|
||||
private String engineeringProject;
|
||||
|
||||
/**
|
||||
* 甲方单位
|
||||
*/
|
||||
@ExcelProperty(value = "甲方单位")
|
||||
private String partyAUnit;
|
||||
|
||||
/**
|
||||
* 乙方单位
|
||||
*/
|
||||
@ExcelProperty(value = "乙方单位")
|
||||
private String partyBUnit;
|
||||
|
||||
/**
|
||||
* 终止原因
|
||||
*/
|
||||
@ExcelProperty(value = "终止原因")
|
||||
private String terminationReason;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remarks;
|
||||
|
||||
/**
|
||||
* 累计结算金额
|
||||
*/
|
||||
@ExcelProperty(value = "累计结算金额")
|
||||
private BigDecimal cumulativeSettlementAmount;
|
||||
|
||||
/**
|
||||
* 累计付款金额
|
||||
*/
|
||||
@ExcelProperty(value = "累计付款金额")
|
||||
private BigDecimal cumulativePaymentAmount;
|
||||
|
||||
/**
|
||||
* 项目大类(字典)
|
||||
*/
|
||||
@ExcelProperty(value = "项目大类", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "字=典")
|
||||
private String projectCategory;
|
||||
|
||||
/**
|
||||
* 项目类型(字典)
|
||||
*/
|
||||
@ExcelProperty(value = "项目类型", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "字=典")
|
||||
private String projectType;
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
@ExcelProperty(value = "文件id ", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "多=个文件逗号分隔")
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 单据引用ID
|
||||
*/
|
||||
@ExcelProperty(value = "单据引用ID")
|
||||
private Long danjuId;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createByName;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private LocalDateTime createTime;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package org.dromara.xzd.contractManagement.fenbaohetongzhongzhi.mapper;
|
||||
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongzhongzhi.domain.XzdSubcontractTermination;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongzhongzhi.domain.vo.XzdSubcontractTerminationVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 分包合同终止Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-14
|
||||
*/
|
||||
public interface XzdSubcontractTerminationMapper extends BaseMapperPlus<XzdSubcontractTermination, XzdSubcontractTerminationVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,70 @@
|
||||
package org.dromara.xzd.contractManagement.fenbaohetongzhongzhi.service;
|
||||
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongzhongzhi.domain.vo.XzdSubcontractTerminationVo;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongzhongzhi.domain.bo.XzdSubcontractTerminationBo;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongzhongzhi.domain.XzdSubcontractTermination;
|
||||
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-14
|
||||
*/
|
||||
public interface IXzdSubcontractTerminationService extends IService<XzdSubcontractTermination>{
|
||||
|
||||
/**
|
||||
* 查询分包合同终止
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 分包合同终止
|
||||
*/
|
||||
XzdSubcontractTerminationVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询分包合同终止列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 分包合同终止分页列表
|
||||
*/
|
||||
TableDataInfo<XzdSubcontractTerminationVo> queryPageList(XzdSubcontractTerminationBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的分包合同终止列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 分包合同终止列表
|
||||
*/
|
||||
List<XzdSubcontractTerminationVo> queryList(XzdSubcontractTerminationBo bo);
|
||||
|
||||
/**
|
||||
* 新增分包合同终止
|
||||
*
|
||||
* @param bo 分包合同终止
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(XzdSubcontractTerminationBo bo);
|
||||
|
||||
/**
|
||||
* 修改分包合同终止
|
||||
*
|
||||
* @param bo 分包合同终止
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(XzdSubcontractTerminationBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除分包合同终止信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,177 @@
|
||||
package org.dromara.xzd.contractManagement.fenbaohetongzhongzhi.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
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.dromara.system.service.impl.SysOssServiceImpl;
|
||||
import org.dromara.xzd.contractManagement.caigoucontractTermination.domain.XzdPurchaseContractSuspend;
|
||||
import org.dromara.xzd.contractManagement.caigoucontractTermination.domain.vo.XzdPurchaseContractSuspendVo;
|
||||
import org.dromara.xzd.utilS.AreaUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongzhongzhi.domain.bo.XzdSubcontractTerminationBo;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongzhongzhi.domain.vo.XzdSubcontractTerminationVo;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongzhongzhi.domain.XzdSubcontractTermination;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongzhongzhi.mapper.XzdSubcontractTerminationMapper;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongzhongzhi.service.IXzdSubcontractTerminationService;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 分包合同终止Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-14
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class XzdSubcontractTerminationServiceImpl extends ServiceImpl<XzdSubcontractTerminationMapper, XzdSubcontractTermination> implements IXzdSubcontractTerminationService {
|
||||
|
||||
private final XzdSubcontractTerminationMapper baseMapper;
|
||||
private final AreaUtil areaUtil;
|
||||
|
||||
@Autowired
|
||||
private SysOssServiceImpl sysOssService;
|
||||
|
||||
/**
|
||||
* 查询分包合同终止
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 分包合同终止
|
||||
*/
|
||||
@Override
|
||||
public XzdSubcontractTerminationVo queryById(Long id){
|
||||
XzdSubcontractTerminationVo vo = baseMapper.selectVoById(id);
|
||||
List.of(vo);
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询分包合同终止列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 分包合同终止分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<XzdSubcontractTerminationVo> queryPageList(XzdSubcontractTerminationBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<XzdSubcontractTermination> lqw = buildQueryWrapper(bo);
|
||||
Page<XzdSubcontractTerminationVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的分包合同终止列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 分包合同终止列表
|
||||
*/
|
||||
@Override
|
||||
public List<XzdSubcontractTerminationVo> queryList(XzdSubcontractTerminationBo bo) {
|
||||
LambdaQueryWrapper<XzdSubcontractTermination> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<XzdSubcontractTermination> buildQueryWrapper(XzdSubcontractTerminationBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<XzdSubcontractTermination> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(XzdSubcontractTermination::getId);
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDocumentCode()), XzdSubcontractTermination::getDocumentCode, bo.getDocumentCode());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdSubcontractTermination::getTitle, bo.getTitle());
|
||||
lqw.eq(bo.getDocumentDate() != null, XzdSubcontractTermination::getDocumentDate, bo.getDocumentDate());
|
||||
lqw.eq(bo.getContractNumber() != null, XzdSubcontractTermination::getContractNumber, bo.getContractNumber());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdSubcontractTermination::getContractName, bo.getContractName());
|
||||
lqw.eq(bo.getTerminationDate() != null, XzdSubcontractTermination::getTerminationDate, bo.getTerminationDate());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getEngineeringProject()), XzdSubcontractTermination::getEngineeringProject, bo.getEngineeringProject());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPartyAUnit()), XzdSubcontractTermination::getPartyAUnit, bo.getPartyAUnit());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPartyBUnit()), XzdSubcontractTermination::getPartyBUnit, bo.getPartyBUnit());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTerminationReason()), XzdSubcontractTermination::getTerminationReason, bo.getTerminationReason());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), XzdSubcontractTermination::getRemarks, bo.getRemarks());
|
||||
lqw.eq(bo.getCumulativeSettlementAmount() != null, XzdSubcontractTermination::getCumulativeSettlementAmount, bo.getCumulativeSettlementAmount());
|
||||
lqw.eq(bo.getCumulativePaymentAmount() != null, XzdSubcontractTermination::getCumulativePaymentAmount, bo.getCumulativePaymentAmount());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectCategory()), XzdSubcontractTermination::getProjectCategory, bo.getProjectCategory());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectType()), XzdSubcontractTermination::getProjectType, bo.getProjectType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdSubcontractTermination::getFileId, bo.getFileId());
|
||||
lqw.eq(bo.getDanjuId() != null, XzdSubcontractTermination::getDanjuId, bo.getDanjuId());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增分包合同终止
|
||||
*
|
||||
* @param bo 分包合同终止
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(XzdSubcontractTerminationBo bo) {
|
||||
XzdSubcontractTermination add = MapstructUtils.convert(bo, XzdSubcontractTermination.class);
|
||||
validEntityBeforeSave(add);
|
||||
|
||||
Long l = baseMapper.selectCount(new LambdaQueryWrapper<XzdSubcontractTermination>().gt(XzdSubcontractTermination::getCreateTime, LocalDate.now()));
|
||||
String s = areaUtil.generateDateBasedNumber();
|
||||
add.setDocumentCode(s+"-"+(l+1));
|
||||
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改分包合同终止
|
||||
*
|
||||
* @param bo 分包合同终止
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(XzdSubcontractTerminationBo bo) {
|
||||
XzdSubcontractTermination update = MapstructUtils.convert(bo, XzdSubcontractTermination.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(XzdSubcontractTermination entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除分包合同终止信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
|
||||
for (Long id : ids) {
|
||||
XzdSubcontractTerminationVo vo = baseMapper.selectVoById(id);
|
||||
// 删除附件
|
||||
if (!StringUtils.isEmpty(vo.getFileId())){
|
||||
List<Long> collect = Arrays.stream(vo.getFileId().split(",")).map(item -> {
|
||||
return Long.parseLong(item);
|
||||
}).collect(Collectors.toList());
|
||||
sysOssService.deleteWithValidByIds(collect, false);
|
||||
}
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@ -1,7 +1,11 @@
|
||||
package org.dromara.xzd.contractManagement.purchaseManagement.domain.vo;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
@ -416,6 +420,25 @@ public class XzdPurchaseContractInformationVo implements Serializable {
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createByName;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 预收款项
|
||||
*/
|
||||
|
||||
@ -94,11 +94,12 @@ public class XzdPurchaseContractInformationServiceImpl extends ServiceImpl<XzdPu
|
||||
@Override
|
||||
public XzdPurchaseContractInformationVo queryById(Long id){
|
||||
XzdPurchaseContractInformationVo xzdPurchaseContractInformationVo = baseMapper.selectVoById(id);
|
||||
List<XzdPurchaseContractInformationVo> informationVo = List.of(xzdPurchaseContractInformationVo);
|
||||
List<XzdPurchaseContractInformationVo> informationVo = new ArrayList<>();
|
||||
if (xzdPurchaseContractInformationVo != null){
|
||||
informationVo = List.of(xzdPurchaseContractInformationVo);
|
||||
// 装填数据
|
||||
setValue(informationVo);
|
||||
|
||||
|
||||
setValue(informationVo);
|
||||
}
|
||||
return informationVo.getFirst();
|
||||
}
|
||||
|
||||
|
||||
@ -18,6 +18,8 @@ import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
//客户信息总controller
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@ -28,8 +30,6 @@ public class XzdCorrespondentList {
|
||||
private final IXzdCorrespondentList iXzdCorrespondentList;
|
||||
|
||||
|
||||
|
||||
|
||||
private final IXzdCustomertypeService iXzdCustomertypeService;
|
||||
|
||||
/**
|
||||
|
||||
@ -40,6 +40,10 @@ public class XzdGuaranteeChangeInfo extends BaseEntity {
|
||||
* 单据编号
|
||||
*/
|
||||
private String documentNumber;
|
||||
/**
|
||||
* 合同类型
|
||||
*/
|
||||
private String contractType;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
|
||||
@ -60,7 +60,12 @@ public class XzdGuaranteeChangeInfoBo extends BaseEntity {
|
||||
/**
|
||||
* 合同保函名称
|
||||
*/
|
||||
private Long contractGuaranteeName;
|
||||
private String contractGuaranteeName;
|
||||
|
||||
/**
|
||||
* 合同类型
|
||||
*/
|
||||
private String contractType;
|
||||
|
||||
/**
|
||||
* 工程项目
|
||||
@ -76,7 +81,7 @@ public class XzdGuaranteeChangeInfoBo extends BaseEntity {
|
||||
* 经办人名称
|
||||
*/
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "handlerId")
|
||||
private Long handlerName;
|
||||
private String handlerName;
|
||||
|
||||
/**
|
||||
* 变更类型(字典)
|
||||
|
||||
@ -84,6 +84,11 @@ public class XzdGuaranteeChangeInfoVo implements Serializable {
|
||||
@ExcelProperty(value = "工程项目")
|
||||
private String engineeringProject;
|
||||
|
||||
/**
|
||||
* 合同类型
|
||||
*/
|
||||
private String contractType;
|
||||
|
||||
/**
|
||||
* 经办人
|
||||
*/
|
||||
|
||||
@ -60,7 +60,7 @@ public class XzdGuaranteeChangeInfoServiceImpl extends ServiceImpl<XzdGuaranteeC
|
||||
XzdGuaranteeInfoVo vo = iXzdGuaranteeInfoService.queryById(xzdGuaranteeChangeInfoVo.getContractGuaranteeId());
|
||||
|
||||
xzdGuaranteeChangeInfoVo.setContractGuaranteeName(vo.getContractName());
|
||||
return baseMapper.selectVoById(id);
|
||||
return xzdGuaranteeChangeInfoVo;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -104,6 +104,9 @@ public class XzdGuaranteeChangeInfoServiceImpl extends ServiceImpl<XzdGuaranteeC
|
||||
lqw.eq(bo.getContractGuaranteeId() != null, XzdGuaranteeChangeInfo::getContractGuaranteeId, bo.getContractGuaranteeId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getEngineeringProject()), XzdGuaranteeChangeInfo::getEngineeringProject, bo.getEngineeringProject());
|
||||
lqw.eq(bo.getHandlerId() != null, XzdGuaranteeChangeInfo::getHandlerId, bo.getHandlerId());
|
||||
lqw.eq(bo.getContractType() != null, XzdGuaranteeChangeInfo::getContractType, bo.getContractType());
|
||||
|
||||
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getChangeType()), XzdGuaranteeChangeInfo::getChangeType, bo.getChangeType());
|
||||
lqw.eq(bo.getExtensionDate() != null, XzdGuaranteeChangeInfo::getExtensionDate, bo.getExtensionDate());
|
||||
lqw.eq(bo.getClosedDate() != null, XzdGuaranteeChangeInfo::getClosedDate, bo.getClosedDate());
|
||||
|
||||
@ -14,6 +14,8 @@ public enum XzdClassEnum {
|
||||
JS_CG_JINDU("xzd_js_cg_jindu"), //采购合同进度结算
|
||||
// 分包合同
|
||||
FENBAOHETONG_INFORMATION("xzd_subcontract"),
|
||||
// 分包合同变更
|
||||
FENBAOHETONGBINGGENG_INFORMATION("xzd_subcontract_change"),
|
||||
// 采购变更合同
|
||||
CAIGOUHETONG_INFORMATION("xzd_purchase_contract_alteration"),
|
||||
// 采购合同
|
||||
|
||||
@ -27,6 +27,7 @@ import org.dromara.xzd.service.*;
|
||||
import org.dromara.xzd.utilS.AreaUtil;
|
||||
import org.dromara.xzd.utilS.IdWorker;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.cache.annotation.Cacheable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@ -36,6 +37,8 @@ import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
|
||||
//客户信息总imp
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
@ -43,31 +46,42 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList {
|
||||
|
||||
private final AreaUtil areaUtil;
|
||||
|
||||
|
||||
// 客户信息service
|
||||
private final IXzdCustomerinformationService xzdCustomerinformationService;
|
||||
|
||||
// 标签页客户信息service
|
||||
private final IXzdCustomerDetailService xzdCustomerDetailService;
|
||||
|
||||
|
||||
// 地址信息
|
||||
private final IXzdAddressInfoService xzdAddressInfoService;
|
||||
|
||||
private final SysOssServiceImpl sysOssService;
|
||||
|
||||
@Autowired
|
||||
private SysOssServiceImpl sysOssService;
|
||||
|
||||
|
||||
// 联系人信息
|
||||
private final IXzdContactService xzdContactService;
|
||||
|
||||
// 证件信息
|
||||
private final IXzdCertificateInfoService xzdCertificateInfoService;
|
||||
|
||||
// 资质信息
|
||||
private final IXzdQualificationInfoService xzdQualificationInfoService;
|
||||
|
||||
// 结算信息
|
||||
private final IXzdSettlementInfoService xzdSettlementInfoService;
|
||||
|
||||
// 业务信息
|
||||
private final IXzdBusinessInfoService xzdBusinessInfoService;
|
||||
|
||||
// 项目信息
|
||||
private final IXzdProjectInfoService xzdProjectInfoService;
|
||||
|
||||
// 合同信息
|
||||
private final IXzdContractInfoService xzdContractInfoService;
|
||||
|
||||
// 客户类型
|
||||
private final IXzdCustomertypeInfoService xzdCustomertypeInfoService;
|
||||
|
||||
private final XzdCustomerinformationMapper xzdCustomerinformationMapper;
|
||||
|
||||
@ -0,0 +1,105 @@
|
||||
package org.dromara.xzd.settlement.fenbaohetongjingdu.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjingdu.domain.vo.SettlementOfSubcontractingContractVo;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjingdu.domain.bo.SettlementOfSubcontractingContractBo;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjingdu.service.ISettlementOfSubcontractingContractService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 分包合同进度结算
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-15
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/fenbaohetongjingdu/ofSubcontractingContract")
|
||||
public class SettlementOfSubcontractingContractController extends BaseController {
|
||||
|
||||
private final ISettlementOfSubcontractingContractService settlementOfSubcontractingContractService;
|
||||
|
||||
/**
|
||||
* 查询分包合同进度结算列表
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongjingdu:ofSubcontractingContract:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<SettlementOfSubcontractingContractVo> list(SettlementOfSubcontractingContractBo bo, PageQuery pageQuery) {
|
||||
return settlementOfSubcontractingContractService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出分包合同进度结算列表
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongjingdu:ofSubcontractingContract:export")
|
||||
@Log(title = "分包合同进度结算", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(SettlementOfSubcontractingContractBo bo, HttpServletResponse response) {
|
||||
List<SettlementOfSubcontractingContractVo> list = settlementOfSubcontractingContractService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "分包合同进度结算", SettlementOfSubcontractingContractVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取分包合同进度结算详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongjingdu:ofSubcontractingContract:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<SettlementOfSubcontractingContractVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(settlementOfSubcontractingContractService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增分包合同进度结算
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongjingdu:ofSubcontractingContract:add")
|
||||
@Log(title = "分包合同进度结算", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody SettlementOfSubcontractingContractBo bo) {
|
||||
return toAjax(settlementOfSubcontractingContractService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改分包合同进度结算
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongjingdu:ofSubcontractingContract:edit")
|
||||
@Log(title = "分包合同进度结算", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SettlementOfSubcontractingContractBo bo) {
|
||||
return toAjax(settlementOfSubcontractingContractService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除分包合同进度结算
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongjingdu:ofSubcontractingContract:remove")
|
||||
@Log(title = "分包合同进度结算", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(settlementOfSubcontractingContractService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,168 @@
|
||||
package org.dromara.xzd.settlement.fenbaohetongjingdu.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* 分包合同进度结算对象 settlement_of_subcontracting_contract
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-15
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("settlement_of_subcontracting_contract")
|
||||
public class SettlementOfSubcontractingContract extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据编码
|
||||
*/
|
||||
private String documentCode;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
private LocalDate documentDate;
|
||||
|
||||
/**
|
||||
* 合同编码
|
||||
*/
|
||||
private Long contractCode;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 统计周期
|
||||
*/
|
||||
private String statisticPeriod;
|
||||
|
||||
/**
|
||||
* 计量开始
|
||||
*/
|
||||
private LocalDate measurementStart;
|
||||
|
||||
/**
|
||||
* 项目
|
||||
*/
|
||||
private Long project;
|
||||
|
||||
/**
|
||||
* 审批金额
|
||||
*/
|
||||
private BigDecimal approvalAmount;
|
||||
|
||||
/**
|
||||
* 计量结束
|
||||
*/
|
||||
private LocalDate measurementEnd;
|
||||
|
||||
/**
|
||||
* 结算单位 客户信息
|
||||
*/
|
||||
private Long settlementUnit;
|
||||
|
||||
/**
|
||||
* 合同金额
|
||||
*/
|
||||
private BigDecimal contractAmount;
|
||||
|
||||
/**
|
||||
* 累计结算金额(含本期)
|
||||
*/
|
||||
private BigDecimal cumulativeSettlementAmountIncludeCurrent;
|
||||
|
||||
/**
|
||||
* 累计结算金额(不含本期)
|
||||
*/
|
||||
private BigDecimal cumulativeSettlementNotAmountIncludeCurrent;
|
||||
|
||||
/**
|
||||
* 本次结算比例
|
||||
*/
|
||||
private BigDecimal currentSettlementRatio;
|
||||
|
||||
/**
|
||||
* 截止本期结算比例
|
||||
*/
|
||||
private BigDecimal settlementRatioUntilCurrent;
|
||||
|
||||
/**
|
||||
* 已结算比例(不含本期)
|
||||
*/
|
||||
private BigDecimal settlementRatioExcludeCurrent;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remarks;
|
||||
|
||||
/**
|
||||
* 合同含税金额
|
||||
*/
|
||||
private BigDecimal contractTaxInclusiveAmount;
|
||||
|
||||
/**
|
||||
* 合同不含税金额
|
||||
*/
|
||||
private BigDecimal contractTaxExclusiveAmount;
|
||||
|
||||
/**
|
||||
* 累计结算金额
|
||||
*/
|
||||
private BigDecimal cumulativeSettlementAmount;
|
||||
|
||||
/**
|
||||
* 本期扣款金额
|
||||
*/
|
||||
private BigDecimal currentDeductionAmount;
|
||||
|
||||
/**
|
||||
* 本期奖励金额
|
||||
*/
|
||||
private BigDecimal currentRewardAmount;
|
||||
|
||||
/**
|
||||
* 实时刷新 1选择 0未选
|
||||
*/
|
||||
private String realtimeRefresh;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,170 @@
|
||||
package org.dromara.xzd.settlement.fenbaohetongjingdu.domain.bo;
|
||||
|
||||
import org.dromara.xzd.settlement.fenbaohetongjingdu.domain.SettlementOfSubcontractingContract;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* 分包合同进度结算业务对象 settlement_of_subcontracting_contract
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-15
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = SettlementOfSubcontractingContract.class, reverseConvertGenerate = false)
|
||||
public class SettlementOfSubcontractingContractBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据编码
|
||||
*/
|
||||
private String documentCode;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
private LocalDate documentDate;
|
||||
|
||||
/**
|
||||
* 合同编码
|
||||
*/
|
||||
private Long contractCode;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 统计周期
|
||||
*/
|
||||
private String statisticPeriod;
|
||||
|
||||
/**
|
||||
* 计量开始
|
||||
*/
|
||||
private LocalDate measurementStart;
|
||||
|
||||
/**
|
||||
* 项目
|
||||
*/
|
||||
private Long project;
|
||||
|
||||
/**
|
||||
* 审批金额
|
||||
*/
|
||||
private BigDecimal approvalAmount;
|
||||
|
||||
/**
|
||||
* 计量结束
|
||||
*/
|
||||
private LocalDate measurementEnd;
|
||||
|
||||
/**
|
||||
* 结算单位 客户信息
|
||||
*/
|
||||
private Long settlementUnit;
|
||||
|
||||
/**
|
||||
* 合同金额
|
||||
*/
|
||||
private BigDecimal contractAmount;
|
||||
|
||||
/**
|
||||
* 累计结算金额(含本期)
|
||||
*/
|
||||
private BigDecimal cumulativeSettlementAmountIncludeCurrent;
|
||||
|
||||
/**
|
||||
* 累计结算金额(不含本期)
|
||||
*/
|
||||
private BigDecimal cumulativeSettlementNotAmountIncludeCurrent;
|
||||
|
||||
/**
|
||||
* 本次结算比例
|
||||
*/
|
||||
private BigDecimal currentSettlementRatio;
|
||||
|
||||
/**
|
||||
* 截止本期结算比例
|
||||
*/
|
||||
private BigDecimal settlementRatioUntilCurrent;
|
||||
|
||||
/**
|
||||
* 已结算比例(不含本期)
|
||||
*/
|
||||
private BigDecimal settlementRatioExcludeCurrent;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remarks;
|
||||
|
||||
/**
|
||||
* 合同含税金额
|
||||
*/
|
||||
private BigDecimal contractTaxInclusiveAmount;
|
||||
|
||||
/**
|
||||
* 合同不含税金额
|
||||
*/
|
||||
private BigDecimal contractTaxExclusiveAmount;
|
||||
|
||||
/**
|
||||
* 累计结算金额
|
||||
*/
|
||||
private BigDecimal cumulativeSettlementAmount;
|
||||
|
||||
/**
|
||||
* 本期扣款金额
|
||||
*/
|
||||
private BigDecimal currentDeductionAmount;
|
||||
|
||||
/**
|
||||
* 本期奖励金额
|
||||
*/
|
||||
private BigDecimal currentRewardAmount;
|
||||
|
||||
/**
|
||||
* 实时刷新 1选择 0未选
|
||||
*/
|
||||
private String realtimeRefresh;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
private LocalDate startDate;
|
||||
|
||||
private LocalDate endDate;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,221 @@
|
||||
package org.dromara.xzd.settlement.fenbaohetongjingdu.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjingdu.domain.SettlementOfSubcontractingContract;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 分包合同进度结算视图对象 settlement_of_subcontracting_contract
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-15
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = SettlementOfSubcontractingContract.class)
|
||||
public class SettlementOfSubcontractingContractVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据编码
|
||||
*/
|
||||
@ExcelProperty(value = "单据编码")
|
||||
private String documentCode;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
@ExcelProperty(value = "标题")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
@ExcelProperty(value = "单据日期")
|
||||
private LocalDate documentDate;
|
||||
|
||||
/**
|
||||
* 合同编码
|
||||
*/
|
||||
@ExcelProperty(value = "合同编码")
|
||||
private Long contractCode;
|
||||
|
||||
|
||||
/**
|
||||
* 合同编码名称
|
||||
*/
|
||||
@ExcelProperty(value = "合同编码名称")
|
||||
private String contractCodeName;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
@ExcelProperty(value = "合同名称")
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 统计周期
|
||||
*/
|
||||
@ExcelProperty(value = "统计周期")
|
||||
private String statisticPeriod;
|
||||
|
||||
/**
|
||||
* 计量开始
|
||||
*/
|
||||
@ExcelProperty(value = "计量开始")
|
||||
private LocalDate measurementStart;
|
||||
|
||||
/**
|
||||
* 项目
|
||||
*/
|
||||
@ExcelProperty(value = "项目")
|
||||
private Long project;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
@ExcelProperty(value = "项目名称")
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 审批金额
|
||||
*/
|
||||
@ExcelProperty(value = "审批金额")
|
||||
private BigDecimal approvalAmount;
|
||||
|
||||
/**
|
||||
* 计量结束
|
||||
*/
|
||||
@ExcelProperty(value = "计量结束")
|
||||
private LocalDate measurementEnd;
|
||||
|
||||
/**
|
||||
* 结算单位 客户信息
|
||||
*/
|
||||
@ExcelProperty(value = "结算单位 客户信息")
|
||||
private Long settlementUnit;
|
||||
|
||||
/**
|
||||
* 结算单位 客户信息名称
|
||||
*/
|
||||
@ExcelProperty(value = "结算单位 客户信息名称")
|
||||
private String settlementUnitName;
|
||||
|
||||
/**
|
||||
* 合同金额
|
||||
*/
|
||||
@ExcelProperty(value = "合同金额")
|
||||
private BigDecimal contractAmount;
|
||||
|
||||
/**
|
||||
* 累计结算金额(含本期)
|
||||
*/
|
||||
@ExcelProperty(value = "累计结算金额(含本期)")
|
||||
private BigDecimal cumulativeSettlementAmountIncludeCurrent;
|
||||
|
||||
/**
|
||||
* 累计结算金额(不含本期)
|
||||
*/
|
||||
@ExcelProperty(value = "累计结算金额(不含本期)")
|
||||
private BigDecimal cumulativeSettlementNotAmountIncludeCurrent;
|
||||
|
||||
/**
|
||||
* 本次结算比例
|
||||
*/
|
||||
@ExcelProperty(value = "本次结算比例")
|
||||
private BigDecimal currentSettlementRatio;
|
||||
|
||||
/**
|
||||
* 截止本期结算比例
|
||||
*/
|
||||
@ExcelProperty(value = "截止本期结算比例")
|
||||
private BigDecimal settlementRatioUntilCurrent;
|
||||
|
||||
/**
|
||||
* 已结算比例(不含本期)
|
||||
*/
|
||||
@ExcelProperty(value = "已结算比例(不含本期)")
|
||||
private BigDecimal settlementRatioExcludeCurrent;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remarks;
|
||||
|
||||
/**
|
||||
* 合同含税金额
|
||||
*/
|
||||
@ExcelProperty(value = "合同含税金额")
|
||||
private BigDecimal contractTaxInclusiveAmount;
|
||||
|
||||
/**
|
||||
* 合同不含税金额
|
||||
*/
|
||||
@ExcelProperty(value = "合同不含税金额")
|
||||
private BigDecimal contractTaxExclusiveAmount;
|
||||
|
||||
/**
|
||||
* 累计结算金额
|
||||
*/
|
||||
@ExcelProperty(value = "累计结算金额")
|
||||
private BigDecimal cumulativeSettlementAmount;
|
||||
|
||||
/**
|
||||
* 本期扣款金额
|
||||
*/
|
||||
@ExcelProperty(value = "本期扣款金额")
|
||||
private BigDecimal currentDeductionAmount;
|
||||
|
||||
/**
|
||||
* 本期奖励金额
|
||||
*/
|
||||
@ExcelProperty(value = "本期奖励金额")
|
||||
private BigDecimal currentRewardAmount;
|
||||
|
||||
/**
|
||||
* 实时刷新 1选择 0未选
|
||||
*/
|
||||
@ExcelProperty(value = "实时刷新 1选择 0未选")
|
||||
private String realtimeRefresh;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
@ExcelProperty(value = "文件ID")
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
@ExcelProperty(value = "审核状态")
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package org.dromara.xzd.settlement.fenbaohetongjingdu.mapper;
|
||||
|
||||
import org.dromara.xzd.settlement.fenbaohetongjingdu.domain.SettlementOfSubcontractingContract;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjingdu.domain.vo.SettlementOfSubcontractingContractVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 分包合同进度结算Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-15
|
||||
*/
|
||||
public interface SettlementOfSubcontractingContractMapper extends BaseMapperPlus<SettlementOfSubcontractingContract, SettlementOfSubcontractingContractVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,70 @@
|
||||
package org.dromara.xzd.settlement.fenbaohetongjingdu.service;
|
||||
|
||||
import org.dromara.xzd.settlement.fenbaohetongjingdu.domain.vo.SettlementOfSubcontractingContractVo;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjingdu.domain.bo.SettlementOfSubcontractingContractBo;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjingdu.domain.SettlementOfSubcontractingContract;
|
||||
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-15
|
||||
*/
|
||||
public interface ISettlementOfSubcontractingContractService extends IService<SettlementOfSubcontractingContract>{
|
||||
|
||||
/**
|
||||
* 查询分包合同进度结算
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 分包合同进度结算
|
||||
*/
|
||||
SettlementOfSubcontractingContractVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询分包合同进度结算列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 分包合同进度结算分页列表
|
||||
*/
|
||||
TableDataInfo<SettlementOfSubcontractingContractVo> queryPageList(SettlementOfSubcontractingContractBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的分包合同进度结算列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 分包合同进度结算列表
|
||||
*/
|
||||
List<SettlementOfSubcontractingContractVo> queryList(SettlementOfSubcontractingContractBo bo);
|
||||
|
||||
/**
|
||||
* 新增分包合同进度结算
|
||||
*
|
||||
* @param bo 分包合同进度结算
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(SettlementOfSubcontractingContractBo bo);
|
||||
|
||||
/**
|
||||
* 修改分包合同进度结算
|
||||
*
|
||||
* @param bo 分包合同进度结算
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(SettlementOfSubcontractingContractBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除分包合同进度结算信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,228 @@
|
||||
package org.dromara.xzd.settlement.fenbaohetongjingdu.service.impl;
|
||||
|
||||
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.StringUtils;
|
||||
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.dromara.system.service.impl.SysOssServiceImpl;
|
||||
import org.dromara.xzd.contractManagement.caigoucontractTermination.domain.XzdPurchaseContractSuspend;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongxinxi.domain.vo.XzdSubcontractVo;
|
||||
import org.dromara.xzd.domain.*;
|
||||
import org.dromara.xzd.domain.dto.QuerCorrespondentDto;
|
||||
import org.dromara.xzd.service.IXzdCorrespondentList;
|
||||
import org.dromara.xzd.service.impl.XzdProjectServiceImpl;
|
||||
import org.dromara.xzd.utilS.AreaUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjingdu.domain.bo.SettlementOfSubcontractingContractBo;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjingdu.domain.vo.SettlementOfSubcontractingContractVo;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjingdu.domain.SettlementOfSubcontractingContract;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjingdu.mapper.SettlementOfSubcontractingContractMapper;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjingdu.service.ISettlementOfSubcontractingContractService;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 分包合同进度结算Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-15
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class SettlementOfSubcontractingContractServiceImpl extends ServiceImpl<SettlementOfSubcontractingContractMapper, SettlementOfSubcontractingContract> implements ISettlementOfSubcontractingContractService {
|
||||
|
||||
private final SettlementOfSubcontractingContractMapper baseMapper;
|
||||
private final AreaUtil areaUtil;
|
||||
|
||||
|
||||
@Autowired
|
||||
private IXzdCorrespondentList iXzdCorrespondentList;
|
||||
|
||||
|
||||
@Autowired
|
||||
private XzdProjectServiceImpl xzdProjectService;
|
||||
|
||||
@Autowired
|
||||
private SysOssServiceImpl sysOssService;
|
||||
|
||||
/**
|
||||
* 查询分包合同进度结算
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 分包合同进度结算
|
||||
*/
|
||||
@Override
|
||||
public SettlementOfSubcontractingContractVo queryById(Long id){
|
||||
SettlementOfSubcontractingContractVo vo = baseMapper.selectVoById(id);
|
||||
List<SettlementOfSubcontractingContractVo> res = List.of(vo);
|
||||
setValue(res);
|
||||
|
||||
return res.getFirst();
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询分包合同进度结算列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 分包合同进度结算分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<SettlementOfSubcontractingContractVo> queryPageList(SettlementOfSubcontractingContractBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<SettlementOfSubcontractingContract> lqw = buildQueryWrapper(bo);
|
||||
Page<SettlementOfSubcontractingContractVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
setValue(result.getRecords());
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 填充数据
|
||||
|
||||
private void setValue(List<SettlementOfSubcontractingContractVo> records) {
|
||||
for (SettlementOfSubcontractingContractVo item : records) {
|
||||
//项目名称
|
||||
if (item.getProject() != null){
|
||||
String projectName = xzdProjectService.queryNameById(item.getProject());
|
||||
if (projectName != null){
|
||||
item.setProjectName(projectName);
|
||||
}
|
||||
}
|
||||
//甲方单位(客户信息列表)
|
||||
R<QuerCorrespondentDto> byid = iXzdCorrespondentList.getCustomerByid(item.getSettlementUnit());
|
||||
if (byid!=null){
|
||||
if (byid.getData().getXzdCustomerinformation() != null){
|
||||
item.setSettlementUnitName(byid.getData().getXzdCustomerinformation().getUnitName());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的分包合同进度结算列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 分包合同进度结算列表
|
||||
*/
|
||||
@Override
|
||||
public List<SettlementOfSubcontractingContractVo> queryList(SettlementOfSubcontractingContractBo bo) {
|
||||
LambdaQueryWrapper<SettlementOfSubcontractingContract> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<SettlementOfSubcontractingContract> buildQueryWrapper(SettlementOfSubcontractingContractBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<SettlementOfSubcontractingContract> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(SettlementOfSubcontractingContract::getId);
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDocumentCode()), SettlementOfSubcontractingContract::getDocumentCode, bo.getDocumentCode());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), SettlementOfSubcontractingContract::getTitle, bo.getTitle());
|
||||
lqw.eq(bo.getDocumentDate() != null, SettlementOfSubcontractingContract::getDocumentDate, bo.getDocumentDate());
|
||||
lqw.ge(bo.getStartDate() != null, SettlementOfSubcontractingContract::getDocumentDate, bo.getStartDate());
|
||||
lqw.le(bo.getEndDate() != null, SettlementOfSubcontractingContract::getDocumentDate, bo.getEndDate());
|
||||
|
||||
|
||||
lqw.eq(bo.getContractCode() != null, SettlementOfSubcontractingContract::getContractCode, bo.getContractCode());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getContractName()), SettlementOfSubcontractingContract::getContractName, bo.getContractName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getStatisticPeriod()), SettlementOfSubcontractingContract::getStatisticPeriod, bo.getStatisticPeriod());
|
||||
lqw.eq(bo.getMeasurementStart() != null, SettlementOfSubcontractingContract::getMeasurementStart, bo.getMeasurementStart());
|
||||
lqw.eq(bo.getProject() != null, SettlementOfSubcontractingContract::getProject, bo.getProject());
|
||||
lqw.eq(bo.getApprovalAmount() != null, SettlementOfSubcontractingContract::getApprovalAmount, bo.getApprovalAmount());
|
||||
lqw.eq(bo.getMeasurementEnd() != null, SettlementOfSubcontractingContract::getMeasurementEnd, bo.getMeasurementEnd());
|
||||
lqw.eq(bo.getSettlementUnit() != null, SettlementOfSubcontractingContract::getSettlementUnit, bo.getSettlementUnit());
|
||||
lqw.eq(bo.getContractAmount() != null, SettlementOfSubcontractingContract::getContractAmount, bo.getContractAmount());
|
||||
lqw.eq(bo.getCumulativeSettlementAmountIncludeCurrent() != null, SettlementOfSubcontractingContract::getCumulativeSettlementAmountIncludeCurrent, bo.getCumulativeSettlementAmountIncludeCurrent());
|
||||
lqw.eq(bo.getCumulativeSettlementNotAmountIncludeCurrent() != null, SettlementOfSubcontractingContract::getCumulativeSettlementNotAmountIncludeCurrent, bo.getCumulativeSettlementNotAmountIncludeCurrent());
|
||||
lqw.eq(bo.getCurrentSettlementRatio() != null, SettlementOfSubcontractingContract::getCurrentSettlementRatio, bo.getCurrentSettlementRatio());
|
||||
lqw.eq(bo.getSettlementRatioUntilCurrent() != null, SettlementOfSubcontractingContract::getSettlementRatioUntilCurrent, bo.getSettlementRatioUntilCurrent());
|
||||
lqw.eq(bo.getSettlementRatioExcludeCurrent() != null, SettlementOfSubcontractingContract::getSettlementRatioExcludeCurrent, bo.getSettlementRatioExcludeCurrent());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), SettlementOfSubcontractingContract::getRemarks, bo.getRemarks());
|
||||
lqw.eq(bo.getContractTaxInclusiveAmount() != null, SettlementOfSubcontractingContract::getContractTaxInclusiveAmount, bo.getContractTaxInclusiveAmount());
|
||||
lqw.eq(bo.getContractTaxExclusiveAmount() != null, SettlementOfSubcontractingContract::getContractTaxExclusiveAmount, bo.getContractTaxExclusiveAmount());
|
||||
lqw.eq(bo.getCumulativeSettlementAmount() != null, SettlementOfSubcontractingContract::getCumulativeSettlementAmount, bo.getCumulativeSettlementAmount());
|
||||
lqw.eq(bo.getCurrentDeductionAmount() != null, SettlementOfSubcontractingContract::getCurrentDeductionAmount, bo.getCurrentDeductionAmount());
|
||||
lqw.eq(bo.getCurrentRewardAmount() != null, SettlementOfSubcontractingContract::getCurrentRewardAmount, bo.getCurrentRewardAmount());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getRealtimeRefresh()), SettlementOfSubcontractingContract::getRealtimeRefresh, bo.getRealtimeRefresh());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), SettlementOfSubcontractingContract::getFileId, bo.getFileId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), SettlementOfSubcontractingContract::getAuditStatus, bo.getAuditStatus());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增分包合同进度结算
|
||||
*
|
||||
* @param bo 分包合同进度结算
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(SettlementOfSubcontractingContractBo bo) {
|
||||
SettlementOfSubcontractingContract add = MapstructUtils.convert(bo, SettlementOfSubcontractingContract.class);
|
||||
validEntityBeforeSave(add);
|
||||
Long l = baseMapper.selectCount(new LambdaQueryWrapper<SettlementOfSubcontractingContract>().gt(SettlementOfSubcontractingContract::getCreateTime, LocalDate.now()));
|
||||
String s = areaUtil.generateDateBasedNumber();
|
||||
add.setDocumentCode(s+"-"+(l+1));
|
||||
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改分包合同进度结算
|
||||
*
|
||||
* @param bo 分包合同进度结算
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(SettlementOfSubcontractingContractBo bo) {
|
||||
SettlementOfSubcontractingContract update = MapstructUtils.convert(bo, SettlementOfSubcontractingContract.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(SettlementOfSubcontractingContract entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除分包合同进度结算信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
for (Long id : ids) {
|
||||
SettlementOfSubcontractingContractVo vo = baseMapper.selectVoById(id);
|
||||
if (vo != null){
|
||||
//删除附件
|
||||
if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){
|
||||
List<Long> deleteIds = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList();
|
||||
if (!deleteIds.isEmpty()) {
|
||||
sysOssService.deleteWithValidByIds(deleteIds, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,121 @@
|
||||
package org.dromara.xzd.settlement.fenbaohetongjungong.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.dromara.xzd.domain.vo.XzdSettlementRulesVo;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjungong.domain.vo.SettlementOfSubcontractingCompletionVo;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjungong.domain.bo.SettlementOfSubcontractingCompletionBo;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjungong.service.ISettlementOfSubcontractingCompletionService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 分包合同竣工结算
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-15
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/fenbaohetongjungong/ofSubcontractingCompletion")
|
||||
public class SettlementOfSubcontractingCompletionController extends BaseController {
|
||||
|
||||
private final ISettlementOfSubcontractingCompletionService settlementOfSubcontractingCompletionService;
|
||||
|
||||
/**
|
||||
* 查询分包合同竣工结算列表
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongjungong:ofSubcontractingCompletion:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<SettlementOfSubcontractingCompletionVo> list(SettlementOfSubcontractingCompletionBo bo, PageQuery pageQuery) {
|
||||
return settlementOfSubcontractingCompletionService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出分包合同竣工结算列表
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongjungong:ofSubcontractingCompletion:export")
|
||||
@Log(title = "分包合同竣工结算", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(SettlementOfSubcontractingCompletionBo bo, HttpServletResponse response) {
|
||||
List<SettlementOfSubcontractingCompletionVo> list = settlementOfSubcontractingCompletionService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "分包合同竣工结算", SettlementOfSubcontractingCompletionVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取分包合同竣工结算详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongjungong:ofSubcontractingCompletion:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<SettlementOfSubcontractingCompletionVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(settlementOfSubcontractingCompletionService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增分包合同竣工结算
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongjungong:ofSubcontractingCompletion:add")
|
||||
@Log(title = "分包合同竣工结算", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody SettlementOfSubcontractingCompletionBo bo) {
|
||||
return toAjax(settlementOfSubcontractingCompletionService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改分包合同竣工结算
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongjungong:ofSubcontractingCompletion:edit")
|
||||
@Log(title = "分包合同竣工结算", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SettlementOfSubcontractingCompletionBo bo) {
|
||||
return toAjax(settlementOfSubcontractingCompletionService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除分包合同竣工结算
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongjungong:ofSubcontractingCompletion:remove")
|
||||
@Log(title = "分包合同竣工结算", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(settlementOfSubcontractingCompletionService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
/**
|
||||
* 根据合同编号获取支付条款
|
||||
*
|
||||
* @param id 合同编号
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongjungong:ofSubcontractingCompletion:remove")
|
||||
@Log(title = "根据合同编号获取支付条款", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/contract/{id}")
|
||||
public R<List<XzdSettlementRulesVo>> contractPaymentTerm(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(settlementOfSubcontractingCompletionService.contractPaymentTerm(id, true));
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,173 @@
|
||||
package org.dromara.xzd.settlement.fenbaohetongjungong.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* 分包合同竣工结算对象 settlement_of_subcontracting_completion
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-15
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("settlement_of_subcontracting_completion")
|
||||
public class SettlementOfSubcontractingCompletion extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据编号
|
||||
*/
|
||||
private String documentCode;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
private LocalDate documentDate;
|
||||
|
||||
/**
|
||||
* 合同编号
|
||||
*/
|
||||
private Long contractCode;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 审定总价
|
||||
*/
|
||||
private Long approvedTotalPrice;
|
||||
|
||||
/**
|
||||
* 审定日期
|
||||
*/
|
||||
private LocalDate approvedDate;
|
||||
|
||||
/**
|
||||
* 工程项目
|
||||
*/
|
||||
private String engineeringProject;
|
||||
|
||||
/**
|
||||
* 经营模式
|
||||
*/
|
||||
private String businessModel;
|
||||
|
||||
/**
|
||||
* 甲方单位
|
||||
*/
|
||||
private Long partyAUnit;
|
||||
|
||||
/**
|
||||
* 乙方单位
|
||||
*/
|
||||
private Long partyBUnit;
|
||||
|
||||
/**
|
||||
* 累计已结金额
|
||||
*/
|
||||
private BigDecimal cumulativeSettledAmount;
|
||||
|
||||
/**
|
||||
* 累计已付金额
|
||||
*/
|
||||
private BigDecimal cumulativePaidAmount;
|
||||
|
||||
/**
|
||||
* 已付比例
|
||||
*/
|
||||
private BigDecimal paidRatio;
|
||||
|
||||
/**
|
||||
* 支付条款
|
||||
*/
|
||||
private Long paymentTerms;
|
||||
|
||||
/**
|
||||
* 本期应付金额
|
||||
*/
|
||||
private BigDecimal currentPayableAmount;
|
||||
|
||||
/**
|
||||
* 应付日期
|
||||
*/
|
||||
private LocalDate payableDate;
|
||||
|
||||
/**
|
||||
* 竣工日期
|
||||
*/
|
||||
private LocalDate completionDate;
|
||||
|
||||
/**
|
||||
* 警示
|
||||
*/
|
||||
private String warning;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remarks;
|
||||
|
||||
/**
|
||||
* 本期决算总额
|
||||
*/
|
||||
private BigDecimal currentFinalSettlementAmount;
|
||||
|
||||
/**
|
||||
* 业主单位 客户
|
||||
*/
|
||||
private Long ownerUnit;
|
||||
|
||||
/**
|
||||
* 监理单位 客户
|
||||
*/
|
||||
private Long supervisionUnit;
|
||||
|
||||
/**
|
||||
* 施工单位 客户
|
||||
*/
|
||||
private Long constructionUnit;
|
||||
|
||||
/**
|
||||
* 审核单位 客户
|
||||
*/
|
||||
private Long auditUnit;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,179 @@
|
||||
package org.dromara.xzd.settlement.fenbaohetongjungong.domain.bo;
|
||||
|
||||
import org.dromara.xzd.settlement.fenbaohetongjungong.domain.SettlementOfSubcontractingCompletion;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* 分包合同竣工结算业务对象 settlement_of_subcontracting_completion
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-15
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = SettlementOfSubcontractingCompletion.class, reverseConvertGenerate = false)
|
||||
public class SettlementOfSubcontractingCompletionBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据编号
|
||||
*/
|
||||
@NotBlank(message = "单据编号不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String documentCode;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
@NotBlank(message = "标题不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
@NotNull(message = "单据日期不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private LocalDate documentDate;
|
||||
|
||||
/**
|
||||
* 合同编号
|
||||
*/
|
||||
private Long contractCode;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 审定总价
|
||||
*/
|
||||
private Long approvedTotalPrice;
|
||||
|
||||
/**
|
||||
* 审定日期
|
||||
*/
|
||||
private LocalDate approvedDate;
|
||||
|
||||
/**
|
||||
* 工程项目
|
||||
*/
|
||||
private String engineeringProject;
|
||||
|
||||
/**
|
||||
* 经营模式
|
||||
*/
|
||||
private String businessModel;
|
||||
|
||||
/**
|
||||
* 甲方单位
|
||||
*/
|
||||
private Long partyAUnit;
|
||||
|
||||
/**
|
||||
* 乙方单位
|
||||
*/
|
||||
private Long partyBUnit;
|
||||
|
||||
/**
|
||||
* 累计已结金额
|
||||
*/
|
||||
private BigDecimal cumulativeSettledAmount;
|
||||
|
||||
/**
|
||||
* 累计已付金额
|
||||
*/
|
||||
private BigDecimal cumulativePaidAmount;
|
||||
|
||||
/**
|
||||
* 已付比例
|
||||
*/
|
||||
private BigDecimal paidRatio;
|
||||
|
||||
/**
|
||||
* 支付条款
|
||||
*/
|
||||
private Long paymentTerms;
|
||||
|
||||
/**
|
||||
* 本期应付金额
|
||||
*/
|
||||
private BigDecimal currentPayableAmount;
|
||||
|
||||
/**
|
||||
* 应付日期
|
||||
*/
|
||||
private LocalDate payableDate;
|
||||
|
||||
/**
|
||||
* 竣工日期
|
||||
*/
|
||||
private LocalDate completionDate;
|
||||
|
||||
/**
|
||||
* 警示
|
||||
*/
|
||||
private String warning;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remarks;
|
||||
|
||||
/**
|
||||
* 本期决算总额
|
||||
*/
|
||||
private BigDecimal currentFinalSettlementAmount;
|
||||
|
||||
/**
|
||||
* 业主单位 客户
|
||||
*/
|
||||
private Long ownerUnit;
|
||||
|
||||
/**
|
||||
* 监理单位 客户
|
||||
*/
|
||||
private Long supervisionUnit;
|
||||
|
||||
/**
|
||||
* 施工单位 客户
|
||||
*/
|
||||
private Long constructionUnit;
|
||||
|
||||
/**
|
||||
* 审核单位 客户
|
||||
*/
|
||||
private Long auditUnit;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
private LocalDate startTime;
|
||||
|
||||
private LocalDate endTime;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,254 @@
|
||||
package org.dromara.xzd.settlement.fenbaohetongjungong.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjungong.domain.SettlementOfSubcontractingCompletion;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 分包合同竣工结算视图对象 settlement_of_subcontracting_completion
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-15
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = SettlementOfSubcontractingCompletion.class)
|
||||
public class SettlementOfSubcontractingCompletionVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据编号
|
||||
*/
|
||||
@ExcelProperty(value = "单据编号")
|
||||
private String documentCode;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
@ExcelProperty(value = "标题")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
@ExcelProperty(value = "单据日期")
|
||||
private LocalDate documentDate;
|
||||
|
||||
/**
|
||||
* 合同编号
|
||||
*/
|
||||
@ExcelProperty(value = "合同编号")
|
||||
private Long contractCode;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
@ExcelProperty(value = "合同名称")
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 审定总价
|
||||
*/
|
||||
@ExcelProperty(value = "审定总价")
|
||||
private Long approvedTotalPrice;
|
||||
|
||||
/**
|
||||
* 审定日期
|
||||
*/
|
||||
@ExcelProperty(value = "审定日期")
|
||||
private LocalDate approvedDate;
|
||||
|
||||
/**
|
||||
* 工程项目
|
||||
*/
|
||||
@ExcelProperty(value = "工程项目")
|
||||
private String engineeringProject;
|
||||
|
||||
/**
|
||||
* 经营模式
|
||||
*/
|
||||
@ExcelProperty(value = "经营模式")
|
||||
private String businessModel;
|
||||
|
||||
/**
|
||||
* 甲方单位
|
||||
*/
|
||||
@ExcelProperty(value = "甲方单位")
|
||||
private Long partyAUnit;
|
||||
|
||||
|
||||
/**
|
||||
* 甲方单位名称
|
||||
*/
|
||||
@ExcelProperty(value = "甲方单位名称")
|
||||
private String partyAUnitName;
|
||||
|
||||
|
||||
/**
|
||||
* 乙方单位
|
||||
*/
|
||||
@ExcelProperty(value = "乙方单位")
|
||||
private Long partyBUnit;
|
||||
|
||||
/**
|
||||
* 乙方单位名称
|
||||
*/
|
||||
@ExcelProperty(value = "乙方单位名称")
|
||||
private String partyBUnitName;
|
||||
|
||||
/**
|
||||
* 累计已结金额
|
||||
*/
|
||||
@ExcelProperty(value = "累计已结金额")
|
||||
private BigDecimal cumulativeSettledAmount;
|
||||
|
||||
/**
|
||||
* 累计已付金额
|
||||
*/
|
||||
@ExcelProperty(value = "累计已付金额")
|
||||
private BigDecimal cumulativePaidAmount;
|
||||
|
||||
/**
|
||||
* 已付比例
|
||||
*/
|
||||
@ExcelProperty(value = "已付比例")
|
||||
private BigDecimal paidRatio;
|
||||
|
||||
/**
|
||||
* 支付条款
|
||||
*/
|
||||
@ExcelProperty(value = "支付条款")
|
||||
private Long paymentTerms;
|
||||
|
||||
|
||||
/**
|
||||
* 支付条款回显信息
|
||||
*/
|
||||
@ExcelProperty(value = "支付条款回显信息")
|
||||
private String paymentTermsName;
|
||||
|
||||
/**
|
||||
* 本期应付金额
|
||||
*/
|
||||
@ExcelProperty(value = "本期应付金额")
|
||||
private BigDecimal currentPayableAmount;
|
||||
|
||||
/**
|
||||
* 应付日期
|
||||
*/
|
||||
@ExcelProperty(value = "应付日期")
|
||||
private LocalDate payableDate;
|
||||
|
||||
/**
|
||||
* 竣工日期
|
||||
*/
|
||||
@ExcelProperty(value = "竣工日期")
|
||||
private LocalDate completionDate;
|
||||
|
||||
/**
|
||||
* 警示
|
||||
*/
|
||||
@ExcelProperty(value = "警示")
|
||||
private String warning;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remarks;
|
||||
|
||||
/**
|
||||
* 本期决算总额
|
||||
*/
|
||||
@ExcelProperty(value = "本期决算总额")
|
||||
private BigDecimal currentFinalSettlementAmount;
|
||||
|
||||
/**
|
||||
* 业主单位 客户
|
||||
*/
|
||||
@ExcelProperty(value = "业主单位 客户")
|
||||
private Long ownerUnit;
|
||||
|
||||
/**
|
||||
* 业主单位名称 客户
|
||||
*/
|
||||
@ExcelProperty(value = "业主单位名称 客户")
|
||||
private String ownerUnitName;
|
||||
|
||||
/**
|
||||
* 监理单位 客户
|
||||
*/
|
||||
@ExcelProperty(value = "监理单位 客户")
|
||||
private Long supervisionUnit;
|
||||
|
||||
/**
|
||||
* 监理单位名称 客户
|
||||
*/
|
||||
@ExcelProperty(value = "监理单位名称 客户")
|
||||
private String supervisionUnitName;
|
||||
|
||||
/**
|
||||
* 施工单位 客户
|
||||
*/
|
||||
@ExcelProperty(value = "施工单位 客户")
|
||||
private Long constructionUnit;
|
||||
|
||||
/**
|
||||
* 施工单位名称 客户
|
||||
*/
|
||||
@ExcelProperty(value = "施工单位名称 客户")
|
||||
private String constructionUnitName;
|
||||
|
||||
/**
|
||||
* 审核单位 客户
|
||||
*/
|
||||
@ExcelProperty(value = "审核单位 客户")
|
||||
private Long auditUnit;
|
||||
|
||||
/**
|
||||
* 审核单位名称 客户
|
||||
*/
|
||||
@ExcelProperty(value = "审核单位名称 客户")
|
||||
private String auditUnitName;
|
||||
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
@ExcelProperty(value = "文件ID")
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
@ExcelProperty(value = "审核状态")
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package org.dromara.xzd.settlement.fenbaohetongjungong.mapper;
|
||||
|
||||
import org.dromara.xzd.settlement.fenbaohetongjungong.domain.SettlementOfSubcontractingCompletion;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjungong.domain.vo.SettlementOfSubcontractingCompletionVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 分包合同竣工结算Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-15
|
||||
*/
|
||||
public interface SettlementOfSubcontractingCompletionMapper extends BaseMapperPlus<SettlementOfSubcontractingCompletion, SettlementOfSubcontractingCompletionVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,76 @@
|
||||
package org.dromara.xzd.settlement.fenbaohetongjungong.service;
|
||||
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import org.dromara.xzd.domain.vo.XzdSettlementRulesVo;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjungong.domain.vo.SettlementOfSubcontractingCompletionVo;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjungong.domain.bo.SettlementOfSubcontractingCompletionBo;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjungong.domain.SettlementOfSubcontractingCompletion;
|
||||
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-15
|
||||
*/
|
||||
public interface ISettlementOfSubcontractingCompletionService extends IService<SettlementOfSubcontractingCompletion>{
|
||||
|
||||
/**
|
||||
* 查询分包合同竣工结算
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 分包合同竣工结算
|
||||
*/
|
||||
SettlementOfSubcontractingCompletionVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询分包合同竣工结算列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 分包合同竣工结算分页列表
|
||||
*/
|
||||
TableDataInfo<SettlementOfSubcontractingCompletionVo> queryPageList(SettlementOfSubcontractingCompletionBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的分包合同竣工结算列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 分包合同竣工结算列表
|
||||
*/
|
||||
List<SettlementOfSubcontractingCompletionVo> queryList(SettlementOfSubcontractingCompletionBo bo);
|
||||
|
||||
/**
|
||||
* 新增分包合同竣工结算
|
||||
*
|
||||
* @param bo 分包合同竣工结算
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(SettlementOfSubcontractingCompletionBo bo);
|
||||
|
||||
/**
|
||||
* 修改分包合同竣工结算
|
||||
*
|
||||
* @param bo 分包合同竣工结算
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(SettlementOfSubcontractingCompletionBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除分包合同竣工结算信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
|
||||
|
||||
List<XzdSettlementRulesVo> contractPaymentTerm(@NotEmpty(message = "主键不能为空") Long id, boolean b);
|
||||
}
|
||||
@ -0,0 +1,307 @@
|
||||
package org.dromara.xzd.settlement.fenbaohetongjungong.service.impl;
|
||||
|
||||
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.StringUtils;
|
||||
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.dromara.system.service.impl.SysOssServiceImpl;
|
||||
import org.dromara.xzd.contractManagement.fenbaohetongxinxi.domain.vo.XzdSubcontractVo;
|
||||
import org.dromara.xzd.domain.*;
|
||||
import org.dromara.xzd.domain.dto.QuerCorrespondentDto;
|
||||
import org.dromara.xzd.domain.vo.XzdSettlementRulesVo;
|
||||
import org.dromara.xzd.service.*;
|
||||
import org.dromara.xzd.service.impl.XzdProjectServiceImpl;
|
||||
import org.dromara.xzd.service.impl.XzdSupplierInfoServiceImpl;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjingdu.domain.SettlementOfSubcontractingContract;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjingdu.domain.vo.SettlementOfSubcontractingContractVo;
|
||||
import org.dromara.xzd.utilS.AreaUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjungong.domain.bo.SettlementOfSubcontractingCompletionBo;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjungong.domain.vo.SettlementOfSubcontractingCompletionVo;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjungong.domain.SettlementOfSubcontractingCompletion;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjungong.mapper.SettlementOfSubcontractingCompletionMapper;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjungong.service.ISettlementOfSubcontractingCompletionService;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 分包合同竣工结算Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-15
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class SettlementOfSubcontractingCompletionServiceImpl extends ServiceImpl<SettlementOfSubcontractingCompletionMapper, SettlementOfSubcontractingCompletion> implements ISettlementOfSubcontractingCompletionService {
|
||||
|
||||
private final SettlementOfSubcontractingCompletionMapper baseMapper;
|
||||
|
||||
private final AreaUtil areaUtil;
|
||||
|
||||
private final IXzdSettlementRulesService xzdSettlementRulesService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private IXzdCorrespondentList iXzdCorrespondentList;
|
||||
|
||||
|
||||
@Autowired
|
||||
private XzdProjectServiceImpl xzdProjectService;
|
||||
|
||||
@Autowired
|
||||
private SysOssServiceImpl sysOssService;
|
||||
|
||||
@Autowired
|
||||
private XzdSupplierInfoServiceImpl xzdSupplierInfoService;
|
||||
|
||||
private final IXzdContractAdvanceInfoService iXzdContractAdvanceInfoService;
|
||||
|
||||
private final IXzdDeductionItemsService iXzdDeductionItemsService;
|
||||
|
||||
private final IXzdContractClauseService iXzdContractClauseService;
|
||||
|
||||
/**
|
||||
* 查询分包合同竣工结算
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 分包合同竣工结算
|
||||
*/
|
||||
@Override
|
||||
public SettlementOfSubcontractingCompletionVo queryById(Long id){
|
||||
SettlementOfSubcontractingCompletionVo vo = baseMapper.selectVoById(id);
|
||||
if (vo == null) {
|
||||
throw new RuntimeException("数据不存在");
|
||||
}
|
||||
List<SettlementOfSubcontractingCompletionVo> res = List.of(vo);
|
||||
setValue(res);
|
||||
|
||||
return res.getFirst();
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询分包合同竣工结算列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 分包合同竣工结算分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<SettlementOfSubcontractingCompletionVo> queryPageList(SettlementOfSubcontractingCompletionBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<SettlementOfSubcontractingCompletion> lqw = buildQueryWrapper(bo);
|
||||
Page<SettlementOfSubcontractingCompletionVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
setValue(result.getRecords());
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
private void setValue(List<SettlementOfSubcontractingCompletionVo> records) {
|
||||
for (SettlementOfSubcontractingCompletionVo item : records) {
|
||||
// //项目名称
|
||||
// if (item.getProject() != null){
|
||||
// String projectName = xzdProjectService.queryNameById(item.getProject());
|
||||
// if (projectName != null){
|
||||
// item.setProjectName(projectName);
|
||||
// }
|
||||
// }
|
||||
//甲方单位(客户信息列表)
|
||||
R<QuerCorrespondentDto> byid = iXzdCorrespondentList.getCustomerByid(item.getPartyAUnit());
|
||||
if (byid!=null){
|
||||
if (byid.getData().getXzdCustomerinformation() != null){
|
||||
item.setPartyAUnitName(byid.getData().getXzdCustomerinformation().getUnitName());
|
||||
}
|
||||
}
|
||||
//乙方单位(供应商信息列表)
|
||||
if (item.getPartyBUnit() != null){
|
||||
String unitName = xzdSupplierInfoService.queryNameById(item.getPartyBUnit());
|
||||
if (unitName != null){
|
||||
item.setPartyBUnitName(unitName);
|
||||
}
|
||||
}
|
||||
// 支付条款
|
||||
if (item.getPaymentTerms() != null){
|
||||
XzdSettlementRules byId = xzdSettlementRulesService.getById(item.getPaymentTerms());
|
||||
if (byId != null){
|
||||
item.setPaymentTermsName(byId.getType());
|
||||
}
|
||||
}
|
||||
|
||||
// 业主单位(客户信息列表)
|
||||
R<QuerCorrespondentDto> temp = iXzdCorrespondentList.getCustomerByid(item.getOwnerUnit());
|
||||
if (temp!=null){
|
||||
if (temp.getData().getXzdCustomerinformation() != null){
|
||||
item.setOwnerUnitName(temp.getData().getXzdCustomerinformation().getUnitName());
|
||||
}
|
||||
}
|
||||
|
||||
// 监理单位(客户信息列表)
|
||||
R<QuerCorrespondentDto> supervisionUnit = iXzdCorrespondentList.getCustomerByid(item.getSupervisionUnit());
|
||||
if (supervisionUnit!=null){
|
||||
if (supervisionUnit.getData().getXzdCustomerinformation() != null){
|
||||
item.setSupervisionUnitName(supervisionUnit.getData().getXzdCustomerinformation().getUnitName());
|
||||
}
|
||||
}
|
||||
|
||||
// 施工单位(客户信息列表)
|
||||
R<QuerCorrespondentDto> constructionUnit = iXzdCorrespondentList.getCustomerByid(item.getConstructionUnit());
|
||||
if (constructionUnit!=null){
|
||||
if (constructionUnit.getData().getXzdCustomerinformation() != null){
|
||||
item.setConstructionUnitName(constructionUnit.getData().getXzdCustomerinformation().getUnitName());
|
||||
}
|
||||
}
|
||||
|
||||
// 施工单位(客户信息列表)
|
||||
R<QuerCorrespondentDto> auditUnit = iXzdCorrespondentList.getCustomerByid(item.getAuditUnit());
|
||||
if (auditUnit!=null){
|
||||
if (auditUnit.getData().getXzdCustomerinformation() != null){
|
||||
item.setAuditUnitName(auditUnit.getData().getXzdCustomerinformation().getUnitName());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的分包合同竣工结算列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 分包合同竣工结算列表
|
||||
*/
|
||||
@Override
|
||||
public List<SettlementOfSubcontractingCompletionVo> queryList(SettlementOfSubcontractingCompletionBo bo) {
|
||||
LambdaQueryWrapper<SettlementOfSubcontractingCompletion> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<SettlementOfSubcontractingCompletion> buildQueryWrapper(SettlementOfSubcontractingCompletionBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<SettlementOfSubcontractingCompletion> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(SettlementOfSubcontractingCompletion::getId);
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDocumentCode()), SettlementOfSubcontractingCompletion::getDocumentCode, bo.getDocumentCode());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), SettlementOfSubcontractingCompletion::getTitle, bo.getTitle());
|
||||
lqw.eq(bo.getDocumentDate() != null, SettlementOfSubcontractingCompletion::getDocumentDate, bo.getDocumentDate());
|
||||
lqw.ge(bo.getStartTime() != null, SettlementOfSubcontractingCompletion::getDocumentDate, bo.getStartTime());
|
||||
lqw.le(bo.getEndTime() != null, SettlementOfSubcontractingCompletion::getDocumentDate, bo.getEndTime());
|
||||
|
||||
|
||||
|
||||
lqw.eq(bo.getContractCode() != null, SettlementOfSubcontractingCompletion::getContractCode, bo.getContractCode());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getContractName()), SettlementOfSubcontractingCompletion::getContractName, bo.getContractName());
|
||||
lqw.eq(bo.getApprovedTotalPrice() != null, SettlementOfSubcontractingCompletion::getApprovedTotalPrice, bo.getApprovedTotalPrice());
|
||||
lqw.eq(bo.getApprovedDate() != null, SettlementOfSubcontractingCompletion::getApprovedDate, bo.getApprovedDate());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getEngineeringProject()), SettlementOfSubcontractingCompletion::getEngineeringProject, bo.getEngineeringProject());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBusinessModel()), SettlementOfSubcontractingCompletion::getBusinessModel, bo.getBusinessModel());
|
||||
lqw.eq(bo.getPartyAUnit() != null, SettlementOfSubcontractingCompletion::getPartyAUnit, bo.getPartyAUnit());
|
||||
lqw.eq(bo.getPartyBUnit() != null, SettlementOfSubcontractingCompletion::getPartyBUnit, bo.getPartyBUnit());
|
||||
lqw.eq(bo.getCumulativeSettledAmount() != null, SettlementOfSubcontractingCompletion::getCumulativeSettledAmount, bo.getCumulativeSettledAmount());
|
||||
lqw.eq(bo.getCumulativePaidAmount() != null, SettlementOfSubcontractingCompletion::getCumulativePaidAmount, bo.getCumulativePaidAmount());
|
||||
lqw.eq(bo.getPaidRatio() != null, SettlementOfSubcontractingCompletion::getPaidRatio, bo.getPaidRatio());
|
||||
lqw.eq(bo.getPaymentTerms() != null, SettlementOfSubcontractingCompletion::getPaymentTerms, bo.getPaymentTerms());
|
||||
lqw.eq(bo.getCurrentPayableAmount() != null, SettlementOfSubcontractingCompletion::getCurrentPayableAmount, bo.getCurrentPayableAmount());
|
||||
lqw.eq(bo.getPayableDate() != null, SettlementOfSubcontractingCompletion::getPayableDate, bo.getPayableDate());
|
||||
lqw.eq(bo.getCompletionDate() != null, SettlementOfSubcontractingCompletion::getCompletionDate, bo.getCompletionDate());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getWarning()), SettlementOfSubcontractingCompletion::getWarning, bo.getWarning());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), SettlementOfSubcontractingCompletion::getRemarks, bo.getRemarks());
|
||||
lqw.eq(bo.getCurrentFinalSettlementAmount() != null, SettlementOfSubcontractingCompletion::getCurrentFinalSettlementAmount, bo.getCurrentFinalSettlementAmount());
|
||||
lqw.eq(bo.getOwnerUnit() != null, SettlementOfSubcontractingCompletion::getOwnerUnit, bo.getOwnerUnit());
|
||||
lqw.eq(bo.getSupervisionUnit() != null, SettlementOfSubcontractingCompletion::getSupervisionUnit, bo.getSupervisionUnit());
|
||||
lqw.eq(bo.getConstructionUnit() != null, SettlementOfSubcontractingCompletion::getConstructionUnit, bo.getConstructionUnit());
|
||||
lqw.eq(bo.getAuditUnit() != null, SettlementOfSubcontractingCompletion::getAuditUnit, bo.getAuditUnit());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), SettlementOfSubcontractingCompletion::getFileId, bo.getFileId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), SettlementOfSubcontractingCompletion::getAuditStatus, bo.getAuditStatus());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增分包合同竣工结算
|
||||
*
|
||||
* @param bo 分包合同竣工结算
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(SettlementOfSubcontractingCompletionBo bo) {
|
||||
SettlementOfSubcontractingCompletion add = MapstructUtils.convert(bo, SettlementOfSubcontractingCompletion.class);
|
||||
validEntityBeforeSave(add);
|
||||
Long l = baseMapper.selectCount(new LambdaQueryWrapper<SettlementOfSubcontractingCompletion>().gt(SettlementOfSubcontractingCompletion::getCreateTime, LocalDate.now()));
|
||||
String s = areaUtil.generateDateBasedNumber();
|
||||
add.setDocumentCode(s+"-"+(l+1));
|
||||
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改分包合同竣工结算
|
||||
*
|
||||
* @param bo 分包合同竣工结算
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(SettlementOfSubcontractingCompletionBo bo) {
|
||||
SettlementOfSubcontractingCompletion update = MapstructUtils.convert(bo, SettlementOfSubcontractingCompletion.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(SettlementOfSubcontractingCompletion entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除分包合同竣工结算信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
|
||||
}
|
||||
|
||||
for (Long id : ids) {
|
||||
SettlementOfSubcontractingCompletionVo vo = baseMapper.selectVoById(id);
|
||||
if (vo != null){
|
||||
//删除附件
|
||||
if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){
|
||||
List<Long> deleteIds = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList();
|
||||
if (!deleteIds.isEmpty()) {
|
||||
sysOssService.deleteWithValidByIds(deleteIds, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 查询符合条件的分包合同竣工结算列表
|
||||
*
|
||||
* @return 分包合同竣工结算列表
|
||||
*/
|
||||
@Override
|
||||
public List<XzdSettlementRulesVo> contractPaymentTerm(Long id, boolean b) {
|
||||
Map<String, Object> hashMap = new HashMap<>();
|
||||
hashMap.put("contract_details_id", id);
|
||||
List<XzdSettlementRules> xzdSettlementRules = xzdSettlementRulesService.getBaseMapper().selectByMap(hashMap);
|
||||
|
||||
List<XzdSettlementRulesVo> convert = MapstructUtils.convert(xzdSettlementRules, XzdSettlementRulesVo.class);
|
||||
|
||||
return convert;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,105 @@
|
||||
package org.dromara.xzd.settlement.fenbaohetongtiaozheng.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.xzd.settlement.fenbaohetongtiaozheng.domain.vo.SettlementOfSubcontractingAdjustmentVo;
|
||||
import org.dromara.xzd.settlement.fenbaohetongtiaozheng.domain.bo.SettlementOfSubcontractingAdjustmentBo;
|
||||
import org.dromara.xzd.settlement.fenbaohetongtiaozheng.service.ISettlementOfSubcontractingAdjustmentService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 分包合同竣工结算调整
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-15
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/fenbaohetongtiaozheng/ofSubcontractingAdjustment")
|
||||
public class SettlementOfSubcontractingAdjustmentController extends BaseController {
|
||||
|
||||
private final ISettlementOfSubcontractingAdjustmentService settlementOfSubcontractingAdjustmentService;
|
||||
|
||||
/**
|
||||
* 查询分包合同竣工结算调整列表
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongtiaozheng:ofSubcontractingAdjustment:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<SettlementOfSubcontractingAdjustmentVo> list(SettlementOfSubcontractingAdjustmentBo bo, PageQuery pageQuery) {
|
||||
return settlementOfSubcontractingAdjustmentService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出分包合同竣工结算调整列表
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongtiaozheng:ofSubcontractingAdjustment:export")
|
||||
@Log(title = "分包合同竣工结算调整", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(SettlementOfSubcontractingAdjustmentBo bo, HttpServletResponse response) {
|
||||
List<SettlementOfSubcontractingAdjustmentVo> list = settlementOfSubcontractingAdjustmentService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "分包合同竣工结算调整", SettlementOfSubcontractingAdjustmentVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取分包合同竣工结算调整详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongtiaozheng:ofSubcontractingAdjustment:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<SettlementOfSubcontractingAdjustmentVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(settlementOfSubcontractingAdjustmentService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增分包合同竣工结算调整
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongtiaozheng:ofSubcontractingAdjustment:add")
|
||||
@Log(title = "分包合同竣工结算调整", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody SettlementOfSubcontractingAdjustmentBo bo) {
|
||||
return toAjax(settlementOfSubcontractingAdjustmentService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改分包合同竣工结算调整
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongtiaozheng:ofSubcontractingAdjustment:edit")
|
||||
@Log(title = "分包合同竣工结算调整", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SettlementOfSubcontractingAdjustmentBo bo) {
|
||||
return toAjax(settlementOfSubcontractingAdjustmentService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除分包合同竣工结算调整
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("fenbaohetongtiaozheng:ofSubcontractingAdjustment:remove")
|
||||
@Log(title = "分包合同竣工结算调整", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(settlementOfSubcontractingAdjustmentService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,98 @@
|
||||
package org.dromara.xzd.settlement.fenbaohetongtiaozheng.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* 分包合同竣工结算调整对象 settlement_of_subcontracting_adjustment
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-15
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("settlement_of_subcontracting_adjustment")
|
||||
public class SettlementOfSubcontractingAdjustment extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据编号
|
||||
*/
|
||||
private String documentNo;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
private LocalDate documentDate;
|
||||
|
||||
/**
|
||||
* 决算单编号
|
||||
*/
|
||||
private Long finalAccountNo;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 合同编号)
|
||||
*/
|
||||
private String contractNo;
|
||||
|
||||
/**
|
||||
* 调整后决算金额
|
||||
*/
|
||||
private BigDecimal adjustedFinalAmount;
|
||||
|
||||
/**
|
||||
* 工程项目名称
|
||||
*/
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 调整说明
|
||||
*/
|
||||
private String adjustmentDescription;
|
||||
|
||||
/**
|
||||
* 备注信息
|
||||
*/
|
||||
private String remarks;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,96 @@
|
||||
package org.dromara.xzd.settlement.fenbaohetongtiaozheng.domain.bo;
|
||||
|
||||
import org.dromara.xzd.settlement.fenbaohetongtiaozheng.domain.SettlementOfSubcontractingAdjustment;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* 分包合同竣工结算调整业务对象 settlement_of_subcontracting_adjustment
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-15
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = SettlementOfSubcontractingAdjustment.class, reverseConvertGenerate = false)
|
||||
public class SettlementOfSubcontractingAdjustmentBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据编号
|
||||
*/
|
||||
private String documentNo;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
private LocalDate documentDate;
|
||||
|
||||
/**
|
||||
* 决算单编号
|
||||
*/
|
||||
private Long finalAccountNo;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 合同编号)
|
||||
*/
|
||||
private String contractNo;
|
||||
|
||||
/**
|
||||
* 调整后决算金额
|
||||
*/
|
||||
private BigDecimal adjustedFinalAmount;
|
||||
|
||||
/**
|
||||
* 工程项目名称
|
||||
*/
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 调整说明
|
||||
*/
|
||||
private String adjustmentDescription;
|
||||
|
||||
/**
|
||||
* 备注信息
|
||||
*/
|
||||
private String remarks;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,118 @@
|
||||
package org.dromara.xzd.settlement.fenbaohetongtiaozheng.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import org.dromara.xzd.settlement.fenbaohetongtiaozheng.domain.SettlementOfSubcontractingAdjustment;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 分包合同竣工结算调整视图对象 settlement_of_subcontracting_adjustment
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-15
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = SettlementOfSubcontractingAdjustment.class)
|
||||
public class SettlementOfSubcontractingAdjustmentVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据编号
|
||||
*/
|
||||
@ExcelProperty(value = "单据编号")
|
||||
private String documentNo;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
@ExcelProperty(value = "标题")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
@ExcelProperty(value = "单据日期")
|
||||
private LocalDate documentDate;
|
||||
|
||||
/**
|
||||
* 决算单编号
|
||||
*/
|
||||
@ExcelProperty(value = "决算单编号")
|
||||
private Long finalAccountNo;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
@ExcelProperty(value = "合同名称")
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 合同编号)
|
||||
*/
|
||||
@ExcelProperty(value = "合同编号)")
|
||||
private String contractNo;
|
||||
|
||||
/**
|
||||
* 调整后决算金额
|
||||
*/
|
||||
@ExcelProperty(value = "调整后决算金额")
|
||||
private BigDecimal adjustedFinalAmount;
|
||||
|
||||
/**
|
||||
* 工程项目名称
|
||||
*/
|
||||
@ExcelProperty(value = "工程项目名称")
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 调整说明
|
||||
*/
|
||||
@ExcelProperty(value = "调整说明")
|
||||
private String adjustmentDescription;
|
||||
|
||||
/**
|
||||
* 备注信息
|
||||
*/
|
||||
@ExcelProperty(value = "备注信息")
|
||||
private String remarks;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
@ExcelProperty(value = "文件ID")
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
@ExcelProperty(value = "审核状态")
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package org.dromara.xzd.settlement.fenbaohetongtiaozheng.mapper;
|
||||
|
||||
import org.dromara.xzd.settlement.fenbaohetongtiaozheng.domain.SettlementOfSubcontractingAdjustment;
|
||||
import org.dromara.xzd.settlement.fenbaohetongtiaozheng.domain.vo.SettlementOfSubcontractingAdjustmentVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 分包合同竣工结算调整Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-15
|
||||
*/
|
||||
public interface SettlementOfSubcontractingAdjustmentMapper extends BaseMapperPlus<SettlementOfSubcontractingAdjustment, SettlementOfSubcontractingAdjustmentVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,70 @@
|
||||
package org.dromara.xzd.settlement.fenbaohetongtiaozheng.service;
|
||||
|
||||
import org.dromara.xzd.settlement.fenbaohetongtiaozheng.domain.vo.SettlementOfSubcontractingAdjustmentVo;
|
||||
import org.dromara.xzd.settlement.fenbaohetongtiaozheng.domain.bo.SettlementOfSubcontractingAdjustmentBo;
|
||||
import org.dromara.xzd.settlement.fenbaohetongtiaozheng.domain.SettlementOfSubcontractingAdjustment;
|
||||
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-15
|
||||
*/
|
||||
public interface ISettlementOfSubcontractingAdjustmentService extends IService<SettlementOfSubcontractingAdjustment>{
|
||||
|
||||
/**
|
||||
* 查询分包合同竣工结算调整
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 分包合同竣工结算调整
|
||||
*/
|
||||
SettlementOfSubcontractingAdjustmentVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询分包合同竣工结算调整列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 分包合同竣工结算调整分页列表
|
||||
*/
|
||||
TableDataInfo<SettlementOfSubcontractingAdjustmentVo> queryPageList(SettlementOfSubcontractingAdjustmentBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的分包合同竣工结算调整列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 分包合同竣工结算调整列表
|
||||
*/
|
||||
List<SettlementOfSubcontractingAdjustmentVo> queryList(SettlementOfSubcontractingAdjustmentBo bo);
|
||||
|
||||
/**
|
||||
* 新增分包合同竣工结算调整
|
||||
*
|
||||
* @param bo 分包合同竣工结算调整
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(SettlementOfSubcontractingAdjustmentBo bo);
|
||||
|
||||
/**
|
||||
* 修改分包合同竣工结算调整
|
||||
*
|
||||
* @param bo 分包合同竣工结算调整
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(SettlementOfSubcontractingAdjustmentBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除分包合同竣工结算调整信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,170 @@
|
||||
package org.dromara.xzd.settlement.fenbaohetongtiaozheng.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
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.dromara.system.service.impl.SysOssServiceImpl;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjungong.domain.SettlementOfSubcontractingCompletion;
|
||||
import org.dromara.xzd.settlement.fenbaohetongjungong.domain.vo.SettlementOfSubcontractingCompletionVo;
|
||||
import org.dromara.xzd.utilS.AreaUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.xzd.settlement.fenbaohetongtiaozheng.domain.bo.SettlementOfSubcontractingAdjustmentBo;
|
||||
import org.dromara.xzd.settlement.fenbaohetongtiaozheng.domain.vo.SettlementOfSubcontractingAdjustmentVo;
|
||||
import org.dromara.xzd.settlement.fenbaohetongtiaozheng.domain.SettlementOfSubcontractingAdjustment;
|
||||
import org.dromara.xzd.settlement.fenbaohetongtiaozheng.mapper.SettlementOfSubcontractingAdjustmentMapper;
|
||||
import org.dromara.xzd.settlement.fenbaohetongtiaozheng.service.ISettlementOfSubcontractingAdjustmentService;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 分包合同竣工结算调整Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-15
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class SettlementOfSubcontractingAdjustmentServiceImpl extends ServiceImpl<SettlementOfSubcontractingAdjustmentMapper, SettlementOfSubcontractingAdjustment> implements ISettlementOfSubcontractingAdjustmentService {
|
||||
|
||||
private final SettlementOfSubcontractingAdjustmentMapper baseMapper;
|
||||
|
||||
private final AreaUtil areaUtil;
|
||||
|
||||
@Autowired
|
||||
private SysOssServiceImpl sysOssService;
|
||||
|
||||
/**
|
||||
* 查询分包合同竣工结算调整
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 分包合同竣工结算调整
|
||||
*/
|
||||
@Override
|
||||
public SettlementOfSubcontractingAdjustmentVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询分包合同竣工结算调整列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 分包合同竣工结算调整分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<SettlementOfSubcontractingAdjustmentVo> queryPageList(SettlementOfSubcontractingAdjustmentBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<SettlementOfSubcontractingAdjustment> lqw = buildQueryWrapper(bo);
|
||||
Page<SettlementOfSubcontractingAdjustmentVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的分包合同竣工结算调整列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 分包合同竣工结算调整列表
|
||||
*/
|
||||
@Override
|
||||
public List<SettlementOfSubcontractingAdjustmentVo> queryList(SettlementOfSubcontractingAdjustmentBo bo) {
|
||||
LambdaQueryWrapper<SettlementOfSubcontractingAdjustment> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<SettlementOfSubcontractingAdjustment> buildQueryWrapper(SettlementOfSubcontractingAdjustmentBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<SettlementOfSubcontractingAdjustment> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(SettlementOfSubcontractingAdjustment::getId);
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDocumentNo()), SettlementOfSubcontractingAdjustment::getDocumentNo, bo.getDocumentNo());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), SettlementOfSubcontractingAdjustment::getTitle, bo.getTitle());
|
||||
lqw.eq(bo.getDocumentDate() != null, SettlementOfSubcontractingAdjustment::getDocumentDate, bo.getDocumentDate());
|
||||
lqw.eq(bo.getFinalAccountNo() != null, SettlementOfSubcontractingAdjustment::getFinalAccountNo, bo.getFinalAccountNo());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getContractName()), SettlementOfSubcontractingAdjustment::getContractName, bo.getContractName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getContractNo()), SettlementOfSubcontractingAdjustment::getContractNo, bo.getContractNo());
|
||||
lqw.eq(bo.getAdjustedFinalAmount() != null, SettlementOfSubcontractingAdjustment::getAdjustedFinalAmount, bo.getAdjustedFinalAmount());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getProjectName()), SettlementOfSubcontractingAdjustment::getProjectName, bo.getProjectName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAdjustmentDescription()), SettlementOfSubcontractingAdjustment::getAdjustmentDescription, bo.getAdjustmentDescription());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), SettlementOfSubcontractingAdjustment::getRemarks, bo.getRemarks());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), SettlementOfSubcontractingAdjustment::getFileId, bo.getFileId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), SettlementOfSubcontractingAdjustment::getAuditStatus, bo.getAuditStatus());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增分包合同竣工结算调整
|
||||
*
|
||||
* @param bo 分包合同竣工结算调整
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(SettlementOfSubcontractingAdjustmentBo bo) {
|
||||
SettlementOfSubcontractingAdjustment add = MapstructUtils.convert(bo, SettlementOfSubcontractingAdjustment.class);
|
||||
validEntityBeforeSave(add);
|
||||
Long l = baseMapper.selectCount(new LambdaQueryWrapper<SettlementOfSubcontractingAdjustment>().gt(SettlementOfSubcontractingAdjustment::getCreateTime, LocalDate.now()));
|
||||
String s = areaUtil.generateDateBasedNumber();
|
||||
add.setDocumentNo(s+"-"+(l+1));
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改分包合同竣工结算调整
|
||||
*
|
||||
* @param bo 分包合同竣工结算调整
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(SettlementOfSubcontractingAdjustmentBo bo) {
|
||||
SettlementOfSubcontractingAdjustment update = MapstructUtils.convert(bo, SettlementOfSubcontractingAdjustment.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(SettlementOfSubcontractingAdjustment entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除分包合同竣工结算调整信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
|
||||
for (Long id : ids) {
|
||||
SettlementOfSubcontractingAdjustmentVo vo = baseMapper.selectVoById(id);
|
||||
if (vo != null){
|
||||
//删除附件
|
||||
if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){
|
||||
List<Long> deleteIds = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList();
|
||||
if (!deleteIds.isEmpty()) {
|
||||
sysOssService.deleteWithValidByIds(deleteIds, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user