成本单
This commit is contained in:
@ -67,7 +67,7 @@ public class XzdSubcontractChange extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 项目
|
* 项目
|
||||||
*/
|
*/
|
||||||
private String project;
|
private String projectName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 经营模式
|
* 经营模式
|
||||||
@ -77,17 +77,17 @@ public class XzdSubcontractChange extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 组织
|
* 组织
|
||||||
*/
|
*/
|
||||||
private String organization;
|
private String organizationName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 甲方单位
|
* 甲方单位
|
||||||
*/
|
*/
|
||||||
private String partyAUnit;
|
private String partyAUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 乙方单位
|
* 乙方单位
|
||||||
*/
|
*/
|
||||||
private String partyBUnit;
|
private String partyBUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 原合同造价
|
* 原合同造价
|
||||||
|
|||||||
@ -30,13 +30,11 @@ public class XzdSubcontractChangeBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@NotNull(message = "不能为空", groups = { EditGroup.class })
|
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单据编码
|
* 单据编码
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "单据编码不能为空", groups = { AddGroup.class, EditGroup.class })
|
|
||||||
private String documentCode;
|
private String documentCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -72,7 +70,7 @@ public class XzdSubcontractChangeBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 项目
|
* 项目
|
||||||
*/
|
*/
|
||||||
private String project;
|
private String projectName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 经营模式
|
* 经营模式
|
||||||
@ -82,17 +80,17 @@ public class XzdSubcontractChangeBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 组织
|
* 组织
|
||||||
*/
|
*/
|
||||||
private String organization;
|
private String organizationName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 甲方单位
|
* 甲方单位
|
||||||
*/
|
*/
|
||||||
private String partyAUnit;
|
private String partyAUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 乙方单位
|
* 乙方单位
|
||||||
*/
|
*/
|
||||||
private String partyBUnit;
|
private String partyBUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 原合同造价
|
* 原合同造价
|
||||||
|
|||||||
@ -93,7 +93,7 @@ public class XzdSubcontractChangeVo implements Serializable {
|
|||||||
* 项目
|
* 项目
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "项目")
|
@ExcelProperty(value = "项目")
|
||||||
private String project;
|
private String projectName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 经营模式
|
* 经营模式
|
||||||
@ -105,19 +105,19 @@ public class XzdSubcontractChangeVo implements Serializable {
|
|||||||
* 组织
|
* 组织
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "组织")
|
@ExcelProperty(value = "组织")
|
||||||
private String organization;
|
private String organizationName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 甲方单位
|
* 甲方单位
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "甲方单位")
|
@ExcelProperty(value = "甲方单位")
|
||||||
private String partyAUnit;
|
private String partyAUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 乙方单位
|
* 乙方单位
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "乙方单位")
|
@ExcelProperty(value = "乙方单位")
|
||||||
private String partyBUnit;
|
private String partyBUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 原合同造价
|
* 原合同造价
|
||||||
@ -191,18 +191,39 @@ public class XzdSubcontractChangeVo implements Serializable {
|
|||||||
@ExcelProperty(value = "变更后项目经理")
|
@ExcelProperty(value = "变更后项目经理")
|
||||||
private Long postChangeProjectManager;
|
private Long postChangeProjectManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 变更后项目经理名称
|
||||||
|
*/
|
||||||
|
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "postChangeProjectManager")
|
||||||
|
@ExcelProperty(value = "变更后项目经理名称")
|
||||||
|
private String postChangeProjectManagerName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 变更后项目责任人
|
* 变更后项目责任人
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "变更后项目责任人")
|
@ExcelProperty(value = "变更后项目责任人")
|
||||||
private Long postChangeProjectOwner;
|
private Long postChangeProjectOwner;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 变更后项目责任人名成
|
||||||
|
*/
|
||||||
|
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "postChangeProjectOwner")
|
||||||
|
@ExcelProperty(value = "变更后项目责任人")
|
||||||
|
private String postChangeProjectOwnerName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 变更后现场经理
|
* 变更后现场经理
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "变更后现场经理")
|
@ExcelProperty(value = "变更后现场经理")
|
||||||
private Long postChangeSiteManager;
|
private Long postChangeSiteManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 变更后现场经理
|
||||||
|
*/
|
||||||
|
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "postChangeSiteManager")
|
||||||
|
@ExcelProperty(value = "变更后现场经理")
|
||||||
|
private Long postChangeSiteManagerName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 变更后合同备注
|
* 变更后合同备注
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -160,11 +160,7 @@ public class XzdSubcontractChangeServiceImpl extends ServiceImpl<XzdSubcontractC
|
|||||||
lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdSubcontractChange::getContractName, bo.getContractName());
|
lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdSubcontractChange::getContractName, bo.getContractName());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getContractType()), XzdSubcontractChange::getContractType, bo.getContractType());
|
lqw.eq(StringUtils.isNotBlank(bo.getContractType()), XzdSubcontractChange::getContractType, bo.getContractType());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getChangeType()), XzdSubcontractChange::getChangeType, bo.getChangeType());
|
lqw.eq(StringUtils.isNotBlank(bo.getChangeType()), XzdSubcontractChange::getChangeType, bo.getChangeType());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getProject()), XzdSubcontractChange::getProject, bo.getProject());
|
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getBusinessModel()), XzdSubcontractChange::getBusinessModel, bo.getBusinessModel());
|
lqw.eq(StringUtils.isNotBlank(bo.getBusinessModel()), XzdSubcontractChange::getBusinessModel, bo.getBusinessModel());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getOrganization()), XzdSubcontractChange::getOrganization, bo.getOrganization());
|
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getPartyAUnit()), XzdSubcontractChange::getPartyAUnit, bo.getPartyAUnit());
|
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getPartyBUnit()), XzdSubcontractChange::getPartyBUnit, bo.getPartyBUnit());
|
|
||||||
lqw.eq(bo.getOriginalContractCost() != null, XzdSubcontractChange::getOriginalContractCost, bo.getOriginalContractCost());
|
lqw.eq(bo.getOriginalContractCost() != null, XzdSubcontractChange::getOriginalContractCost, bo.getOriginalContractCost());
|
||||||
lqw.eq(bo.getChangeTaxInclusiveTotal() != null, XzdSubcontractChange::getChangeTaxInclusiveTotal, bo.getChangeTaxInclusiveTotal());
|
lqw.eq(bo.getChangeTaxInclusiveTotal() != null, XzdSubcontractChange::getChangeTaxInclusiveTotal, bo.getChangeTaxInclusiveTotal());
|
||||||
lqw.eq(bo.getPostChangeTotalCost() != null, XzdSubcontractChange::getPostChangeTotalCost, bo.getPostChangeTotalCost());
|
lqw.eq(bo.getPostChangeTotalCost() != null, XzdSubcontractChange::getPostChangeTotalCost, bo.getPostChangeTotalCost());
|
||||||
|
|||||||
@ -161,7 +161,7 @@ public class XzdSubcontract extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 项目类型(字典)
|
* 项目类型(字典)
|
||||||
*/
|
*/
|
||||||
private String projectType;
|
private Long projectType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目大类(字典)
|
* 项目大类(字典)
|
||||||
|
|||||||
@ -164,7 +164,7 @@ public class XzdSubcontractBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 项目类型(字典)
|
* 项目类型(字典)
|
||||||
*/
|
*/
|
||||||
private String projectType;
|
private Long projectType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目大类(字典)
|
* 项目大类(字典)
|
||||||
|
|||||||
@ -249,6 +249,7 @@ public class XzdSubcontractVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 签约组织名称
|
* 签约组织名称
|
||||||
*/
|
*/
|
||||||
|
@Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "signingOrganization")
|
||||||
@ExcelProperty(value = "签约组织名称")
|
@ExcelProperty(value = "签约组织名称")
|
||||||
private String signingOrganizationName;
|
private String signingOrganizationName;
|
||||||
|
|
||||||
@ -257,7 +258,7 @@ public class XzdSubcontractVo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "项目类型", converter = ExcelDictConvert.class)
|
@ExcelProperty(value = "项目类型", converter = ExcelDictConvert.class)
|
||||||
@ExcelDictFormat(readConverterExp = "字=典")
|
@ExcelDictFormat(readConverterExp = "字=典")
|
||||||
private String projectType;
|
private Long projectType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目大类(字典)
|
* 项目大类(字典)
|
||||||
|
|||||||
@ -132,7 +132,6 @@ public class XzdSubcontractServiceImpl extends ServiceImpl<XzdSubcontractMapper,
|
|||||||
}
|
}
|
||||||
//管理组织(供应商)
|
//管理组织(供应商)
|
||||||
String unitName = xzdSupplierInfoService.queryNameById(item.getPartyBUnit());
|
String unitName = xzdSupplierInfoService.queryNameById(item.getPartyBUnit());
|
||||||
|
|
||||||
if (unitName != null){
|
if (unitName != null){
|
||||||
item.setManagementOrganizationName(unitName);
|
item.setManagementOrganizationName(unitName);
|
||||||
}
|
}
|
||||||
@ -141,19 +140,13 @@ public class XzdSubcontractServiceImpl extends ServiceImpl<XzdSubcontractMapper,
|
|||||||
if (unitName1 != null){
|
if (unitName1 != null){
|
||||||
item.setInvoicingUnitName(unitName1);
|
item.setInvoicingUnitName(unitName1);
|
||||||
}
|
}
|
||||||
//收票单位名称(客户名称)
|
//收票单位名称(供应商名称)
|
||||||
R<QuerCorrespondentDto> byid2 = iXzdCorrespondentList.getCustomerByid(item.getTicketReceivingUnit());
|
String unitName2 = xzdSupplierInfoService.queryNameById(item.getTicketReceivingUnit());
|
||||||
if (byid2!=null){
|
if (unitName2 != null){
|
||||||
if (byid2.getData().getXzdCustomerinformation() != null){
|
item.setTicketReceivingUnitName(unitName2);
|
||||||
item.setTicketReceivingUnitName(byid2.getData().getXzdCustomerinformation().getUnitName());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
//签约组织(供应商)
|
|
||||||
String unitName2 = xzdSupplierInfoService.queryNameById(item.getSigningOrganization());
|
// //合同文本-预收款项
|
||||||
if (unitName2!= null){
|
|
||||||
item.setSigningOrganizationName(unitName2);
|
|
||||||
}
|
|
||||||
//合同文本-预收款项
|
|
||||||
LambdaQueryWrapper<XzdContractAdvanceInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<XzdContractAdvanceInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
lambdaQueryWrapper.eq(XzdContractAdvanceInfo::getContractDetailsId, item.getId());
|
lambdaQueryWrapper.eq(XzdContractAdvanceInfo::getContractDetailsId, item.getId());
|
||||||
List<XzdContractAdvanceInfo> advanceInfos = xzdContractAdvanceInfoService.list(lambdaQueryWrapper);
|
List<XzdContractAdvanceInfo> advanceInfos = xzdContractAdvanceInfoService.list(lambdaQueryWrapper);
|
||||||
@ -234,7 +227,7 @@ public class XzdSubcontractServiceImpl extends ServiceImpl<XzdSubcontractMapper,
|
|||||||
lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), XzdSubcontract::getRemarks, bo.getRemarks());
|
lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), XzdSubcontract::getRemarks, bo.getRemarks());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getCapitalizedTaxInclusiveTotal()), XzdSubcontract::getCapitalizedTaxInclusiveTotal, bo.getCapitalizedTaxInclusiveTotal());
|
lqw.eq(StringUtils.isNotBlank(bo.getCapitalizedTaxInclusiveTotal()), XzdSubcontract::getCapitalizedTaxInclusiveTotal, bo.getCapitalizedTaxInclusiveTotal());
|
||||||
lqw.eq(bo.getSigningOrganization() != null, XzdSubcontract::getSigningOrganization, bo.getSigningOrganization());
|
lqw.eq(bo.getSigningOrganization() != null, XzdSubcontract::getSigningOrganization, bo.getSigningOrganization());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectType()), XzdSubcontract::getProjectType, bo.getProjectType());
|
lqw.eq(bo.getProjectType() != null, XzdSubcontract::getProjectType, bo.getProjectType());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectCategory()), XzdSubcontract::getProjectCategory, bo.getProjectCategory());
|
lqw.eq(StringUtils.isNotBlank(bo.getProjectCategory()), XzdSubcontract::getProjectCategory, bo.getProjectCategory());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getAssociatedMainContract()), XzdSubcontract::getAssociatedMainContract, bo.getAssociatedMainContract());
|
lqw.eq(StringUtils.isNotBlank(bo.getAssociatedMainContract()), XzdSubcontract::getAssociatedMainContract, bo.getAssociatedMainContract());
|
||||||
lqw.eq(bo.getIsSubContract() != null, XzdSubcontract::getIsSubContract, bo.getIsSubContract());
|
lqw.eq(bo.getIsSubContract() != null, XzdSubcontract::getIsSubContract, bo.getIsSubContract());
|
||||||
|
|||||||
@ -12,6 +12,8 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import org.dromara.system.service.impl.SysOssServiceImpl;
|
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||||
import org.dromara.xzd.contractManagement.caigoucontractTermination.domain.XzdPurchaseContractSuspend;
|
import org.dromara.xzd.contractManagement.caigoucontractTermination.domain.XzdPurchaseContractSuspend;
|
||||||
import org.dromara.xzd.contractManagement.caigoucontractTermination.domain.vo.XzdPurchaseContractSuspendVo;
|
import org.dromara.xzd.contractManagement.caigoucontractTermination.domain.vo.XzdPurchaseContractSuspendVo;
|
||||||
|
import org.dromara.xzd.contractManagement.fenbaohetongxinxi.domain.vo.XzdSubcontractVo;
|
||||||
|
import org.dromara.xzd.contractManagement.fenbaohetongxinxi.service.IXzdSubcontractService;
|
||||||
import org.dromara.xzd.utilS.AreaUtil;
|
import org.dromara.xzd.utilS.AreaUtil;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -40,6 +42,7 @@ public class XzdSubcontractTerminationServiceImpl extends ServiceImpl<XzdSubcont
|
|||||||
|
|
||||||
private final XzdSubcontractTerminationMapper baseMapper;
|
private final XzdSubcontractTerminationMapper baseMapper;
|
||||||
private final AreaUtil areaUtil;
|
private final AreaUtil areaUtil;
|
||||||
|
private final IXzdSubcontractService iXzdSubcontractService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private SysOssServiceImpl sysOssService;
|
private SysOssServiceImpl sysOssService;
|
||||||
@ -53,8 +56,20 @@ public class XzdSubcontractTerminationServiceImpl extends ServiceImpl<XzdSubcont
|
|||||||
@Override
|
@Override
|
||||||
public XzdSubcontractTerminationVo queryById(Long id){
|
public XzdSubcontractTerminationVo queryById(Long id){
|
||||||
XzdSubcontractTerminationVo vo = baseMapper.selectVoById(id);
|
XzdSubcontractTerminationVo vo = baseMapper.selectVoById(id);
|
||||||
List.of(vo);
|
List<XzdSubcontractTerminationVo> res = List.of(vo);
|
||||||
return baseMapper.selectVoById(id);
|
saveValue(res);
|
||||||
|
return res.getFirst();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void saveValue(List<XzdSubcontractTerminationVo> res) {
|
||||||
|
for (XzdSubcontractTerminationVo vo : res) {
|
||||||
|
XzdSubcontractVo xzdSubcontractVo = iXzdSubcontractService.queryById(vo.getContractNumber());
|
||||||
|
if (xzdSubcontractVo != null) {
|
||||||
|
vo.setContractNumberName(xzdSubcontractVo.getContractCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -68,6 +83,7 @@ public class XzdSubcontractTerminationServiceImpl extends ServiceImpl<XzdSubcont
|
|||||||
public TableDataInfo<XzdSubcontractTerminationVo> queryPageList(XzdSubcontractTerminationBo bo, PageQuery pageQuery) {
|
public TableDataInfo<XzdSubcontractTerminationVo> queryPageList(XzdSubcontractTerminationBo bo, PageQuery pageQuery) {
|
||||||
LambdaQueryWrapper<XzdSubcontractTermination> lqw = buildQueryWrapper(bo);
|
LambdaQueryWrapper<XzdSubcontractTermination> lqw = buildQueryWrapper(bo);
|
||||||
Page<XzdSubcontractTerminationVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
Page<XzdSubcontractTerminationVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||||
|
saveValue(result.getRecords());
|
||||||
return TableDataInfo.build(result);
|
return TableDataInfo.build(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,105 @@
|
|||||||
|
package org.dromara.xzd.costProjectApproval.costBudget.controller;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import jakarta.validation.constraints.*;
|
||||||
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||||
|
import org.dromara.common.log.annotation.Log;
|
||||||
|
import org.dromara.common.web.core.BaseController;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
import org.dromara.common.core.domain.R;
|
||||||
|
import org.dromara.common.core.validate.AddGroup;
|
||||||
|
import org.dromara.common.core.validate.EditGroup;
|
||||||
|
import org.dromara.common.log.enums.BusinessType;
|
||||||
|
import org.dromara.common.excel.utils.ExcelUtil;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysZjhcbAlterationVo;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.bo.XzdCbysZjhcbAlterationBo;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysZjhcbAlterationService;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 立项及成本-成本预算-总体计划成本变更
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-10-17
|
||||||
|
*/
|
||||||
|
@Validated
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/costBudget/cbysZjhcbAlteration")
|
||||||
|
public class XzdCbysZjhcbAlterationController extends BaseController {
|
||||||
|
|
||||||
|
private final IXzdCbysZjhcbAlterationService xzdCbysZjhcbAlterationService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询立项及成本-成本预算-总体计划成本变更列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("costBudget:cbysZjhcbAlteration:list")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo<XzdCbysZjhcbAlterationVo> list(XzdCbysZjhcbAlterationBo bo, PageQuery pageQuery) {
|
||||||
|
return xzdCbysZjhcbAlterationService.queryPageList(bo, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出立项及成本-成本预算-总体计划成本变更列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("costBudget:cbysZjhcbAlteration:export")
|
||||||
|
@Log(title = "立项及成本-成本预算-总体计划成本变更", businessType = BusinessType.EXPORT)
|
||||||
|
@PostMapping("/export")
|
||||||
|
public void export(XzdCbysZjhcbAlterationBo bo, HttpServletResponse response) {
|
||||||
|
List<XzdCbysZjhcbAlterationVo> list = xzdCbysZjhcbAlterationService.queryList(bo);
|
||||||
|
ExcelUtil.exportExcel(list, "立项及成本-成本预算-总体计划成本变更", XzdCbysZjhcbAlterationVo.class, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取立项及成本-成本预算-总体计划成本变更详细信息
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("costBudget:cbysZjhcbAlteration:query")
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public R<XzdCbysZjhcbAlterationVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable Long id) {
|
||||||
|
return R.ok(xzdCbysZjhcbAlterationService.queryById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增立项及成本-成本预算-总体计划成本变更
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("costBudget:cbysZjhcbAlteration:add")
|
||||||
|
@Log(title = "立项及成本-成本预算-总体计划成本变更", businessType = BusinessType.INSERT)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PostMapping()
|
||||||
|
public R<Void> add(@Validated(AddGroup.class) @RequestBody XzdCbysZjhcbAlterationBo bo) {
|
||||||
|
return toAjax(xzdCbysZjhcbAlterationService.insertByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改立项及成本-成本预算-总体计划成本变更
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("costBudget:cbysZjhcbAlteration:edit")
|
||||||
|
@Log(title = "立项及成本-成本预算-总体计划成本变更", businessType = BusinessType.UPDATE)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PutMapping()
|
||||||
|
public R<Void> edit(@Validated(EditGroup.class) @RequestBody XzdCbysZjhcbAlterationBo bo) {
|
||||||
|
return toAjax(xzdCbysZjhcbAlterationService.updateByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除立项及成本-成本预算-总体计划成本变更
|
||||||
|
*
|
||||||
|
* @param ids 主键串
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("costBudget:cbysZjhcbAlteration:remove")
|
||||||
|
@Log(title = "立项及成本-成本预算-总体计划成本变更", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{ids}")
|
||||||
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||||
|
@PathVariable Long[] ids) {
|
||||||
|
return toAjax(xzdCbysZjhcbAlterationService.deleteWithValidByIds(List.of(ids), true));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,153 @@
|
|||||||
|
package org.dromara.xzd.costProjectApproval.costBudget.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_cbys_zjhcb_alteration
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-10-17
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName("xzd_cbys_zjhcb_alteration")
|
||||||
|
public class XzdCbysZjhcbAlteration extends BaseEntity {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
@TableId(value = "id")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据编码(带*,必填)
|
||||||
|
*/
|
||||||
|
private String docCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据标题(带*,必填)
|
||||||
|
*/
|
||||||
|
private String docTitle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据日期
|
||||||
|
*/
|
||||||
|
private LocalDate docDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工程项目(带*,必填)
|
||||||
|
*/
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预算分类(带*,必填)
|
||||||
|
*/
|
||||||
|
private String budgetCategory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 总不含税金额
|
||||||
|
*/
|
||||||
|
private BigDecimal totalTaxExclAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 总税额
|
||||||
|
*/
|
||||||
|
private BigDecimal totalTaxAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 总含税金额
|
||||||
|
*/
|
||||||
|
private BigDecimal totalTaxInclAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目责任人
|
||||||
|
*/
|
||||||
|
private Long projectLeader;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 执行项目经理
|
||||||
|
*/
|
||||||
|
private Long execProjectManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 承包合同金额(带*,必填)
|
||||||
|
*/
|
||||||
|
private BigDecimal contractAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 税务成本
|
||||||
|
*/
|
||||||
|
private BigDecimal taxCost;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 利润率
|
||||||
|
*/
|
||||||
|
private BigDecimal profitRate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 利润金额
|
||||||
|
*/
|
||||||
|
private BigDecimal profitAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 变更理由
|
||||||
|
*/
|
||||||
|
private String alterationReason;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 启用成本预控模式(0=未启用,1=启用)
|
||||||
|
*/
|
||||||
|
private Long enableCostPrecontrol;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 成本控制模式(如WBS+CBS)
|
||||||
|
*/
|
||||||
|
private String costControlMode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 外币含税类型
|
||||||
|
*/
|
||||||
|
private String foreignCurrencyTaxType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 禁止标识
|
||||||
|
*/
|
||||||
|
private String forbidFlag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 启用按科目属性分页签编制模式(0=未启用,1=启用)
|
||||||
|
*/
|
||||||
|
private Long enableAccountAttrTab;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 启用物料组编制模式(0=未启用,1=启用)
|
||||||
|
*/
|
||||||
|
private Long enableMaterialGroup;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据引用
|
||||||
|
*/
|
||||||
|
private String documentReference;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件ID
|
||||||
|
*/
|
||||||
|
private String fileId;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,175 @@
|
|||||||
|
package org.dromara.xzd.costProjectApproval.costBudget.domain.bo;
|
||||||
|
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysSscb;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysWgcbtbFubiao;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZjhcbAlteration;
|
||||||
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
|
import org.dromara.common.core.validate.AddGroup;
|
||||||
|
import org.dromara.common.core.validate.EditGroup;
|
||||||
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import jakarta.validation.constraints.*;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZtjhcbBgjl;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 立项及成本-成本预算-总体计划成本变更业务对象 xzd_cbys_zjhcb_alteration
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-10-17
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@AutoMapper(target = XzdCbysZjhcbAlteration.class, reverseConvertGenerate = false)
|
||||||
|
public class XzdCbysZjhcbAlterationBo extends BaseEntity {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据编码(带*,必填)
|
||||||
|
*/
|
||||||
|
private String docCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据标题(带*,必填)
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "单据标题(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
|
private String docTitle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据日期
|
||||||
|
*/
|
||||||
|
private LocalDate docDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工程项目(带*,必填)
|
||||||
|
*/
|
||||||
|
@NotNull(message = "工程项目(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预算分类(带*,必填)
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "预算分类(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
|
private String budgetCategory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 总不含税金额
|
||||||
|
*/
|
||||||
|
private BigDecimal totalTaxExclAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 总税额
|
||||||
|
*/
|
||||||
|
private BigDecimal totalTaxAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 总含税金额
|
||||||
|
*/
|
||||||
|
private BigDecimal totalTaxInclAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目责任人
|
||||||
|
*/
|
||||||
|
private Long projectLeader;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 执行项目经理
|
||||||
|
*/
|
||||||
|
private Long execProjectManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 承包合同金额(带*,必填)
|
||||||
|
*/
|
||||||
|
@NotNull(message = "承包合同金额(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
|
private BigDecimal contractAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 税务成本
|
||||||
|
*/
|
||||||
|
private BigDecimal taxCost;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 利润率
|
||||||
|
*/
|
||||||
|
private BigDecimal profitRate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 利润金额
|
||||||
|
*/
|
||||||
|
private BigDecimal profitAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 变更理由
|
||||||
|
*/
|
||||||
|
private String alterationReason;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 启用成本预控模式(0=未启用,1=启用)
|
||||||
|
*/
|
||||||
|
private Long enableCostPrecontrol;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 成本控制模式(如WBS+CBS)
|
||||||
|
*/
|
||||||
|
private String costControlMode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 外币含税类型
|
||||||
|
*/
|
||||||
|
private String foreignCurrencyTaxType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 禁止标识
|
||||||
|
*/
|
||||||
|
private String forbidFlag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 启用按科目属性分页签编制模式(0=未启用,1=启用)
|
||||||
|
*/
|
||||||
|
private Long enableAccountAttrTab;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 启用物料组编制模式(0=未启用,1=启用)
|
||||||
|
*/
|
||||||
|
private Long enableMaterialGroup;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据引用
|
||||||
|
*/
|
||||||
|
private String documentReference;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件ID
|
||||||
|
*/
|
||||||
|
private String fileId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 变更记录
|
||||||
|
*/
|
||||||
|
List<XzdCbysZtjhcbBgjl> xzdCbysZtjhcbBgjl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 成本明细
|
||||||
|
*/
|
||||||
|
List<XzdCbysWgcbtbFubiao> xzdCbysWgcbtbFubiao;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 税收成本
|
||||||
|
*/
|
||||||
|
List<XzdCbysSscb> xzdCbysSscb;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -27,13 +27,11 @@ public class XzdCbysZjhcbBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 主键ID
|
* 主键ID
|
||||||
*/
|
*/
|
||||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单据编码(带*,必填)
|
* 单据编码(带*,必填)
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "单据编码(带*,必填)不能为空", groups = { EditGroup.class })
|
|
||||||
private String docCode;
|
private String docCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -0,0 +1,235 @@
|
|||||||
|
package org.dromara.xzd.costProjectApproval.costBudget.domain.vo;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
import org.dromara.common.translation.annotation.Translation;
|
||||||
|
import org.dromara.common.translation.constant.TransConstant;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysSscb;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysWgcbtbFubiao;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZjhcbAlteration;
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||||
|
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||||
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZtjhcbBgjl;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 立项及成本-成本预算-总体计划成本变更视图对象 xzd_cbys_zjhcb_alteration
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-10-17
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
@AutoMapper(target = XzdCbysZjhcbAlteration.class)
|
||||||
|
public class XzdCbysZjhcbAlterationVo implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "主键ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据编码(带*,必填)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "单据编码", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "带=*,必填")
|
||||||
|
private String docCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据标题(带*,必填)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "单据标题", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "带=*,必填")
|
||||||
|
private String docTitle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据日期
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "单据日期")
|
||||||
|
private LocalDate docDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工程项目(带*,必填)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "工程项目", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "带=*,必填")
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工程项目名称
|
||||||
|
*/
|
||||||
|
private String projectName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预算分类(带*,必填)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "预算分类", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "带=*,必填")
|
||||||
|
private String budgetCategory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 总不含税金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "总不含税金额")
|
||||||
|
private BigDecimal totalTaxExclAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 总税额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "总税额")
|
||||||
|
private BigDecimal totalTaxAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 总含税金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "总含税金额")
|
||||||
|
private BigDecimal totalTaxInclAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目责任人
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "项目责任人")
|
||||||
|
private Long projectLeader;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目责任人名称
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "项目责任人名称")
|
||||||
|
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "projectLeader")
|
||||||
|
private String projectLeaderName;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 执行项目经理
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "执行项目经理")
|
||||||
|
private Long execProjectManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 执行项目经理名称
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "执行项目经理名称")
|
||||||
|
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "execProjectManager")
|
||||||
|
private String execProjectManagerName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 承包合同金额(带*,必填)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "承包合同金额", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "带=*,必填")
|
||||||
|
private BigDecimal contractAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 税务成本
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "税务成本")
|
||||||
|
private BigDecimal taxCost;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 利润率
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "利润率")
|
||||||
|
private BigDecimal profitRate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 利润金额
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "利润金额")
|
||||||
|
private BigDecimal profitAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 变更理由
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "变更理由")
|
||||||
|
private String alterationReason;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 启用成本预控模式(0=未启用,1=启用)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "启用成本预控模式", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "0==未启用,1=启用")
|
||||||
|
private Long enableCostPrecontrol;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 成本控制模式(如WBS+CBS)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "成本控制模式", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "如=WBS+CBS")
|
||||||
|
private String costControlMode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 外币含税类型
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "外币含税类型")
|
||||||
|
private String foreignCurrencyTaxType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 禁止标识
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "禁止标识")
|
||||||
|
private String forbidFlag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 启用按科目属性分页签编制模式(0=未启用,1=启用)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "启用按科目属性分页签编制模式", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "0==未启用,1=启用")
|
||||||
|
private Long enableAccountAttrTab;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 启用物料组编制模式(0=未启用,1=启用)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "启用物料组编制模式", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "0==未启用,1=启用")
|
||||||
|
private Long enableMaterialGroup;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据引用
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "单据引用")
|
||||||
|
private String documentReference;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件ID
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "文件ID")
|
||||||
|
private String fileId;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 变更记录
|
||||||
|
*/
|
||||||
|
List<XzdCbysZtjhcbBgjl> xzdCbysZtjhcbBgjl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 成本明细
|
||||||
|
*/
|
||||||
|
List<XzdCbysWgcbtbFubiao> xzdCbysWgcbtbFubiao;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 税收成本
|
||||||
|
*/
|
||||||
|
List<XzdCbysSscb> xzdCbysSscb;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
package org.dromara.xzd.costProjectApproval.costBudget.mapper;
|
||||||
|
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZjhcbAlteration;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysZjhcbAlterationVo;
|
||||||
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 立项及成本-成本预算-总体计划成本变更Mapper接口
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-10-17
|
||||||
|
*/
|
||||||
|
public interface XzdCbysZjhcbAlterationMapper extends BaseMapperPlus<XzdCbysZjhcbAlteration, XzdCbysZjhcbAlterationVo> {
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,70 @@
|
|||||||
|
package org.dromara.xzd.costProjectApproval.costBudget.service;
|
||||||
|
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysZjhcbAlterationVo;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.bo.XzdCbysZjhcbAlterationBo;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZjhcbAlteration;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 立项及成本-成本预算-总体计划成本变更Service接口
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-10-17
|
||||||
|
*/
|
||||||
|
public interface IXzdCbysZjhcbAlterationService extends IService<XzdCbysZjhcbAlteration>{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询立项及成本-成本预算-总体计划成本变更
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
* @return 立项及成本-成本预算-总体计划成本变更
|
||||||
|
*/
|
||||||
|
XzdCbysZjhcbAlterationVo queryById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询立项及成本-成本预算-总体计划成本变更列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return 立项及成本-成本预算-总体计划成本变更分页列表
|
||||||
|
*/
|
||||||
|
TableDataInfo<XzdCbysZjhcbAlterationVo> queryPageList(XzdCbysZjhcbAlterationBo bo, PageQuery pageQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询符合条件的立项及成本-成本预算-总体计划成本变更列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @return 立项及成本-成本预算-总体计划成本变更列表
|
||||||
|
*/
|
||||||
|
List<XzdCbysZjhcbAlterationVo> queryList(XzdCbysZjhcbAlterationBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增立项及成本-成本预算-总体计划成本变更
|
||||||
|
*
|
||||||
|
* @param bo 立项及成本-成本预算-总体计划成本变更
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
Boolean insertByBo(XzdCbysZjhcbAlterationBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改立项及成本-成本预算-总体计划成本变更
|
||||||
|
*
|
||||||
|
* @param bo 立项及成本-成本预算-总体计划成本变更
|
||||||
|
* @return 是否修改成功
|
||||||
|
*/
|
||||||
|
Boolean updateByBo(XzdCbysZjhcbAlterationBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验并批量删除立项及成本-成本预算-总体计划成本变更信息
|
||||||
|
*
|
||||||
|
* @param ids 待删除的主键集合
|
||||||
|
* @param isValid 是否进行有效性校验
|
||||||
|
* @return 是否删除成功
|
||||||
|
*/
|
||||||
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||||
|
}
|
||||||
@ -91,6 +91,10 @@ public class XzdCbysWgcbtbServiceImpl extends ServiceImpl<XzdCbysWgcbtbMapper, X
|
|||||||
item.setProjectName(projectName);
|
item.setProjectName(projectName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
HashMap<String, Object> hashMap = new HashMap<>();
|
||||||
|
hashMap.put("main_doc_id", item.getId());
|
||||||
|
List<XzdCbysWgcbtbFubiao> list = fubiaoService.getBaseMapper().selectByMap(hashMap);
|
||||||
|
item.setXzdCbysWgcbtbFubiao(list);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,258 @@
|
|||||||
|
package org.dromara.xzd.costProjectApproval.costBudget.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.dromara.common.core.exception.ServiceException;
|
||||||
|
import org.dromara.common.core.utils.MapstructUtils;
|
||||||
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.dromara.common.utils.BatchNumberGenerator;
|
||||||
|
import org.dromara.system.service.ISysUserService;
|
||||||
|
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysSscb;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysWgcbtbFubiao;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZtjhcbBgjl;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysZjhcbVo;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysSscbService;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysWgcbtbFubiaoService;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysZtjhcbBgjlService;
|
||||||
|
import org.dromara.xzd.service.impl.XzdProjectServiceImpl;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.bo.XzdCbysZjhcbAlterationBo;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysZjhcbAlterationVo;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZjhcbAlteration;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.mapper.XzdCbysZjhcbAlterationMapper;
|
||||||
|
import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysZjhcbAlterationService;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 立项及成本-成本预算-总体计划成本变更Service业务层处理
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-10-17
|
||||||
|
*/
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Service
|
||||||
|
public class XzdCbysZjhcbAlterationServiceImpl extends ServiceImpl<XzdCbysZjhcbAlterationMapper, XzdCbysZjhcbAlteration> implements IXzdCbysZjhcbAlterationService {
|
||||||
|
|
||||||
|
private final XzdCbysZjhcbAlterationMapper baseMapper;
|
||||||
|
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IXzdCbysZtjhcbBgjlService xzdCbysZtjhcbBgjlService;
|
||||||
|
@Autowired
|
||||||
|
private IXzdCbysSscbService xzdCbysSscbService;
|
||||||
|
@Autowired
|
||||||
|
private IXzdCbysWgcbtbFubiaoService fubiaoService;
|
||||||
|
@Autowired
|
||||||
|
private SysOssServiceImpl sysOssService;
|
||||||
|
@Autowired
|
||||||
|
private XzdProjectServiceImpl xzdProjectService;
|
||||||
|
@Autowired
|
||||||
|
private ISysUserService sysUserService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询立项及成本-成本预算-总体计划成本变更
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
* @return 立项及成本-成本预算-总体计划成本变更
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public XzdCbysZjhcbAlterationVo queryById(Long id){
|
||||||
|
XzdCbysZjhcbAlterationVo vo = baseMapper.selectVoById(id);
|
||||||
|
getName(vo);
|
||||||
|
getHttk(vo);
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询立项及成本-成本预算-总体计划成本变更列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return 立项及成本-成本预算-总体计划成本变更分页列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<XzdCbysZjhcbAlterationVo> queryPageList(XzdCbysZjhcbAlterationBo bo, PageQuery pageQuery) {
|
||||||
|
LambdaQueryWrapper<XzdCbysZjhcbAlteration> lqw = buildQueryWrapper(bo);
|
||||||
|
Page<XzdCbysZjhcbAlterationVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||||
|
result.getRecords().forEach(this::getName);
|
||||||
|
return TableDataInfo.build(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询符合条件的立项及成本-成本预算-总体计划成本变更列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @return 立项及成本-成本预算-总体计划成本变更列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<XzdCbysZjhcbAlterationVo> queryList(XzdCbysZjhcbAlterationBo bo) {
|
||||||
|
LambdaQueryWrapper<XzdCbysZjhcbAlteration> lqw = buildQueryWrapper(bo);
|
||||||
|
return baseMapper.selectVoList(lqw);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取部分字段名称
|
||||||
|
* @param item
|
||||||
|
*/
|
||||||
|
private void getName(XzdCbysZjhcbAlterationVo item) {
|
||||||
|
//项目名称
|
||||||
|
if (item.getProjectId() != null){
|
||||||
|
String projectName = xzdProjectService.queryNameById(item.getProjectId());
|
||||||
|
if (projectName != null){
|
||||||
|
item.setProjectName(projectName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 回填数据
|
||||||
|
private void getHttk(XzdCbysZjhcbAlterationVo vo) {
|
||||||
|
List<XzdCbysZtjhcbBgjl> xzdCbysZtjhcbBgjls = xzdCbysZtjhcbBgjlService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdCbysZtjhcbBgjl>().eq(XzdCbysZtjhcbBgjl::getMainDocumentId, vo.getId()));
|
||||||
|
vo.setXzdCbysZtjhcbBgjl(xzdCbysZtjhcbBgjls);
|
||||||
|
List<XzdCbysSscb> xzdCbysSscbs = xzdCbysSscbService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdCbysSscb>().eq(XzdCbysSscb::getMainDocumentId, vo.getId()));
|
||||||
|
vo.setXzdCbysSscb(xzdCbysSscbs);
|
||||||
|
List<XzdCbysWgcbtbFubiao> xzdCbysWgcbtbFubiaos = fubiaoService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdCbysWgcbtbFubiao>().eq(XzdCbysWgcbtbFubiao::getMainDocId, vo.getId()));
|
||||||
|
vo.setXzdCbysWgcbtbFubiao(xzdCbysWgcbtbFubiaos);
|
||||||
|
}
|
||||||
|
private LambdaQueryWrapper<XzdCbysZjhcbAlteration> buildQueryWrapper(XzdCbysZjhcbAlterationBo bo) {
|
||||||
|
Map<String, Object> params = bo.getParams();
|
||||||
|
LambdaQueryWrapper<XzdCbysZjhcbAlteration> lqw = Wrappers.lambdaQuery();
|
||||||
|
lqw.orderByDesc(XzdCbysZjhcbAlteration::getId);
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getDocCode()), XzdCbysZjhcbAlteration::getDocCode, bo.getDocCode());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getDocTitle()), XzdCbysZjhcbAlteration::getDocTitle, bo.getDocTitle());
|
||||||
|
lqw.eq(bo.getDocDate() != null, XzdCbysZjhcbAlteration::getDocDate, bo.getDocDate());
|
||||||
|
lqw.eq(bo.getProjectId() != null, XzdCbysZjhcbAlteration::getProjectId, bo.getProjectId());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getBudgetCategory()), XzdCbysZjhcbAlteration::getBudgetCategory, bo.getBudgetCategory());
|
||||||
|
lqw.eq(bo.getTotalTaxExclAmount() != null, XzdCbysZjhcbAlteration::getTotalTaxExclAmount, bo.getTotalTaxExclAmount());
|
||||||
|
lqw.eq(bo.getTotalTaxAmount() != null, XzdCbysZjhcbAlteration::getTotalTaxAmount, bo.getTotalTaxAmount());
|
||||||
|
lqw.eq(bo.getTotalTaxInclAmount() != null, XzdCbysZjhcbAlteration::getTotalTaxInclAmount, bo.getTotalTaxInclAmount());
|
||||||
|
lqw.eq(bo.getProjectLeader() != null, XzdCbysZjhcbAlteration::getProjectLeader, bo.getProjectLeader());
|
||||||
|
lqw.eq(bo.getExecProjectManager() != null, XzdCbysZjhcbAlteration::getExecProjectManager, bo.getExecProjectManager());
|
||||||
|
lqw.eq(bo.getContractAmount() != null, XzdCbysZjhcbAlteration::getContractAmount, bo.getContractAmount());
|
||||||
|
lqw.eq(bo.getTaxCost() != null, XzdCbysZjhcbAlteration::getTaxCost, bo.getTaxCost());
|
||||||
|
lqw.eq(bo.getProfitRate() != null, XzdCbysZjhcbAlteration::getProfitRate, bo.getProfitRate());
|
||||||
|
lqw.eq(bo.getProfitAmount() != null, XzdCbysZjhcbAlteration::getProfitAmount, bo.getProfitAmount());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getAlterationReason()), XzdCbysZjhcbAlteration::getAlterationReason, bo.getAlterationReason());
|
||||||
|
lqw.eq(bo.getEnableCostPrecontrol() != null, XzdCbysZjhcbAlteration::getEnableCostPrecontrol, bo.getEnableCostPrecontrol());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getCostControlMode()), XzdCbysZjhcbAlteration::getCostControlMode, bo.getCostControlMode());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getForeignCurrencyTaxType()), XzdCbysZjhcbAlteration::getForeignCurrencyTaxType, bo.getForeignCurrencyTaxType());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getForbidFlag()), XzdCbysZjhcbAlteration::getForbidFlag, bo.getForbidFlag());
|
||||||
|
lqw.eq(bo.getEnableAccountAttrTab() != null, XzdCbysZjhcbAlteration::getEnableAccountAttrTab, bo.getEnableAccountAttrTab());
|
||||||
|
lqw.eq(bo.getEnableMaterialGroup() != null, XzdCbysZjhcbAlteration::getEnableMaterialGroup, bo.getEnableMaterialGroup());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getDocumentReference()), XzdCbysZjhcbAlteration::getDocumentReference, bo.getDocumentReference());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdCbysZjhcbAlteration::getFileId, bo.getFileId());
|
||||||
|
return lqw;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增立项及成本-成本预算-总体计划成本变更
|
||||||
|
*
|
||||||
|
* @param bo 立项及成本-成本预算-总体计划成本变更
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean insertByBo(XzdCbysZjhcbAlterationBo bo) {
|
||||||
|
XzdCbysZjhcbAlteration add = MapstructUtils.convert(bo, XzdCbysZjhcbAlteration.class);
|
||||||
|
validEntityBeforeSave(add);
|
||||||
|
String banBen = BatchNumberGenerator.generateBatchNumber("CBBG-");
|
||||||
|
add.setDocCode(banBen);
|
||||||
|
boolean flag = baseMapper.insert(add) > 0;
|
||||||
|
if (bo.getXzdCbysSscb() == null || bo.getXzdCbysSscb().isEmpty()) {
|
||||||
|
throw new ServiceException("税收成本不能为空");
|
||||||
|
}
|
||||||
|
if (bo.getXzdCbysZtjhcbBgjl() == null || bo.getXzdCbysZtjhcbBgjl().isEmpty()) {
|
||||||
|
throw new ServiceException("变更记录不能为空");
|
||||||
|
}
|
||||||
|
if (bo.getXzdCbysWgcbtbFubiao() == null || bo.getXzdCbysWgcbtbFubiao().isEmpty()) {
|
||||||
|
throw new ServiceException("成本明细不能为空");
|
||||||
|
}
|
||||||
|
bo.getXzdCbysSscb().forEach(item -> {item.setMainDocumentId(add.getId());});
|
||||||
|
xzdCbysSscbService.saveBatch(bo.getXzdCbysSscb());
|
||||||
|
bo.getXzdCbysZtjhcbBgjl().forEach(item -> {item.setMainDocumentId(add.getId());});
|
||||||
|
xzdCbysZtjhcbBgjlService.saveBatch(bo.getXzdCbysZtjhcbBgjl());
|
||||||
|
bo.getXzdCbysWgcbtbFubiao().forEach(item -> {item.setMainDocId(add.getId());});
|
||||||
|
fubiaoService.saveBatch(bo.getXzdCbysWgcbtbFubiao());
|
||||||
|
if (flag) {
|
||||||
|
bo.setId(add.getId());
|
||||||
|
}
|
||||||
|
return flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改立项及成本-成本预算-总体计划成本变更
|
||||||
|
*
|
||||||
|
* @param bo 立项及成本-成本预算-总体计划成本变更
|
||||||
|
* @return 是否修改成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean updateByBo(XzdCbysZjhcbAlterationBo bo) {
|
||||||
|
XzdCbysZjhcbAlteration update = MapstructUtils.convert(bo, XzdCbysZjhcbAlteration.class);
|
||||||
|
validEntityBeforeSave(update);
|
||||||
|
if (bo.getXzdCbysSscb() == null || bo.getXzdCbysSscb().isEmpty()) {
|
||||||
|
throw new ServiceException("税收成本不能为空");
|
||||||
|
}
|
||||||
|
if (bo.getXzdCbysZtjhcbBgjl() == null || bo.getXzdCbysZtjhcbBgjl().isEmpty()) {
|
||||||
|
throw new ServiceException("变更记录不能为空");
|
||||||
|
}
|
||||||
|
if (bo.getXzdCbysWgcbtbFubiao() == null || bo.getXzdCbysWgcbtbFubiao().isEmpty()) {
|
||||||
|
throw new ServiceException("成本明细不能为空");
|
||||||
|
}
|
||||||
|
xzdCbysZtjhcbBgjlService.remove(new LambdaQueryWrapper<XzdCbysZtjhcbBgjl>().eq(XzdCbysZtjhcbBgjl::getMainDocumentId, bo.getId()));
|
||||||
|
xzdCbysSscbService.remove(new LambdaQueryWrapper<XzdCbysSscb>().eq(XzdCbysSscb::getMainDocumentId, bo.getId()));
|
||||||
|
fubiaoService.remove(new LambdaQueryWrapper<XzdCbysWgcbtbFubiao>().eq(XzdCbysWgcbtbFubiao::getMainDocId, bo.getId()));
|
||||||
|
bo.getXzdCbysSscb().forEach(item -> {item.setMainDocumentId(bo.getId());});
|
||||||
|
xzdCbysSscbService.saveBatch(bo.getXzdCbysSscb());
|
||||||
|
bo.getXzdCbysZtjhcbBgjl().forEach(item -> {item.setMainDocumentId(bo.getId());});
|
||||||
|
xzdCbysZtjhcbBgjlService.saveBatch(bo.getXzdCbysZtjhcbBgjl());
|
||||||
|
bo.getXzdCbysWgcbtbFubiao().forEach(item -> {item.setMainDocId(bo.getId());});
|
||||||
|
fubiaoService.saveBatch(bo.getXzdCbysWgcbtbFubiao());
|
||||||
|
return baseMapper.updateById(update) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存前的数据校验
|
||||||
|
*/
|
||||||
|
private void validEntityBeforeSave(XzdCbysZjhcbAlteration 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) {
|
||||||
|
XzdCbysZjhcbAlterationVo 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);
|
||||||
|
}
|
||||||
|
xzdCbysZtjhcbBgjlService.remove(new LambdaQueryWrapper<XzdCbysZtjhcbBgjl>().in(XzdCbysZtjhcbBgjl::getMainDocumentId, ids));
|
||||||
|
xzdCbysSscbService.remove(new LambdaQueryWrapper<XzdCbysSscb>().in(XzdCbysSscb::getMainDocumentId, ids));
|
||||||
|
fubiaoService.remove(new LambdaQueryWrapper<XzdCbysWgcbtbFubiao>().in(XzdCbysWgcbtbFubiao::getMainDocId, ids));
|
||||||
|
return baseMapper.deleteByIds(ids) > 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user