机械合同名称结算,收付款
This commit is contained in:
@ -55,7 +55,7 @@ public interface TransConstant {
|
|||||||
String XZD_PURCHASE_CONTRACT_ID_TO_NAME = "xzd_purchase_contract_id_to_name";
|
String XZD_PURCHASE_CONTRACT_ID_TO_NAME = "xzd_purchase_contract_id_to_name";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 采购合同id转名称
|
* 机械合同id转名称
|
||||||
*/
|
*/
|
||||||
String XZD_PURCHASE_JXXIE_ID_TO_NAME = "xzd_purchase_contract_jixie_id_to_name";
|
String XZD_PURCHASE_JXXIE_ID_TO_NAME = "xzd_purchase_contract_jixie_id_to_name";
|
||||||
|
|
||||||
|
|||||||
@ -19,7 +19,9 @@ public enum XzdClassEnum {
|
|||||||
FENBAOHETONGBINGGENG_INFORMATION("xzd_subcontract_change"),//分包合同变更
|
FENBAOHETONGBINGGENG_INFORMATION("xzd_subcontract_change"),//分包合同变更
|
||||||
CAIGOUHETONG_INFORMATION("xzd_purchase_contract_alteration"), //采购变更合同
|
CAIGOUHETONG_INFORMATION("xzd_purchase_contract_alteration"), //采购变更合同
|
||||||
FENBAOHETONG_JINDU("xzd_settlement_of_subcontracting_contract"),//分包合同进度结算
|
FENBAOHETONG_JINDU("xzd_settlement_of_subcontracting_contract"),//分包合同进度结算
|
||||||
|
JIXIEHTTONG_JINDUJS("xzd_settlement_of_jixie_contract"),//机械合同进度结算
|
||||||
JIXIEHETONG_JINDU("xzd_contract_machinery"),//机械合同信息
|
JIXIEHETONG_JINDU("xzd_contract_machinery"),//机械合同信息
|
||||||
|
JXHTJG_COMPLETION("xzd_settlement_of_jixie_completion"),//机械合同竣工结算对象
|
||||||
JIXIEHETONGBIANG_XINXI("xzd_contract_machinery"),//机械合同信息变更
|
JIXIEHETONGBIANG_XINXI("xzd_contract_machinery"),//机械合同信息变更
|
||||||
PURCHASE_CONTRACT_INFORMATION("xzd_purchase_contract_information");//采购合同
|
PURCHASE_CONTRACT_INFORMATION("xzd_purchase_contract_information");//采购合同
|
||||||
|
|
||||||
|
|||||||
@ -6,6 +6,7 @@ public enum ZxdEnum {
|
|||||||
TYPE_CORRESPONDENT("客户","1"),
|
TYPE_CORRESPONDENT("客户","1"),
|
||||||
TYPE_SUPPLIER("供应商","2"),
|
TYPE_SUPPLIER("供应商","2"),
|
||||||
FENBAOHET("分包合同","2"),
|
FENBAOHET("分包合同","2"),
|
||||||
|
JIXIEHTTONG("机械合同","5"),
|
||||||
CAIGOUHET("采购合同","3"),
|
CAIGOUHET("采购合同","3"),
|
||||||
ZONHEFUWUHET("综合服务合同","4"),
|
ZONHEFUWUHET("综合服务合同","4"),
|
||||||
HETONGLEIXING("合同外清单","1"),
|
HETONGLEIXING("合同外清单","1"),
|
||||||
|
|||||||
@ -268,6 +268,8 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList {
|
|||||||
xzdYhxxBo.setYhId(bank.getId());
|
xzdYhxxBo.setYhId(bank.getId());
|
||||||
xzdYhxxBo.setMainId(id);
|
xzdYhxxBo.setMainId(id);
|
||||||
xzdYhxxBo.setSfmr(bank.getIsDefault());
|
xzdYhxxBo.setSfmr(bank.getIsDefault());
|
||||||
|
xzdYhxxBo.setAccount(bank.getAccount());
|
||||||
|
xzdYhxxBo.setKhhm(bank.getPersonName());
|
||||||
xzdYhxxBo.setType("2");
|
xzdYhxxBo.setType("2");
|
||||||
xzdYhxxes.add(xzdYhxxBo);
|
xzdYhxxes.add(xzdYhxxBo);
|
||||||
|
|
||||||
@ -494,6 +496,8 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList {
|
|||||||
xzdYhxxBo.setYhId(bank.getId());
|
xzdYhxxBo.setYhId(bank.getId());
|
||||||
xzdYhxxBo.setMainId(dto.getXzdCustomerinformation().getId());
|
xzdYhxxBo.setMainId(dto.getXzdCustomerinformation().getId());
|
||||||
xzdYhxxBo.setSfmr(bank.getIsDefault());
|
xzdYhxxBo.setSfmr(bank.getIsDefault());
|
||||||
|
xzdYhxxBo.setAccount(bank.getAccount());
|
||||||
|
xzdYhxxBo.setKhhm(bank.getPersonName());
|
||||||
xzdYhxxBo.setType("2");
|
xzdYhxxBo.setType("2");
|
||||||
xzdYhxxes.add(xzdYhxxBo);
|
xzdYhxxes.add(xzdYhxxBo);
|
||||||
}
|
}
|
||||||
@ -598,13 +602,16 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList {
|
|||||||
if ( dto.getXzdSettlementInfo() != null) {
|
if ( dto.getXzdSettlementInfo() != null) {
|
||||||
//处理开户银行
|
//处理开户银行
|
||||||
LambdaQueryWrapper<XzdYhxx> bankLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<XzdYhxx> bankLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
bankLambdaQueryWrapper.eq(XzdYhxx::getMainId,dto.getXzdSettlementInfo().getId());
|
bankLambdaQueryWrapper.eq(XzdYhxx::getMainId,dto.getXzdCustomerinformation().getId());
|
||||||
List<XzdYhxx> xzdYhxxList = xzdYhxxService.list(bankLambdaQueryWrapper);
|
List<XzdYhxx> xzdYhxxList = xzdYhxxService.list(bankLambdaQueryWrapper);
|
||||||
if (xzdYhxxList!= null && !xzdYhxxList.isEmpty()) {
|
if (xzdYhxxList!= null && !xzdYhxxList.isEmpty()) {
|
||||||
List<XzdSupplierOpenBank> openBanks = new ArrayList<>();
|
List<XzdSupplierOpenBank> openBanks = new ArrayList<>();
|
||||||
for (XzdYhxx yhxx : xzdYhxxList) {
|
for (XzdYhxx yhxx : xzdYhxxList) {
|
||||||
XzdSupplierOpenBank byId = xzdSupplierOpenBankService.getById(yhxx.getYhId());
|
XzdSupplierOpenBank byId = xzdSupplierOpenBankService.getById(yhxx.getYhId());
|
||||||
if (byId != null){
|
if (byId != null){
|
||||||
|
byId.setAccount(yhxx.getAccount());
|
||||||
|
byId.setIsDefault(yhxx.getSfmr());
|
||||||
|
byId.setPersonName(yhxx.getKhhm());
|
||||||
openBanks.add(byId);
|
openBanks.add(byId);
|
||||||
}
|
}
|
||||||
if ( yhxx != null && "1".equals(yhxx.getSfmr())){
|
if ( yhxx != null && "1".equals(yhxx.getSfmr())){
|
||||||
|
|||||||
@ -0,0 +1,134 @@
|
|||||||
|
package org.dromara.xzd.settlement.jixiehetongjiesuan.controller;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaMode;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import jakarta.validation.constraints.*;
|
||||||
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.bo.XzdContractMachineryBo;
|
||||||
|
import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.vo.XzdContractMachineryVo;
|
||||||
|
import org.dromara.xzd.contractManagement.jixiehetongxinxi.service.IXzdContractMachineryService;
|
||||||
|
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.jixiehetongjiesuan.domain.vo.XzdSettlementOfJixieContractVo;
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjiesuan.domain.bo.XzdSettlementOfJixieContractBo;
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjiesuan.service.IXzdSettlementOfJixieContractService;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机械合同进度结算
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-11-19
|
||||||
|
*/
|
||||||
|
@Validated
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/xzd/jixiehetongjiesuan/settlementOfJixieContract")
|
||||||
|
public class XzdSettlementOfJixieContractController extends BaseController {
|
||||||
|
|
||||||
|
private final IXzdSettlementOfJixieContractService xzdSettlementOfJixieContractService;
|
||||||
|
|
||||||
|
|
||||||
|
private final IXzdContractMachineryService xzdContractMachineryService;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询机械合同信息列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission(value = {"jixiehetongjiesuan:settlementOfJixieContract:add","jixiehetongjiesuan:settlementOfJixieContract:edit","jixiehetongjiesuan:settlementOfJixieContract:list"},mode = SaMode.OR)
|
||||||
|
@GetMapping("/getlist")
|
||||||
|
public TableDataInfo<XzdContractMachineryVo> list(XzdContractMachineryBo bo, PageQuery pageQuery) {
|
||||||
|
return xzdContractMachineryService.queryPageList(bo, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取机械合同信息详细信息
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
*/
|
||||||
|
@SaCheckPermission(value = {"jixiehetongjiesuan:settlementOfJixieContract:add","jixiehetongjiesuan:settlementOfJixieContract:edit","jixiehetongjiesuan:settlementOfJixieContract:list"},mode = SaMode.OR)
|
||||||
|
@GetMapping("/jxht/{id}")
|
||||||
|
public R<XzdContractMachineryVo> getInfojx(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable Long id) {
|
||||||
|
return R.ok(xzdContractMachineryService.queryById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询机械合同进度结算列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("jixiehetongjiesuan:settlementOfJixieContract:list")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo<XzdSettlementOfJixieContractVo> list(XzdSettlementOfJixieContractBo bo, PageQuery pageQuery) {
|
||||||
|
return xzdSettlementOfJixieContractService.queryPageList(bo, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出机械合同进度结算列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("jixiehetongjiesuan:settlementOfJixieContract:export")
|
||||||
|
@Log(title = "机械合同进度结算", businessType = BusinessType.EXPORT)
|
||||||
|
@PostMapping("/export")
|
||||||
|
public void export(XzdSettlementOfJixieContractBo bo, HttpServletResponse response) {
|
||||||
|
List<XzdSettlementOfJixieContractVo> list = xzdSettlementOfJixieContractService.queryList(bo);
|
||||||
|
ExcelUtil.exportExcel(list, "机械合同进度结算", XzdSettlementOfJixieContractVo.class, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取机械合同进度结算详细信息
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("jixiehetongjiesuan:settlementOfJixieContract:query")
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public R<XzdSettlementOfJixieContractVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable Long id) {
|
||||||
|
return R.ok(xzdSettlementOfJixieContractService.queryById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增机械合同进度结算
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("jixiehetongjiesuan:settlementOfJixieContract:add")
|
||||||
|
@Log(title = "机械合同进度结算", businessType = BusinessType.INSERT)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PostMapping()
|
||||||
|
public R<Void> add(@Validated(AddGroup.class) @RequestBody XzdSettlementOfJixieContractBo bo) {
|
||||||
|
return toAjax(xzdSettlementOfJixieContractService.insertByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改机械合同进度结算
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("jixiehetongjiesuan:settlementOfJixieContract:edit")
|
||||||
|
@Log(title = "机械合同进度结算", businessType = BusinessType.UPDATE)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PutMapping()
|
||||||
|
public R<Void> edit(@Validated(EditGroup.class) @RequestBody XzdSettlementOfJixieContractBo bo) {
|
||||||
|
return toAjax(xzdSettlementOfJixieContractService.updateByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除机械合同进度结算
|
||||||
|
*
|
||||||
|
* @param ids 主键串
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("jixiehetongjiesuan:settlementOfJixieContract:remove")
|
||||||
|
@Log(title = "机械合同进度结算", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{ids}")
|
||||||
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||||
|
@PathVariable Long[] ids) {
|
||||||
|
return toAjax(xzdSettlementOfJixieContractService.deleteWithValidByIds(List.of(ids), true));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,173 @@
|
|||||||
|
package org.dromara.xzd.settlement.jixiehetongjiesuan.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_settlement_of_jixie_contract
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-11-19
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName("xzd_settlement_of_jixie_contract")
|
||||||
|
public class XzdSettlementOfJixieContract 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 Long approvalAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计量结束
|
||||||
|
*/
|
||||||
|
private LocalDate measurementEnd;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 结算单位
|
||||||
|
*/
|
||||||
|
private BigDecimal 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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组织id
|
||||||
|
*/
|
||||||
|
private Long deptId;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,194 @@
|
|||||||
|
package org.dromara.xzd.settlement.jixiehetongjiesuan.domain.bo;
|
||||||
|
|
||||||
|
import org.dromara.xzd.settlement.domain.bo.XzdAlterationInventoryBo;
|
||||||
|
import org.dromara.xzd.settlement.domain.bo.XzdContractInventoryBo;
|
||||||
|
import org.dromara.xzd.settlement.domain.bo.XzdJsDeductionItemsBo;
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjiesuan.domain.XzdSettlementOfJixieContract;
|
||||||
|
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;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机械合同进度结算业务对象 xzd_settlement_of_jixie_contract
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-11-19
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@AutoMapper(target = XzdSettlementOfJixieContract.class, reverseConvertGenerate = false)
|
||||||
|
public class XzdSettlementOfJixieContractBo extends BaseEntity {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据编码
|
||||||
|
*/
|
||||||
|
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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计周期
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "统计周期不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
|
private String statisticPeriod;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计量开始
|
||||||
|
*/
|
||||||
|
private LocalDate measurementStart;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目
|
||||||
|
*/
|
||||||
|
private Long project;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批金额
|
||||||
|
*/
|
||||||
|
@NotNull(message = "审批金额不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
|
private Long approvalAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计量结束
|
||||||
|
*/
|
||||||
|
private LocalDate measurementEnd;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 结算单位
|
||||||
|
*/
|
||||||
|
private BigDecimal 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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组织id
|
||||||
|
*/
|
||||||
|
private Long deptId;
|
||||||
|
|
||||||
|
private LocalDate startDate;
|
||||||
|
|
||||||
|
private LocalDate endDate;
|
||||||
|
|
||||||
|
// 奖惩与扣款
|
||||||
|
private List<XzdJsDeductionItemsBo> jlykk;
|
||||||
|
// 合同内清单
|
||||||
|
private List<XzdContractInventoryBo> htnqd;
|
||||||
|
// 变更增加清单
|
||||||
|
|
||||||
|
private List<XzdAlterationInventoryBo> bgzjqd;
|
||||||
|
// 合同外清单
|
||||||
|
private List<XzdContractInventoryBo> htwqd;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,252 @@
|
|||||||
|
package org.dromara.xzd.settlement.jixiehetongjiesuan.domain.vo;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
import org.dromara.common.translation.annotation.Translation;
|
||||||
|
import org.dromara.common.translation.constant.TransConstant;
|
||||||
|
import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.XzdEquipmentLeasing;
|
||||||
|
import org.dromara.xzd.settlement.domain.vo.XzdAlterationInventoryVo;
|
||||||
|
import org.dromara.xzd.settlement.domain.vo.XzdContractInventoryVo;
|
||||||
|
import org.dromara.xzd.settlement.domain.vo.XzdJsDeductionItemsVo;
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjiesuan.domain.XzdSettlementOfJixieContract;
|
||||||
|
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;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机械合同进度结算视图对象 xzd_settlement_of_jixie_contract
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-11-19
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
@AutoMapper(target = XzdSettlementOfJixieContract.class)
|
||||||
|
public class XzdSettlementOfJixieContractVo 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 = "合同编码名称")
|
||||||
|
@Translation(type = TransConstant.XZD_PURCHASE_JXXIE_ID_TO_NAME, mapper = "contractCode")
|
||||||
|
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 = "项目名称")
|
||||||
|
@Translation(type = TransConstant.XZD_PROJECT_ID_TO_NAME, mapper = "project")
|
||||||
|
private String projectName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "审批金额")
|
||||||
|
private Long approvalAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计量结束
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "计量结束")
|
||||||
|
private LocalDate measurementEnd;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 结算单位
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "结算单位 ")
|
||||||
|
private BigDecimal settlementUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 结算单位 客户信息名称
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "结算单位 ")
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "settlementUnit")
|
||||||
|
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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组织id
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "组织id")
|
||||||
|
private Long deptId;
|
||||||
|
|
||||||
|
// 奖惩与扣款
|
||||||
|
private List<XzdJsDeductionItemsVo> jlykk;
|
||||||
|
// 合同内清单
|
||||||
|
private List<XzdContractInventoryVo> htnqd;
|
||||||
|
// 变更增加清单
|
||||||
|
|
||||||
|
private List<XzdAlterationInventoryVo> bgzjqd;
|
||||||
|
// 合同外清单
|
||||||
|
private List<XzdContractInventoryVo> htwqd;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备租聘列表
|
||||||
|
*/
|
||||||
|
|
||||||
|
private List<XzdEquipmentLeasing> jqlist;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
package org.dromara.xzd.settlement.jixiehetongjiesuan.mapper;
|
||||||
|
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjiesuan.domain.XzdSettlementOfJixieContract;
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjiesuan.domain.vo.XzdSettlementOfJixieContractVo;
|
||||||
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机械合同进度结算Mapper接口
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-11-19
|
||||||
|
*/
|
||||||
|
public interface XzdSettlementOfJixieContractMapper extends BaseMapperPlus<XzdSettlementOfJixieContract, XzdSettlementOfJixieContractVo> {
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,70 @@
|
|||||||
|
package org.dromara.xzd.settlement.jixiehetongjiesuan.service;
|
||||||
|
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjiesuan.domain.vo.XzdSettlementOfJixieContractVo;
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjiesuan.domain.bo.XzdSettlementOfJixieContractBo;
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjiesuan.domain.XzdSettlementOfJixieContract;
|
||||||
|
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-11-19
|
||||||
|
*/
|
||||||
|
public interface IXzdSettlementOfJixieContractService extends IService<XzdSettlementOfJixieContract>{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询机械合同进度结算
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
* @return 机械合同进度结算
|
||||||
|
*/
|
||||||
|
XzdSettlementOfJixieContractVo queryById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询机械合同进度结算列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return 机械合同进度结算分页列表
|
||||||
|
*/
|
||||||
|
TableDataInfo<XzdSettlementOfJixieContractVo> queryPageList(XzdSettlementOfJixieContractBo bo, PageQuery pageQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询符合条件的机械合同进度结算列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @return 机械合同进度结算列表
|
||||||
|
*/
|
||||||
|
List<XzdSettlementOfJixieContractVo> queryList(XzdSettlementOfJixieContractBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增机械合同进度结算
|
||||||
|
*
|
||||||
|
* @param bo 机械合同进度结算
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
Boolean insertByBo(XzdSettlementOfJixieContractBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改机械合同进度结算
|
||||||
|
*
|
||||||
|
* @param bo 机械合同进度结算
|
||||||
|
* @return 是否修改成功
|
||||||
|
*/
|
||||||
|
Boolean updateByBo(XzdSettlementOfJixieContractBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验并批量删除机械合同进度结算信息
|
||||||
|
*
|
||||||
|
* @param ids 待删除的主键集合
|
||||||
|
* @param isValid 是否进行有效性校验
|
||||||
|
* @return 是否删除成功
|
||||||
|
*/
|
||||||
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||||
|
}
|
||||||
@ -0,0 +1,402 @@
|
|||||||
|
package org.dromara.xzd.settlement.jixiehetongjiesuan.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
|
||||||
|
import org.dromara.common.core.domain.event.ProcessEvent;
|
||||||
|
import org.dromara.common.core.domain.event.ProcessTaskEvent;
|
||||||
|
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.common.utils.BatchNumberGenerator;
|
||||||
|
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||||
|
import org.dromara.xzd.contractManagement.fenbaohetongxinxi.domain.vo.XzdSubcontractVo;
|
||||||
|
import org.dromara.xzd.contractManagement.fenbaohetongxinxi.service.IXzdSubcontractService;
|
||||||
|
import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.XzdEquipmentLeasing;
|
||||||
|
import org.dromara.xzd.contractManagement.jixiehetongxinxi.service.IXzdEquipmentLeasingService;
|
||||||
|
import org.dromara.xzd.enums.XzdClassEnum;
|
||||||
|
import org.dromara.xzd.enums.ZxdEnum;
|
||||||
|
import org.dromara.xzd.settlement.domain.XzdAlterationInventory;
|
||||||
|
import org.dromara.xzd.settlement.domain.XzdContractInventory;
|
||||||
|
import org.dromara.xzd.settlement.domain.XzdJsDeductionItems;
|
||||||
|
import org.dromara.xzd.settlement.domain.bo.XzdAlterationInventoryBo;
|
||||||
|
import org.dromara.xzd.settlement.domain.bo.XzdContractInventoryBo;
|
||||||
|
import org.dromara.xzd.settlement.domain.bo.XzdJsDeductionItemsBo;
|
||||||
|
import org.dromara.xzd.settlement.domain.vo.XzdAlterationInventoryVo;
|
||||||
|
import org.dromara.xzd.settlement.domain.vo.XzdContractInventoryVo;
|
||||||
|
import org.dromara.xzd.settlement.domain.vo.XzdJsDeductionItemsVo;
|
||||||
|
import org.dromara.xzd.settlement.fenbaohetongjingdu.domain.SettlementOfSubcontractingContract;
|
||||||
|
import org.dromara.xzd.settlement.fenbaohetongjingdu.domain.vo.SettlementOfSubcontractingContractVo;
|
||||||
|
import org.dromara.xzd.settlement.service.IXzdAlterationInventoryService;
|
||||||
|
import org.dromara.xzd.settlement.service.IXzdContractInventoryService;
|
||||||
|
import org.dromara.xzd.settlement.service.IXzdJsDeductionItemsService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.event.EventListener;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjiesuan.domain.bo.XzdSettlementOfJixieContractBo;
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjiesuan.domain.vo.XzdSettlementOfJixieContractVo;
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjiesuan.domain.XzdSettlementOfJixieContract;
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjiesuan.mapper.XzdSettlementOfJixieContractMapper;
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjiesuan.service.IXzdSettlementOfJixieContractService;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机械合同进度结算Service业务层处理
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-11-19
|
||||||
|
*/
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Service
|
||||||
|
@Slf4j
|
||||||
|
public class XzdSettlementOfJixieContractServiceImpl extends ServiceImpl<XzdSettlementOfJixieContractMapper, XzdSettlementOfJixieContract> implements IXzdSettlementOfJixieContractService {
|
||||||
|
|
||||||
|
private final XzdSettlementOfJixieContractMapper baseMapper;
|
||||||
|
|
||||||
|
private final IXzdSubcontractService iXzdSubcontractService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IXzdJsDeductionItemsService deductionItemsService;
|
||||||
|
|
||||||
|
|
||||||
|
private final IXzdContractInventoryService iXzdContractInventoryService;
|
||||||
|
|
||||||
|
|
||||||
|
private final IXzdAlterationInventoryService iXzdAlterationInventoryService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SysOssServiceImpl sysOssService;
|
||||||
|
|
||||||
|
private final IXzdEquipmentLeasingService xzdEquipmentLeasingService;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询机械合同进度结算
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
* @return 机械合同进度结算
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public XzdSettlementOfJixieContractVo queryById(Long id){
|
||||||
|
XzdSettlementOfJixieContractVo vo = baseMapper.selectVoById(id);
|
||||||
|
saveValue(vo);
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void saveValue(XzdSettlementOfJixieContractVo item) {
|
||||||
|
|
||||||
|
// 机械
|
||||||
|
List<XzdEquipmentLeasing> xzdEquipmentLeasings = xzdEquipmentLeasingService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdEquipmentLeasing>().eq(XzdEquipmentLeasing::getRelevanceId, item.getContractCode()));
|
||||||
|
if (xzdEquipmentLeasings != null && xzdEquipmentLeasings.size() > 0) {
|
||||||
|
item.setJqlist(xzdEquipmentLeasings);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 合同内清单
|
||||||
|
List<XzdContractInventory> xzdContractInventories = iXzdContractInventoryService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdContractInventory>().eq(XzdContractInventory::getPrimaryMeterId, item.getId()).eq(XzdContractInventory::getType, ZxdEnum.HETONGLEIXINGNEI.getTypeValue()));
|
||||||
|
if (xzdContractInventories != null && xzdContractInventories.size() > 0) {
|
||||||
|
item.setHtnqd(MapstructUtils.convert(xzdContractInventories, XzdContractInventoryVo.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 合同外清单
|
||||||
|
List<XzdContractInventory> xzdContractInventories1 = iXzdContractInventoryService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdContractInventory>().eq(XzdContractInventory::getPrimaryMeterId, item.getId()).eq(XzdContractInventory::getType, ZxdEnum.HETONGLEIXING.getTypeValue()));
|
||||||
|
if (xzdContractInventories1 != null && xzdContractInventories1.size() > 0) {
|
||||||
|
item.setHtwqd(MapstructUtils.convert(xzdContractInventories1, XzdContractInventoryVo.class));
|
||||||
|
}
|
||||||
|
// 变更清单
|
||||||
|
|
||||||
|
List<XzdAlterationInventory> temp = iXzdAlterationInventoryService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdAlterationInventory>().eq(XzdAlterationInventory::getPrimaryMeterId, item.getId()));
|
||||||
|
if (temp != null && temp.size() > 0){
|
||||||
|
item.setBgzjqd(MapstructUtils.convert(temp, XzdAlterationInventoryVo.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 奖惩
|
||||||
|
List<XzdJsDeductionItems> xzdJsDeductionItems = deductionItemsService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdJsDeductionItems>().eq(XzdJsDeductionItems::getMainDocId, item.getId()));
|
||||||
|
if (xzdJsDeductionItems != null && xzdJsDeductionItems.size() > 0) {
|
||||||
|
item.setJlykk(MapstructUtils.convert(xzdJsDeductionItems, XzdJsDeductionItemsVo.class));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询机械合同进度结算列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return 机械合同进度结算分页列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<XzdSettlementOfJixieContractVo> queryPageList(XzdSettlementOfJixieContractBo bo, PageQuery pageQuery) {
|
||||||
|
LambdaQueryWrapper<XzdSettlementOfJixieContract> lqw = buildQueryWrapper(bo);
|
||||||
|
Page<XzdSettlementOfJixieContractVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||||
|
return TableDataInfo.build(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询符合条件的机械合同进度结算列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @return 机械合同进度结算列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<XzdSettlementOfJixieContractVo> queryList(XzdSettlementOfJixieContractBo bo) {
|
||||||
|
LambdaQueryWrapper<XzdSettlementOfJixieContract> lqw = buildQueryWrapper(bo);
|
||||||
|
return baseMapper.selectVoList(lqw);
|
||||||
|
}
|
||||||
|
|
||||||
|
private LambdaQueryWrapper<XzdSettlementOfJixieContract> buildQueryWrapper(XzdSettlementOfJixieContractBo bo) {
|
||||||
|
Map<String, Object> params = bo.getParams();
|
||||||
|
LambdaQueryWrapper<XzdSettlementOfJixieContract> lqw = Wrappers.lambdaQuery();
|
||||||
|
lqw.orderByDesc(XzdSettlementOfJixieContract::getId);
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getDocumentCode()), XzdSettlementOfJixieContract::getDocumentCode, bo.getDocumentCode());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdSettlementOfJixieContract::getTitle, bo.getTitle());
|
||||||
|
lqw.ge(bo.getStartDate() != null, XzdSettlementOfJixieContract::getDocumentDate, bo.getStartDate());
|
||||||
|
lqw.le(bo.getEndDate() != null, XzdSettlementOfJixieContract::getDocumentDate, bo.getEndDate());
|
||||||
|
|
||||||
|
lqw.eq(bo.getDocumentDate() != null, XzdSettlementOfJixieContract::getDocumentDate, bo.getDocumentDate());
|
||||||
|
lqw.eq(bo.getContractCode() != null, XzdSettlementOfJixieContract::getContractCode, bo.getContractCode());
|
||||||
|
lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdSettlementOfJixieContract::getContractName, bo.getContractName());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getStatisticPeriod()), XzdSettlementOfJixieContract::getStatisticPeriod, bo.getStatisticPeriod());
|
||||||
|
lqw.eq(bo.getMeasurementStart() != null, XzdSettlementOfJixieContract::getMeasurementStart, bo.getMeasurementStart());
|
||||||
|
lqw.eq(bo.getProject() != null, XzdSettlementOfJixieContract::getProject, bo.getProject());
|
||||||
|
lqw.eq(bo.getApprovalAmount() != null, XzdSettlementOfJixieContract::getApprovalAmount, bo.getApprovalAmount());
|
||||||
|
lqw.eq(bo.getMeasurementEnd() != null, XzdSettlementOfJixieContract::getMeasurementEnd, bo.getMeasurementEnd());
|
||||||
|
lqw.eq(bo.getSettlementUnit() != null, XzdSettlementOfJixieContract::getSettlementUnit, bo.getSettlementUnit());
|
||||||
|
lqw.eq(bo.getContractAmount() != null, XzdSettlementOfJixieContract::getContractAmount, bo.getContractAmount());
|
||||||
|
lqw.eq(bo.getCumulativeSettlementAmountIncludeCurrent() != null, XzdSettlementOfJixieContract::getCumulativeSettlementAmountIncludeCurrent, bo.getCumulativeSettlementAmountIncludeCurrent());
|
||||||
|
lqw.eq(bo.getCumulativeSettlementNotAmountIncludeCurrent() != null, XzdSettlementOfJixieContract::getCumulativeSettlementNotAmountIncludeCurrent, bo.getCumulativeSettlementNotAmountIncludeCurrent());
|
||||||
|
lqw.eq(bo.getCurrentSettlementRatio() != null, XzdSettlementOfJixieContract::getCurrentSettlementRatio, bo.getCurrentSettlementRatio());
|
||||||
|
lqw.eq(bo.getSettlementRatioUntilCurrent() != null, XzdSettlementOfJixieContract::getSettlementRatioUntilCurrent, bo.getSettlementRatioUntilCurrent());
|
||||||
|
lqw.eq(bo.getSettlementRatioExcludeCurrent() != null, XzdSettlementOfJixieContract::getSettlementRatioExcludeCurrent, bo.getSettlementRatioExcludeCurrent());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), XzdSettlementOfJixieContract::getRemarks, bo.getRemarks());
|
||||||
|
lqw.eq(bo.getContractTaxInclusiveAmount() != null, XzdSettlementOfJixieContract::getContractTaxInclusiveAmount, bo.getContractTaxInclusiveAmount());
|
||||||
|
lqw.eq(bo.getContractTaxExclusiveAmount() != null, XzdSettlementOfJixieContract::getContractTaxExclusiveAmount, bo.getContractTaxExclusiveAmount());
|
||||||
|
lqw.eq(bo.getCumulativeSettlementAmount() != null, XzdSettlementOfJixieContract::getCumulativeSettlementAmount, bo.getCumulativeSettlementAmount());
|
||||||
|
lqw.eq(bo.getCurrentDeductionAmount() != null, XzdSettlementOfJixieContract::getCurrentDeductionAmount, bo.getCurrentDeductionAmount());
|
||||||
|
lqw.eq(bo.getCurrentRewardAmount() != null, XzdSettlementOfJixieContract::getCurrentRewardAmount, bo.getCurrentRewardAmount());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getRealtimeRefresh()), XzdSettlementOfJixieContract::getRealtimeRefresh, bo.getRealtimeRefresh());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdSettlementOfJixieContract::getFileId, bo.getFileId());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XzdSettlementOfJixieContract::getAuditStatus, bo.getAuditStatus());
|
||||||
|
lqw.eq(bo.getDeptId() != null, XzdSettlementOfJixieContract::getDeptId, bo.getDeptId());
|
||||||
|
return lqw;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增机械合同进度结算
|
||||||
|
*
|
||||||
|
* @param bo 机械合同进度结算
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean insertByBo(XzdSettlementOfJixieContractBo bo) {
|
||||||
|
XzdSettlementOfJixieContract add = MapstructUtils.convert(bo, XzdSettlementOfJixieContract.class);
|
||||||
|
validEntityBeforeSave(add);
|
||||||
|
|
||||||
|
String banBen = BatchNumberGenerator.generateBatchNumber("JXHTJD-");
|
||||||
|
|
||||||
|
add.setDocumentCode(banBen);
|
||||||
|
boolean flag = baseMapper.insert(add) > 0;
|
||||||
|
if (flag) {
|
||||||
|
bo.setId(add.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 合同内清单
|
||||||
|
List<XzdContractInventoryBo> htnqd = bo.getHtnqd();
|
||||||
|
if (htnqd != null && htnqd.size() > 0) {
|
||||||
|
htnqd.forEach(temp ->{
|
||||||
|
temp.setContractType(ZxdEnum.JIXIEHTTONG.getTypeValue());
|
||||||
|
temp.setType(ZxdEnum.HETONGLEIXINGNEI.getTypeValue());
|
||||||
|
temp.setPrimaryMeterId(add.getId());
|
||||||
|
});
|
||||||
|
iXzdContractInventoryService.saveBatch(MapstructUtils.convert(htnqd, XzdContractInventory.class));
|
||||||
|
}
|
||||||
|
// 合同外清单
|
||||||
|
List<XzdContractInventoryBo> htwqd = bo.getHtwqd();
|
||||||
|
if (htwqd != null && htwqd.size() > 0) {
|
||||||
|
htwqd.forEach(temp ->{
|
||||||
|
temp.setContractType(ZxdEnum.JIXIEHTTONG.getTypeValue());
|
||||||
|
temp.setType(ZxdEnum.HETONGLEIXING.getTypeValue());
|
||||||
|
temp.setPrimaryMeterId(add.getId());
|
||||||
|
});
|
||||||
|
iXzdContractInventoryService.saveBatch(MapstructUtils.convert(htwqd, XzdContractInventory.class));
|
||||||
|
}
|
||||||
|
// 变更清单
|
||||||
|
List<XzdAlterationInventoryBo> bgzjqd = bo.getBgzjqd();
|
||||||
|
if (bgzjqd != null && bgzjqd.size() > 0) {
|
||||||
|
bgzjqd.forEach(temp ->{
|
||||||
|
temp.setContractType(ZxdEnum.JIXIEHTTONG.getTypeValue());
|
||||||
|
temp.setPrimaryMeterId(add.getId());
|
||||||
|
});
|
||||||
|
iXzdAlterationInventoryService.saveBatch(MapstructUtils.convert(bgzjqd, XzdAlterationInventory.class));
|
||||||
|
}
|
||||||
|
// 奖惩
|
||||||
|
String tableName = XzdClassEnum.JIXIEHTTONG_JINDUJS.getClassName();
|
||||||
|
List<XzdJsDeductionItemsBo> jlykk = bo.getJlykk();
|
||||||
|
if (jlykk != null && jlykk.size() > 0){
|
||||||
|
jlykk.forEach(temp ->{
|
||||||
|
temp.setTableName(tableName);
|
||||||
|
temp.setMainDocId(add.getId());
|
||||||
|
});
|
||||||
|
deductionItemsService.saveBatch(MapstructUtils.convert(jlykk, XzdJsDeductionItems.class));
|
||||||
|
}
|
||||||
|
return flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改机械合同进度结算
|
||||||
|
*
|
||||||
|
* @param bo 机械合同进度结算
|
||||||
|
* @return 是否修改成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean updateByBo(XzdSettlementOfJixieContractBo bo) {
|
||||||
|
XzdSettlementOfJixieContract update = MapstructUtils.convert(bo, XzdSettlementOfJixieContract.class);
|
||||||
|
validEntityBeforeSave(update);
|
||||||
|
|
||||||
|
// 变更清单
|
||||||
|
iXzdAlterationInventoryService.getBaseMapper().delete(new LambdaQueryWrapper<XzdAlterationInventory>().eq(XzdAlterationInventory::getPrimaryMeterId, bo.getId()));
|
||||||
|
List<XzdAlterationInventoryBo> bgzjqd = bo.getBgzjqd();
|
||||||
|
if (bgzjqd != null && bgzjqd.size() > 0) {
|
||||||
|
bgzjqd.forEach(temp ->{
|
||||||
|
temp.setContractType(ZxdEnum.JIXIEHTTONG.getTypeValue());
|
||||||
|
temp.setPrimaryMeterId(update.getId());
|
||||||
|
});
|
||||||
|
iXzdAlterationInventoryService.saveBatch(MapstructUtils.convert(bgzjqd, XzdAlterationInventory.class));
|
||||||
|
}
|
||||||
|
// 合同内清单
|
||||||
|
List<XzdContractInventoryBo> htnqd = bo.getHtnqd();
|
||||||
|
iXzdContractInventoryService.getBaseMapper().delete(new LambdaQueryWrapper<XzdContractInventory>().eq(XzdContractInventory::getPrimaryMeterId, bo.getId()).eq(XzdContractInventory::getContractType, ZxdEnum.HETONGLEIXINGNEI.getTypeValue()));
|
||||||
|
if (htnqd != null && htnqd.size() > 0) {
|
||||||
|
htnqd.forEach(temp ->{
|
||||||
|
temp.setContractType(ZxdEnum.JIXIEHTTONG.getTypeValue());
|
||||||
|
temp.setType(ZxdEnum.HETONGLEIXINGNEI.getTypeValue());
|
||||||
|
temp.setPrimaryMeterId(update.getId());
|
||||||
|
});
|
||||||
|
iXzdContractInventoryService.saveBatch(MapstructUtils.convert(htnqd, XzdContractInventory.class));
|
||||||
|
}
|
||||||
|
// 合同外清单
|
||||||
|
List<XzdContractInventoryBo> htwqd = bo.getHtwqd();
|
||||||
|
iXzdContractInventoryService.getBaseMapper().delete(new LambdaQueryWrapper<XzdContractInventory>().eq(XzdContractInventory::getPrimaryMeterId, bo.getId()).eq(XzdContractInventory::getContractType,ZxdEnum.HETONGLEIXING.getTypeValue()));
|
||||||
|
if (htwqd != null && htwqd.size() > 0) {
|
||||||
|
htwqd.forEach(temp ->{
|
||||||
|
temp.setContractType(ZxdEnum.JIXIEHTTONG.getTypeValue());
|
||||||
|
temp.setType(ZxdEnum.HETONGLEIXING.getTypeValue());
|
||||||
|
temp.setPrimaryMeterId(update.getId());
|
||||||
|
});
|
||||||
|
iXzdContractInventoryService.saveBatch(MapstructUtils.convert(htwqd, XzdContractInventory.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 奖惩
|
||||||
|
String tableName = XzdClassEnum.JIXIEHTTONG_JINDUJS.getClassName();
|
||||||
|
List<XzdJsDeductionItemsBo> jlykk = bo.getJlykk();
|
||||||
|
HashMap<String, Object> tempMap = new HashMap<>();
|
||||||
|
tempMap.put("main_doc_id", update.getId());
|
||||||
|
deductionItemsService.getBaseMapper().deleteByMap(tempMap);
|
||||||
|
if (jlykk != null && jlykk.size() > 0){
|
||||||
|
jlykk.forEach(temp ->{
|
||||||
|
temp.setTableName(tableName);
|
||||||
|
temp.setMainDocId(update.getId());
|
||||||
|
});
|
||||||
|
deductionItemsService.saveBatch(MapstructUtils.convert(jlykk, XzdJsDeductionItems.class));
|
||||||
|
}
|
||||||
|
return baseMapper.updateById(update) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存前的数据校验
|
||||||
|
*/
|
||||||
|
private void validEntityBeforeSave(XzdSettlementOfJixieContract entity){
|
||||||
|
//TODO 做一些数据校验,如唯一约束
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验并批量删除机械合同进度结算信息
|
||||||
|
*
|
||||||
|
* @param ids 待删除的主键集合
|
||||||
|
* @param isValid 是否进行有效性校验
|
||||||
|
* @return 是否删除成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||||
|
if(isValid){
|
||||||
|
//TODO 做一些业务上的校验,判断是否需要校验
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for (Long id : ids) {
|
||||||
|
XzdSettlementOfJixieContractVo 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
iXzdAlterationInventoryService.getBaseMapper().delete(new LambdaQueryWrapper<XzdAlterationInventory>().in(XzdAlterationInventory::getPrimaryMeterId, ids));
|
||||||
|
// 合同内清单
|
||||||
|
iXzdContractInventoryService.getBaseMapper().delete(new LambdaQueryWrapper<XzdContractInventory>().in (XzdContractInventory::getPrimaryMeterId, ids));
|
||||||
|
deductionItemsService.remove(new LambdaQueryWrapper<XzdJsDeductionItems>().in(XzdJsDeductionItems::getMainDocId, ids));
|
||||||
|
|
||||||
|
return baseMapper.deleteByIds(ids) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
|
||||||
|
* 正常使用只需#processEvent.flowCode=='leave1'
|
||||||
|
* 示例为了方便则使用startsWith匹配了全部示例key
|
||||||
|
*
|
||||||
|
* @param processEvent 参数
|
||||||
|
*/
|
||||||
|
@org.springframework.context.event.EventListener(condition = "#processEvent.flowCode.endsWith('xzdjxhtjdjs')")
|
||||||
|
public void processPlansHandlErequipmentList(ProcessEvent processEvent) {
|
||||||
|
log.info("机械合同进度结算审核任务执行了{}", processEvent.toString());
|
||||||
|
String id = processEvent.getBusinessId();
|
||||||
|
XzdSettlementOfJixieContract vo = baseMapper.selectById(Long.valueOf(id));
|
||||||
|
if (vo == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
vo.setAuditStatus(processEvent.getStatus());
|
||||||
|
this.updateById(vo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 执行任务创建监听
|
||||||
|
* 示例:也可通过 @EventListener(condition = "#processTaskEvent.flowCode=='leave1'")进行判断
|
||||||
|
* 在方法中判断流程节点key
|
||||||
|
* if ("xxx".equals(processTaskEvent.getNodeCode())) {
|
||||||
|
* //执行业务逻辑
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* @param processTaskEvent 参数
|
||||||
|
*/
|
||||||
|
@org.springframework.context.event.EventListener(condition = "#processTaskEvent.flowCode.endsWith('xzdjxhtjdjs')")
|
||||||
|
public void processTaskPlansHandlerEquipmentList(ProcessTaskEvent processTaskEvent) {
|
||||||
|
log.info("机械合同进度结算审核任务创建了{}", processTaskEvent.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监听删除流程事件
|
||||||
|
* 正常使用只需#processDeleteEvent.flowCode=='leave1'
|
||||||
|
* 示例为了方便则使用startsWith匹配了全部示例key
|
||||||
|
*
|
||||||
|
* @param processDeleteEvent 参数
|
||||||
|
*/
|
||||||
|
@EventListener(condition = "#processDeleteEvent.flowCode.endsWith('xzdjxhtjdjs')")
|
||||||
|
public void processDeletePlansHandlerEquipmentList(ProcessDeleteEvent processDeleteEvent) {
|
||||||
|
log.info("机械合同进度结算删除流程事件,机械合同进度结算审核任务执行了{}", processDeleteEvent.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,136 @@
|
|||||||
|
package org.dromara.xzd.settlement.jixiehetongjungong.controller;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaMode;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import jakarta.validation.constraints.*;
|
||||||
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.bo.XzdContractMachineryBo;
|
||||||
|
import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.vo.XzdContractMachineryVo;
|
||||||
|
import org.dromara.xzd.contractManagement.jixiehetongxinxi.service.IXzdContractMachineryService;
|
||||||
|
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.jixiehetongjungong.domain.vo.XzdSettlementOfJixieCompletionVo;
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjungong.domain.bo.XzdSettlementOfJixieCompletionBo;
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjungong.service.IXzdSettlementOfJixieCompletionService;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机械合同竣工结算
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-11-19
|
||||||
|
*/
|
||||||
|
@Validated
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/jixiehetongjungong/settlementOfJixieCompletion")
|
||||||
|
public class XzdSettlementOfJixieCompletionController extends BaseController {
|
||||||
|
|
||||||
|
private final IXzdSettlementOfJixieCompletionService xzdSettlementOfJixieCompletionService;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private final IXzdContractMachineryService xzdContractMachineryService;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询机械合同信息列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission(value = {"jixiehetongjungong:settlementOfJixieCompletion:add","jixiehetongjungong:settlementOfJixieCompletion:edit","jixiehetongjungong:settlementOfJixieCompletion:list"},mode = SaMode.OR)
|
||||||
|
@GetMapping("/getlist")
|
||||||
|
public TableDataInfo<XzdContractMachineryVo> list(XzdContractMachineryBo bo, PageQuery pageQuery) {
|
||||||
|
return xzdContractMachineryService.queryPageList(bo, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取机械合同信息详细信息
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
*/
|
||||||
|
@SaCheckPermission(value = {"jixiehetongjungong:settlementOfJixieCompletion:add","jixiehetongjungong:settlementOfJixieCompletion:edit","jixiehetongjungong:settlementOfJixieCompletion:list"},mode = SaMode.OR)
|
||||||
|
@GetMapping("/jxht/{id}")
|
||||||
|
public R<XzdContractMachineryVo> getInfojx(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable Long id) {
|
||||||
|
return R.ok(xzdContractMachineryService.queryById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询机械合同竣工结算列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("jixiehetongjungong:settlementOfJixieCompletion:list")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo<XzdSettlementOfJixieCompletionVo> list(XzdSettlementOfJixieCompletionBo bo, PageQuery pageQuery) {
|
||||||
|
return xzdSettlementOfJixieCompletionService.queryPageList(bo, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出机械合同竣工结算列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("jixiehetongjungong:settlementOfJixieCompletion:export")
|
||||||
|
@Log(title = "机械合同竣工结算", businessType = BusinessType.EXPORT)
|
||||||
|
@PostMapping("/export")
|
||||||
|
public void export(XzdSettlementOfJixieCompletionBo bo, HttpServletResponse response) {
|
||||||
|
List<XzdSettlementOfJixieCompletionVo> list = xzdSettlementOfJixieCompletionService.queryList(bo);
|
||||||
|
ExcelUtil.exportExcel(list, "机械合同竣工结算", XzdSettlementOfJixieCompletionVo.class, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取机械合同竣工结算详细信息
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("jixiehetongjungong:settlementOfJixieCompletion:query")
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public R<XzdSettlementOfJixieCompletionVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable Long id) {
|
||||||
|
return R.ok(xzdSettlementOfJixieCompletionService.queryById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增机械合同竣工结算
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("jixiehetongjungong:settlementOfJixieCompletion:add")
|
||||||
|
@Log(title = "机械合同竣工结算", businessType = BusinessType.INSERT)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PostMapping()
|
||||||
|
public R<Void> add(@Validated(AddGroup.class) @RequestBody XzdSettlementOfJixieCompletionBo bo) {
|
||||||
|
return toAjax(xzdSettlementOfJixieCompletionService.insertByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改机械合同竣工结算
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("jixiehetongjungong:settlementOfJixieCompletion:edit")
|
||||||
|
@Log(title = "机械合同竣工结算", businessType = BusinessType.UPDATE)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PutMapping()
|
||||||
|
public R<Void> edit(@Validated(EditGroup.class) @RequestBody XzdSettlementOfJixieCompletionBo bo) {
|
||||||
|
return toAjax(xzdSettlementOfJixieCompletionService.updateByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除机械合同竣工结算
|
||||||
|
*
|
||||||
|
* @param ids 主键串
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("jixiehetongjungong:settlementOfJixieCompletion:remove")
|
||||||
|
@Log(title = "机械合同竣工结算", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{ids}")
|
||||||
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||||
|
@PathVariable Long[] ids) {
|
||||||
|
return toAjax(xzdSettlementOfJixieCompletionService.deleteWithValidByIds(List.of(ids), true));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,183 @@
|
|||||||
|
package org.dromara.xzd.settlement.jixiehetongjungong.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_settlement_of_jixie_completion
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-11-19
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName("xzd_settlement_of_jixie_completion")
|
||||||
|
public class XzdSettlementOfJixieCompletion 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 BigDecimal approvedTotalPrice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审定日期
|
||||||
|
*/
|
||||||
|
private LocalDate approvedDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工程项目
|
||||||
|
*/
|
||||||
|
private Long engineeringProject;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 经营模式
|
||||||
|
*/
|
||||||
|
private String businessModel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 甲方单位
|
||||||
|
*/
|
||||||
|
private Long partyAUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 乙方单位
|
||||||
|
*/
|
||||||
|
private Long partyBUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计已结金额
|
||||||
|
*/
|
||||||
|
private BigDecimal cumulativeSettledAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计已付金额
|
||||||
|
*/
|
||||||
|
private BigDecimal cumulativePaidAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 已付比例
|
||||||
|
*/
|
||||||
|
private BigDecimal paidRatio;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付条款
|
||||||
|
*/
|
||||||
|
private String 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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组织id
|
||||||
|
*/
|
||||||
|
private Long deptId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同文本
|
||||||
|
*/
|
||||||
|
private String contractText;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,201 @@
|
|||||||
|
package org.dromara.xzd.settlement.jixiehetongjungong.domain.bo;
|
||||||
|
|
||||||
|
import org.dromara.xzd.domain.bo.XzdJsqdTzBo;
|
||||||
|
import org.dromara.xzd.settlement.domain.bo.XzdJsDeductionItemsBo;
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjungong.domain.XzdSettlementOfJixieCompletion;
|
||||||
|
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;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机械合同竣工结算业务对象 xzd_settlement_of_jixie_completion
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-11-19
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@AutoMapper(target = XzdSettlementOfJixieCompletion.class, reverseConvertGenerate = false)
|
||||||
|
public class XzdSettlementOfJixieCompletionBo extends BaseEntity {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据编号
|
||||||
|
*/
|
||||||
|
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 BigDecimal approvedTotalPrice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审定日期
|
||||||
|
*/
|
||||||
|
private LocalDate approvedDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工程项目
|
||||||
|
*/
|
||||||
|
private Long engineeringProject;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 经营模式
|
||||||
|
*/
|
||||||
|
private String businessModel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 甲方单位
|
||||||
|
*/
|
||||||
|
private Long partyAUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 乙方单位
|
||||||
|
*/
|
||||||
|
private Long partyBUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计已结金额
|
||||||
|
*/
|
||||||
|
private BigDecimal cumulativeSettledAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计已付金额
|
||||||
|
*/
|
||||||
|
private BigDecimal cumulativePaidAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 已付比例
|
||||||
|
*/
|
||||||
|
private BigDecimal paidRatio;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付条款
|
||||||
|
*/
|
||||||
|
private String 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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组织id
|
||||||
|
*/
|
||||||
|
private Long deptId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同文本
|
||||||
|
*/
|
||||||
|
private String contractText;
|
||||||
|
|
||||||
|
private LocalDate startTime;
|
||||||
|
|
||||||
|
private LocalDate endTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 决算调整清单
|
||||||
|
*/
|
||||||
|
private List<XzdJsqdTzBo> jstzqd;
|
||||||
|
|
||||||
|
|
||||||
|
// 奖惩与扣款
|
||||||
|
private List<XzdJsDeductionItemsBo> jlykk;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,261 @@
|
|||||||
|
package org.dromara.xzd.settlement.jixiehetongjungong.domain.vo;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
import org.dromara.common.translation.annotation.Translation;
|
||||||
|
import org.dromara.common.translation.constant.TransConstant;
|
||||||
|
import org.dromara.xzd.domain.vo.XzdJsqdTzVo;
|
||||||
|
import org.dromara.xzd.settlement.domain.vo.XzdJsDeductionItemsVo;
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjungong.domain.XzdSettlementOfJixieCompletion;
|
||||||
|
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;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机械合同竣工结算视图对象 xzd_settlement_of_jixie_completion
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-11-19
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
@AutoMapper(target = XzdSettlementOfJixieCompletion.class)
|
||||||
|
public class XzdSettlementOfJixieCompletionVo 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 = "合同编号名称")
|
||||||
|
@Translation(type = TransConstant.XZD_PURCHASE_JXXIE_ID_TO_NAME, mapper = "contractCode")
|
||||||
|
private String contractCodeName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同名称
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "合同名称")
|
||||||
|
private String contractName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审定总价
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "审定总价")
|
||||||
|
private BigDecimal approvedTotalPrice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审定日期
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "审定日期")
|
||||||
|
private LocalDate approvedDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工程项目
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "工程项目")
|
||||||
|
private Long engineeringProject;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工程项目名称
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "工程项目名称")
|
||||||
|
@Translation(type = TransConstant.XZD_PROJECT_ID_TO_NAME, mapper = "engineeringProject")
|
||||||
|
private String engineeringProjectName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 经营模式
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "经营模式")
|
||||||
|
private String businessModel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 甲方单位
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "甲方单位")
|
||||||
|
private Long partyAUnit;
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "partyAUnit")
|
||||||
|
private String partyAUnitName;
|
||||||
|
/**
|
||||||
|
* 乙方单位
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "乙方单位")
|
||||||
|
private Long partyBUnit;
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "partyBUnit")
|
||||||
|
private String partyBUnitName;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计已结金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "累计已结金额")
|
||||||
|
private BigDecimal cumulativeSettledAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计已付金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "累计已付金额")
|
||||||
|
private BigDecimal cumulativePaidAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 已付比例
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "已付比例")
|
||||||
|
private BigDecimal paidRatio;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付条款
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "支付条款")
|
||||||
|
private String paymentTerms;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 本期应付金额
|
||||||
|
*/
|
||||||
|
@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;
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "ownerUnit")
|
||||||
|
private String ownerUnitName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监理单位 客户
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "监理单位 客户")
|
||||||
|
private Long supervisionUnit;
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "supervisionUnit")
|
||||||
|
private String supervisionUnitName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 施工单位 客户
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "施工单位 客户")
|
||||||
|
private Long constructionUnit;
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "constructionUnit")
|
||||||
|
private String constructionUnitName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核单位 客户
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "审核单位 客户")
|
||||||
|
private Long auditUnit;
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "auditUnit")
|
||||||
|
private String auditUnitName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件ID
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "文件ID")
|
||||||
|
private String fileId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核状态
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "审核状态")
|
||||||
|
private String auditStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组织id
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "组织id")
|
||||||
|
private Long deptId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同文本
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "合同文本")
|
||||||
|
private String contractText;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 决算调整清单
|
||||||
|
*/
|
||||||
|
private List<XzdJsqdTzVo> jstzqd;
|
||||||
|
|
||||||
|
|
||||||
|
// 奖惩与扣款
|
||||||
|
private List<XzdJsDeductionItemsVo> jlykk;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
package org.dromara.xzd.settlement.jixiehetongjungong.mapper;
|
||||||
|
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjungong.domain.XzdSettlementOfJixieCompletion;
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjungong.domain.vo.XzdSettlementOfJixieCompletionVo;
|
||||||
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机械合同竣工结算Mapper接口
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-11-19
|
||||||
|
*/
|
||||||
|
public interface XzdSettlementOfJixieCompletionMapper extends BaseMapperPlus<XzdSettlementOfJixieCompletion, XzdSettlementOfJixieCompletionVo> {
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,70 @@
|
|||||||
|
package org.dromara.xzd.settlement.jixiehetongjungong.service;
|
||||||
|
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjungong.domain.vo.XzdSettlementOfJixieCompletionVo;
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjungong.domain.bo.XzdSettlementOfJixieCompletionBo;
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjungong.domain.XzdSettlementOfJixieCompletion;
|
||||||
|
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-11-19
|
||||||
|
*/
|
||||||
|
public interface IXzdSettlementOfJixieCompletionService extends IService<XzdSettlementOfJixieCompletion>{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询机械合同竣工结算
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
* @return 机械合同竣工结算
|
||||||
|
*/
|
||||||
|
XzdSettlementOfJixieCompletionVo queryById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询机械合同竣工结算列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return 机械合同竣工结算分页列表
|
||||||
|
*/
|
||||||
|
TableDataInfo<XzdSettlementOfJixieCompletionVo> queryPageList(XzdSettlementOfJixieCompletionBo bo, PageQuery pageQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询符合条件的机械合同竣工结算列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @return 机械合同竣工结算列表
|
||||||
|
*/
|
||||||
|
List<XzdSettlementOfJixieCompletionVo> queryList(XzdSettlementOfJixieCompletionBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增机械合同竣工结算
|
||||||
|
*
|
||||||
|
* @param bo 机械合同竣工结算
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
Boolean insertByBo(XzdSettlementOfJixieCompletionBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改机械合同竣工结算
|
||||||
|
*
|
||||||
|
* @param bo 机械合同竣工结算
|
||||||
|
* @return 是否修改成功
|
||||||
|
*/
|
||||||
|
Boolean updateByBo(XzdSettlementOfJixieCompletionBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验并批量删除机械合同竣工结算信息
|
||||||
|
*
|
||||||
|
* @param ids 待删除的主键集合
|
||||||
|
* @param isValid 是否进行有效性校验
|
||||||
|
* @return 是否删除成功
|
||||||
|
*/
|
||||||
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||||
|
}
|
||||||
@ -0,0 +1,315 @@
|
|||||||
|
package org.dromara.xzd.settlement.jixiehetongjungong.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
|
||||||
|
import org.dromara.common.core.domain.event.ProcessEvent;
|
||||||
|
import org.dromara.common.core.domain.event.ProcessTaskEvent;
|
||||||
|
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.common.utils.BatchNumberGenerator;
|
||||||
|
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||||
|
import org.dromara.xzd.contractManagement.fenbaohetongxinxi.service.IXzdSubcontractService;
|
||||||
|
import org.dromara.xzd.domain.XzdJsqdTz;
|
||||||
|
import org.dromara.xzd.domain.bo.XzdJsqdTzBo;
|
||||||
|
import org.dromara.xzd.domain.vo.XzdJsqdTzVo;
|
||||||
|
import org.dromara.xzd.enums.XzdClassEnum;
|
||||||
|
import org.dromara.xzd.enums.ZxdEnum;
|
||||||
|
import org.dromara.xzd.service.IXzdJsqdTzService;
|
||||||
|
import org.dromara.xzd.settlement.domain.XzdJsDeductionItems;
|
||||||
|
import org.dromara.xzd.settlement.domain.bo.XzdJsDeductionItemsBo;
|
||||||
|
import org.dromara.xzd.settlement.domain.vo.XzdJsDeductionItemsVo;
|
||||||
|
import org.dromara.xzd.settlement.fenbaohetongjungong.domain.SettlementOfSubcontractingCompletion;
|
||||||
|
import org.dromara.xzd.settlement.fenbaohetongjungong.domain.vo.SettlementOfSubcontractingCompletionVo;
|
||||||
|
import org.dromara.xzd.settlement.service.IXzdJsDeductionItemsService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.event.EventListener;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjungong.domain.bo.XzdSettlementOfJixieCompletionBo;
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjungong.domain.vo.XzdSettlementOfJixieCompletionVo;
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjungong.domain.XzdSettlementOfJixieCompletion;
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjungong.mapper.XzdSettlementOfJixieCompletionMapper;
|
||||||
|
import org.dromara.xzd.settlement.jixiehetongjungong.service.IXzdSettlementOfJixieCompletionService;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Collection;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机械合同竣工结算Service业务层处理
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-11-19
|
||||||
|
*/
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Service
|
||||||
|
@Slf4j
|
||||||
|
public class XzdSettlementOfJixieCompletionServiceImpl extends ServiceImpl<XzdSettlementOfJixieCompletionMapper, XzdSettlementOfJixieCompletion> implements IXzdSettlementOfJixieCompletionService {
|
||||||
|
|
||||||
|
private final XzdSettlementOfJixieCompletionMapper baseMapper;
|
||||||
|
|
||||||
|
|
||||||
|
private final IXzdJsqdTzService iXzdJsqdTzService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SysOssServiceImpl sysOssService;
|
||||||
|
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IXzdJsDeductionItemsService deductionItemsService;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询机械合同竣工结算
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
* @return 机械合同竣工结算
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public XzdSettlementOfJixieCompletionVo queryById(Long id){
|
||||||
|
XzdSettlementOfJixieCompletionVo vo = baseMapper.selectVoById(id);
|
||||||
|
saveValue(vo);
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void saveValue(XzdSettlementOfJixieCompletionVo item) {
|
||||||
|
if (item != null) {
|
||||||
|
List<XzdJsqdTz> xzdJsqdTzs = iXzdJsqdTzService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdJsqdTz>().eq(XzdJsqdTz::getMainId, item.getId()));
|
||||||
|
if (xzdJsqdTzs != null && xzdJsqdTzs.size() > 0) {
|
||||||
|
item.setJstzqd(MapstructUtils.convert(xzdJsqdTzs, XzdJsqdTzVo.class));
|
||||||
|
}
|
||||||
|
List<XzdJsDeductionItems> xzdJsDeductionItems = deductionItemsService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdJsDeductionItems>().eq(XzdJsDeductionItems::getMainDocId, item.getId()));
|
||||||
|
if (xzdJsDeductionItems != null && xzdJsDeductionItems.size() > 0) {
|
||||||
|
item.setJlykk(MapstructUtils.convert(xzdJsDeductionItems, XzdJsDeductionItemsVo.class));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询机械合同竣工结算列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return 机械合同竣工结算分页列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<XzdSettlementOfJixieCompletionVo> queryPageList(XzdSettlementOfJixieCompletionBo bo, PageQuery pageQuery) {
|
||||||
|
LambdaQueryWrapper<XzdSettlementOfJixieCompletion> lqw = buildQueryWrapper(bo);
|
||||||
|
Page<XzdSettlementOfJixieCompletionVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||||
|
return TableDataInfo.build(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询符合条件的机械合同竣工结算列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @return 机械合同竣工结算列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<XzdSettlementOfJixieCompletionVo> queryList(XzdSettlementOfJixieCompletionBo bo) {
|
||||||
|
LambdaQueryWrapper<XzdSettlementOfJixieCompletion> lqw = buildQueryWrapper(bo);
|
||||||
|
return baseMapper.selectVoList(lqw);
|
||||||
|
}
|
||||||
|
|
||||||
|
private LambdaQueryWrapper<XzdSettlementOfJixieCompletion> buildQueryWrapper(XzdSettlementOfJixieCompletionBo bo) {
|
||||||
|
Map<String, Object> params = bo.getParams();
|
||||||
|
LambdaQueryWrapper<XzdSettlementOfJixieCompletion> lqw = Wrappers.lambdaQuery();
|
||||||
|
lqw.orderByDesc(XzdSettlementOfJixieCompletion::getId);
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getDocumentCode()), XzdSettlementOfJixieCompletion::getDocumentCode, bo.getDocumentCode());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdSettlementOfJixieCompletion::getTitle, bo.getTitle());
|
||||||
|
lqw.eq(bo.getDocumentDate() != null, XzdSettlementOfJixieCompletion::getDocumentDate, bo.getDocumentDate());
|
||||||
|
lqw.eq(bo.getContractCode() != null, XzdSettlementOfJixieCompletion::getContractCode, bo.getContractCode());
|
||||||
|
lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdSettlementOfJixieCompletion::getContractName, bo.getContractName());
|
||||||
|
lqw.eq(bo.getApprovedTotalPrice() != null, XzdSettlementOfJixieCompletion::getApprovedTotalPrice, bo.getApprovedTotalPrice());
|
||||||
|
lqw.eq(bo.getApprovedDate() != null, XzdSettlementOfJixieCompletion::getApprovedDate, bo.getApprovedDate());
|
||||||
|
lqw.eq(bo.getEngineeringProject() != null, XzdSettlementOfJixieCompletion::getEngineeringProject, bo.getEngineeringProject());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getBusinessModel()), XzdSettlementOfJixieCompletion::getBusinessModel, bo.getBusinessModel());
|
||||||
|
lqw.eq(bo.getPartyAUnit() != null, XzdSettlementOfJixieCompletion::getPartyAUnit, bo.getPartyAUnit());
|
||||||
|
lqw.eq(bo.getPartyBUnit() != null, XzdSettlementOfJixieCompletion::getPartyBUnit, bo.getPartyBUnit());
|
||||||
|
lqw.eq(bo.getCumulativeSettledAmount() != null, XzdSettlementOfJixieCompletion::getCumulativeSettledAmount, bo.getCumulativeSettledAmount());
|
||||||
|
lqw.eq(bo.getCumulativePaidAmount() != null, XzdSettlementOfJixieCompletion::getCumulativePaidAmount, bo.getCumulativePaidAmount());
|
||||||
|
lqw.eq(bo.getPaidRatio() != null, XzdSettlementOfJixieCompletion::getPaidRatio, bo.getPaidRatio());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getPaymentTerms()), XzdSettlementOfJixieCompletion::getPaymentTerms, bo.getPaymentTerms());
|
||||||
|
lqw.eq(bo.getCurrentPayableAmount() != null, XzdSettlementOfJixieCompletion::getCurrentPayableAmount, bo.getCurrentPayableAmount());
|
||||||
|
lqw.eq(bo.getPayableDate() != null, XzdSettlementOfJixieCompletion::getPayableDate, bo.getPayableDate());
|
||||||
|
lqw.eq(bo.getCompletionDate() != null, XzdSettlementOfJixieCompletion::getCompletionDate, bo.getCompletionDate());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getWarning()), XzdSettlementOfJixieCompletion::getWarning, bo.getWarning());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), XzdSettlementOfJixieCompletion::getRemarks, bo.getRemarks());
|
||||||
|
lqw.eq(bo.getCurrentFinalSettlementAmount() != null, XzdSettlementOfJixieCompletion::getCurrentFinalSettlementAmount, bo.getCurrentFinalSettlementAmount());
|
||||||
|
lqw.eq(bo.getOwnerUnit() != null, XzdSettlementOfJixieCompletion::getOwnerUnit, bo.getOwnerUnit());
|
||||||
|
lqw.eq(bo.getSupervisionUnit() != null, XzdSettlementOfJixieCompletion::getSupervisionUnit, bo.getSupervisionUnit());
|
||||||
|
lqw.eq(bo.getConstructionUnit() != null, XzdSettlementOfJixieCompletion::getConstructionUnit, bo.getConstructionUnit());
|
||||||
|
lqw.eq(bo.getAuditUnit() != null, XzdSettlementOfJixieCompletion::getAuditUnit, bo.getAuditUnit());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdSettlementOfJixieCompletion::getFileId, bo.getFileId());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XzdSettlementOfJixieCompletion::getAuditStatus, bo.getAuditStatus());
|
||||||
|
lqw.eq(bo.getDeptId() != null, XzdSettlementOfJixieCompletion::getDeptId, bo.getDeptId());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getContractText()), XzdSettlementOfJixieCompletion::getContractText, bo.getContractText());
|
||||||
|
return lqw;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增机械合同竣工结算
|
||||||
|
*
|
||||||
|
* @param bo 机械合同竣工结算
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean insertByBo(XzdSettlementOfJixieCompletionBo bo) {
|
||||||
|
XzdSettlementOfJixieCompletion add = MapstructUtils.convert(bo, XzdSettlementOfJixieCompletion.class);
|
||||||
|
validEntityBeforeSave(add);
|
||||||
|
String banBen = BatchNumberGenerator.generateBatchNumber("JXHTJG-");
|
||||||
|
add.setDocumentCode(banBen);
|
||||||
|
boolean flag = baseMapper.insert(add) > 0;
|
||||||
|
if (flag) {
|
||||||
|
bo.setId(add.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 决算调整清单
|
||||||
|
List<XzdJsqdTzBo> jstzqd = bo.getJstzqd();
|
||||||
|
if (jstzqd != null && jstzqd.size() > 0) {
|
||||||
|
jstzqd.forEach(item -> {
|
||||||
|
item.setMainId(add.getId());
|
||||||
|
item.setType(ZxdEnum.SFWJSD_S.getTypeValue());
|
||||||
|
});
|
||||||
|
iXzdJsqdTzService.saveBatch(MapstructUtils.convert(jstzqd, XzdJsqdTz.class));
|
||||||
|
}
|
||||||
|
// 奖励与扣款
|
||||||
|
List<XzdJsDeductionItemsBo> jlykk = bo.getJlykk();
|
||||||
|
if (jlykk != null && jlykk.size() > 0){
|
||||||
|
jlykk.forEach(item ->{
|
||||||
|
item.setTableName(XzdClassEnum.JXHTJG_COMPLETION.getClassName());
|
||||||
|
item.setMainDocId(add.getId());
|
||||||
|
});
|
||||||
|
deductionItemsService.saveBatch(MapstructUtils.convert(jlykk, XzdJsDeductionItems.class));
|
||||||
|
}
|
||||||
|
return flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改机械合同竣工结算
|
||||||
|
*
|
||||||
|
* @param bo 机械合同竣工结算
|
||||||
|
* @return 是否修改成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean updateByBo(XzdSettlementOfJixieCompletionBo bo) {
|
||||||
|
XzdSettlementOfJixieCompletion update = MapstructUtils.convert(bo, XzdSettlementOfJixieCompletion.class);
|
||||||
|
validEntityBeforeSave(update);
|
||||||
|
|
||||||
|
// 决算调整清单
|
||||||
|
List<XzdJsqdTzBo> jstzqd = bo.getJstzqd();
|
||||||
|
iXzdJsqdTzService.getBaseMapper().delete(new LambdaQueryWrapper<XzdJsqdTz>().eq(XzdJsqdTz::getMainId, update.getId()));
|
||||||
|
if (jstzqd != null && jstzqd.size() > 0) {
|
||||||
|
jstzqd.forEach(item -> {
|
||||||
|
item.setMainId(update.getId());
|
||||||
|
item.setType(ZxdEnum.SFWJSD_S.getTypeValue());
|
||||||
|
});
|
||||||
|
iXzdJsqdTzService.saveBatch(MapstructUtils.convert(jstzqd, XzdJsqdTz.class));
|
||||||
|
}
|
||||||
|
// 奖励与扣款
|
||||||
|
List<XzdJsDeductionItemsBo> jlykk = bo.getJlykk();
|
||||||
|
deductionItemsService.getBaseMapper().delete(new LambdaQueryWrapper<XzdJsDeductionItems>().eq(XzdJsDeductionItems::getMainDocId, update.getId()));
|
||||||
|
if (jlykk != null && jlykk.size() > 0){
|
||||||
|
jlykk.forEach(item ->{
|
||||||
|
item.setTableName(XzdClassEnum.JXHTJG_COMPLETION.getClassName());
|
||||||
|
item.setMainDocId(update.getId());
|
||||||
|
});
|
||||||
|
deductionItemsService.saveBatch(MapstructUtils.convert(jlykk, XzdJsDeductionItems.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return baseMapper.updateById(update) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存前的数据校验
|
||||||
|
*/
|
||||||
|
private void validEntityBeforeSave(XzdSettlementOfJixieCompletion entity){
|
||||||
|
//TODO 做一些数据校验,如唯一约束
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验并批量删除机械合同竣工结算信息
|
||||||
|
*
|
||||||
|
* @param ids 待删除的主键集合
|
||||||
|
* @param isValid 是否进行有效性校验
|
||||||
|
* @return 是否删除成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||||
|
if(isValid){
|
||||||
|
//TODO 做一些业务上的校验,判断是否需要校验
|
||||||
|
}
|
||||||
|
for (Long id : ids) {
|
||||||
|
XzdSettlementOfJixieCompletionVo 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
iXzdJsqdTzService.getBaseMapper().delete(new LambdaQueryWrapper<XzdJsqdTz>().in(XzdJsqdTz::getMainId, ids));
|
||||||
|
deductionItemsService.getBaseMapper().delete(new LambdaQueryWrapper<XzdJsDeductionItems>().in(XzdJsDeductionItems::getMainDocId, ids));
|
||||||
|
return baseMapper.deleteByIds(ids) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
|
||||||
|
* 正常使用只需#processEvent.flowCode=='leave1'
|
||||||
|
* 示例为了方便则使用startsWith匹配了全部示例key
|
||||||
|
*
|
||||||
|
* @param processEvent 参数
|
||||||
|
*/
|
||||||
|
@org.springframework.context.event.EventListener(condition = "#processEvent.flowCode.endsWith('xzdjxhtjgjs')")
|
||||||
|
public void processPlansHandlErequipmentList(ProcessEvent processEvent) {
|
||||||
|
log.info("机械合同竣工结算审核任务执行了{}", processEvent.toString());
|
||||||
|
String id = processEvent.getBusinessId();
|
||||||
|
XzdSettlementOfJixieCompletion vo = baseMapper.selectById(Long.valueOf(id));
|
||||||
|
if (vo == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
vo.setAuditStatus(processEvent.getStatus());
|
||||||
|
this.updateById(vo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 执行任务创建监听
|
||||||
|
* 示例:也可通过 @EventListener(condition = "#processTaskEvent.flowCode=='leave1'")进行判断
|
||||||
|
* 在方法中判断流程节点key
|
||||||
|
* if ("xxx".equals(processTaskEvent.getNodeCode())) {
|
||||||
|
* //执行业务逻辑
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* @param processTaskEvent 参数
|
||||||
|
*/
|
||||||
|
@org.springframework.context.event.EventListener(condition = "#processTaskEvent.flowCode.endsWith('xzdjxhtjgjs')")
|
||||||
|
public void processTaskPlansHandlerEquipmentList(ProcessTaskEvent processTaskEvent) {
|
||||||
|
log.info("机械合同竣工结算审核任务创建了{}", processTaskEvent.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监听删除流程事件
|
||||||
|
* 正常使用只需#processDeleteEvent.flowCode=='leave1'
|
||||||
|
* 示例为了方便则使用startsWith匹配了全部示例key
|
||||||
|
*
|
||||||
|
* @param processDeleteEvent 参数
|
||||||
|
*/
|
||||||
|
@EventListener(condition = "#processDeleteEvent.flowCode.endsWith('xzdfbhtjgjs')")
|
||||||
|
public void processDeletePlansHandlerEquipmentList(ProcessDeleteEvent processDeleteEvent) {
|
||||||
|
log.info("机械合同竣工结算删除流程事件,机械合同竣工结算审核任务执行了{}", processDeleteEvent.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,134 @@
|
|||||||
|
package org.dromara.xzd.skyfk.jixiehetong.fkxx.controller;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaMode;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import jakarta.validation.constraints.*;
|
||||||
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.bo.XzdContractMachineryBo;
|
||||||
|
import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.vo.XzdContractMachineryVo;
|
||||||
|
import org.dromara.xzd.contractManagement.jixiehetongxinxi.service.IXzdContractMachineryService;
|
||||||
|
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.skyfk.jixiehetong.fkxx.domain.vo.XzdSfkJixieFkVo;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.fkxx.domain.bo.XzdSfkJixieFkBo;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.fkxx.service.IXzdSfkJixieFkService;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机械合同付款
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-11-18
|
||||||
|
*/
|
||||||
|
@Validated
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/xzd/fkxx/sfkJixieFk")
|
||||||
|
public class XzdSfkJixieFkController extends BaseController {
|
||||||
|
|
||||||
|
private final IXzdSfkJixieFkService xzdSfkJixieFkService;
|
||||||
|
|
||||||
|
private final IXzdContractMachineryService xzdContractMachineryService;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询机械合同信息列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission(value = {"fkxx:sfkJixieFk:add","fkxx:sfkJixieFk:edit","fkxx:sfkJixieFk:list"},mode = SaMode.OR)
|
||||||
|
@GetMapping("/getlist")
|
||||||
|
public TableDataInfo<XzdContractMachineryVo> list(XzdContractMachineryBo bo, PageQuery pageQuery) {
|
||||||
|
return xzdContractMachineryService.queryPageList(bo, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取机械合同信息详细信息
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
*/
|
||||||
|
@SaCheckPermission(value = {"fkxx:sfkJixieFk:add","fkxx:sfkJixieFk:edit","fkxx:sfkJixieFk:list"},mode = SaMode.OR)
|
||||||
|
@GetMapping("/jxht/{id}")
|
||||||
|
public R<XzdContractMachineryVo> getInfojx(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable Long id) {
|
||||||
|
return R.ok(xzdContractMachineryService.queryById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询机械合同付款列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("fkxx:sfkJixieFk:list")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo<XzdSfkJixieFkVo> list(XzdSfkJixieFkBo bo, PageQuery pageQuery) {
|
||||||
|
return xzdSfkJixieFkService.queryPageList(bo, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出机械合同付款列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("fkxx:sfkJixieFk:export")
|
||||||
|
@Log(title = "机械合同付款", businessType = BusinessType.EXPORT)
|
||||||
|
@PostMapping("/export")
|
||||||
|
public void export(XzdSfkJixieFkBo bo, HttpServletResponse response) {
|
||||||
|
List<XzdSfkJixieFkVo> list = xzdSfkJixieFkService.queryList(bo);
|
||||||
|
ExcelUtil.exportExcel(list, "机械合同付款", XzdSfkJixieFkVo.class, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取机械合同付款详细信息
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("fkxx:sfkJixieFk:query")
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public R<XzdSfkJixieFkVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable Long id) {
|
||||||
|
return R.ok(xzdSfkJixieFkService.queryById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增机械合同付款
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("fkxx:sfkJixieFk:add")
|
||||||
|
@Log(title = "机械合同付款", businessType = BusinessType.INSERT)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PostMapping()
|
||||||
|
public R<Void> add(@Validated(AddGroup.class) @RequestBody XzdSfkJixieFkBo bo) {
|
||||||
|
return toAjax(xzdSfkJixieFkService.insertByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改机械合同付款
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("fkxx:sfkJixieFk:edit")
|
||||||
|
@Log(title = "机械合同付款", businessType = BusinessType.UPDATE)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PutMapping()
|
||||||
|
public R<Void> edit(@Validated(EditGroup.class) @RequestBody XzdSfkJixieFkBo bo) {
|
||||||
|
return toAjax(xzdSfkJixieFkService.updateByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除机械合同付款
|
||||||
|
*
|
||||||
|
* @param ids 主键串
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("fkxx:sfkJixieFk:remove")
|
||||||
|
@Log(title = "机械合同付款", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{ids}")
|
||||||
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||||
|
@PathVariable Long[] ids) {
|
||||||
|
return toAjax(xzdSfkJixieFkService.deleteWithValidByIds(List.of(ids), true));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,233 @@
|
|||||||
|
package org.dromara.xzd.skyfk.jixiehetong.fkxx.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_sfk_jixie_fk
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-11-18
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName("xzd_sfk_jixie_fk")
|
||||||
|
public class XzdSfkJixieFk extends BaseEntity {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
@TableId(value = "id")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 部门id
|
||||||
|
*/
|
||||||
|
private Long deptId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据编码(带*,必填)
|
||||||
|
*/
|
||||||
|
private String docCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标题(带*,必填)
|
||||||
|
*/
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据日期(带*,必填)
|
||||||
|
*/
|
||||||
|
private LocalDate docDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同编码(带*,必填)
|
||||||
|
*/
|
||||||
|
private Long contractCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同名称
|
||||||
|
*/
|
||||||
|
private String contractName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 付款性质(带*,必填)
|
||||||
|
*/
|
||||||
|
private Long paymentProperty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支出合同金额
|
||||||
|
*/
|
||||||
|
private BigDecimal expendContractAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 本期审批金额
|
||||||
|
*/
|
||||||
|
private BigDecimal currentApproveAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目
|
||||||
|
*/
|
||||||
|
private Long project;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 付款单位
|
||||||
|
*/
|
||||||
|
private Long paymentUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收款单位(带*,必填)
|
||||||
|
*/
|
||||||
|
private Long receiptUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收款银行
|
||||||
|
*/
|
||||||
|
private Long receiptBank;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收款银行账号
|
||||||
|
*/
|
||||||
|
private String receiptBankAccount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计周期(带*,必填)
|
||||||
|
*/
|
||||||
|
private String statCycle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目类型
|
||||||
|
*/
|
||||||
|
private String projectType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 税率(带*,必填)
|
||||||
|
*/
|
||||||
|
private BigDecimal taxRate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目大类
|
||||||
|
*/
|
||||||
|
private String projectCategory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 本期进度支付金额
|
||||||
|
*/
|
||||||
|
private BigDecimal currentProgressPayment;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计进度支付金额
|
||||||
|
*/
|
||||||
|
private BigDecimal totalProgressPayment;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预付款金额
|
||||||
|
*/
|
||||||
|
private BigDecimal advancePayment;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计支付金额
|
||||||
|
*/
|
||||||
|
private BigDecimal totalPaymentAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 本期进度应付金额(带*,必填)
|
||||||
|
*/
|
||||||
|
private BigDecimal currentProgressPayable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计进度应付金额
|
||||||
|
*/
|
||||||
|
private BigDecimal totalProgressPayable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预付款扣回金额
|
||||||
|
*/
|
||||||
|
private BigDecimal advanceDeductionAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计进度结算占合同比例(%)
|
||||||
|
*/
|
||||||
|
private BigDecimal totalProgressSettlementRatio;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 本期进度支付占本期进度应付(%)
|
||||||
|
*/
|
||||||
|
private BigDecimal currentPaymentRatio;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计进度支付占累计进度应付(%)
|
||||||
|
*/
|
||||||
|
private BigDecimal totalPaymentRatio;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预付款剩余未抵扣金额
|
||||||
|
*/
|
||||||
|
private BigDecimal advanceRemainingDeduction;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计支付占合同比例(%)
|
||||||
|
*/
|
||||||
|
private BigDecimal totalPaymentContractRatio;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 剩余进度应付未付金额
|
||||||
|
*/
|
||||||
|
private BigDecimal remainingProgressPayable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计进度结算金额
|
||||||
|
*/
|
||||||
|
private BigDecimal totalProgressSettlementAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实时刷新(0=未勾选,1=勾选)
|
||||||
|
*/
|
||||||
|
private Long realTimeRefresh;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同含税金额
|
||||||
|
*/
|
||||||
|
private BigDecimal contractTaxInclAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同累计实际付款金额
|
||||||
|
*/
|
||||||
|
private BigDecimal contractTotalActualPayment;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计结算金额
|
||||||
|
*/
|
||||||
|
private BigDecimal totalSettlementAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据引用
|
||||||
|
*/
|
||||||
|
private String documentReference;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核状态
|
||||||
|
*/
|
||||||
|
private String auditStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件ID
|
||||||
|
*/
|
||||||
|
private String fileId;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,247 @@
|
|||||||
|
package org.dromara.xzd.skyfk.jixiehetong.fkxx.domain.bo;
|
||||||
|
|
||||||
|
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFapiao;
|
||||||
|
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFukuan;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.fkxx.domain.XzdSfkJixieFk;
|
||||||
|
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;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机械合同付款业务对象 xzd_sfk_jixie_fk
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-11-18
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@AutoMapper(target = XzdSfkJixieFk.class, reverseConvertGenerate = false)
|
||||||
|
public class XzdSfkJixieFkBo extends BaseEntity {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 部门id
|
||||||
|
*/
|
||||||
|
private Long deptId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据编码(带*,必填)
|
||||||
|
*/
|
||||||
|
private String docCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标题(带*,必填)
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "标题(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据日期(带*,必填)
|
||||||
|
*/
|
||||||
|
@NotNull(message = "单据日期(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
|
private LocalDate docDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同编码(带*,必填)
|
||||||
|
*/
|
||||||
|
@NotNull(message = "合同编码(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
|
private Long contractCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同名称
|
||||||
|
*/
|
||||||
|
private String contractName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 付款性质(带*,必填)
|
||||||
|
*/
|
||||||
|
@NotNull(message = "付款性质(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
|
private Long paymentProperty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支出合同金额
|
||||||
|
*/
|
||||||
|
private BigDecimal expendContractAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 本期审批金额
|
||||||
|
*/
|
||||||
|
private BigDecimal currentApproveAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目
|
||||||
|
*/
|
||||||
|
private Long project;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 付款单位
|
||||||
|
*/
|
||||||
|
private Long paymentUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收款单位(带*,必填)
|
||||||
|
*/
|
||||||
|
@NotNull(message = "收款单位(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
|
private Long receiptUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收款银行
|
||||||
|
*/
|
||||||
|
private Long receiptBank;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收款银行账号
|
||||||
|
*/
|
||||||
|
private String receiptBankAccount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计周期(带*,必填)
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "统计周期(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
|
private String statCycle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目类型
|
||||||
|
*/
|
||||||
|
private String projectType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 税率(带*,必填)
|
||||||
|
*/
|
||||||
|
@NotNull(message = "税率(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
|
private BigDecimal taxRate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目大类
|
||||||
|
*/
|
||||||
|
private String projectCategory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 本期进度支付金额
|
||||||
|
*/
|
||||||
|
private BigDecimal currentProgressPayment;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计进度支付金额
|
||||||
|
*/
|
||||||
|
private BigDecimal totalProgressPayment;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预付款金额
|
||||||
|
*/
|
||||||
|
private BigDecimal advancePayment;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计支付金额
|
||||||
|
*/
|
||||||
|
private BigDecimal totalPaymentAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 本期进度应付金额(带*,必填)
|
||||||
|
*/
|
||||||
|
@NotNull(message = "本期进度应付金额(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
|
private BigDecimal currentProgressPayable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计进度应付金额
|
||||||
|
*/
|
||||||
|
private BigDecimal totalProgressPayable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预付款扣回金额
|
||||||
|
*/
|
||||||
|
private BigDecimal advanceDeductionAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计进度结算占合同比例(%)
|
||||||
|
*/
|
||||||
|
private BigDecimal totalProgressSettlementRatio;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 本期进度支付占本期进度应付(%)
|
||||||
|
*/
|
||||||
|
private BigDecimal currentPaymentRatio;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计进度支付占累计进度应付(%)
|
||||||
|
*/
|
||||||
|
private BigDecimal totalPaymentRatio;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预付款剩余未抵扣金额
|
||||||
|
*/
|
||||||
|
private BigDecimal advanceRemainingDeduction;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计支付占合同比例(%)
|
||||||
|
*/
|
||||||
|
private BigDecimal totalPaymentContractRatio;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 剩余进度应付未付金额
|
||||||
|
*/
|
||||||
|
private BigDecimal remainingProgressPayable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计进度结算金额
|
||||||
|
*/
|
||||||
|
private BigDecimal totalProgressSettlementAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实时刷新(0=未勾选,1=勾选)
|
||||||
|
*/
|
||||||
|
private Long realTimeRefresh;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同含税金额
|
||||||
|
*/
|
||||||
|
private BigDecimal contractTaxInclAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同累计实际付款金额
|
||||||
|
*/
|
||||||
|
private BigDecimal contractTotalActualPayment;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计结算金额
|
||||||
|
*/
|
||||||
|
private BigDecimal totalSettlementAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据引用
|
||||||
|
*/
|
||||||
|
private String documentReference;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核状态
|
||||||
|
*/
|
||||||
|
private String auditStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件ID
|
||||||
|
*/
|
||||||
|
private String fileId;
|
||||||
|
|
||||||
|
List<XzdSfkFukuan> fukuanList;
|
||||||
|
|
||||||
|
List<XzdSfkFapiao> fapiaoList;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,323 @@
|
|||||||
|
package org.dromara.xzd.skyfk.jixiehetong.fkxx.domain.vo;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
import org.dromara.common.translation.annotation.Translation;
|
||||||
|
import org.dromara.common.translation.constant.TransConstant;
|
||||||
|
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFapiao;
|
||||||
|
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFukuan;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.fkxx.domain.XzdSfkJixieFk;
|
||||||
|
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;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机械合同付款视图对象 xzd_sfk_jixie_fk
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-11-18
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
@AutoMapper(target = XzdSfkJixieFk.class)
|
||||||
|
public class XzdSfkJixieFkVo implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID,自增
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "主键ID,自增")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 部门id
|
||||||
|
*/
|
||||||
|
private Long deptId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据编码(带*,必填)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "单据编码", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "带=*,必填")
|
||||||
|
private String docCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标题(带*,必填)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "标题", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "带=*,必填")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据日期(带*,必填)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "单据日期", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "带=*,必填")
|
||||||
|
private LocalDate docDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同编码(带*,必填)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "合同编码", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "带=*,必填")
|
||||||
|
private Long contractCode;
|
||||||
|
@Translation(type = TransConstant.XZD_PURCHASE_JXXIE_ID_TO_NAME, mapper = "contractCode")
|
||||||
|
private String contractCodeName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同名称
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "合同名称")
|
||||||
|
private String contractName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 付款性质(带*,必填)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "付款性质", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "带=*,必填")
|
||||||
|
private Long paymentProperty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支出合同金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "支出合同金额")
|
||||||
|
private BigDecimal expendContractAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 本期审批金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "本期审批金额")
|
||||||
|
private BigDecimal currentApproveAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "项目")
|
||||||
|
private Long project;
|
||||||
|
@Translation(type = TransConstant.XZD_PROJECT_ID_TO_NAME, mapper = "project")
|
||||||
|
private String projectName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 付款单位
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "付款单位")
|
||||||
|
private Long paymentUnit;
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "paymentUnit")
|
||||||
|
private String paymentUnitName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收款单位(带*,必填)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "收款单位", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "带=*,必填")
|
||||||
|
private Long receiptUnit;
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "receiptUnit")
|
||||||
|
private String receiptUnitName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收款银行
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "收款银行")
|
||||||
|
private Long receiptBank;
|
||||||
|
@Translation(type = TransConstant.XZD_SUPPLIER_OPEN_BANK_ID_TO_NAME, mapper = "receiptBank")
|
||||||
|
private String receiptBankName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建者
|
||||||
|
*/
|
||||||
|
private Long createBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建者
|
||||||
|
*/
|
||||||
|
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy")
|
||||||
|
private String createByName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收款银行账号
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "收款银行账号")
|
||||||
|
private String receiptBankAccount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计周期(带*,必填)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "统计周期", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "带=*,必填")
|
||||||
|
private String statCycle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目类型
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "项目类型")
|
||||||
|
private String projectType;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 税率(带*,必填)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "税率", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "带=*,必填")
|
||||||
|
private BigDecimal taxRate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目大类
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "项目大类")
|
||||||
|
private String projectCategory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 本期进度支付金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "本期进度支付金额")
|
||||||
|
private BigDecimal currentProgressPayment;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计进度支付金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "累计进度支付金额")
|
||||||
|
private BigDecimal totalProgressPayment;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预付款金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "预付款金额")
|
||||||
|
private BigDecimal advancePayment;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计支付金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "累计支付金额")
|
||||||
|
private BigDecimal totalPaymentAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 本期进度应付金额(带*,必填)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "本期进度应付金额", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "带=*,必填")
|
||||||
|
private BigDecimal currentProgressPayable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计进度应付金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "累计进度应付金额")
|
||||||
|
private BigDecimal totalProgressPayable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预付款扣回金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "预付款扣回金额")
|
||||||
|
private BigDecimal advanceDeductionAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计进度结算占合同比例(%)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "累计进度结算占合同比例", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "%=")
|
||||||
|
private BigDecimal totalProgressSettlementRatio;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 本期进度支付占本期进度应付(%)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "本期进度支付占本期进度应付", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "%=")
|
||||||
|
private BigDecimal currentPaymentRatio;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计进度支付占累计进度应付(%)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "累计进度支付占累计进度应付", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "%=")
|
||||||
|
private BigDecimal totalPaymentRatio;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预付款剩余未抵扣金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "预付款剩余未抵扣金额")
|
||||||
|
private BigDecimal advanceRemainingDeduction;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计支付占合同比例(%)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "累计支付占合同比例", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "%=")
|
||||||
|
private BigDecimal totalPaymentContractRatio;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 剩余进度应付未付金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "剩余进度应付未付金额")
|
||||||
|
private BigDecimal remainingProgressPayable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计进度结算金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "累计进度结算金额")
|
||||||
|
private BigDecimal totalProgressSettlementAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实时刷新(0=未勾选,1=勾选)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "实时刷新", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "0==未勾选,1=勾选")
|
||||||
|
private Long realTimeRefresh;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同含税金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "合同含税金额")
|
||||||
|
private BigDecimal contractTaxInclAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同累计实际付款金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "合同累计实际付款金额")
|
||||||
|
private BigDecimal contractTotalActualPayment;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计结算金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "累计结算金额")
|
||||||
|
private BigDecimal totalSettlementAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据引用
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "单据引用")
|
||||||
|
private String documentReference;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件ID
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "文件ID")
|
||||||
|
private String fileId;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核状态
|
||||||
|
*/
|
||||||
|
private String auditStatus;
|
||||||
|
|
||||||
|
|
||||||
|
List<XzdSfkFukuan> fukuanList;
|
||||||
|
|
||||||
|
List<XzdSfkFapiao> fapiaoList;
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
package org.dromara.xzd.skyfk.jixiehetong.fkxx.mapper;
|
||||||
|
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.fkxx.domain.XzdSfkJixieFk;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.fkxx.domain.vo.XzdSfkJixieFkVo;
|
||||||
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机械合同付款Mapper接口
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-11-18
|
||||||
|
*/
|
||||||
|
public interface XzdSfkJixieFkMapper extends BaseMapperPlus<XzdSfkJixieFk, XzdSfkJixieFkVo> {
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,70 @@
|
|||||||
|
package org.dromara.xzd.skyfk.jixiehetong.fkxx.service;
|
||||||
|
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.fkxx.domain.vo.XzdSfkJixieFkVo;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.fkxx.domain.bo.XzdSfkJixieFkBo;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.fkxx.domain.XzdSfkJixieFk;
|
||||||
|
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-11-18
|
||||||
|
*/
|
||||||
|
public interface IXzdSfkJixieFkService extends IService<XzdSfkJixieFk>{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询机械合同付款
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
* @return 机械合同付款
|
||||||
|
*/
|
||||||
|
XzdSfkJixieFkVo queryById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询机械合同付款列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return 机械合同付款分页列表
|
||||||
|
*/
|
||||||
|
TableDataInfo<XzdSfkJixieFkVo> queryPageList(XzdSfkJixieFkBo bo, PageQuery pageQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询符合条件的机械合同付款列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @return 机械合同付款列表
|
||||||
|
*/
|
||||||
|
List<XzdSfkJixieFkVo> queryList(XzdSfkJixieFkBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增机械合同付款
|
||||||
|
*
|
||||||
|
* @param bo 机械合同付款
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
Boolean insertByBo(XzdSfkJixieFkBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改机械合同付款
|
||||||
|
*
|
||||||
|
* @param bo 机械合同付款
|
||||||
|
* @return 是否修改成功
|
||||||
|
*/
|
||||||
|
Boolean updateByBo(XzdSfkJixieFkBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验并批量删除机械合同付款信息
|
||||||
|
*
|
||||||
|
* @param ids 待删除的主键集合
|
||||||
|
* @param isValid 是否进行有效性校验
|
||||||
|
* @return 是否删除成功
|
||||||
|
*/
|
||||||
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||||
|
}
|
||||||
@ -0,0 +1,318 @@
|
|||||||
|
package org.dromara.xzd.skyfk.jixiehetong.fkxx.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.convert.Convert;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
|
||||||
|
import org.dromara.common.core.domain.event.ProcessEvent;
|
||||||
|
import org.dromara.common.core.domain.event.ProcessTaskEvent;
|
||||||
|
import org.dromara.common.core.exception.ServiceException;
|
||||||
|
import org.dromara.common.core.utils.MapstructUtils;
|
||||||
|
import org.dromara.common.core.utils.SpringUtils;
|
||||||
|
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.common.utils.BatchNumberGenerator;
|
||||||
|
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||||
|
import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.XzdContractMachinery;
|
||||||
|
import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.vo.XzdContractMachineryVo;
|
||||||
|
import org.dromara.xzd.contractManagement.jixiehetongxinxi.service.IXzdContractMachineryService;
|
||||||
|
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFapiao;
|
||||||
|
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFukuan;
|
||||||
|
import org.dromara.xzd.paymentsReceipts.domain.vo.XzdSfkCaigouFkVo;
|
||||||
|
import org.dromara.xzd.paymentsReceipts.service.IXzdSfkFapiaoService;
|
||||||
|
import org.dromara.xzd.paymentsReceipts.service.IXzdSfkFukuanService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.event.EventListener;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.fkxx.domain.bo.XzdSfkJixieFkBo;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.fkxx.domain.vo.XzdSfkJixieFkVo;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.fkxx.domain.XzdSfkJixieFk;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.fkxx.mapper.XzdSfkJixieFkMapper;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.fkxx.service.IXzdSfkJixieFkService;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机械合同付款Service业务层处理
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-11-18
|
||||||
|
*/
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Service
|
||||||
|
@Slf4j
|
||||||
|
public class XzdSfkJixieFkServiceImpl extends ServiceImpl<XzdSfkJixieFkMapper, XzdSfkJixieFk> implements IXzdSfkJixieFkService {
|
||||||
|
|
||||||
|
private final XzdSfkJixieFkMapper baseMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IXzdSfkFapiaoService fapiaoService;
|
||||||
|
@Autowired
|
||||||
|
private IXzdSfkFukuanService fukuanService;
|
||||||
|
@Autowired
|
||||||
|
private SysOssServiceImpl sysOssService;
|
||||||
|
|
||||||
|
|
||||||
|
private final IXzdContractMachineryService xzdContractMachineryService;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询机械合同付款
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
* @return 机械合同付款
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public XzdSfkJixieFkVo queryById(Long id){
|
||||||
|
XzdSfkJixieFkVo vo = baseMapper.selectVoById(id);
|
||||||
|
getHttk(vo);
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询机械合同付款列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return 机械合同付款分页列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<XzdSfkJixieFkVo> queryPageList(XzdSfkJixieFkBo bo, PageQuery pageQuery) {
|
||||||
|
LambdaQueryWrapper<XzdSfkJixieFk> lqw = buildQueryWrapper(bo);
|
||||||
|
Page<XzdSfkJixieFkVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||||
|
return TableDataInfo.build(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询符合条件的机械合同付款列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @return 机械合同付款列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<XzdSfkJixieFkVo> queryList(XzdSfkJixieFkBo bo) {
|
||||||
|
LambdaQueryWrapper<XzdSfkJixieFk> lqw = buildQueryWrapper(bo);
|
||||||
|
return baseMapper.selectVoList(lqw);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取子项
|
||||||
|
* @param vo
|
||||||
|
*/
|
||||||
|
private void getHttk(XzdSfkJixieFkVo vo) {
|
||||||
|
//发票信息
|
||||||
|
vo.setFapiaoList(fapiaoService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdSfkFapiao>().eq(XzdSfkFapiao::getMainDocumentId, vo.getId())));
|
||||||
|
|
||||||
|
//付款信息
|
||||||
|
vo.setFukuanList(fukuanService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdSfkFukuan>().eq(XzdSfkFukuan::getMainDocumentId, vo.getId())));
|
||||||
|
}
|
||||||
|
|
||||||
|
private LambdaQueryWrapper<XzdSfkJixieFk> buildQueryWrapper(XzdSfkJixieFkBo bo) {
|
||||||
|
Map<String, Object> params = bo.getParams();
|
||||||
|
LambdaQueryWrapper<XzdSfkJixieFk> lqw = Wrappers.lambdaQuery();
|
||||||
|
lqw.orderByDesc(XzdSfkJixieFk::getId);
|
||||||
|
lqw.eq(bo.getDeptId() != null, XzdSfkJixieFk::getDeptId, bo.getDeptId());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getDocCode()), XzdSfkJixieFk::getDocCode, bo.getDocCode());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdSfkJixieFk::getTitle, bo.getTitle());
|
||||||
|
lqw.eq(bo.getDocDate() != null, XzdSfkJixieFk::getDocDate, bo.getDocDate());
|
||||||
|
lqw.eq(bo.getContractCode() != null, XzdSfkJixieFk::getContractCode, bo.getContractCode());
|
||||||
|
lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdSfkJixieFk::getContractName, bo.getContractName());
|
||||||
|
lqw.eq(bo.getPaymentProperty() != null, XzdSfkJixieFk::getPaymentProperty, bo.getPaymentProperty());
|
||||||
|
lqw.eq(bo.getExpendContractAmount() != null, XzdSfkJixieFk::getExpendContractAmount, bo.getExpendContractAmount());
|
||||||
|
lqw.eq(bo.getCurrentApproveAmount() != null, XzdSfkJixieFk::getCurrentApproveAmount, bo.getCurrentApproveAmount());
|
||||||
|
lqw.eq(bo.getProject() != null, XzdSfkJixieFk::getProject, bo.getProject());
|
||||||
|
lqw.eq(bo.getPaymentUnit() != null, XzdSfkJixieFk::getPaymentUnit, bo.getPaymentUnit());
|
||||||
|
lqw.eq(bo.getReceiptUnit() != null, XzdSfkJixieFk::getReceiptUnit, bo.getReceiptUnit());
|
||||||
|
lqw.eq(bo.getReceiptBank() != null, XzdSfkJixieFk::getReceiptBank, bo.getReceiptBank());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getReceiptBankAccount()), XzdSfkJixieFk::getReceiptBankAccount, bo.getReceiptBankAccount());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getStatCycle()), XzdSfkJixieFk::getStatCycle, bo.getStatCycle());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getProjectType()), XzdSfkJixieFk::getProjectType, bo.getProjectType());
|
||||||
|
lqw.eq(bo.getTaxRate() != null, XzdSfkJixieFk::getTaxRate, bo.getTaxRate());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getProjectCategory()), XzdSfkJixieFk::getProjectCategory, bo.getProjectCategory());
|
||||||
|
lqw.eq(bo.getCurrentProgressPayment() != null, XzdSfkJixieFk::getCurrentProgressPayment, bo.getCurrentProgressPayment());
|
||||||
|
lqw.eq(bo.getTotalProgressPayment() != null, XzdSfkJixieFk::getTotalProgressPayment, bo.getTotalProgressPayment());
|
||||||
|
lqw.eq(bo.getAdvancePayment() != null, XzdSfkJixieFk::getAdvancePayment, bo.getAdvancePayment());
|
||||||
|
lqw.eq(bo.getTotalPaymentAmount() != null, XzdSfkJixieFk::getTotalPaymentAmount, bo.getTotalPaymentAmount());
|
||||||
|
lqw.eq(bo.getCurrentProgressPayable() != null, XzdSfkJixieFk::getCurrentProgressPayable, bo.getCurrentProgressPayable());
|
||||||
|
lqw.eq(bo.getTotalProgressPayable() != null, XzdSfkJixieFk::getTotalProgressPayable, bo.getTotalProgressPayable());
|
||||||
|
lqw.eq(bo.getAdvanceDeductionAmount() != null, XzdSfkJixieFk::getAdvanceDeductionAmount, bo.getAdvanceDeductionAmount());
|
||||||
|
lqw.eq(bo.getTotalProgressSettlementRatio() != null, XzdSfkJixieFk::getTotalProgressSettlementRatio, bo.getTotalProgressSettlementRatio());
|
||||||
|
lqw.eq(bo.getCurrentPaymentRatio() != null, XzdSfkJixieFk::getCurrentPaymentRatio, bo.getCurrentPaymentRatio());
|
||||||
|
lqw.eq(bo.getTotalPaymentRatio() != null, XzdSfkJixieFk::getTotalPaymentRatio, bo.getTotalPaymentRatio());
|
||||||
|
lqw.eq(bo.getAdvanceRemainingDeduction() != null, XzdSfkJixieFk::getAdvanceRemainingDeduction, bo.getAdvanceRemainingDeduction());
|
||||||
|
lqw.eq(bo.getTotalPaymentContractRatio() != null, XzdSfkJixieFk::getTotalPaymentContractRatio, bo.getTotalPaymentContractRatio());
|
||||||
|
lqw.eq(bo.getRemainingProgressPayable() != null, XzdSfkJixieFk::getRemainingProgressPayable, bo.getRemainingProgressPayable());
|
||||||
|
lqw.eq(bo.getTotalProgressSettlementAmount() != null, XzdSfkJixieFk::getTotalProgressSettlementAmount, bo.getTotalProgressSettlementAmount());
|
||||||
|
lqw.eq(bo.getRealTimeRefresh() != null, XzdSfkJixieFk::getRealTimeRefresh, bo.getRealTimeRefresh());
|
||||||
|
lqw.eq(bo.getContractTaxInclAmount() != null, XzdSfkJixieFk::getContractTaxInclAmount, bo.getContractTaxInclAmount());
|
||||||
|
lqw.eq(bo.getContractTotalActualPayment() != null, XzdSfkJixieFk::getContractTotalActualPayment, bo.getContractTotalActualPayment());
|
||||||
|
lqw.eq(bo.getTotalSettlementAmount() != null, XzdSfkJixieFk::getTotalSettlementAmount, bo.getTotalSettlementAmount());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getDocumentReference()), XzdSfkJixieFk::getDocumentReference, bo.getDocumentReference());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XzdSfkJixieFk::getAuditStatus, bo.getAuditStatus());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdSfkJixieFk::getFileId, bo.getFileId());
|
||||||
|
return lqw;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增机械合同付款
|
||||||
|
*
|
||||||
|
* @param bo 机械合同付款
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean insertByBo(XzdSfkJixieFkBo bo) {
|
||||||
|
XzdSfkJixieFk add = MapstructUtils.convert(bo, XzdSfkJixieFk.class);
|
||||||
|
validEntityBeforeSave(add);
|
||||||
|
String banBen = BatchNumberGenerator.generateBatchNumber("JXHTFK-");
|
||||||
|
add.setDocCode(banBen);
|
||||||
|
boolean flag = baseMapper.insert(add) > 0;
|
||||||
|
if (flag) {
|
||||||
|
bo.setId(add.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 发票信息
|
||||||
|
if (bo.getFapiaoList() != null || !bo.getFapiaoList().isEmpty()) {
|
||||||
|
bo.getFapiaoList().forEach(item -> {item.setMainDocumentId(add.getId());});
|
||||||
|
fapiaoService.saveBatch(bo.getFapiaoList());
|
||||||
|
}
|
||||||
|
// 付款信息
|
||||||
|
if (bo.getFukuanList() != null || !bo.getFukuanList().isEmpty()) {
|
||||||
|
bo.getFukuanList().forEach(item -> {item.setMainDocumentId(add.getId());});
|
||||||
|
fukuanService.saveBatch(bo.getFukuanList());
|
||||||
|
}
|
||||||
|
return flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改机械合同付款
|
||||||
|
*
|
||||||
|
* @param bo 机械合同付款
|
||||||
|
* @return 是否修改成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean updateByBo(XzdSfkJixieFkBo bo) {
|
||||||
|
XzdSfkJixieFk update = MapstructUtils.convert(bo, XzdSfkJixieFk.class);
|
||||||
|
validEntityBeforeSave(update);
|
||||||
|
fapiaoService.remove(new LambdaQueryWrapper<XzdSfkFapiao>().eq(XzdSfkFapiao::getMainDocumentId, bo.getId()));
|
||||||
|
fukuanService.remove(new LambdaQueryWrapper<XzdSfkFukuan>().eq(XzdSfkFukuan::getMainDocumentId, bo.getId()));
|
||||||
|
|
||||||
|
// 发票信息
|
||||||
|
if (bo.getFapiaoList() != null || !bo.getFapiaoList().isEmpty()) {
|
||||||
|
bo.getFapiaoList().forEach(item -> {item.setMainDocumentId(update.getId());});
|
||||||
|
fapiaoService.saveBatch(bo.getFapiaoList());
|
||||||
|
}
|
||||||
|
// 付款信息
|
||||||
|
if (bo.getFukuanList() != null || !bo.getFukuanList().isEmpty()) {
|
||||||
|
bo.getFukuanList().forEach(item -> {item.setMainDocumentId(update.getId());});
|
||||||
|
fukuanService.saveBatch(bo.getFukuanList());
|
||||||
|
}
|
||||||
|
return baseMapper.updateById(update) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存前的数据校验
|
||||||
|
*/
|
||||||
|
private void validEntityBeforeSave(XzdSfkJixieFk entity){
|
||||||
|
//TODO 做一些数据校验,如唯一约束
|
||||||
|
// 判断金额是否超出
|
||||||
|
if (entity != null && entity.getContractCode() != null && entity.getTotalPaymentAmount() != null) {
|
||||||
|
XzdContractMachineryVo vo = xzdContractMachineryService.queryById(entity.getContractCode());
|
||||||
|
if (vo != null && vo.getPaymentNotExceedPayment() == 1 && vo.getTaxInclusiveContractAmount() != null) {
|
||||||
|
BigDecimal multiply = vo.getTaxInclusiveContractAmount().multiply(vo.getPaymentNotExceedContractRatio().divide(new BigDecimal(100)));
|
||||||
|
if (entity.getTotalPaymentAmount().compareTo(multiply) > 0){
|
||||||
|
throw new RuntimeException("付款额不能超合同额支付比例:"+vo.getPaymentNotExceedContractRatio()+"%");
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验并批量删除机械合同付款信息
|
||||||
|
*
|
||||||
|
* @param ids 待删除的主键集合
|
||||||
|
* @param isValid 是否进行有效性校验
|
||||||
|
* @return 是否删除成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||||
|
if(isValid){
|
||||||
|
//TODO 做一些业务上的校验,判断是否需要校验
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Long> deleteIds = new ArrayList<>();
|
||||||
|
for (Long id : ids) {
|
||||||
|
XzdSfkJixieFkVo vo = baseMapper.selectVoById(id);
|
||||||
|
if (vo != null){
|
||||||
|
//删除附件
|
||||||
|
if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){
|
||||||
|
List<Long> list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList();
|
||||||
|
deleteIds.addAll(list);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!deleteIds.isEmpty()) {
|
||||||
|
sysOssService.deleteWithValidByIds(deleteIds, false);
|
||||||
|
}
|
||||||
|
fapiaoService.remove(new LambdaQueryWrapper<XzdSfkFapiao>().in(XzdSfkFapiao::getMainDocumentId, ids));
|
||||||
|
fukuanService.remove(new LambdaQueryWrapper<XzdSfkFukuan>().in(XzdSfkFukuan::getMainDocumentId, ids));
|
||||||
|
return baseMapper.deleteByIds(ids) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
|
||||||
|
* 正常使用只需#processEvent.flowCode=='leave1'
|
||||||
|
* 示例为了方便则使用startsWith匹配了全部示例key
|
||||||
|
*
|
||||||
|
* @param processEvent 参数
|
||||||
|
*/
|
||||||
|
@org.springframework.context.event.EventListener(condition = "#processEvent.flowCode.endsWith('xzdjxhtfksp')")
|
||||||
|
public void processPlansHandlErequipmentList(ProcessEvent processEvent) {
|
||||||
|
log.info("机械合同信息付款审核任务执行了{}", processEvent.toString());
|
||||||
|
String id = processEvent.getBusinessId();
|
||||||
|
XzdSfkJixieFk vo = baseMapper.selectById(Long.valueOf(id));
|
||||||
|
if (vo == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
vo.setAuditStatus(processEvent.getStatus());
|
||||||
|
this.updateById(vo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 执行任务创建监听
|
||||||
|
* 示例:也可通过 @EventListener(condition = "#processTaskEvent.flowCode=='leave1'")进行判断
|
||||||
|
* 在方法中判断流程节点key
|
||||||
|
* if ("xxx".equals(processTaskEvent.getNodeCode())) {
|
||||||
|
* //执行业务逻辑
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* @param processTaskEvent 参数
|
||||||
|
*/
|
||||||
|
@org.springframework.context.event.EventListener(condition = "#processTaskEvent.flowCode.endsWith('xzdjxhtfksp')")
|
||||||
|
public void processTaskPlansHandlerEquipmentList(ProcessTaskEvent processTaskEvent) {
|
||||||
|
log.info("机械合同信息付款审核任务创建了{}", processTaskEvent.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监听删除流程事件
|
||||||
|
* 正常使用只需#processDeleteEvent.flowCode=='leave1'
|
||||||
|
* 示例为了方便则使用startsWith匹配了全部示例key
|
||||||
|
*
|
||||||
|
* @param processDeleteEvent 参数
|
||||||
|
*/
|
||||||
|
@EventListener(condition = "#processDeleteEvent.flowCode.endsWith('xzdjxhtfksp')")
|
||||||
|
public void processDeletePlansHandlerEquipmentList(ProcessDeleteEvent processDeleteEvent) {
|
||||||
|
log.info("机械合同信息付款删除流程事件,机械合同信息付款审核任务执行了{}", processDeleteEvent.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,136 @@
|
|||||||
|
package org.dromara.xzd.skyfk.jixiehetong.skxx.controller;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaMode;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import jakarta.validation.constraints.*;
|
||||||
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.bo.XzdContractMachineryBo;
|
||||||
|
import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.vo.XzdContractMachineryVo;
|
||||||
|
import org.dromara.xzd.contractManagement.jixiehetongxinxi.service.IXzdContractMachineryService;
|
||||||
|
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.skyfk.jixiehetong.skxx.domain.vo.XzdSfkJixieSkVo;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.skxx.domain.bo.XzdSfkJixieSkBo;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.skxx.service.IXzdSfkJixieSkService;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机械合同收款
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-11-18
|
||||||
|
*/
|
||||||
|
@Validated
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/xzd/skxx/sfkJixieSk")
|
||||||
|
public class XzdSfkJixieSkController extends BaseController {
|
||||||
|
|
||||||
|
private final IXzdSfkJixieSkService xzdSfkJixieSkService;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private final IXzdContractMachineryService xzdContractMachineryService;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询机械合同信息列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission(value = {"skxx:sfkJixieSk:add","skxx:sfkJixieSk:edit","skxx:sfkJixieSk:list"},mode = SaMode.OR)
|
||||||
|
@GetMapping("/getlist")
|
||||||
|
public TableDataInfo<XzdContractMachineryVo> list(XzdContractMachineryBo bo, PageQuery pageQuery) {
|
||||||
|
return xzdContractMachineryService.queryPageList(bo, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取机械合同信息详细信息
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
*/
|
||||||
|
@SaCheckPermission(value = {"skxx:sfkJixieSk:add","skxx:sfkJixieSk:edit","skxx:sfkJixieSk:list"},mode = SaMode.OR)
|
||||||
|
@GetMapping("/jxht/{id}")
|
||||||
|
public R<XzdContractMachineryVo> getInfojx(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable Long id) {
|
||||||
|
return R.ok(xzdContractMachineryService.queryById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询机械合同收款列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("skxx:sfkJixieSk:list")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo<XzdSfkJixieSkVo> list(XzdSfkJixieSkBo bo, PageQuery pageQuery) {
|
||||||
|
return xzdSfkJixieSkService.queryPageList(bo, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出机械合同收款列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("skxx:sfkJixieSk:export")
|
||||||
|
@Log(title = "机械合同收款", businessType = BusinessType.EXPORT)
|
||||||
|
@PostMapping("/export")
|
||||||
|
public void export(XzdSfkJixieSkBo bo, HttpServletResponse response) {
|
||||||
|
List<XzdSfkJixieSkVo> list = xzdSfkJixieSkService.queryList(bo);
|
||||||
|
ExcelUtil.exportExcel(list, "机械合同收款", XzdSfkJixieSkVo.class, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取机械合同收款详细信息
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("skxx:sfkJixieSk:query")
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public R<XzdSfkJixieSkVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable Long id) {
|
||||||
|
return R.ok(xzdSfkJixieSkService.queryById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增机械合同收款
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("skxx:sfkJixieSk:add")
|
||||||
|
@Log(title = "机械合同收款", businessType = BusinessType.INSERT)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PostMapping()
|
||||||
|
public R<Void> add(@Validated(AddGroup.class) @RequestBody XzdSfkJixieSkBo bo) {
|
||||||
|
return toAjax(xzdSfkJixieSkService.insertByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改机械合同收款
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("skxx:sfkJixieSk:edit")
|
||||||
|
@Log(title = "机械合同收款", businessType = BusinessType.UPDATE)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PutMapping()
|
||||||
|
public R<Void> edit(@Validated(EditGroup.class) @RequestBody XzdSfkJixieSkBo bo) {
|
||||||
|
return toAjax(xzdSfkJixieSkService.updateByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除机械合同收款
|
||||||
|
*
|
||||||
|
* @param ids 主键串
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("skxx:sfkJixieSk:remove")
|
||||||
|
@Log(title = "机械合同收款", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{ids}")
|
||||||
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||||
|
@PathVariable Long[] ids) {
|
||||||
|
return toAjax(xzdSfkJixieSkService.deleteWithValidByIds(List.of(ids), true));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,189 @@
|
|||||||
|
package org.dromara.xzd.skyfk.jixiehetong.skxx.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_sfk_jixie_sk
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-11-18
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName("xzd_sfk_jixie_sk")
|
||||||
|
public class XzdSfkJixieSk extends BaseEntity {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* id
|
||||||
|
*/
|
||||||
|
@TableId(value = "id")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核状态
|
||||||
|
*/
|
||||||
|
private String auditStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 部门id
|
||||||
|
*/
|
||||||
|
private Long deptId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据编码
|
||||||
|
*/
|
||||||
|
private String documentCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同名称
|
||||||
|
*/
|
||||||
|
private String contractName;
|
||||||
|
/**
|
||||||
|
* 收款单位
|
||||||
|
*/
|
||||||
|
private String partyBUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同金额
|
||||||
|
*/
|
||||||
|
private BigDecimal contractAmount;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标题
|
||||||
|
*/
|
||||||
|
private String titile;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据日期
|
||||||
|
*/
|
||||||
|
private LocalDate documentDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同id
|
||||||
|
*/
|
||||||
|
private Long contractId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同编码
|
||||||
|
*/
|
||||||
|
private String contractCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收款性质
|
||||||
|
*/
|
||||||
|
private String collectionNature;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实际收款日期
|
||||||
|
*/
|
||||||
|
private LocalDate paymentDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目id
|
||||||
|
*/
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 付款单位(客户)id
|
||||||
|
*/
|
||||||
|
private Long payer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收款银行
|
||||||
|
*/
|
||||||
|
private Long beneficiaryBank;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收款银行账号
|
||||||
|
*/
|
||||||
|
private String bankAccount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 本期审批收款金额
|
||||||
|
*/
|
||||||
|
private BigDecimal paymentAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预收款剩余未抵扣金额
|
||||||
|
*/
|
||||||
|
private BigDecimal undischargedPayment;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 税率
|
||||||
|
*/
|
||||||
|
private String taxRate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计审定产值金额
|
||||||
|
*/
|
||||||
|
private BigDecimal outputAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计收款金额(不含本期)
|
||||||
|
*/
|
||||||
|
private BigDecimal ljskjeElse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计收款金额(含本期)
|
||||||
|
*/
|
||||||
|
private BigDecimal ljskjeAll;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 已收款比例(不含本期)
|
||||||
|
*/
|
||||||
|
private BigDecimal yskblElse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 本次收款比例
|
||||||
|
*/
|
||||||
|
private BigDecimal bcskbl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 截止本期收款比例
|
||||||
|
*/
|
||||||
|
private BigDecimal jzbqskbl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 0否1是
|
||||||
|
*/
|
||||||
|
private String sssx;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同含税金额
|
||||||
|
*/
|
||||||
|
private BigDecimal hthsje;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同累计实际收款金额
|
||||||
|
*/
|
||||||
|
private BigDecimal htljsjskje;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计结算金额
|
||||||
|
*/
|
||||||
|
private BigDecimal ljjsje;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 多文件逗号分隔
|
||||||
|
*/
|
||||||
|
private String fileId;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,198 @@
|
|||||||
|
package org.dromara.xzd.skyfk.jixiehetong.skxx.domain.bo;
|
||||||
|
|
||||||
|
import org.dromara.xzd.domain.bo.XzdContractSkxxBo;
|
||||||
|
import org.dromara.xzd.paymentsReceipts.domain.bo.XzdSfkFapiaoBo;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.skxx.domain.XzdSfkJixieSk;
|
||||||
|
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;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机械合同收款业务对象 xzd_sfk_jixie_sk
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-11-18
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@AutoMapper(target = XzdSfkJixieSk.class, reverseConvertGenerate = false)
|
||||||
|
public class XzdSfkJixieSkBo extends BaseEntity {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* id
|
||||||
|
*/
|
||||||
|
@NotNull(message = "id不能为空", groups = { EditGroup.class })
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核状态
|
||||||
|
*/
|
||||||
|
private String auditStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 部门id
|
||||||
|
*/
|
||||||
|
private Long deptId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据编码
|
||||||
|
*/
|
||||||
|
private String documentCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标题
|
||||||
|
*/
|
||||||
|
private String titile;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据日期
|
||||||
|
*/
|
||||||
|
private LocalDate documentDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同id
|
||||||
|
*/
|
||||||
|
private Long contractId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同编码
|
||||||
|
*/
|
||||||
|
private String contractCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收款性质
|
||||||
|
*/
|
||||||
|
private String collectionNature;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实际收款日期
|
||||||
|
*/
|
||||||
|
private LocalDate paymentDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目id
|
||||||
|
*/
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 付款单位(客户)id
|
||||||
|
*/
|
||||||
|
private Long payer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收款银行
|
||||||
|
*/
|
||||||
|
private Long beneficiaryBank;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收款银行账号
|
||||||
|
*/
|
||||||
|
private String bankAccount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 本期审批收款金额
|
||||||
|
*/
|
||||||
|
private BigDecimal paymentAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预收款剩余未抵扣金额
|
||||||
|
*/
|
||||||
|
private BigDecimal undischargedPayment;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 税率
|
||||||
|
*/
|
||||||
|
private String taxRate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计审定产值金额
|
||||||
|
*/
|
||||||
|
private BigDecimal outputAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计收款金额(不含本期)
|
||||||
|
*/
|
||||||
|
private BigDecimal ljskjeElse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计收款金额(含本期)
|
||||||
|
*/
|
||||||
|
private BigDecimal ljskjeAll;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 已收款比例(不含本期)
|
||||||
|
*/
|
||||||
|
private BigDecimal yskblElse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 本次收款比例
|
||||||
|
*/
|
||||||
|
private BigDecimal bcskbl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 截止本期收款比例
|
||||||
|
*/
|
||||||
|
private BigDecimal jzbqskbl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 0否1是
|
||||||
|
*/
|
||||||
|
private String sssx;
|
||||||
|
/**
|
||||||
|
* 合同名称
|
||||||
|
*/
|
||||||
|
private String contractName;
|
||||||
|
/**
|
||||||
|
* 收款单位
|
||||||
|
*/
|
||||||
|
private String partyBUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同金额
|
||||||
|
*/
|
||||||
|
private BigDecimal contractAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同含税金额
|
||||||
|
*/
|
||||||
|
private BigDecimal hthsje;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同累计实际收款金额
|
||||||
|
*/
|
||||||
|
private BigDecimal htljsjskje;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计结算金额
|
||||||
|
*/
|
||||||
|
private BigDecimal ljjsje;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 多文件逗号分隔
|
||||||
|
*/
|
||||||
|
private String fileId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发票信息
|
||||||
|
*/
|
||||||
|
List<XzdSfkFapiaoBo> fpxx;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收款信息
|
||||||
|
*/
|
||||||
|
List<XzdContractSkxxBo> skxx;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,265 @@
|
|||||||
|
package org.dromara.xzd.skyfk.jixiehetong.skxx.domain.vo;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
import org.dromara.common.translation.annotation.Translation;
|
||||||
|
import org.dromara.common.translation.constant.TransConstant;
|
||||||
|
import org.dromara.xzd.domain.vo.XzdContractSkxxVo;
|
||||||
|
import org.dromara.xzd.paymentsReceipts.domain.vo.XzdSfkFapiaoVo;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.skxx.domain.XzdSfkJixieSk;
|
||||||
|
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;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机械合同收款视图对象 xzd_sfk_jixie_sk
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-11-18
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
@AutoMapper(target = XzdSfkJixieSk.class)
|
||||||
|
public class XzdSfkJixieSkVo implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* id
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "id")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核状态
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "审核状态")
|
||||||
|
private String auditStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 部门id
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "部门id")
|
||||||
|
private Long deptId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据编码
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "单据编码")
|
||||||
|
private String documentCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标题
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "标题")
|
||||||
|
private String titile;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同名称
|
||||||
|
*/
|
||||||
|
private String contractName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据日期
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "单据日期")
|
||||||
|
private LocalDate documentDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同id
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "合同id")
|
||||||
|
private Long contractId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同编码
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "合同编码")
|
||||||
|
private String contractCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收款性质
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "收款性质")
|
||||||
|
private String collectionNature;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实际收款日期
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "实际收款日期")
|
||||||
|
private LocalDate paymentDate;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收款单位
|
||||||
|
*/
|
||||||
|
private String partyBUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收款单位
|
||||||
|
*/
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "partyBUnit")
|
||||||
|
private String partyBUnitName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同金额
|
||||||
|
*/
|
||||||
|
private BigDecimal contractAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目id
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "项目id")
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目名称
|
||||||
|
*/
|
||||||
|
@Translation(type = TransConstant.XZD_PROJECT_ID_TO_NAME, mapper = "projectId")
|
||||||
|
private String projectName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 付款单位(客户)id
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "付款单位(客户)id")
|
||||||
|
private Long payer;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 付款单位(客户)名称
|
||||||
|
*/
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "payer")
|
||||||
|
private String payerName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收款银行
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "收款银行")
|
||||||
|
private Long beneficiaryBank;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收款银行名称
|
||||||
|
*/
|
||||||
|
@Translation(type = TransConstant.XZD_SUPPLIER_OPEN_BANK_ID_TO_NAME, mapper = "beneficiaryBank")
|
||||||
|
private String beneficiaryBankName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收款银行账号
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "收款银行账号")
|
||||||
|
private String bankAccount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 本期审批收款金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "本期审批收款金额")
|
||||||
|
private BigDecimal paymentAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预收款剩余未抵扣金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "预收款剩余未抵扣金额")
|
||||||
|
private BigDecimal undischargedPayment;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 税率
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "税率")
|
||||||
|
private String taxRate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计审定产值金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "累计审定产值金额")
|
||||||
|
private BigDecimal outputAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计收款金额(不含本期)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "累计收款金额(不含本期)")
|
||||||
|
private BigDecimal ljskjeElse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计收款金额(含本期)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "累计收款金额(含本期)")
|
||||||
|
private BigDecimal ljskjeAll;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 已收款比例(不含本期)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "已收款比例(不含本期)")
|
||||||
|
private BigDecimal yskblElse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 本次收款比例
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "本次收款比例")
|
||||||
|
private BigDecimal bcskbl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 截止本期收款比例
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "截止本期收款比例")
|
||||||
|
private BigDecimal jzbqskbl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 0否1是
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "0否1是")
|
||||||
|
private String sssx;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同含税金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "合同含税金额")
|
||||||
|
private BigDecimal hthsje;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同累计实际收款金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "合同累计实际收款金额")
|
||||||
|
private BigDecimal htljsjskje;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计结算金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "累计结算金额")
|
||||||
|
private BigDecimal ljjsje;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 多文件逗号分隔
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "多文件逗号分隔")
|
||||||
|
private String fileId;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发票信息
|
||||||
|
*/
|
||||||
|
List<XzdSfkFapiaoVo> fpxx;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收款信息
|
||||||
|
*/
|
||||||
|
List<XzdContractSkxxVo> skxx;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
package org.dromara.xzd.skyfk.jixiehetong.skxx.mapper;
|
||||||
|
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.skxx.domain.XzdSfkJixieSk;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.skxx.domain.vo.XzdSfkJixieSkVo;
|
||||||
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机械合同收款Mapper接口
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-11-18
|
||||||
|
*/
|
||||||
|
public interface XzdSfkJixieSkMapper extends BaseMapperPlus<XzdSfkJixieSk, XzdSfkJixieSkVo> {
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,70 @@
|
|||||||
|
package org.dromara.xzd.skyfk.jixiehetong.skxx.service;
|
||||||
|
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.skxx.domain.vo.XzdSfkJixieSkVo;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.skxx.domain.bo.XzdSfkJixieSkBo;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.skxx.domain.XzdSfkJixieSk;
|
||||||
|
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-11-18
|
||||||
|
*/
|
||||||
|
public interface IXzdSfkJixieSkService extends IService<XzdSfkJixieSk>{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询机械合同收款
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
* @return 机械合同收款
|
||||||
|
*/
|
||||||
|
XzdSfkJixieSkVo queryById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询机械合同收款列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return 机械合同收款分页列表
|
||||||
|
*/
|
||||||
|
TableDataInfo<XzdSfkJixieSkVo> queryPageList(XzdSfkJixieSkBo bo, PageQuery pageQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询符合条件的机械合同收款列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @return 机械合同收款列表
|
||||||
|
*/
|
||||||
|
List<XzdSfkJixieSkVo> queryList(XzdSfkJixieSkBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增机械合同收款
|
||||||
|
*
|
||||||
|
* @param bo 机械合同收款
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
Boolean insertByBo(XzdSfkJixieSkBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改机械合同收款
|
||||||
|
*
|
||||||
|
* @param bo 机械合同收款
|
||||||
|
* @return 是否修改成功
|
||||||
|
*/
|
||||||
|
Boolean updateByBo(XzdSfkJixieSkBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验并批量删除机械合同收款信息
|
||||||
|
*
|
||||||
|
* @param ids 待删除的主键集合
|
||||||
|
* @param isValid 是否进行有效性校验
|
||||||
|
* @return 是否删除成功
|
||||||
|
*/
|
||||||
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||||
|
}
|
||||||
@ -0,0 +1,290 @@
|
|||||||
|
package org.dromara.xzd.skyfk.jixiehetong.skxx.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
|
||||||
|
import org.dromara.common.core.domain.event.ProcessEvent;
|
||||||
|
import org.dromara.common.core.domain.event.ProcessTaskEvent;
|
||||||
|
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.common.utils.BatchNumberGenerator;
|
||||||
|
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||||
|
import org.dromara.xzd.domain.XzdContractSkxx;
|
||||||
|
import org.dromara.xzd.domain.bo.XzdContractSkxxBo;
|
||||||
|
import org.dromara.xzd.domain.vo.XzdContractSkxxVo;
|
||||||
|
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFapiao;
|
||||||
|
import org.dromara.xzd.paymentsReceipts.domain.bo.XzdSfkFapiaoBo;
|
||||||
|
import org.dromara.xzd.paymentsReceipts.domain.vo.XzdSfkFapiaoVo;
|
||||||
|
import org.dromara.xzd.paymentsReceipts.service.impl.XzdSfkFapiaoServiceImpl;
|
||||||
|
import org.dromara.xzd.service.impl.XzdContractSkxxServiceImpl;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.fkxx.domain.XzdSfkJixieFk;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.fkxx.domain.vo.XzdSfkJixieFkVo;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.event.EventListener;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.skxx.domain.bo.XzdSfkJixieSkBo;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.skxx.domain.vo.XzdSfkJixieSkVo;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.skxx.domain.XzdSfkJixieSk;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.skxx.mapper.XzdSfkJixieSkMapper;
|
||||||
|
import org.dromara.xzd.skyfk.jixiehetong.skxx.service.IXzdSfkJixieSkService;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机械合同收款Service业务层处理
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-11-18
|
||||||
|
*/
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Service
|
||||||
|
@Slf4j
|
||||||
|
public class XzdSfkJixieSkServiceImpl extends ServiceImpl<XzdSfkJixieSkMapper, XzdSfkJixieSk> implements IXzdSfkJixieSkService {
|
||||||
|
|
||||||
|
private final XzdSfkJixieSkMapper baseMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private XzdSfkFapiaoServiceImpl sfkFapiaoService;
|
||||||
|
@Autowired
|
||||||
|
private XzdContractSkxxServiceImpl xzdContractSkxxService;
|
||||||
|
@Autowired
|
||||||
|
private SysOssServiceImpl sysOssService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询机械合同收款
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
* @return 机械合同收款
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public XzdSfkJixieSkVo queryById(Long id){
|
||||||
|
XzdSfkJixieSkVo vo = baseMapper.selectVoById(id);
|
||||||
|
saveValue(vo);
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void saveValue(XzdSfkJixieSkVo vo) {
|
||||||
|
List<XzdContractSkxxVo> xzdContractSkxxVos = xzdContractSkxxService.getBaseMapper().selectVoList(new LambdaQueryWrapper<XzdContractSkxx>().eq(XzdContractSkxx::getMainId, vo.getId()));
|
||||||
|
List<XzdSfkFapiaoVo> xzdSfkFapiaoVos = sfkFapiaoService.getBaseMapper().selectVoList(new LambdaQueryWrapper<XzdSfkFapiao>().eq(XzdSfkFapiao::getMainDocumentId, vo.getId()));
|
||||||
|
|
||||||
|
vo.setSkxx(xzdContractSkxxVos);
|
||||||
|
vo.setFpxx(xzdSfkFapiaoVos);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询机械合同收款列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return 机械合同收款分页列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<XzdSfkJixieSkVo> queryPageList(XzdSfkJixieSkBo bo, PageQuery pageQuery) {
|
||||||
|
LambdaQueryWrapper<XzdSfkJixieSk> lqw = buildQueryWrapper(bo);
|
||||||
|
Page<XzdSfkJixieSkVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||||
|
return TableDataInfo.build(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询符合条件的机械合同收款列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @return 机械合同收款列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<XzdSfkJixieSkVo> queryList(XzdSfkJixieSkBo bo) {
|
||||||
|
LambdaQueryWrapper<XzdSfkJixieSk> lqw = buildQueryWrapper(bo);
|
||||||
|
return baseMapper.selectVoList(lqw);
|
||||||
|
}
|
||||||
|
|
||||||
|
private LambdaQueryWrapper<XzdSfkJixieSk> buildQueryWrapper(XzdSfkJixieSkBo bo) {
|
||||||
|
Map<String, Object> params = bo.getParams();
|
||||||
|
LambdaQueryWrapper<XzdSfkJixieSk> lqw = Wrappers.lambdaQuery();
|
||||||
|
lqw.orderByDesc(XzdSfkJixieSk::getId);
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XzdSfkJixieSk::getAuditStatus, bo.getAuditStatus());
|
||||||
|
lqw.eq(bo.getDeptId() != null, XzdSfkJixieSk::getDeptId, bo.getDeptId());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getDocumentCode()), XzdSfkJixieSk::getDocumentCode, bo.getDocumentCode());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getTitile()), XzdSfkJixieSk::getTitile, bo.getTitile());
|
||||||
|
lqw.eq(bo.getDocumentDate() != null, XzdSfkJixieSk::getDocumentDate, bo.getDocumentDate());
|
||||||
|
lqw.eq(bo.getContractId() != null, XzdSfkJixieSk::getContractId, bo.getContractId());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getContractCode()), XzdSfkJixieSk::getContractCode, bo.getContractCode());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getCollectionNature()), XzdSfkJixieSk::getCollectionNature, bo.getCollectionNature());
|
||||||
|
lqw.eq(bo.getPaymentDate() != null, XzdSfkJixieSk::getPaymentDate, bo.getPaymentDate());
|
||||||
|
lqw.eq(bo.getProjectId() != null, XzdSfkJixieSk::getProjectId, bo.getProjectId());
|
||||||
|
lqw.eq(bo.getPayer() != null, XzdSfkJixieSk::getPayer, bo.getPayer());
|
||||||
|
lqw.eq(bo.getBeneficiaryBank() != null, XzdSfkJixieSk::getBeneficiaryBank, bo.getBeneficiaryBank());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getBankAccount()), XzdSfkJixieSk::getBankAccount, bo.getBankAccount());
|
||||||
|
lqw.eq(bo.getPaymentAmount() != null, XzdSfkJixieSk::getPaymentAmount, bo.getPaymentAmount());
|
||||||
|
lqw.eq(bo.getUndischargedPayment() != null, XzdSfkJixieSk::getUndischargedPayment, bo.getUndischargedPayment());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getTaxRate()), XzdSfkJixieSk::getTaxRate, bo.getTaxRate());
|
||||||
|
lqw.eq(bo.getOutputAmount() != null, XzdSfkJixieSk::getOutputAmount, bo.getOutputAmount());
|
||||||
|
lqw.eq(bo.getLjskjeElse() != null, XzdSfkJixieSk::getLjskjeElse, bo.getLjskjeElse());
|
||||||
|
lqw.eq(bo.getLjskjeAll() != null, XzdSfkJixieSk::getLjskjeAll, bo.getLjskjeAll());
|
||||||
|
lqw.eq(bo.getYskblElse() != null, XzdSfkJixieSk::getYskblElse, bo.getYskblElse());
|
||||||
|
lqw.eq(bo.getBcskbl() != null, XzdSfkJixieSk::getBcskbl, bo.getBcskbl());
|
||||||
|
lqw.eq(bo.getJzbqskbl() != null, XzdSfkJixieSk::getJzbqskbl, bo.getJzbqskbl());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getSssx()), XzdSfkJixieSk::getSssx, bo.getSssx());
|
||||||
|
lqw.eq(bo.getHthsje() != null, XzdSfkJixieSk::getHthsje, bo.getHthsje());
|
||||||
|
lqw.eq(bo.getHtljsjskje() != null, XzdSfkJixieSk::getHtljsjskje, bo.getHtljsjskje());
|
||||||
|
lqw.eq(bo.getLjjsje() != null, XzdSfkJixieSk::getLjjsje, bo.getLjjsje());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdSfkJixieSk::getFileId, bo.getFileId());
|
||||||
|
return lqw;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增机械合同收款
|
||||||
|
*
|
||||||
|
* @param bo 机械合同收款
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean insertByBo(XzdSfkJixieSkBo bo) {
|
||||||
|
XzdSfkJixieSk add = MapstructUtils.convert(bo, XzdSfkJixieSk.class);
|
||||||
|
validEntityBeforeSave(add);
|
||||||
|
String banBen = BatchNumberGenerator.generateBatchNumber("JXHTSK-");
|
||||||
|
add.setDocumentCode(banBen);
|
||||||
|
boolean flag = baseMapper.insert(add) > 0;
|
||||||
|
//收款信息
|
||||||
|
if (bo.getSkxx() != null && !bo.getSkxx().isEmpty()){
|
||||||
|
for (XzdContractSkxxBo skxx : bo.getSkxx()) {
|
||||||
|
skxx.setMainId(add.getId());
|
||||||
|
xzdContractSkxxService.insertByBo(skxx);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//发票信息
|
||||||
|
if (bo.getFpxx() != null && !bo.getFpxx().isEmpty()){
|
||||||
|
for (XzdSfkFapiaoBo fpxx : bo.getFpxx()) {
|
||||||
|
fpxx.setMainDocumentId(add.getId());
|
||||||
|
sfkFapiaoService.insertByBo(fpxx);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (flag) {
|
||||||
|
bo.setId(add.getId());
|
||||||
|
}
|
||||||
|
return flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改机械合同收款
|
||||||
|
*
|
||||||
|
* @param bo 机械合同收款
|
||||||
|
* @return 是否修改成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean updateByBo(XzdSfkJixieSkBo bo) {
|
||||||
|
XzdSfkJixieSk update = MapstructUtils.convert(bo, XzdSfkJixieSk.class);
|
||||||
|
validEntityBeforeSave(update);
|
||||||
|
xzdContractSkxxService.getBaseMapper().delete(new LambdaQueryWrapper<XzdContractSkxx>().eq(XzdContractSkxx::getMainId, update.getId()));
|
||||||
|
sfkFapiaoService.getBaseMapper().delete(new LambdaQueryWrapper<XzdSfkFapiao>().eq(XzdSfkFapiao::getMainDocumentId, update.getId()));
|
||||||
|
if (bo.getSkxx() != null && !bo.getSkxx().isEmpty()){
|
||||||
|
bo.getSkxx().forEach(skxx -> {
|
||||||
|
skxx.setMainId(update.getId());
|
||||||
|
});
|
||||||
|
xzdContractSkxxService.saveBatch(MapstructUtils.convert(bo.getSkxx(), XzdContractSkxx.class));
|
||||||
|
}
|
||||||
|
if (bo.getFpxx() != null && !bo.getFpxx().isEmpty()){
|
||||||
|
bo.getFpxx().forEach(fpxx -> {
|
||||||
|
fpxx.setMainDocumentId(update.getId());
|
||||||
|
});
|
||||||
|
sfkFapiaoService.saveBatch(MapstructUtils.convert(bo.getFpxx(), XzdSfkFapiao.class));
|
||||||
|
}
|
||||||
|
return baseMapper.updateById(update) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存前的数据校验
|
||||||
|
*/
|
||||||
|
private void validEntityBeforeSave(XzdSfkJixieSk entity){
|
||||||
|
//TODO 做一些数据校验,如唯一约束
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验并批量删除机械合同收款信息
|
||||||
|
*
|
||||||
|
* @param ids 待删除的主键集合
|
||||||
|
* @param isValid 是否进行有效性校验
|
||||||
|
* @return 是否删除成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||||
|
if(isValid){
|
||||||
|
//TODO 做一些业务上的校验,判断是否需要校验
|
||||||
|
}
|
||||||
|
List<Long> deleteIds = new ArrayList<>();
|
||||||
|
for (Long id : ids) {
|
||||||
|
XzdSfkJixieSkVo vo = baseMapper.selectVoById(id);
|
||||||
|
if (vo != null){
|
||||||
|
//删除附件
|
||||||
|
if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){
|
||||||
|
List<Long> list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList();
|
||||||
|
deleteIds.addAll(list);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!deleteIds.isEmpty()) {
|
||||||
|
sysOssService.deleteWithValidByIds(deleteIds, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
xzdContractSkxxService.getBaseMapper().delete(new LambdaQueryWrapper<XzdContractSkxx>().in(XzdContractSkxx::getMainId, ids));
|
||||||
|
sfkFapiaoService.getBaseMapper().delete(new LambdaQueryWrapper<XzdSfkFapiao>().in(XzdSfkFapiao::getMainDocumentId, ids));
|
||||||
|
|
||||||
|
return baseMapper.deleteByIds(ids) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
|
||||||
|
* 正常使用只需#processEvent.flowCode=='leave1'
|
||||||
|
* 示例为了方便则使用startsWith匹配了全部示例key
|
||||||
|
*
|
||||||
|
* @param processEvent 参数
|
||||||
|
*/
|
||||||
|
@org.springframework.context.event.EventListener(condition = "#processEvent.flowCode.endsWith('xzdjxhtsksp')")
|
||||||
|
public void processPlansHandlErequipmentList(ProcessEvent processEvent) {
|
||||||
|
log.info("机械合同信息收款审核任务执行了{}", processEvent.toString());
|
||||||
|
String id = processEvent.getBusinessId();
|
||||||
|
XzdSfkJixieSk vo = baseMapper.selectById(Long.valueOf(id));
|
||||||
|
if (vo == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
vo.setAuditStatus(processEvent.getStatus());
|
||||||
|
this.updateById(vo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 执行任务创建监听
|
||||||
|
* 示例:也可通过 @EventListener(condition = "#processTaskEvent.flowCode=='leave1'")进行判断
|
||||||
|
* 在方法中判断流程节点key
|
||||||
|
* if ("xxx".equals(processTaskEvent.getNodeCode())) {
|
||||||
|
* //执行业务逻辑
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* @param processTaskEvent 参数
|
||||||
|
*/
|
||||||
|
@org.springframework.context.event.EventListener(condition = "#processTaskEvent.flowCode.endsWith('xzdjxhtsksp')")
|
||||||
|
public void processTaskPlansHandlerEquipmentList(ProcessTaskEvent processTaskEvent) {
|
||||||
|
log.info("机械合同信息收款审核任务创建了{}", processTaskEvent.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监听删除流程事件
|
||||||
|
* 正常使用只需#processDeleteEvent.flowCode=='leave1'
|
||||||
|
* 示例为了方便则使用startsWith匹配了全部示例key
|
||||||
|
*
|
||||||
|
* @param processDeleteEvent 参数
|
||||||
|
*/
|
||||||
|
@EventListener(condition = "#processDeleteEvent.flowCode.endsWith('xzdjxhtsksp')")
|
||||||
|
public void processDeletePlansHandlerEquipmentList(ProcessDeleteEvent processDeleteEvent) {
|
||||||
|
log.info("机械合同信息收款删除流程事件,机械合同信息收款审核任务执行了{}", processDeleteEvent.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user