新中大修改人员银行绑定逻辑,修改承包合同、供应商等涉及到银行的地方,添加设计合同的信息、变更、终止的crud
This commit is contained in:
@ -68,7 +68,16 @@ public class XzdBxBxsq extends BaseEntity {
|
||||
/**
|
||||
* 开户银行
|
||||
*/
|
||||
private Long khyh;
|
||||
// private Long khyh;
|
||||
/**
|
||||
* 开户银行
|
||||
*/
|
||||
private String openBank;
|
||||
|
||||
/**
|
||||
* 支行名称
|
||||
*/
|
||||
private String branchName;
|
||||
|
||||
/**
|
||||
* 开户银行账号
|
||||
|
||||
@ -61,7 +61,17 @@ public class XzdBxBxsqBo extends BaseEntity {
|
||||
/**
|
||||
* 开户银行
|
||||
*/
|
||||
private Long khyh;
|
||||
// private Long khyh;
|
||||
|
||||
/**
|
||||
* 开户银行
|
||||
*/
|
||||
private String openBank;
|
||||
|
||||
/**
|
||||
* 支行名称
|
||||
*/
|
||||
private String branchName;
|
||||
|
||||
/**
|
||||
* 开户银行账号
|
||||
|
||||
@ -102,13 +102,23 @@ public class XzdBxBxsqVo implements Serializable {
|
||||
/**
|
||||
* 开户银行
|
||||
*/
|
||||
private Long khyh;
|
||||
// private Long khyh;
|
||||
|
||||
/**
|
||||
* 开户银行名称
|
||||
* 开户银行
|
||||
*/
|
||||
@Translation(type = TransConstant.XZD_SUPPLIER_OPEN_BANK_ID_TO_NAME, mapper = "khyh")
|
||||
private String khyhmc;
|
||||
private String openBank;
|
||||
|
||||
/**
|
||||
* 支行名称
|
||||
*/
|
||||
private String branchName;
|
||||
|
||||
// /**
|
||||
// * 开户银行名称
|
||||
// */
|
||||
// @Translation(type = TransConstant.XZD_SUPPLIER_OPEN_BANK_ID_TO_NAME, mapper = "khyh")
|
||||
// private String khyhmc;
|
||||
|
||||
/**
|
||||
* 开户银行账号
|
||||
|
||||
@ -0,0 +1,153 @@
|
||||
package org.dromara.xzd.comprehensive.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.comprehensive.domain.bo.XzdCsContractInformationBo;
|
||||
import org.dromara.xzd.comprehensive.domain.bo.XzdSjContractInfoBo;
|
||||
import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractInformationVo;
|
||||
import org.dromara.xzd.comprehensive.domain.vo.XzdSjContractInfoVo;
|
||||
import org.dromara.xzd.comprehensive.service.IXzdCsContractInformationService;
|
||||
import org.dromara.xzd.comprehensive.service.IXzdSjContractInfoService;
|
||||
import org.dromara.xzd.domain.bo.XzdBusinessSealBo;
|
||||
import org.dromara.xzd.domain.vo.XzdBusinessSealVo;
|
||||
import org.dromara.xzd.service.IXzdBusinessSealService;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
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.comprehensive.domain.vo.XzdSjContractChangeVo;
|
||||
import org.dromara.xzd.comprehensive.domain.bo.XzdSjContractChangeBo;
|
||||
import org.dromara.xzd.comprehensive.service.IXzdSjContractChangeService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 设计合同变更
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-11-19
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/xzd/comprehensive/sjContractChange")
|
||||
public class XzdSjContractChangeController extends BaseController {
|
||||
|
||||
private final IXzdSjContractChangeService xzdSjContractChangeService;
|
||||
|
||||
private final IXzdBusinessSealService xzdBusinessSealService;
|
||||
|
||||
@Lazy
|
||||
private final IXzdSjContractInfoService xzdSjContractInfoService;
|
||||
|
||||
|
||||
/**
|
||||
* 查询综合服务合同信息列表
|
||||
*/
|
||||
@SaCheckPermission(value = {"comprehensive:sjContractChange:add","comprehensive:sjContractChange:edit","comprehensive:sjContractChange:list"},mode = SaMode.OR)
|
||||
@GetMapping("/getList")
|
||||
public TableDataInfo<XzdSjContractInfoVo> getList(XzdSjContractInfoBo bo, PageQuery pageQuery) {
|
||||
return xzdSjContractInfoService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询印章帮助列表
|
||||
*/
|
||||
@SaCheckPermission(value = {"comprehensive:sjContractChange:add","comprehensive:sjContractChange:edit","comprehensive:sjContractChange:list"},mode = SaMode.OR)
|
||||
@GetMapping("/businessSealList")
|
||||
public TableDataInfo<XzdBusinessSealVo> list(XzdBusinessSealBo bo, PageQuery pageQuery) {
|
||||
return xzdBusinessSealService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取综合服务合同信息详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission(value = {"comprehensive:sjContractChange:add","comprehensive:sjContractChange:edit"},mode = SaMode.OR)
|
||||
@GetMapping("/get/{id}")
|
||||
public R<XzdSjContractInfoVo> getCsContractInformationInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(xzdSjContractInfoService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询设计合同变更列表
|
||||
*/
|
||||
@SaCheckPermission("comprehensive:sjContractChange:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<XzdSjContractChangeVo> list(XzdSjContractChangeBo bo, PageQuery pageQuery) {
|
||||
return xzdSjContractChangeService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出设计合同变更列表
|
||||
*/
|
||||
@SaCheckPermission("comprehensive:sjContractChange:export")
|
||||
@Log(title = "设计合同变更", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(XzdSjContractChangeBo bo, HttpServletResponse response) {
|
||||
List<XzdSjContractChangeVo> list = xzdSjContractChangeService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "设计合同变更", XzdSjContractChangeVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取设计合同变更详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("comprehensive:sjContractChange:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<XzdSjContractChangeVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(xzdSjContractChangeService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增设计合同变更
|
||||
*/
|
||||
@SaCheckPermission("comprehensive:sjContractChange:add")
|
||||
@Log(title = "设计合同变更", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody XzdSjContractChangeBo bo) {
|
||||
return toAjax(xzdSjContractChangeService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改设计合同变更
|
||||
*/
|
||||
@SaCheckPermission("comprehensive:sjContractChange:edit")
|
||||
@Log(title = "设计合同变更", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody XzdSjContractChangeBo bo) {
|
||||
return toAjax(xzdSjContractChangeService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除设计合同变更
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("comprehensive:sjContractChange:remove")
|
||||
@Log(title = "设计合同变更", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(xzdSjContractChangeService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,190 @@
|
||||
package org.dromara.xzd.comprehensive.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.comprehensive.domain.bo.*;
|
||||
import org.dromara.xzd.comprehensive.domain.vo.*;
|
||||
import org.dromara.xzd.comprehensive.service.*;
|
||||
import org.dromara.xzd.domain.bo.XzdBusinessSealBo;
|
||||
import org.dromara.xzd.domain.vo.XzdBusinessSealVo;
|
||||
import org.dromara.xzd.domain.vo.XzdProjectVo;
|
||||
import org.dromara.xzd.service.IXzdBusinessSealService;
|
||||
import org.dromara.xzd.service.IXzdProjectService;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
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.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 设计合同信息
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-11-19
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/xzd/comprehensive/sjContractInfo")
|
||||
public class XzdSjContractInfoController extends BaseController {
|
||||
|
||||
private final IXzdSjContractInfoService xzdSjContractInfoService;
|
||||
|
||||
|
||||
private final IXzdBusinessSealService xzdBusinessSealService;
|
||||
|
||||
@Lazy
|
||||
private final IXzdSjContractSuspendService xzdSjContractSuspendService;
|
||||
|
||||
@Lazy
|
||||
private final IXzdSjContractChangeService xzdSjContractChangeService;
|
||||
|
||||
@Lazy
|
||||
private final IXzdProjectService xzdProjectService;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获取项目信息详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission(value = {"comprehensive:sjContractInfo:add","comprehensive:sjContractInfo:edit","comprehensive:sjContractInfo:list"},mode = SaMode.OR)
|
||||
@GetMapping("/getProject/{id}")
|
||||
public R<XzdProjectVo> getProjectInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(xzdProjectService.queryById(id));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询综合服务合同变更列表
|
||||
*/
|
||||
@SaCheckPermission(value = {"comprehensive:sjContractInfo:add","comprehensive:sjContractInfo:edit","comprehensive:sjContractInfo:list"},mode = SaMode.OR)
|
||||
@GetMapping("/getChangList")
|
||||
public TableDataInfo<XzdSjContractChangeVo> getChangList(XzdSjContractChangeBo bo, PageQuery pageQuery) {
|
||||
return xzdSjContractChangeService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取综合服务合同变更详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission(value = {"comprehensive:sjContractInfo:add","comprehensive:sjContractInfo:edit","comprehensive:sjContractInfo:list"},mode = SaMode.OR)
|
||||
@GetMapping("/getChang/{id}")
|
||||
public R<XzdSjContractChangeVo> getChangInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(xzdSjContractChangeService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询综合服务合同终止列表
|
||||
*/
|
||||
@SaCheckPermission(value = {"comprehensive:sjContractInfo:add","comprehensive:sjContractInfo:edit","comprehensive:sjContractInfo:list"},mode = SaMode.OR)
|
||||
@GetMapping("/getSuspendList")
|
||||
public TableDataInfo<XzdSjContractSuspendVo> getSuspendList(XzdSjContractSuspendBo bo, PageQuery pageQuery) {
|
||||
return xzdSjContractSuspendService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取综合服务合同终止详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission(value = {"comprehensive:sjContractInfo:add","comprehensive:sjContractInfo:edit","comprehensive:sjContractInfo:list"},mode = SaMode.OR)
|
||||
@GetMapping("/getSuspend/{id}")
|
||||
public R<XzdSjContractSuspendVo> getSuspendInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(xzdSjContractSuspendService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询印章帮助列表
|
||||
*/
|
||||
@SaCheckPermission(value = {"comprehensive:sjContractInfo:add","comprehensive:sjContractInfo:edit","comprehensive:sjContractInfo:list"},mode = SaMode.OR)
|
||||
@GetMapping("/businessSealList")
|
||||
public TableDataInfo<XzdBusinessSealVo> list(XzdBusinessSealBo bo, PageQuery pageQuery) {
|
||||
return xzdBusinessSealService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询设计合同信息列表
|
||||
*/
|
||||
@SaCheckPermission("comprehensive:sjContractInfo:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<XzdSjContractInfoVo> list(XzdSjContractInfoBo bo, PageQuery pageQuery) {
|
||||
return xzdSjContractInfoService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出设计合同信息列表
|
||||
*/
|
||||
@SaCheckPermission("comprehensive:sjContractInfo:export")
|
||||
@Log(title = "设计合同信息", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(XzdSjContractInfoBo bo, HttpServletResponse response) {
|
||||
List<XzdSjContractInfoVo> list = xzdSjContractInfoService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "设计合同信息", XzdSjContractInfoVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取设计合同信息详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("comprehensive:sjContractInfo:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<XzdSjContractInfoVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(xzdSjContractInfoService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增设计合同信息
|
||||
*/
|
||||
@SaCheckPermission("comprehensive:sjContractInfo:add")
|
||||
@Log(title = "设计合同信息", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody XzdSjContractInfoBo bo) {
|
||||
return toAjax(xzdSjContractInfoService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改设计合同信息
|
||||
*/
|
||||
@SaCheckPermission("comprehensive:sjContractInfo:edit")
|
||||
@Log(title = "设计合同信息", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody XzdSjContractInfoBo bo) {
|
||||
return toAjax(xzdSjContractInfoService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除设计合同信息
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("comprehensive:sjContractInfo:remove")
|
||||
@Log(title = "设计合同信息", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(xzdSjContractInfoService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,154 @@
|
||||
package org.dromara.xzd.comprehensive.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.comprehensive.domain.bo.XzdCsContractInformationBo;
|
||||
import org.dromara.xzd.comprehensive.domain.bo.XzdSjContractInfoBo;
|
||||
import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractInformationVo;
|
||||
import org.dromara.xzd.comprehensive.domain.vo.XzdSjContractInfoVo;
|
||||
import org.dromara.xzd.comprehensive.service.IXzdCsContractInformationService;
|
||||
import org.dromara.xzd.comprehensive.service.IXzdSjContractInfoService;
|
||||
import org.dromara.xzd.domain.bo.XzdBusinessSealBo;
|
||||
import org.dromara.xzd.domain.vo.XzdBusinessSealVo;
|
||||
import org.dromara.xzd.service.IXzdBusinessSealService;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
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.comprehensive.domain.vo.XzdSjContractSuspendVo;
|
||||
import org.dromara.xzd.comprehensive.domain.bo.XzdSjContractSuspendBo;
|
||||
import org.dromara.xzd.comprehensive.service.IXzdSjContractSuspendService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 设计合同终止
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-11-19
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/xzd/comprehensive/sjContractSuspend")
|
||||
public class XzdSjContractSuspendController extends BaseController {
|
||||
|
||||
private final IXzdSjContractSuspendService xzdSjContractSuspendService;
|
||||
|
||||
private final IXzdBusinessSealService xzdBusinessSealService;
|
||||
|
||||
|
||||
@Lazy
|
||||
private final IXzdSjContractInfoService xzdSjContractInfoService;
|
||||
|
||||
/**
|
||||
* 查询综合服务合同信息列表
|
||||
*/
|
||||
@SaCheckPermission(value = {"comprehensive:sjContractSuspend:add","comprehensive:sjContractSuspend:edit","comprehensive:sjContractSuspend:list"},mode = SaMode.OR)
|
||||
@GetMapping("/getList")
|
||||
public TableDataInfo<XzdSjContractInfoVo> getList(XzdSjContractInfoBo bo, PageQuery pageQuery) {
|
||||
return xzdSjContractInfoService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询印章帮助列表
|
||||
*/
|
||||
@SaCheckPermission(value = {"comprehensive:sjContractSuspend:add","comprehensive:sjContractSuspend:edit","comprehensive:sjContractSuspend:list"},mode = SaMode.OR)
|
||||
@GetMapping("/businessSealList")
|
||||
public TableDataInfo<XzdBusinessSealVo> list(XzdBusinessSealBo bo, PageQuery pageQuery) {
|
||||
return xzdBusinessSealService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获取综合服务合同信息详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission(value = {"comprehensive:csContractChange:add","comprehensive:csContractChange:edit"},mode = SaMode.OR)
|
||||
@GetMapping("/get/{id}")
|
||||
public R<XzdSjContractInfoVo> getCsContractInformationInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(xzdSjContractInfoService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询设计合同终止列表
|
||||
*/
|
||||
@SaCheckPermission("comprehensive:sjContractSuspend:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<XzdSjContractSuspendVo> list(XzdSjContractSuspendBo bo, PageQuery pageQuery) {
|
||||
return xzdSjContractSuspendService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出设计合同终止列表
|
||||
*/
|
||||
@SaCheckPermission("comprehensive:sjContractSuspend:export")
|
||||
@Log(title = "设计合同终止", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(XzdSjContractSuspendBo bo, HttpServletResponse response) {
|
||||
List<XzdSjContractSuspendVo> list = xzdSjContractSuspendService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "设计合同终止", XzdSjContractSuspendVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取设计合同终止详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("comprehensive:sjContractSuspend:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<XzdSjContractSuspendVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(xzdSjContractSuspendService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增设计合同终止
|
||||
*/
|
||||
@SaCheckPermission("comprehensive:sjContractSuspend:add")
|
||||
@Log(title = "设计合同终止", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody XzdSjContractSuspendBo bo) {
|
||||
return toAjax(xzdSjContractSuspendService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改设计合同终止
|
||||
*/
|
||||
@SaCheckPermission("comprehensive:sjContractSuspend:edit")
|
||||
@Log(title = "设计合同终止", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody XzdSjContractSuspendBo bo) {
|
||||
return toAjax(xzdSjContractSuspendService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除设计合同终止
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("comprehensive:sjContractSuspend:remove")
|
||||
@Log(title = "设计合同终止", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(xzdSjContractSuspendService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,218 @@
|
||||
package org.dromara.xzd.comprehensive.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_sj_contract_change
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-11-19
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("xzd_sj_contract_change")
|
||||
public class XzdSjContractChange extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据编码
|
||||
*/
|
||||
private String docCode;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
private LocalDate docDate;
|
||||
|
||||
/**
|
||||
* 合同编码(关联合同表)
|
||||
*/
|
||||
private Long contractCode;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 合同类型
|
||||
*/
|
||||
private String contractType;
|
||||
|
||||
/**
|
||||
* 变更类型
|
||||
*/
|
||||
private Long changeType;
|
||||
|
||||
/**
|
||||
* 项目
|
||||
*/
|
||||
private Long project;
|
||||
|
||||
/**
|
||||
* 经营模式
|
||||
*/
|
||||
private String businessMode;
|
||||
|
||||
/**
|
||||
* 组织
|
||||
*/
|
||||
private Long organization;
|
||||
|
||||
/**
|
||||
* 甲方单位
|
||||
*/
|
||||
private Long partyA;
|
||||
|
||||
/**
|
||||
* 乙方单位
|
||||
*/
|
||||
private Long partyB;
|
||||
|
||||
/**
|
||||
* 原合同造价
|
||||
*/
|
||||
private BigDecimal originalContractAmount;
|
||||
|
||||
/**
|
||||
* 变更价税合计
|
||||
*/
|
||||
private BigDecimal changeTaxIncludedAmount;
|
||||
|
||||
/**
|
||||
* 变更后价税合计
|
||||
*/
|
||||
private BigDecimal afterChangeTaxIncludedAmount;
|
||||
|
||||
/**
|
||||
* 累计变更金额
|
||||
*/
|
||||
private BigDecimal cumulativeChangeAmount;
|
||||
|
||||
/**
|
||||
* 警示
|
||||
*/
|
||||
private String warning;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 支付条款
|
||||
*/
|
||||
private String paymentTerms;
|
||||
|
||||
/**
|
||||
* 是否用印(0:否,1:是)
|
||||
*/
|
||||
private Long isSealed;
|
||||
|
||||
/**
|
||||
* 变更后项目经理
|
||||
*/
|
||||
private Long afterChangeProjectManager;
|
||||
|
||||
/**
|
||||
* 变更后项目责任人
|
||||
*/
|
||||
private Long afterChangeProjectLeader;
|
||||
|
||||
/**
|
||||
* 变更后现场经理
|
||||
*/
|
||||
private Long afterChangeSiteManager;
|
||||
|
||||
/**
|
||||
* 变更后合同备注
|
||||
*/
|
||||
private String afterChangeContractRemark;
|
||||
|
||||
/**
|
||||
* 项目大类
|
||||
*/
|
||||
private String projectCategory;
|
||||
|
||||
/**
|
||||
* 项目类型
|
||||
*/
|
||||
private String projectType;
|
||||
|
||||
/**
|
||||
* 付款额不能超合同额(0:否,1:是)
|
||||
*/
|
||||
private Long paymentNotExceedContract;
|
||||
|
||||
/**
|
||||
* 付款额不超合同额支付比例(%)
|
||||
*/
|
||||
private BigDecimal paymentNotExceedRatio;
|
||||
|
||||
/**
|
||||
* 预结算/结算不能超合同额(0:否,1:是)
|
||||
*/
|
||||
private Long budgetNotExceedContract;
|
||||
|
||||
/**
|
||||
* 预结算/结算不超合同额比例(%)
|
||||
*/
|
||||
private BigDecimal budgetNotExceedRatio;
|
||||
|
||||
/**
|
||||
* 实时刷新(0:否,1:是)
|
||||
*/
|
||||
private Long realTimeUpdate;
|
||||
|
||||
/**
|
||||
* 合同累计变更金额
|
||||
*/
|
||||
private BigDecimal contractCumulativeChangeAmount;
|
||||
|
||||
/**
|
||||
* 合同文本
|
||||
*/
|
||||
private String contractText;
|
||||
|
||||
/**
|
||||
* 部门id
|
||||
*/
|
||||
private Long deptId;
|
||||
|
||||
/**
|
||||
* 单据引用
|
||||
*/
|
||||
private String documentReference;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
/**
|
||||
* 文件id
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,343 @@
|
||||
package org.dromara.xzd.comprehensive.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_sj_contract_info
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-11-19
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("xzd_sj_contract_info")
|
||||
public class XzdSjContractInfo extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 合同状态
|
||||
*/
|
||||
private String htzt;
|
||||
|
||||
/**
|
||||
* 合同编码
|
||||
*/
|
||||
private String contractCode;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
private LocalDate documentDate;
|
||||
|
||||
/**
|
||||
* 合同类型(如:租车合同)
|
||||
*/
|
||||
private String contractType;
|
||||
|
||||
/**
|
||||
* 项目ID(关联项目表)
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 签订日期
|
||||
*/
|
||||
private LocalDate signDate;
|
||||
|
||||
/**
|
||||
* 甲方单位
|
||||
*/
|
||||
private Long partyA;
|
||||
|
||||
/**
|
||||
* 含税合同金额
|
||||
*/
|
||||
private BigDecimal taxIncludedAmount;
|
||||
|
||||
/**
|
||||
* 合同状态(如:新增、生效)
|
||||
*/
|
||||
private String contractStatus;
|
||||
|
||||
/**
|
||||
* 乙方单位
|
||||
*/
|
||||
private Long partyB;
|
||||
|
||||
/**
|
||||
* 累计变更金额
|
||||
*/
|
||||
private BigDecimal cumulativeChangeAmount;
|
||||
|
||||
/**
|
||||
* 部门ID(关联部门表)
|
||||
*/
|
||||
private Long departmentId;
|
||||
|
||||
/**
|
||||
* 归档日期
|
||||
*/
|
||||
private LocalDate archivalDate;
|
||||
|
||||
/**
|
||||
* 是否研发类(0:否,1:是)
|
||||
*/
|
||||
private Long isRD;
|
||||
|
||||
/**
|
||||
* 开票单位
|
||||
*/
|
||||
private Long invoiceIssuer;
|
||||
|
||||
/**
|
||||
* 收票单位
|
||||
*/
|
||||
private Long invoiceReceiver;
|
||||
|
||||
/**
|
||||
* 有效期开始日期
|
||||
*/
|
||||
private LocalDate validStartDate;
|
||||
|
||||
/**
|
||||
* 有效期结束日期
|
||||
*/
|
||||
private LocalDate validEndDate;
|
||||
|
||||
/**
|
||||
* 是否用印(0:否,1:是)
|
||||
*/
|
||||
private Long isSealed;
|
||||
|
||||
/**
|
||||
* 大写合同价税合计
|
||||
*/
|
||||
private String taxIncludedAmountUpper;
|
||||
|
||||
/**
|
||||
* 警示
|
||||
*/
|
||||
private String warning;
|
||||
|
||||
/**
|
||||
* 支付条款
|
||||
*/
|
||||
private String paymentTerms;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 签约组织
|
||||
*/
|
||||
private Long signOrganization;
|
||||
|
||||
/**
|
||||
* 项目类型
|
||||
*/
|
||||
private String projectType;
|
||||
|
||||
/**
|
||||
* 项目大类
|
||||
*/
|
||||
private String projectCategory;
|
||||
|
||||
/**
|
||||
* 项目责任人
|
||||
*/
|
||||
private Long projectOwner;
|
||||
|
||||
/**
|
||||
* WBS编码
|
||||
*/
|
||||
private String wbs;
|
||||
|
||||
/**
|
||||
* 备案状态(如:未备案、已备案)
|
||||
*/
|
||||
private String filingStatus;
|
||||
|
||||
/**
|
||||
* 备案时间
|
||||
*/
|
||||
private LocalDate filingTime;
|
||||
|
||||
/**
|
||||
* 是否需备案(0:否,1:是)
|
||||
*/
|
||||
private Long needFiling;
|
||||
|
||||
/**
|
||||
* 预算分类
|
||||
*/
|
||||
private Long budgetCategory;
|
||||
|
||||
/**
|
||||
* 是否固定单价合同(0:否,1:是)
|
||||
*/
|
||||
private Long isFixedUnitPrice;
|
||||
|
||||
/**
|
||||
* 是否总价包干合同(0:否,1:是)
|
||||
*/
|
||||
private Long isLumpSum;
|
||||
|
||||
/**
|
||||
* 付款额不能超合同额(0:否,1:是)
|
||||
*/
|
||||
private Long paymentNotExceedContract;
|
||||
|
||||
/**
|
||||
* 付款额不超合同额比例(%)
|
||||
*/
|
||||
private BigDecimal paymentNotExceedRatio;
|
||||
|
||||
/**
|
||||
* 预结算/结算不能超合同额(0:否,1:是)
|
||||
*/
|
||||
private Long budgetNotExceedContract;
|
||||
|
||||
/**
|
||||
* 预结算/结算不超合同额比例(%)
|
||||
*/
|
||||
private BigDecimal budgetNotExceedRatio;
|
||||
|
||||
/**
|
||||
* 合同文本
|
||||
*/
|
||||
private String contractText;
|
||||
|
||||
/**
|
||||
* 部门id
|
||||
*/
|
||||
private Long deptId;
|
||||
|
||||
/**
|
||||
* 单据引用
|
||||
*/
|
||||
private String documentReference;
|
||||
|
||||
/**
|
||||
* 文件id
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
/**
|
||||
* 固定单价下的含税暂定总价(小写)
|
||||
*/
|
||||
private BigDecimal provisionalTotalTaxIncluded;
|
||||
|
||||
/**
|
||||
* 固定单价下的含税暂定总价(大写)
|
||||
*/
|
||||
private String provisionalTotalTaxIncludedUpper;
|
||||
|
||||
/**
|
||||
* 固定单价下的增值税金额(小写)
|
||||
*/
|
||||
private BigDecimal provisionalVatAmount;
|
||||
|
||||
/**
|
||||
* 固定单价下的增值税金额(大写)
|
||||
*/
|
||||
private String provisionalVatAmountUpper;
|
||||
|
||||
/**
|
||||
* 固定单价下的增值税税率(%)
|
||||
*/
|
||||
private BigDecimal provisionalVatRate;
|
||||
|
||||
/**
|
||||
* 固定单价下的增值税发票类型(如“专用发票”)
|
||||
*/
|
||||
private String provisionalVatInvoiceType;
|
||||
|
||||
/**
|
||||
* 固定单价下的不含税暂定总价(小写)
|
||||
*/
|
||||
private BigDecimal provisionalTotalTaxExcluded;
|
||||
|
||||
/**
|
||||
* 固定单价下的不含税暂定总价(大写)
|
||||
*/
|
||||
private String provisionalTotalTaxExcludedUpper;
|
||||
|
||||
/**
|
||||
* 固定总价下的含税总价(小写)
|
||||
*/
|
||||
private BigDecimal fixedTotalTaxIncluded;
|
||||
|
||||
/**
|
||||
* 固定总价下的含税总价(大写)
|
||||
*/
|
||||
private String fixedTotalTaxIncludedUpper;
|
||||
|
||||
/**
|
||||
* 固定总价下的增值税金额(小写)
|
||||
*/
|
||||
private BigDecimal fixedVatAmount;
|
||||
|
||||
/**
|
||||
* 固定总价下的增值税金额(大写)
|
||||
*/
|
||||
private String fixedVatAmountUpper;
|
||||
|
||||
/**
|
||||
* 固定总价下的增值税税率(%)
|
||||
*/
|
||||
private BigDecimal fixedVatRate;
|
||||
|
||||
/**
|
||||
* 固定总价下的增值税发票类型(如“专用发票”)
|
||||
*/
|
||||
private String fixedVatInvoiceType;
|
||||
|
||||
/**
|
||||
* 固定总价下的不含税总价(小写)
|
||||
*/
|
||||
private BigDecimal fixedTotalTaxExcluded;
|
||||
|
||||
/**
|
||||
* 固定总价下的不含税总价(大写)
|
||||
*/
|
||||
private String fixedTotalTaxExcludedUpper;
|
||||
|
||||
/**
|
||||
* 固定总价是否可调整(0:否,1:是)
|
||||
*/
|
||||
private Long fixedTotalAdjustable;
|
||||
|
||||
/**
|
||||
* 固定总价调整说明(如“合同执行中金额不予调整,另有约定除外”)
|
||||
*/
|
||||
private String fixedTotalAdjustNote;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,123 @@
|
||||
package org.dromara.xzd.comprehensive.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_sj_contract_suspend
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-11-19
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("xzd_sj_contract_suspend")
|
||||
public class XzdSjContractSuspend extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 采购合同信息ID(合同编码)
|
||||
*/
|
||||
private Long contractInformationId;
|
||||
|
||||
/**
|
||||
* 单据编码
|
||||
*/
|
||||
private String receiptsCode;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
private LocalDate documentDate;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 终止日期
|
||||
*/
|
||||
private LocalDate terminationDate;
|
||||
|
||||
/**
|
||||
* 工程项目
|
||||
*/
|
||||
private String project;
|
||||
|
||||
/**
|
||||
* 乙方单位
|
||||
*/
|
||||
private Long artyBUnit;
|
||||
|
||||
/**
|
||||
* 甲方单位
|
||||
*/
|
||||
private Long partyAUnit;
|
||||
|
||||
/**
|
||||
* 终止原因
|
||||
*/
|
||||
private String terminationCause;
|
||||
|
||||
/**
|
||||
* 项目大类
|
||||
*/
|
||||
private String projectCategory;
|
||||
|
||||
/**
|
||||
* 项目类型
|
||||
*/
|
||||
private String projectType;
|
||||
|
||||
/**
|
||||
* 累计结算金额
|
||||
*/
|
||||
private Long cumulativeSettlementAmount;
|
||||
|
||||
/**
|
||||
* 部门id
|
||||
*/
|
||||
private Long deptId;
|
||||
|
||||
/**
|
||||
* 累计付款金额
|
||||
*/
|
||||
private BigDecimal cumulativePaymentAmount;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,62 @@
|
||||
package org.dromara.xzd.comprehensive.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;
|
||||
|
||||
/**
|
||||
* 设计合同付款节点信息对象 xzd_sjht_zfjd
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-11-19
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("xzd_sjht_zfjd")
|
||||
public class XzdSjhtZfjd extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 自增主键
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 关联设计合同id
|
||||
*/
|
||||
private Long mainId;
|
||||
|
||||
/**
|
||||
* 付款阶段名称(如“合同签订后付款”)
|
||||
*/
|
||||
private String paymentStage;
|
||||
|
||||
/**
|
||||
* 阶段具体描述(对应合同条款原文)
|
||||
*/
|
||||
private String stageDesc;
|
||||
|
||||
/**
|
||||
* 付款比例(%,如30.00表示30%)
|
||||
*/
|
||||
private BigDecimal paymentRatio;
|
||||
|
||||
/**
|
||||
* 付款触发条件(前置条件)
|
||||
*/
|
||||
private String triggerConditions;
|
||||
|
||||
/**
|
||||
* 时间要求(工作日)
|
||||
*/
|
||||
private Integer timeLimit;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,252 @@
|
||||
package org.dromara.xzd.comprehensive.domain.bo;
|
||||
|
||||
import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd;
|
||||
import org.dromara.xzd.comprehensive.domain.XzdSjContractChange;
|
||||
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.comprehensive.domain.XzdSjhtZfjd;
|
||||
import org.dromara.xzd.domain.XzdBusinessChange;
|
||||
import org.dromara.xzd.domain.XzdContractClause;
|
||||
import org.dromara.xzd.domain.XzdDeductionItems;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 设计合同变更业务对象 xzd_sj_contract_change
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-11-19
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = XzdSjContractChange.class, reverseConvertGenerate = false)
|
||||
public class XzdSjContractChangeBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据编码
|
||||
*/
|
||||
@NotBlank(message = "单据编码不能为空", groups = { EditGroup.class })
|
||||
private String docCode;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
@NotBlank(message = "标题不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
@NotNull(message = "单据日期不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private LocalDate docDate;
|
||||
|
||||
/**
|
||||
* 合同编码(关联合同表)
|
||||
*/
|
||||
private Long contractCode;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 合同类型
|
||||
*/
|
||||
private String contractType;
|
||||
|
||||
/**
|
||||
* 变更类型
|
||||
*/
|
||||
private Long changeType;
|
||||
|
||||
/**
|
||||
* 项目
|
||||
*/
|
||||
private Long project;
|
||||
|
||||
/**
|
||||
* 经营模式
|
||||
*/
|
||||
private String businessMode;
|
||||
|
||||
/**
|
||||
* 组织
|
||||
*/
|
||||
private Long organization;
|
||||
|
||||
/**
|
||||
* 甲方单位
|
||||
*/
|
||||
private Long partyA;
|
||||
|
||||
/**
|
||||
* 乙方单位
|
||||
*/
|
||||
private Long partyB;
|
||||
|
||||
/**
|
||||
* 原合同造价
|
||||
*/
|
||||
private BigDecimal originalContractAmount;
|
||||
|
||||
/**
|
||||
* 变更价税合计
|
||||
*/
|
||||
private BigDecimal changeTaxIncludedAmount;
|
||||
|
||||
/**
|
||||
* 变更后价税合计
|
||||
*/
|
||||
private BigDecimal afterChangeTaxIncludedAmount;
|
||||
|
||||
/**
|
||||
* 累计变更金额
|
||||
*/
|
||||
private BigDecimal cumulativeChangeAmount;
|
||||
|
||||
/**
|
||||
* 警示
|
||||
*/
|
||||
private String warning;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 支付条款
|
||||
*/
|
||||
private String paymentTerms;
|
||||
|
||||
/**
|
||||
* 是否用印(0:否,1:是)
|
||||
*/
|
||||
private Long isSealed;
|
||||
|
||||
/**
|
||||
* 变更后项目经理
|
||||
*/
|
||||
private Long afterChangeProjectManager;
|
||||
|
||||
/**
|
||||
* 变更后项目责任人
|
||||
*/
|
||||
private Long afterChangeProjectLeader;
|
||||
|
||||
/**
|
||||
* 变更后现场经理
|
||||
*/
|
||||
private Long afterChangeSiteManager;
|
||||
|
||||
/**
|
||||
* 变更后合同备注
|
||||
*/
|
||||
private String afterChangeContractRemark;
|
||||
|
||||
/**
|
||||
* 项目大类
|
||||
*/
|
||||
private String projectCategory;
|
||||
|
||||
/**
|
||||
* 项目类型
|
||||
*/
|
||||
private String projectType;
|
||||
|
||||
/**
|
||||
* 付款额不能超合同额(0:否,1:是)
|
||||
*/
|
||||
private Long paymentNotExceedContract;
|
||||
|
||||
/**
|
||||
* 付款额不超合同额支付比例(%)
|
||||
*/
|
||||
private BigDecimal paymentNotExceedRatio;
|
||||
|
||||
/**
|
||||
* 预结算/结算不能超合同额(0:否,1:是)
|
||||
*/
|
||||
private Long budgetNotExceedContract;
|
||||
|
||||
/**
|
||||
* 预结算/结算不超合同额比例(%)
|
||||
*/
|
||||
private BigDecimal budgetNotExceedRatio;
|
||||
|
||||
/**
|
||||
* 实时刷新(0:否,1:是)
|
||||
*/
|
||||
private Long realTimeUpdate;
|
||||
|
||||
/**
|
||||
* 合同累计变更金额
|
||||
*/
|
||||
private BigDecimal contractCumulativeChangeAmount;
|
||||
|
||||
/**
|
||||
* 合同文本
|
||||
*/
|
||||
private String contractText;
|
||||
|
||||
/**
|
||||
* 部门id
|
||||
*/
|
||||
private Long deptId;
|
||||
|
||||
/**
|
||||
* 单据引用
|
||||
*/
|
||||
private String documentReference;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
/**
|
||||
* 文件id
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 扣款与奖励项
|
||||
*/
|
||||
private List<XzdDeductionItems> kkyjlx;
|
||||
|
||||
/**
|
||||
* 合同条款
|
||||
*/
|
||||
private List<XzdContractClause> httk;
|
||||
|
||||
/**
|
||||
* 支付节点
|
||||
*/
|
||||
private List<XzdSjhtZfjd> zftk;
|
||||
|
||||
/**
|
||||
* 合同变更清单
|
||||
*/
|
||||
private List<XzdHtglHtbgqd> htbgqds;
|
||||
|
||||
/**
|
||||
* 印章信息
|
||||
*/
|
||||
private List<XzdBusinessChange> sealInfo;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,388 @@
|
||||
package org.dromara.xzd.comprehensive.domain.bo;
|
||||
|
||||
import org.dromara.xzd.comprehensive.domain.XzdCsContractSuspendZfkx;
|
||||
import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd;
|
||||
import org.dromara.xzd.comprehensive.domain.XzdSjContractInfo;
|
||||
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.comprehensive.domain.XzdSjhtZfjd;
|
||||
import org.dromara.xzd.domain.XzdBusinessChange;
|
||||
import org.dromara.xzd.domain.XzdContractClause;
|
||||
import org.dromara.xzd.domain.XzdDeductionItems;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 设计合同信息业务对象 xzd_sj_contract_info
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-11-19
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = XzdSjContractInfo.class, reverseConvertGenerate = false)
|
||||
public class XzdSjContractInfoBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 合同状态
|
||||
*/
|
||||
private String htzt;
|
||||
|
||||
/**
|
||||
* 合同编码
|
||||
*/
|
||||
@NotBlank(message = "合同编码不能为空", groups = { EditGroup.class })
|
||||
private String contractCode;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
@NotBlank(message = "合同名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
@NotNull(message = "单据日期不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private LocalDate documentDate;
|
||||
|
||||
/**
|
||||
* 合同类型(如:租车合同)
|
||||
*/
|
||||
@NotBlank(message = "合同类型(如:租车合同)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String contractType;
|
||||
|
||||
/**
|
||||
* 项目ID(关联项目表)
|
||||
*/
|
||||
@NotNull(message = "项目ID(关联项目表)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 签订日期
|
||||
*/
|
||||
private LocalDate signDate;
|
||||
|
||||
/**
|
||||
* 甲方单位
|
||||
*/
|
||||
@NotNull(message = "甲方单位不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long partyA;
|
||||
|
||||
/**
|
||||
* 含税合同金额
|
||||
*/
|
||||
private BigDecimal taxIncludedAmount;
|
||||
|
||||
/**
|
||||
* 合同状态(如:新增、生效)
|
||||
*/
|
||||
private String contractStatus;
|
||||
|
||||
/**
|
||||
* 乙方单位
|
||||
*/
|
||||
@NotNull(message = "乙方单位不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long partyB;
|
||||
|
||||
/**
|
||||
* 累计变更金额
|
||||
*/
|
||||
private BigDecimal cumulativeChangeAmount;
|
||||
|
||||
/**
|
||||
* 部门ID(关联部门表)
|
||||
*/
|
||||
private Long departmentId;
|
||||
|
||||
/**
|
||||
* 归档日期
|
||||
*/
|
||||
private LocalDate archivalDate;
|
||||
|
||||
/**
|
||||
* 是否研发类(0:否,1:是)
|
||||
*/
|
||||
@NotNull(message = "是否研发类(0:否,1:是)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long isRD;
|
||||
|
||||
/**
|
||||
* 开票单位
|
||||
*/
|
||||
@NotNull(message = "开票单位不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long invoiceIssuer;
|
||||
|
||||
/**
|
||||
* 收票单位
|
||||
*/
|
||||
@NotNull(message = "收票单位不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long invoiceReceiver;
|
||||
|
||||
/**
|
||||
* 有效期开始日期
|
||||
*/
|
||||
private LocalDate validStartDate;
|
||||
|
||||
/**
|
||||
* 有效期结束日期
|
||||
*/
|
||||
private LocalDate validEndDate;
|
||||
|
||||
/**
|
||||
* 是否用印(0:否,1:是)
|
||||
*/
|
||||
private Long isSealed;
|
||||
|
||||
/**
|
||||
* 大写合同价税合计
|
||||
*/
|
||||
private String taxIncludedAmountUpper;
|
||||
|
||||
/**
|
||||
* 警示
|
||||
*/
|
||||
private String warning;
|
||||
|
||||
/**
|
||||
* 支付条款
|
||||
*/
|
||||
private String paymentTerms;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 签约组织
|
||||
*/
|
||||
@NotNull(message = "签约组织不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long signOrganization;
|
||||
|
||||
/**
|
||||
* 项目类型
|
||||
*/
|
||||
private String projectType;
|
||||
|
||||
/**
|
||||
* 项目大类
|
||||
*/
|
||||
private String projectCategory;
|
||||
|
||||
/**
|
||||
* 项目责任人
|
||||
*/
|
||||
private Long projectOwner;
|
||||
|
||||
/**
|
||||
* WBS编码
|
||||
*/
|
||||
private String wbs;
|
||||
|
||||
/**
|
||||
* 备案状态(如:未备案、已备案)
|
||||
*/
|
||||
private String filingStatus;
|
||||
|
||||
/**
|
||||
* 备案时间
|
||||
*/
|
||||
private LocalDate filingTime;
|
||||
|
||||
/**
|
||||
* 是否需备案(0:否,1:是)
|
||||
*/
|
||||
private Long needFiling;
|
||||
|
||||
/**
|
||||
* 预算分类
|
||||
*/
|
||||
@NotNull(message = "预算分类不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long budgetCategory;
|
||||
|
||||
/**
|
||||
* 是否固定单价合同(0:否,1:是)
|
||||
*/
|
||||
private Long isFixedUnitPrice;
|
||||
|
||||
/**
|
||||
* 是否总价包干合同(0:否,1:是)
|
||||
*/
|
||||
private Long isLumpSum;
|
||||
|
||||
/**
|
||||
* 付款额不能超合同额(0:否,1:是)
|
||||
*/
|
||||
private Long paymentNotExceedContract;
|
||||
|
||||
/**
|
||||
* 付款额不超合同额比例(%)
|
||||
*/
|
||||
private BigDecimal paymentNotExceedRatio;
|
||||
|
||||
/**
|
||||
* 预结算/结算不能超合同额(0:否,1:是)
|
||||
*/
|
||||
private Long budgetNotExceedContract;
|
||||
|
||||
/**
|
||||
* 预结算/结算不超合同额比例(%)
|
||||
*/
|
||||
private BigDecimal budgetNotExceedRatio;
|
||||
|
||||
/**
|
||||
* 合同文本
|
||||
*/
|
||||
private String contractText;
|
||||
|
||||
/**
|
||||
* 部门id
|
||||
*/
|
||||
private Long deptId;
|
||||
|
||||
/**
|
||||
* 单据引用
|
||||
*/
|
||||
private String documentReference;
|
||||
|
||||
/**
|
||||
* 文件id
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
/**
|
||||
* 固定单价下的含税暂定总价(小写)
|
||||
*/
|
||||
private BigDecimal provisionalTotalTaxIncluded;
|
||||
|
||||
/**
|
||||
* 固定单价下的含税暂定总价(大写)
|
||||
*/
|
||||
private String provisionalTotalTaxIncludedUpper;
|
||||
|
||||
/**
|
||||
* 固定单价下的增值税金额(小写)
|
||||
*/
|
||||
private BigDecimal provisionalVatAmount;
|
||||
|
||||
/**
|
||||
* 固定单价下的增值税金额(大写)
|
||||
*/
|
||||
private String provisionalVatAmountUpper;
|
||||
|
||||
/**
|
||||
* 固定单价下的增值税税率(%)
|
||||
*/
|
||||
private BigDecimal provisionalVatRate;
|
||||
|
||||
/**
|
||||
* 固定单价下的增值税发票类型(如“专用发票”)
|
||||
*/
|
||||
private String provisionalVatInvoiceType;
|
||||
|
||||
/**
|
||||
* 固定单价下的不含税暂定总价(小写)
|
||||
*/
|
||||
private BigDecimal provisionalTotalTaxExcluded;
|
||||
|
||||
/**
|
||||
* 固定单价下的不含税暂定总价(大写)
|
||||
*/
|
||||
private String provisionalTotalTaxExcludedUpper;
|
||||
|
||||
/**
|
||||
* 固定总价下的含税总价(小写)
|
||||
*/
|
||||
private BigDecimal fixedTotalTaxIncluded;
|
||||
|
||||
/**
|
||||
* 固定总价下的含税总价(大写)
|
||||
*/
|
||||
private String fixedTotalTaxIncludedUpper;
|
||||
|
||||
/**
|
||||
* 固定总价下的增值税金额(小写)
|
||||
*/
|
||||
private BigDecimal fixedVatAmount;
|
||||
|
||||
/**
|
||||
* 固定总价下的增值税金额(大写)
|
||||
*/
|
||||
private String fixedVatAmountUpper;
|
||||
|
||||
/**
|
||||
* 固定总价下的增值税税率(%)
|
||||
*/
|
||||
private BigDecimal fixedVatRate;
|
||||
|
||||
/**
|
||||
* 固定总价下的增值税发票类型(如“专用发票”)
|
||||
*/
|
||||
private String fixedVatInvoiceType;
|
||||
|
||||
/**
|
||||
* 固定总价下的不含税总价(小写)
|
||||
*/
|
||||
private BigDecimal fixedTotalTaxExcluded;
|
||||
|
||||
/**
|
||||
* 固定总价下的不含税总价(大写)
|
||||
*/
|
||||
private String fixedTotalTaxExcludedUpper;
|
||||
|
||||
/**
|
||||
* 固定总价是否可调整(0:否,1:是)
|
||||
*/
|
||||
private Long fixedTotalAdjustable;
|
||||
|
||||
/**
|
||||
* 固定总价调整说明(如“合同执行中金额不予调整,另有约定除外”)
|
||||
*/
|
||||
private String fixedTotalAdjustNote;
|
||||
|
||||
|
||||
/**
|
||||
* 扣款与奖励项
|
||||
*/
|
||||
private List<XzdDeductionItems> kkyjlx;
|
||||
|
||||
/**
|
||||
* 合同条款
|
||||
*/
|
||||
private List<XzdContractClause> httk;
|
||||
|
||||
/**
|
||||
* 支付节点
|
||||
*/
|
||||
private List<XzdSjhtZfjd> zftk;
|
||||
|
||||
/**
|
||||
* 合同变更清单
|
||||
*/
|
||||
private List<XzdHtglHtbgqd> htbgqds;
|
||||
|
||||
/**
|
||||
* 印章信息
|
||||
*/
|
||||
private List<XzdBusinessChange> sealInfo;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,132 @@
|
||||
package org.dromara.xzd.comprehensive.domain.bo;
|
||||
|
||||
import org.dromara.xzd.comprehensive.domain.XzdSjContractSuspend;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* 设计合同终止业务对象 xzd_sj_contract_suspend
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-11-19
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = XzdSjContractSuspend.class, reverseConvertGenerate = false)
|
||||
public class XzdSjContractSuspendBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 采购合同信息ID(合同编码)
|
||||
*/
|
||||
@NotNull(message = "采购合同信息ID(合同编码)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long contractInformationId;
|
||||
|
||||
/**
|
||||
* 单据编码
|
||||
*/
|
||||
@NotBlank(message = "单据编码不能为空", groups = { EditGroup.class })
|
||||
private String receiptsCode;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
@NotBlank(message = "标题不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
@NotNull(message = "单据日期不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private LocalDate documentDate;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
@NotBlank(message = "合同名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 终止日期
|
||||
*/
|
||||
@NotNull(message = "终止日期不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private LocalDate terminationDate;
|
||||
|
||||
/**
|
||||
* 工程项目
|
||||
*/
|
||||
@NotBlank(message = "工程项目不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String project;
|
||||
|
||||
/**
|
||||
* 乙方单位
|
||||
*/
|
||||
@NotNull(message = "乙方单位不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long artyBUnit;
|
||||
|
||||
/**
|
||||
* 甲方单位
|
||||
*/
|
||||
@NotNull(message = "甲方单位不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long partyAUnit;
|
||||
|
||||
/**
|
||||
* 终止原因
|
||||
*/
|
||||
@NotBlank(message = "终止原因不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String terminationCause;
|
||||
|
||||
/**
|
||||
* 项目大类
|
||||
*/
|
||||
private String projectCategory;
|
||||
|
||||
/**
|
||||
* 项目类型
|
||||
*/
|
||||
private String projectType;
|
||||
|
||||
/**
|
||||
* 累计结算金额
|
||||
*/
|
||||
private Long cumulativeSettlementAmount;
|
||||
|
||||
/**
|
||||
* 部门id
|
||||
*/
|
||||
private Long deptId;
|
||||
|
||||
/**
|
||||
* 累计付款金额
|
||||
*/
|
||||
private BigDecimal cumulativePaymentAmount;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,61 @@
|
||||
package org.dromara.xzd.comprehensive.domain.bo;
|
||||
|
||||
import org.dromara.xzd.comprehensive.domain.XzdSjhtZfjd;
|
||||
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;
|
||||
|
||||
/**
|
||||
* 设计合同付款节点信息业务对象 xzd_sjht_zfjd
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-11-19
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = XzdSjhtZfjd.class, reverseConvertGenerate = false)
|
||||
public class XzdSjhtZfjdBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 自增主键
|
||||
*/
|
||||
@NotNull(message = "自增主键不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 关联设计合同id
|
||||
*/
|
||||
private Long mainId;
|
||||
|
||||
/**
|
||||
* 付款阶段名称(如“合同签订后付款”)
|
||||
*/
|
||||
private String paymentStage;
|
||||
|
||||
/**
|
||||
* 阶段具体描述(对应合同条款原文)
|
||||
*/
|
||||
private String stageDesc;
|
||||
|
||||
/**
|
||||
* 付款比例(%,如30.00表示30%)
|
||||
*/
|
||||
private BigDecimal paymentRatio;
|
||||
|
||||
/**
|
||||
* 付款触发条件(前置条件)
|
||||
*/
|
||||
private String triggerConditions;
|
||||
|
||||
/**
|
||||
* 时间要求(工作日)
|
||||
*/
|
||||
private Integer timeLimit;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,316 @@
|
||||
package org.dromara.xzd.comprehensive.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import org.dromara.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd;
|
||||
import org.dromara.xzd.comprehensive.domain.XzdSjContractChange;
|
||||
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.comprehensive.domain.XzdSjhtZfjd;
|
||||
import org.dromara.xzd.domain.XzdBusinessChange;
|
||||
import org.dromara.xzd.domain.XzdContractClause;
|
||||
import org.dromara.xzd.domain.XzdDeductionItems;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 设计合同变更视图对象 xzd_sj_contract_change
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-11-19
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = XzdSjContractChange.class)
|
||||
public class XzdSjContractChangeVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据编码
|
||||
*/
|
||||
@ExcelProperty(value = "单据编码")
|
||||
private String docCode;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
@ExcelProperty(value = "标题")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
@ExcelProperty(value = "单据日期")
|
||||
private LocalDate docDate;
|
||||
|
||||
/**
|
||||
* 合同编码(关联合同表)
|
||||
*/
|
||||
@ExcelProperty(value = "合同编码", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "关=联合同表")
|
||||
private Long contractCode;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
@ExcelProperty(value = "合同名称")
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 合同类型
|
||||
*/
|
||||
@ExcelProperty(value = "合同类型")
|
||||
private String contractType;
|
||||
|
||||
/**
|
||||
* 变更类型
|
||||
*/
|
||||
@ExcelProperty(value = "变更类型")
|
||||
private Long changeType;
|
||||
|
||||
/**
|
||||
* 项目
|
||||
*/
|
||||
@ExcelProperty(value = "项目")
|
||||
private Long project;
|
||||
@Translation(type = TransConstant.XZD_PROJECT_ID_TO_NAME, mapper = "project")
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 经营模式
|
||||
*/
|
||||
@ExcelProperty(value = "经营模式")
|
||||
private String businessMode;
|
||||
|
||||
/**
|
||||
* 组织
|
||||
*/
|
||||
@ExcelProperty(value = "组织")
|
||||
private Long organization;
|
||||
@Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "organization")
|
||||
private String organizationName;
|
||||
|
||||
/**
|
||||
* 甲方单位
|
||||
*/
|
||||
@ExcelProperty(value = "甲方单位")
|
||||
private Long partyA;
|
||||
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "partyA")
|
||||
private String partyAName;
|
||||
|
||||
/**
|
||||
* 乙方单位
|
||||
*/
|
||||
@ExcelProperty(value = "乙方单位")
|
||||
private Long partyB;
|
||||
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "partyB")
|
||||
private String partyBName;
|
||||
|
||||
/**
|
||||
* 原合同造价
|
||||
*/
|
||||
@ExcelProperty(value = "原合同造价")
|
||||
private BigDecimal originalContractAmount;
|
||||
|
||||
/**
|
||||
* 变更价税合计
|
||||
*/
|
||||
@ExcelProperty(value = "变更价税合计")
|
||||
private BigDecimal changeTaxIncludedAmount;
|
||||
|
||||
/**
|
||||
* 变更后价税合计
|
||||
*/
|
||||
@ExcelProperty(value = "变更后价税合计")
|
||||
private BigDecimal afterChangeTaxIncludedAmount;
|
||||
|
||||
/**
|
||||
* 累计变更金额
|
||||
*/
|
||||
@ExcelProperty(value = "累计变更金额")
|
||||
private BigDecimal cumulativeChangeAmount;
|
||||
|
||||
/**
|
||||
* 警示
|
||||
*/
|
||||
@ExcelProperty(value = "警示")
|
||||
private String warning;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 支付条款
|
||||
*/
|
||||
@ExcelProperty(value = "支付条款")
|
||||
private String paymentTerms;
|
||||
|
||||
/**
|
||||
* 是否用印(0:否,1:是)
|
||||
*/
|
||||
@ExcelProperty(value = "是否用印", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "0=:否,1:是")
|
||||
private Long isSealed;
|
||||
|
||||
/**
|
||||
* 变更后项目经理
|
||||
*/
|
||||
@ExcelProperty(value = "变更后项目经理")
|
||||
private Long afterChangeProjectManager;
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "afterChangeProjectManager")
|
||||
private String afterChangeProjectManagerName;
|
||||
|
||||
/**
|
||||
* 变更后项目责任人
|
||||
*/
|
||||
@ExcelProperty(value = "变更后项目责任人")
|
||||
private Long afterChangeProjectLeader;
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "afterChangeProjectLeader")
|
||||
private String afterChangeProjectLeaderName;
|
||||
|
||||
/**
|
||||
* 变更后现场经理
|
||||
*/
|
||||
@ExcelProperty(value = "变更后现场经理")
|
||||
private Long afterChangeSiteManager;
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "afterChangeSiteManager")
|
||||
private String afterChangeSiteManagerName;
|
||||
|
||||
/**
|
||||
* 变更后合同备注
|
||||
*/
|
||||
@ExcelProperty(value = "变更后合同备注")
|
||||
private String afterChangeContractRemark;
|
||||
|
||||
/**
|
||||
* 项目大类
|
||||
*/
|
||||
@ExcelProperty(value = "项目大类")
|
||||
private String projectCategory;
|
||||
|
||||
/**
|
||||
* 项目类型
|
||||
*/
|
||||
@ExcelProperty(value = "项目类型")
|
||||
private String projectType;
|
||||
|
||||
/**
|
||||
* 付款额不能超合同额(0:否,1:是)
|
||||
*/
|
||||
@ExcelProperty(value = "付款额不能超合同额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "0=:否,1:是")
|
||||
private Long paymentNotExceedContract;
|
||||
|
||||
/**
|
||||
* 付款额不超合同额支付比例(%)
|
||||
*/
|
||||
@ExcelProperty(value = "付款额不超合同额支付比例", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "%=")
|
||||
private BigDecimal paymentNotExceedRatio;
|
||||
|
||||
/**
|
||||
* 预结算/结算不能超合同额(0:否,1:是)
|
||||
*/
|
||||
@ExcelProperty(value = "预结算/结算不能超合同额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "0=:否,1:是")
|
||||
private Long budgetNotExceedContract;
|
||||
|
||||
/**
|
||||
* 预结算/结算不超合同额比例(%)
|
||||
*/
|
||||
@ExcelProperty(value = "预结算/结算不超合同额比例", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "%=")
|
||||
private BigDecimal budgetNotExceedRatio;
|
||||
|
||||
/**
|
||||
* 实时刷新(0:否,1:是)
|
||||
*/
|
||||
@ExcelProperty(value = "实时刷新", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "0=:否,1:是")
|
||||
private Long realTimeUpdate;
|
||||
|
||||
/**
|
||||
* 合同累计变更金额
|
||||
*/
|
||||
@ExcelProperty(value = "合同累计变更金额")
|
||||
private BigDecimal contractCumulativeChangeAmount;
|
||||
|
||||
/**
|
||||
* 合同文本
|
||||
*/
|
||||
@ExcelProperty(value = "合同文本")
|
||||
private String contractText;
|
||||
|
||||
/**
|
||||
* 部门id
|
||||
*/
|
||||
@ExcelProperty(value = "部门id")
|
||||
private Long deptId;
|
||||
|
||||
/**
|
||||
* 单据引用
|
||||
*/
|
||||
@ExcelProperty(value = "单据引用")
|
||||
private String documentReference;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
@ExcelProperty(value = "审核状态")
|
||||
private String auditStatus;
|
||||
|
||||
/**
|
||||
* 文件id
|
||||
*/
|
||||
@ExcelProperty(value = "文件id")
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 扣款与奖励项
|
||||
*/
|
||||
private List<XzdDeductionItems> kkyjlx;
|
||||
|
||||
/**
|
||||
* 合同条款
|
||||
*/
|
||||
private List<XzdContractClause> httk;
|
||||
|
||||
/**
|
||||
* 支付条款
|
||||
*/
|
||||
private List<XzdSjhtZfjd> zftk;
|
||||
|
||||
/**
|
||||
* 合同变更清单
|
||||
*/
|
||||
private List<XzdHtglHtbgqd> htbgqds;
|
||||
|
||||
/**
|
||||
* 印章信息
|
||||
*/
|
||||
private List<XzdBusinessChange> sealInfo;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,502 @@
|
||||
package org.dromara.xzd.comprehensive.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import org.dromara.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.xzd.comprehensive.domain.XzdCsContractSuspendZfkx;
|
||||
import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd;
|
||||
import org.dromara.xzd.comprehensive.domain.XzdSjContractInfo;
|
||||
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.comprehensive.domain.XzdSjhtZfjd;
|
||||
import org.dromara.xzd.domain.XzdBusinessChange;
|
||||
import org.dromara.xzd.domain.XzdContractClause;
|
||||
import org.dromara.xzd.domain.XzdDeductionItems;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 设计合同信息视图对象 xzd_sj_contract_info
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-11-19
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = XzdSjContractInfo.class)
|
||||
public class XzdSjContractInfoVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 合同状态
|
||||
*/
|
||||
@ExcelProperty(value = "合同状态")
|
||||
private String htzt;
|
||||
|
||||
/**
|
||||
* 合同编码
|
||||
*/
|
||||
@ExcelProperty(value = "合同编码")
|
||||
private String contractCode;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
@ExcelProperty(value = "合同名称")
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
@ExcelProperty(value = "单据日期")
|
||||
private LocalDate documentDate;
|
||||
|
||||
/**
|
||||
* 合同类型(如:租车合同)
|
||||
*/
|
||||
@ExcelProperty(value = "合同类型", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "如=:租车合同")
|
||||
private String contractType;
|
||||
|
||||
/**
|
||||
* 项目ID(关联项目表)
|
||||
*/
|
||||
@ExcelProperty(value = "项目ID", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "关=联项目表")
|
||||
private Long projectId;
|
||||
@Translation(type = TransConstant.XZD_PROJECT_ID_TO_NAME, mapper = "projectId")
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 签订日期
|
||||
*/
|
||||
@ExcelProperty(value = "签订日期")
|
||||
private LocalDate signDate;
|
||||
|
||||
/**
|
||||
* 甲方单位
|
||||
*/
|
||||
@ExcelProperty(value = "甲方单位")
|
||||
private Long partyA;
|
||||
|
||||
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "partyA")
|
||||
private String partyAName;
|
||||
|
||||
/**
|
||||
* 含税合同金额
|
||||
*/
|
||||
@ExcelProperty(value = "含税合同金额")
|
||||
private BigDecimal taxIncludedAmount;
|
||||
|
||||
/**
|
||||
* 合同状态(如:新增、生效)
|
||||
*/
|
||||
@ExcelProperty(value = "合同状态", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "如=:新增、生效")
|
||||
private String contractStatus;
|
||||
|
||||
/**
|
||||
* 乙方单位
|
||||
*/
|
||||
@ExcelProperty(value = "乙方单位")
|
||||
private Long partyB;
|
||||
|
||||
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "partyB")
|
||||
private String partyBName;
|
||||
|
||||
/**
|
||||
* 累计变更金额
|
||||
*/
|
||||
@ExcelProperty(value = "累计变更金额")
|
||||
private BigDecimal cumulativeChangeAmount;
|
||||
|
||||
/**
|
||||
* 部门ID(关联部门表)
|
||||
*/
|
||||
@ExcelProperty(value = "部门ID", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "关=联部门表")
|
||||
private Long departmentId;
|
||||
|
||||
@Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "departmentId")
|
||||
private String departmentName;
|
||||
|
||||
/**
|
||||
* 归档日期
|
||||
*/
|
||||
@ExcelProperty(value = "归档日期")
|
||||
private LocalDate archivalDate;
|
||||
|
||||
/**
|
||||
* 是否研发类(0:否,1:是)
|
||||
*/
|
||||
@ExcelProperty(value = "是否研发类", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "0=:否,1:是")
|
||||
private Long isRD;
|
||||
|
||||
/**
|
||||
* 开票单位
|
||||
*/
|
||||
@ExcelProperty(value = "开票单位")
|
||||
private Long invoiceIssuer;
|
||||
|
||||
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "invoiceIssuer")
|
||||
private String invoiceIssuerName;
|
||||
|
||||
/**
|
||||
* 收票单位
|
||||
*/
|
||||
@ExcelProperty(value = "收票单位")
|
||||
private Long invoiceReceiver;
|
||||
|
||||
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "invoiceReceiver")
|
||||
private String invoiceReceiverName;
|
||||
|
||||
/**
|
||||
* 有效期开始日期
|
||||
*/
|
||||
@ExcelProperty(value = "有效期开始日期")
|
||||
private LocalDate validStartDate;
|
||||
|
||||
/**
|
||||
* 有效期结束日期
|
||||
*/
|
||||
@ExcelProperty(value = "有效期结束日期")
|
||||
private LocalDate validEndDate;
|
||||
|
||||
/**
|
||||
* 是否用印(0:否,1:是)
|
||||
*/
|
||||
@ExcelProperty(value = "是否用印", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "0=:否,1:是")
|
||||
private Long isSealed;
|
||||
|
||||
/**
|
||||
* 大写合同价税合计
|
||||
*/
|
||||
@ExcelProperty(value = "大写合同价税合计")
|
||||
private String taxIncludedAmountUpper;
|
||||
|
||||
/**
|
||||
* 警示
|
||||
*/
|
||||
@ExcelProperty(value = "警示")
|
||||
private String warning;
|
||||
|
||||
/**
|
||||
* 支付条款
|
||||
*/
|
||||
@ExcelProperty(value = "支付条款")
|
||||
private String paymentTerms;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 签约组织
|
||||
*/
|
||||
@ExcelProperty(value = "签约组织")
|
||||
private Long signOrganization;
|
||||
|
||||
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "signOrganization")
|
||||
private String signOrganizationName;
|
||||
|
||||
/**
|
||||
* 项目类型
|
||||
*/
|
||||
@ExcelProperty(value = "项目类型")
|
||||
private String projectType;
|
||||
|
||||
/**
|
||||
* 项目大类
|
||||
*/
|
||||
@ExcelProperty(value = "项目大类")
|
||||
private String projectCategory;
|
||||
|
||||
/**
|
||||
* 项目责任人
|
||||
*/
|
||||
@ExcelProperty(value = "项目责任人")
|
||||
private Long projectOwner;
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "projectOwner")
|
||||
private String projectOwnerName;
|
||||
|
||||
/**
|
||||
* WBS编码
|
||||
*/
|
||||
@ExcelProperty(value = "WBS编码")
|
||||
private String wbs;
|
||||
|
||||
/**
|
||||
* 备案状态(如:未备案、已备案)
|
||||
*/
|
||||
@ExcelProperty(value = "备案状态", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "如=:未备案、已备案")
|
||||
private String filingStatus;
|
||||
|
||||
/**
|
||||
* 备案时间
|
||||
*/
|
||||
@ExcelProperty(value = "备案时间")
|
||||
private LocalDate filingTime;
|
||||
|
||||
/**
|
||||
* 是否需备案(0:否,1:是)
|
||||
*/
|
||||
@ExcelProperty(value = "是否需备案", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "0=:否,1:是")
|
||||
private Long needFiling;
|
||||
|
||||
/**
|
||||
* 预算分类
|
||||
*/
|
||||
@ExcelProperty(value = "预算分类")
|
||||
private Long budgetCategory;
|
||||
|
||||
/**
|
||||
* 是否固定单价合同(0:否,1:是)
|
||||
*/
|
||||
@ExcelProperty(value = "是否固定单价合同", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "0=:否,1:是")
|
||||
private Long isFixedUnitPrice;
|
||||
|
||||
/**
|
||||
* 是否总价包干合同(0:否,1:是)
|
||||
*/
|
||||
@ExcelProperty(value = "是否总价包干合同", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "0=:否,1:是")
|
||||
private Long isLumpSum;
|
||||
|
||||
/**
|
||||
* 付款额不能超合同额(0:否,1:是)
|
||||
*/
|
||||
@ExcelProperty(value = "付款额不能超合同额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "0=:否,1:是")
|
||||
private Long paymentNotExceedContract;
|
||||
|
||||
/**
|
||||
* 付款额不超合同额比例(%)
|
||||
*/
|
||||
@ExcelProperty(value = "付款额不超合同额比例", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "%=")
|
||||
private BigDecimal paymentNotExceedRatio;
|
||||
|
||||
/**
|
||||
* 预结算/结算不能超合同额(0:否,1:是)
|
||||
*/
|
||||
@ExcelProperty(value = "预结算/结算不能超合同额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "0=:否,1:是")
|
||||
private Long budgetNotExceedContract;
|
||||
|
||||
/**
|
||||
* 预结算/结算不超合同额比例(%)
|
||||
*/
|
||||
@ExcelProperty(value = "预结算/结算不超合同额比例", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "%=")
|
||||
private BigDecimal budgetNotExceedRatio;
|
||||
|
||||
/**
|
||||
* 合同文本
|
||||
*/
|
||||
@ExcelProperty(value = "合同文本")
|
||||
private String contractText;
|
||||
|
||||
/**
|
||||
* 部门id
|
||||
*/
|
||||
@ExcelProperty(value = "部门id")
|
||||
private Long deptId;
|
||||
|
||||
/**
|
||||
* 单据引用
|
||||
*/
|
||||
@ExcelProperty(value = "单据引用")
|
||||
private String documentReference;
|
||||
|
||||
/**
|
||||
* 文件id
|
||||
*/
|
||||
@ExcelProperty(value = "文件id")
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
@ExcelProperty(value = "审核状态")
|
||||
private String auditStatus;
|
||||
|
||||
/**
|
||||
* 固定单价下的含税暂定总价(小写)
|
||||
*/
|
||||
@ExcelProperty(value = "固定单价下的含税暂定总价", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "小=写")
|
||||
private BigDecimal provisionalTotalTaxIncluded;
|
||||
|
||||
/**
|
||||
* 固定单价下的含税暂定总价(大写)
|
||||
*/
|
||||
@ExcelProperty(value = "固定单价下的含税暂定总价", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "大=写")
|
||||
private String provisionalTotalTaxIncludedUpper;
|
||||
|
||||
/**
|
||||
* 固定单价下的增值税金额(小写)
|
||||
*/
|
||||
@ExcelProperty(value = "固定单价下的增值税金额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "小=写")
|
||||
private BigDecimal provisionalVatAmount;
|
||||
|
||||
/**
|
||||
* 固定单价下的增值税金额(大写)
|
||||
*/
|
||||
@ExcelProperty(value = "固定单价下的增值税金额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "大=写")
|
||||
private String provisionalVatAmountUpper;
|
||||
|
||||
/**
|
||||
* 固定单价下的增值税税率(%)
|
||||
*/
|
||||
@ExcelProperty(value = "固定单价下的增值税税率", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "%=")
|
||||
private BigDecimal provisionalVatRate;
|
||||
|
||||
/**
|
||||
* 固定单价下的增值税发票类型(如“专用发票”)
|
||||
*/
|
||||
@ExcelProperty(value = "固定单价下的增值税发票类型", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "如=“专用发票”")
|
||||
private String provisionalVatInvoiceType;
|
||||
|
||||
/**
|
||||
* 固定单价下的不含税暂定总价(小写)
|
||||
*/
|
||||
@ExcelProperty(value = "固定单价下的不含税暂定总价", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "小=写")
|
||||
private BigDecimal provisionalTotalTaxExcluded;
|
||||
|
||||
/**
|
||||
* 固定单价下的不含税暂定总价(大写)
|
||||
*/
|
||||
@ExcelProperty(value = "固定单价下的不含税暂定总价", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "大=写")
|
||||
private String provisionalTotalTaxExcludedUpper;
|
||||
|
||||
/**
|
||||
* 固定总价下的含税总价(小写)
|
||||
*/
|
||||
@ExcelProperty(value = "固定总价下的含税总价", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "小=写")
|
||||
private BigDecimal fixedTotalTaxIncluded;
|
||||
|
||||
/**
|
||||
* 固定总价下的含税总价(大写)
|
||||
*/
|
||||
@ExcelProperty(value = "固定总价下的含税总价", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "大=写")
|
||||
private String fixedTotalTaxIncludedUpper;
|
||||
|
||||
/**
|
||||
* 固定总价下的增值税金额(小写)
|
||||
*/
|
||||
@ExcelProperty(value = "固定总价下的增值税金额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "小=写")
|
||||
private BigDecimal fixedVatAmount;
|
||||
|
||||
/**
|
||||
* 固定总价下的增值税金额(大写)
|
||||
*/
|
||||
@ExcelProperty(value = "固定总价下的增值税金额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "大=写")
|
||||
private String fixedVatAmountUpper;
|
||||
|
||||
/**
|
||||
* 固定总价下的增值税税率(%)
|
||||
*/
|
||||
@ExcelProperty(value = "固定总价下的增值税税率", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "%=")
|
||||
private BigDecimal fixedVatRate;
|
||||
|
||||
/**
|
||||
* 固定总价下的增值税发票类型(如“专用发票”)
|
||||
*/
|
||||
@ExcelProperty(value = "固定总价下的增值税发票类型", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "如=“专用发票”")
|
||||
private String fixedVatInvoiceType;
|
||||
|
||||
/**
|
||||
* 固定总价下的不含税总价(小写)
|
||||
*/
|
||||
@ExcelProperty(value = "固定总价下的不含税总价", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "小=写")
|
||||
private BigDecimal fixedTotalTaxExcluded;
|
||||
|
||||
/**
|
||||
* 固定总价下的不含税总价(大写)
|
||||
*/
|
||||
@ExcelProperty(value = "固定总价下的不含税总价", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "大=写")
|
||||
private String fixedTotalTaxExcludedUpper;
|
||||
|
||||
/**
|
||||
* 固定总价是否可调整(0:否,1:是)
|
||||
*/
|
||||
@ExcelProperty(value = "固定总价是否可调整", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "0=:否,1:是")
|
||||
private Long fixedTotalAdjustable;
|
||||
|
||||
/**
|
||||
* 固定总价调整说明(如“合同执行中金额不予调整,另有约定除外”)
|
||||
*/
|
||||
@ExcelProperty(value = "固定总价调整说明", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "如=“合同执行中金额不予调整,另有约定除外”")
|
||||
private String fixedTotalAdjustNote;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 扣款与奖励项
|
||||
*/
|
||||
private List<XzdDeductionItems> kkyjlx;
|
||||
|
||||
/**
|
||||
* 合同条款
|
||||
*/
|
||||
private List<XzdContractClause> httk;
|
||||
|
||||
/**
|
||||
* 支付条款
|
||||
*/
|
||||
private List<XzdSjhtZfjd> zftk;
|
||||
|
||||
/**
|
||||
* 合同变更清单
|
||||
*/
|
||||
private List<XzdHtglHtbgqd> htbgqds;
|
||||
|
||||
/**
|
||||
* 印章信息
|
||||
*/
|
||||
private List<XzdBusinessChange> sealInfo;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,156 @@
|
||||
package org.dromara.xzd.comprehensive.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import org.dromara.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.xzd.comprehensive.domain.XzdSjContractSuspend;
|
||||
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;
|
||||
|
||||
|
||||
/**
|
||||
* 设计合同终止视图对象 xzd_sj_contract_suspend
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-11-19
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = XzdSjContractSuspend.class)
|
||||
public class XzdSjContractSuspendVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 采购合同信息ID(合同编码)
|
||||
*/
|
||||
@ExcelProperty(value = "采购合同信息ID", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "合=同编码")
|
||||
private Long contractInformationId;
|
||||
|
||||
/**
|
||||
* 单据编码
|
||||
*/
|
||||
@ExcelProperty(value = "单据编码")
|
||||
private String receiptsCode;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
@ExcelProperty(value = "标题")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
@ExcelProperty(value = "单据日期")
|
||||
private LocalDate documentDate;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
@ExcelProperty(value = "合同名称")
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 终止日期
|
||||
*/
|
||||
@ExcelProperty(value = "终止日期")
|
||||
private LocalDate terminationDate;
|
||||
|
||||
/**
|
||||
* 工程项目
|
||||
*/
|
||||
@ExcelProperty(value = "工程项目")
|
||||
private String project;
|
||||
@Translation(type = TransConstant.XZD_PROJECT_ID_TO_NAME, mapper = "project")
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 乙方单位
|
||||
*/
|
||||
@ExcelProperty(value = "乙方单位")
|
||||
private Long artyBUnit;
|
||||
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "artyBUnit")
|
||||
private String artyBUnitName;
|
||||
|
||||
/**
|
||||
* 甲方单位
|
||||
*/
|
||||
@ExcelProperty(value = "甲方单位")
|
||||
private Long partyAUnit;
|
||||
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "partyAUnit")
|
||||
private String partyAUnitNamme;
|
||||
|
||||
/**
|
||||
* 终止原因
|
||||
*/
|
||||
@ExcelProperty(value = "终止原因")
|
||||
private String terminationCause;
|
||||
|
||||
/**
|
||||
* 项目大类
|
||||
*/
|
||||
@ExcelProperty(value = "项目大类")
|
||||
private String projectCategory;
|
||||
|
||||
/**
|
||||
* 项目类型
|
||||
*/
|
||||
@ExcelProperty(value = "项目类型")
|
||||
private String projectType;
|
||||
|
||||
/**
|
||||
* 累计结算金额
|
||||
*/
|
||||
@ExcelProperty(value = "累计结算金额")
|
||||
private Long cumulativeSettlementAmount;
|
||||
|
||||
/**
|
||||
* 部门id
|
||||
*/
|
||||
@ExcelProperty(value = "部门id")
|
||||
private Long deptId;
|
||||
|
||||
/**
|
||||
* 累计付款金额
|
||||
*/
|
||||
@ExcelProperty(value = "累计付款金额")
|
||||
private BigDecimal cumulativePaymentAmount;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
@ExcelProperty(value = "文件ID")
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
@ExcelProperty(value = "审核状态")
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,80 @@
|
||||
package org.dromara.xzd.comprehensive.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import org.dromara.xzd.comprehensive.domain.XzdSjhtZfjd;
|
||||
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.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 设计合同付款节点信息视图对象 xzd_sjht_zfjd
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-11-19
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = XzdSjhtZfjd.class)
|
||||
public class XzdSjhtZfjdVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 自增主键
|
||||
*/
|
||||
@ExcelProperty(value = "自增主键")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 关联设计合同id
|
||||
*/
|
||||
@ExcelProperty(value = "关联设计合同id")
|
||||
private Long mainId;
|
||||
|
||||
/**
|
||||
* 付款阶段名称(如“合同签订后付款”)
|
||||
*/
|
||||
@ExcelProperty(value = "付款阶段名称", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "如=“合同签订后付款”")
|
||||
private String paymentStage;
|
||||
|
||||
/**
|
||||
* 阶段具体描述(对应合同条款原文)
|
||||
*/
|
||||
@ExcelProperty(value = "阶段具体描述", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "对=应合同条款原文")
|
||||
private String stageDesc;
|
||||
|
||||
/**
|
||||
* 付款比例(%,如30.00表示30%)
|
||||
*/
|
||||
@ExcelProperty(value = "付款比例", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "%=,如30.00表示30%")
|
||||
private BigDecimal paymentRatio;
|
||||
|
||||
/**
|
||||
* 付款触发条件(前置条件)
|
||||
*/
|
||||
@ExcelProperty(value = "付款触发条件", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "前=置条件")
|
||||
private String triggerConditions;
|
||||
|
||||
/**
|
||||
* 时间要求(工作日)
|
||||
*/
|
||||
@ExcelProperty(value = "时间要求", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "工=作日")
|
||||
private Integer timeLimit;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package org.dromara.xzd.comprehensive.mapper;
|
||||
|
||||
import org.dromara.xzd.comprehensive.domain.XzdSjContractChange;
|
||||
import org.dromara.xzd.comprehensive.domain.vo.XzdSjContractChangeVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 设计合同变更Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-11-19
|
||||
*/
|
||||
public interface XzdSjContractChangeMapper extends BaseMapperPlus<XzdSjContractChange, XzdSjContractChangeVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package org.dromara.xzd.comprehensive.mapper;
|
||||
|
||||
import org.dromara.xzd.comprehensive.domain.XzdSjContractInfo;
|
||||
import org.dromara.xzd.comprehensive.domain.vo.XzdSjContractInfoVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 设计合同信息Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-11-19
|
||||
*/
|
||||
public interface XzdSjContractInfoMapper extends BaseMapperPlus<XzdSjContractInfo, XzdSjContractInfoVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package org.dromara.xzd.comprehensive.mapper;
|
||||
|
||||
import org.dromara.xzd.comprehensive.domain.XzdSjContractSuspend;
|
||||
import org.dromara.xzd.comprehensive.domain.vo.XzdSjContractSuspendVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 设计合同终止Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-11-19
|
||||
*/
|
||||
public interface XzdSjContractSuspendMapper extends BaseMapperPlus<XzdSjContractSuspend, XzdSjContractSuspendVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package org.dromara.xzd.comprehensive.mapper;
|
||||
|
||||
import org.dromara.xzd.comprehensive.domain.XzdSjhtZfjd;
|
||||
import org.dromara.xzd.comprehensive.domain.vo.XzdSjhtZfjdVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 设计合同付款节点信息Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-11-19
|
||||
*/
|
||||
public interface XzdSjhtZfjdMapper extends BaseMapperPlus<XzdSjhtZfjd, XzdSjhtZfjdVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,70 @@
|
||||
package org.dromara.xzd.comprehensive.service;
|
||||
|
||||
import org.dromara.xzd.comprehensive.domain.vo.XzdSjContractChangeVo;
|
||||
import org.dromara.xzd.comprehensive.domain.bo.XzdSjContractChangeBo;
|
||||
import org.dromara.xzd.comprehensive.domain.XzdSjContractChange;
|
||||
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 IXzdSjContractChangeService extends IService<XzdSjContractChange>{
|
||||
|
||||
/**
|
||||
* 查询设计合同变更
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 设计合同变更
|
||||
*/
|
||||
XzdSjContractChangeVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询设计合同变更列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 设计合同变更分页列表
|
||||
*/
|
||||
TableDataInfo<XzdSjContractChangeVo> queryPageList(XzdSjContractChangeBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的设计合同变更列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 设计合同变更列表
|
||||
*/
|
||||
List<XzdSjContractChangeVo> queryList(XzdSjContractChangeBo bo);
|
||||
|
||||
/**
|
||||
* 新增设计合同变更
|
||||
*
|
||||
* @param bo 设计合同变更
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(XzdSjContractChangeBo bo);
|
||||
|
||||
/**
|
||||
* 修改设计合同变更
|
||||
*
|
||||
* @param bo 设计合同变更
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(XzdSjContractChangeBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除设计合同变更信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,70 @@
|
||||
package org.dromara.xzd.comprehensive.service;
|
||||
|
||||
import org.dromara.xzd.comprehensive.domain.vo.XzdSjContractInfoVo;
|
||||
import org.dromara.xzd.comprehensive.domain.bo.XzdSjContractInfoBo;
|
||||
import org.dromara.xzd.comprehensive.domain.XzdSjContractInfo;
|
||||
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 IXzdSjContractInfoService extends IService<XzdSjContractInfo>{
|
||||
|
||||
/**
|
||||
* 查询设计合同信息
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 设计合同信息
|
||||
*/
|
||||
XzdSjContractInfoVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询设计合同信息列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 设计合同信息分页列表
|
||||
*/
|
||||
TableDataInfo<XzdSjContractInfoVo> queryPageList(XzdSjContractInfoBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的设计合同信息列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 设计合同信息列表
|
||||
*/
|
||||
List<XzdSjContractInfoVo> queryList(XzdSjContractInfoBo bo);
|
||||
|
||||
/**
|
||||
* 新增设计合同信息
|
||||
*
|
||||
* @param bo 设计合同信息
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(XzdSjContractInfoBo bo);
|
||||
|
||||
/**
|
||||
* 修改设计合同信息
|
||||
*
|
||||
* @param bo 设计合同信息
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(XzdSjContractInfoBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除设计合同信息信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,70 @@
|
||||
package org.dromara.xzd.comprehensive.service;
|
||||
|
||||
import org.dromara.xzd.comprehensive.domain.vo.XzdSjContractSuspendVo;
|
||||
import org.dromara.xzd.comprehensive.domain.bo.XzdSjContractSuspendBo;
|
||||
import org.dromara.xzd.comprehensive.domain.XzdSjContractSuspend;
|
||||
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 IXzdSjContractSuspendService extends IService<XzdSjContractSuspend>{
|
||||
|
||||
/**
|
||||
* 查询设计合同终止
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 设计合同终止
|
||||
*/
|
||||
XzdSjContractSuspendVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询设计合同终止列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 设计合同终止分页列表
|
||||
*/
|
||||
TableDataInfo<XzdSjContractSuspendVo> queryPageList(XzdSjContractSuspendBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的设计合同终止列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 设计合同终止列表
|
||||
*/
|
||||
List<XzdSjContractSuspendVo> queryList(XzdSjContractSuspendBo bo);
|
||||
|
||||
/**
|
||||
* 新增设计合同终止
|
||||
*
|
||||
* @param bo 设计合同终止
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(XzdSjContractSuspendBo bo);
|
||||
|
||||
/**
|
||||
* 修改设计合同终止
|
||||
*
|
||||
* @param bo 设计合同终止
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(XzdSjContractSuspendBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除设计合同终止信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,70 @@
|
||||
package org.dromara.xzd.comprehensive.service;
|
||||
|
||||
import org.dromara.xzd.comprehensive.domain.vo.XzdSjhtZfjdVo;
|
||||
import org.dromara.xzd.comprehensive.domain.bo.XzdSjhtZfjdBo;
|
||||
import org.dromara.xzd.comprehensive.domain.XzdSjhtZfjd;
|
||||
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 IXzdSjhtZfjdService extends IService<XzdSjhtZfjd>{
|
||||
|
||||
/**
|
||||
* 查询设计合同付款节点信息
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 设计合同付款节点信息
|
||||
*/
|
||||
XzdSjhtZfjdVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询设计合同付款节点信息列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 设计合同付款节点信息分页列表
|
||||
*/
|
||||
TableDataInfo<XzdSjhtZfjdVo> queryPageList(XzdSjhtZfjdBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的设计合同付款节点信息列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 设计合同付款节点信息列表
|
||||
*/
|
||||
List<XzdSjhtZfjdVo> queryList(XzdSjhtZfjdBo bo);
|
||||
|
||||
/**
|
||||
* 新增设计合同付款节点信息
|
||||
*
|
||||
* @param bo 设计合同付款节点信息
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(XzdSjhtZfjdBo bo);
|
||||
|
||||
/**
|
||||
* 修改设计合同付款节点信息
|
||||
*
|
||||
* @param bo 设计合同付款节点信息
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(XzdSjhtZfjdBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除设计合同付款节点信息信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -115,6 +115,7 @@ public class XzdCsContractSuspendServiceImpl extends ServiceImpl<XzdCsContractSu
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean insertByBo(XzdCsContractSuspendBo bo) {
|
||||
XzdCsContractSuspend add = MapstructUtils.convert(bo, XzdCsContractSuspend.class);
|
||||
String banBen = BatchNumberGenerator.generateBatchNumber("ZHFWHTZZ-");
|
||||
|
||||
@ -0,0 +1,451 @@
|
||||
package org.dromara.xzd.comprehensive.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.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.impl.SysOssServiceImpl;
|
||||
import org.dromara.xzd.comprehensive.domain.*;
|
||||
import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractChangeVo;
|
||||
import org.dromara.xzd.comprehensive.service.*;
|
||||
import org.dromara.xzd.domain.XzdBusinessChange;
|
||||
import org.dromara.xzd.domain.XzdContractClause;
|
||||
import org.dromara.xzd.domain.XzdDeductionItems;
|
||||
import org.dromara.xzd.domain.vo.XzdBusinessSealVo;
|
||||
import org.dromara.xzd.enums.XzdClassEnum;
|
||||
import org.dromara.xzd.enums.ZxdEnum;
|
||||
import org.dromara.xzd.service.impl.XzdBusinessChangeServiceImpl;
|
||||
import org.dromara.xzd.service.impl.XzdBusinessSealServiceImpl;
|
||||
import org.dromara.xzd.service.impl.XzdContractClauseServiceImpl;
|
||||
import org.dromara.xzd.service.impl.XzdDeductionItemsServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.xzd.comprehensive.domain.bo.XzdSjContractChangeBo;
|
||||
import org.dromara.xzd.comprehensive.domain.vo.XzdSjContractChangeVo;
|
||||
import org.dromara.xzd.comprehensive.mapper.XzdSjContractChangeMapper;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 设计合同变更Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-11-19
|
||||
*/
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class XzdSjContractChangeServiceImpl extends ServiceImpl<XzdSjContractChangeMapper, XzdSjContractChange> implements IXzdSjContractChangeService {
|
||||
|
||||
private final XzdSjContractChangeMapper baseMapper;
|
||||
|
||||
@Autowired
|
||||
private XzdDeductionItemsServiceImpl xzdDeductionItemsService;
|
||||
@Autowired
|
||||
private XzdContractClauseServiceImpl xzdContractClauseService;
|
||||
@Autowired
|
||||
private IXzdSjhtZfjdService xzdSjhtZfjdService;
|
||||
@Autowired
|
||||
private SysOssServiceImpl sysOssService;
|
||||
|
||||
@Autowired
|
||||
private IXzdHtglHtbgqdService xzdHtglHtbgqdService;
|
||||
@Autowired
|
||||
private IXzdSjContractInfoService xzdSjContractInfoService;
|
||||
@Autowired
|
||||
private XzdBusinessChangeServiceImpl xzdBusinessChangeService;
|
||||
@Autowired
|
||||
private XzdBusinessSealServiceImpl xzdBusinessSealService;
|
||||
|
||||
/**
|
||||
* 查询设计合同变更
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 设计合同变更
|
||||
*/
|
||||
@Override
|
||||
public XzdSjContractChangeVo queryById(Long id){
|
||||
XzdSjContractChangeVo vo = baseMapper.selectVoById(id);
|
||||
getHttk(vo);
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询设计合同变更列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 设计合同变更分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<XzdSjContractChangeVo> queryPageList(XzdSjContractChangeBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<XzdSjContractChange> lqw = buildQueryWrapper(bo);
|
||||
Page<XzdSjContractChangeVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的设计合同变更列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 设计合同变更列表
|
||||
*/
|
||||
@Override
|
||||
public List<XzdSjContractChangeVo> queryList(XzdSjContractChangeBo bo) {
|
||||
LambdaQueryWrapper<XzdSjContractChange> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<XzdSjContractChange> buildQueryWrapper(XzdSjContractChangeBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<XzdSjContractChange> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(XzdSjContractChange::getId);
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDocCode()), XzdSjContractChange::getDocCode, bo.getDocCode());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdSjContractChange::getTitle, bo.getTitle());
|
||||
lqw.eq(bo.getDocDate() != null, XzdSjContractChange::getDocDate, bo.getDocDate());
|
||||
lqw.eq(bo.getContractCode() != null, XzdSjContractChange::getContractCode, bo.getContractCode());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdSjContractChange::getContractName, bo.getContractName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getContractType()), XzdSjContractChange::getContractType, bo.getContractType());
|
||||
lqw.eq(bo.getChangeType() != null, XzdSjContractChange::getChangeType, bo.getChangeType());
|
||||
lqw.eq(bo.getProject() != null, XzdSjContractChange::getProject, bo.getProject());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBusinessMode()), XzdSjContractChange::getBusinessMode, bo.getBusinessMode());
|
||||
lqw.eq(bo.getOrganization() != null, XzdSjContractChange::getOrganization, bo.getOrganization());
|
||||
lqw.eq(bo.getPartyA() != null, XzdSjContractChange::getPartyA, bo.getPartyA());
|
||||
lqw.eq(bo.getPartyB() != null, XzdSjContractChange::getPartyB, bo.getPartyB());
|
||||
lqw.eq(bo.getOriginalContractAmount() != null, XzdSjContractChange::getOriginalContractAmount, bo.getOriginalContractAmount());
|
||||
lqw.eq(bo.getChangeTaxIncludedAmount() != null, XzdSjContractChange::getChangeTaxIncludedAmount, bo.getChangeTaxIncludedAmount());
|
||||
lqw.eq(bo.getAfterChangeTaxIncludedAmount() != null, XzdSjContractChange::getAfterChangeTaxIncludedAmount, bo.getAfterChangeTaxIncludedAmount());
|
||||
lqw.eq(bo.getCumulativeChangeAmount() != null, XzdSjContractChange::getCumulativeChangeAmount, bo.getCumulativeChangeAmount());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getWarning()), XzdSjContractChange::getWarning, bo.getWarning());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPaymentTerms()), XzdSjContractChange::getPaymentTerms, bo.getPaymentTerms());
|
||||
lqw.eq(bo.getIsSealed() != null, XzdSjContractChange::getIsSealed, bo.getIsSealed());
|
||||
lqw.eq(bo.getAfterChangeProjectManager() != null, XzdSjContractChange::getAfterChangeProjectManager, bo.getAfterChangeProjectManager());
|
||||
lqw.eq(bo.getAfterChangeProjectLeader() != null, XzdSjContractChange::getAfterChangeProjectLeader, bo.getAfterChangeProjectLeader());
|
||||
lqw.eq(bo.getAfterChangeSiteManager() != null, XzdSjContractChange::getAfterChangeSiteManager, bo.getAfterChangeSiteManager());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAfterChangeContractRemark()), XzdSjContractChange::getAfterChangeContractRemark, bo.getAfterChangeContractRemark());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectCategory()), XzdSjContractChange::getProjectCategory, bo.getProjectCategory());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectType()), XzdSjContractChange::getProjectType, bo.getProjectType());
|
||||
lqw.eq(bo.getPaymentNotExceedContract() != null, XzdSjContractChange::getPaymentNotExceedContract, bo.getPaymentNotExceedContract());
|
||||
lqw.eq(bo.getPaymentNotExceedRatio() != null, XzdSjContractChange::getPaymentNotExceedRatio, bo.getPaymentNotExceedRatio());
|
||||
lqw.eq(bo.getBudgetNotExceedContract() != null, XzdSjContractChange::getBudgetNotExceedContract, bo.getBudgetNotExceedContract());
|
||||
lqw.eq(bo.getBudgetNotExceedRatio() != null, XzdSjContractChange::getBudgetNotExceedRatio, bo.getBudgetNotExceedRatio());
|
||||
lqw.eq(bo.getRealTimeUpdate() != null, XzdSjContractChange::getRealTimeUpdate, bo.getRealTimeUpdate());
|
||||
lqw.eq(bo.getContractCumulativeChangeAmount() != null, XzdSjContractChange::getContractCumulativeChangeAmount, bo.getContractCumulativeChangeAmount());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getContractText()), XzdSjContractChange::getContractText, bo.getContractText());
|
||||
lqw.eq(bo.getDeptId() != null, XzdSjContractChange::getDeptId, bo.getDeptId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDocumentReference()), XzdSjContractChange::getDocumentReference, bo.getDocumentReference());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XzdSjContractChange::getAuditStatus, bo.getAuditStatus());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdSjContractChange::getFileId, bo.getFileId());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增设计合同变更
|
||||
*
|
||||
* @param bo 设计合同变更
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean insertByBo(XzdSjContractChangeBo bo) {
|
||||
XzdSjContractChange add = MapstructUtils.convert(bo, XzdSjContractChange.class);
|
||||
String banBen = BatchNumberGenerator.generateBatchNumber("SJHTBG-");
|
||||
add.setDocCode(banBen);
|
||||
validEntityBeforeSave(add);
|
||||
|
||||
XzdSjContractInfo byId = xzdSjContractInfoService.getById(bo.getContractCode());
|
||||
if (byId != null){
|
||||
if (byId.getHtzt().equals("已终止")){
|
||||
throw new RuntimeException("该合同已终止");
|
||||
}
|
||||
byId.setHtzt(ZxdEnum.HETONGZTBG.getTypeValue());
|
||||
xzdSjContractInfoService.updateById(byId);
|
||||
}
|
||||
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
String tableName = XzdClassEnum.CS_CONTRACT_CHANGE.getClassName();
|
||||
if (bo.getKkyjlx() == null || bo.getKkyjlx().isEmpty()) {
|
||||
throw new ServiceException("扣款与奖励项不能为空");
|
||||
}
|
||||
//合同条款-扣款与奖励项
|
||||
for (XzdDeductionItems kkyjlx : bo.getKkyjlx()) {
|
||||
kkyjlx.setTableName(tableName);
|
||||
kkyjlx.setContractDetailsId(add.getId());
|
||||
}
|
||||
xzdDeductionItemsService.saveBatch(bo.getKkyjlx());
|
||||
if (bo.getHttk() == null || bo.getHttk().isEmpty()) {
|
||||
throw new ServiceException("合同条款不能为空");
|
||||
}
|
||||
//合同条款-合同条款
|
||||
for (XzdContractClause clause : bo.getHttk()) {
|
||||
clause.setTableName(tableName);
|
||||
clause.setContractDetailsId(add.getId());
|
||||
}
|
||||
xzdContractClauseService.saveBatch(bo.getHttk());
|
||||
if (bo.getZftk() == null || bo.getZftk().isEmpty()) {
|
||||
throw new ServiceException("支付条款不能为空");
|
||||
}
|
||||
//支付条款
|
||||
for (XzdSjhtZfjd clause : bo.getZftk()) {
|
||||
clause.setMainId(add.getId());
|
||||
}
|
||||
xzdSjhtZfjdService.saveBatch(bo.getZftk());
|
||||
|
||||
//合同变更清单
|
||||
if (bo.getHtbgqds() != null && !bo.getHtbgqds().isEmpty()) {
|
||||
bo.getHtbgqds().forEach(item->{item.setMainDocumentId(add.getId());});
|
||||
xzdHtglHtbgqdService.saveBatch(bo.getHtbgqds());
|
||||
}
|
||||
|
||||
//印章信息
|
||||
if (bo.getSealInfo() != null && !bo.getSealInfo().isEmpty()){
|
||||
for (XzdBusinessChange sealInfo : bo.getSealInfo()) {
|
||||
sealInfo.setContractChangeId(add.getId());
|
||||
sealInfo.setType("16");
|
||||
}
|
||||
xzdBusinessChangeService.saveBatch(bo.getSealInfo());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改设计合同变更
|
||||
*
|
||||
* @param bo 设计合同变更
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean updateByBo(XzdSjContractChangeBo bo) {
|
||||
XzdSjContractChange update = MapstructUtils.convert(bo, XzdSjContractChange.class);
|
||||
validEntityBeforeSave(update);
|
||||
XzdSjContractChange old = baseMapper.selectById(update.getId());
|
||||
if (old == null){
|
||||
throw new ServiceException("找不到要修改数据!!!");
|
||||
}
|
||||
//合同条款-合同条款
|
||||
LambdaQueryWrapper<XzdContractClause> lambdaQueryWrapper2 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper2.eq(XzdContractClause::getContractDetailsId, old.getId());
|
||||
xzdContractClauseService.remove(lambdaQueryWrapper2);
|
||||
|
||||
|
||||
//支付条款
|
||||
LambdaQueryWrapper<XzdSjhtZfjd> lambdaQueryWrapper3 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper3.eq(XzdSjhtZfjd::getMainId, old.getId());
|
||||
xzdSjhtZfjdService.remove(lambdaQueryWrapper3);
|
||||
|
||||
|
||||
//合同条款-扣款与奖励项
|
||||
LambdaQueryWrapper<XzdDeductionItems> lambdaQueryWrapper4 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper4.eq(XzdDeductionItems::getContractDetailsId, old.getId());
|
||||
xzdDeductionItemsService.remove(lambdaQueryWrapper4);
|
||||
|
||||
xzdBusinessChangeService.remove(new LambdaQueryWrapper<XzdBusinessChange>().eq(XzdBusinessChange::getContractChangeId, old.getId()));
|
||||
|
||||
String tableName = XzdClassEnum.CS_CONTRACT_CHANGE.getClassName();
|
||||
if (bo.getKkyjlx() == null || bo.getKkyjlx().isEmpty()) {
|
||||
throw new ServiceException("扣款与奖励项不能为空");
|
||||
}
|
||||
//合同条款-扣款与奖励项
|
||||
for (XzdDeductionItems kkyjlx : bo.getKkyjlx()) {
|
||||
kkyjlx.setTableName(tableName);
|
||||
kkyjlx.setContractDetailsId(update.getId());
|
||||
}
|
||||
xzdDeductionItemsService.saveBatch(bo.getKkyjlx());
|
||||
if (bo.getHttk() == null || bo.getHttk().isEmpty()) {
|
||||
throw new ServiceException("合同条款不能为空");
|
||||
}
|
||||
//合同条款-合同条款
|
||||
for (XzdContractClause clause : bo.getHttk()) {
|
||||
clause.setTableName(tableName);
|
||||
clause.setContractDetailsId(update.getId());
|
||||
}
|
||||
xzdContractClauseService.saveBatch(bo.getHttk());
|
||||
if (bo.getZftk() == null || bo.getZftk().isEmpty()) {
|
||||
throw new ServiceException("支付条款不能为空");
|
||||
}
|
||||
//支付条款
|
||||
for (XzdSjhtZfjd clause : bo.getZftk()) {
|
||||
clause.setMainId(update.getId());
|
||||
}
|
||||
xzdSjhtZfjdService.saveBatch(bo.getZftk());
|
||||
|
||||
if (bo.getSealInfo() != null && !bo.getSealInfo().isEmpty()) {
|
||||
for (XzdBusinessChange xzdBusinessChange : bo.getSealInfo()) {
|
||||
xzdBusinessChange.setContractChangeId(update.getId());
|
||||
xzdBusinessChange.setType("16");
|
||||
}
|
||||
xzdBusinessChangeService.saveBatch(bo.getSealInfo());
|
||||
}
|
||||
|
||||
//合同变更清单
|
||||
xzdHtglHtbgqdService.remove(new LambdaQueryWrapper<XzdHtglHtbgqd>().eq(XzdHtglHtbgqd::getMainDocumentId,bo.getId()));
|
||||
if (bo.getHtbgqds() != null && !bo.getHtbgqds().isEmpty()) {
|
||||
bo.getHtbgqds().forEach(item->{item.setMainDocumentId(bo.getId());});
|
||||
xzdHtglHtbgqdService.saveBatch(bo.getHtbgqds());
|
||||
}
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(XzdSjContractChange entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除设计合同变更信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
List<Long> deleteIds = new ArrayList<>();
|
||||
for (Long id : ids) {
|
||||
XzdSjContractChangeVo 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);
|
||||
}
|
||||
//合同条款-扣款与奖励项
|
||||
LambdaQueryWrapper<XzdDeductionItems> lambdaQueryWrapper1 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper1.in(XzdDeductionItems::getContractDetailsId, ids);
|
||||
xzdDeductionItemsService.remove(lambdaQueryWrapper1);
|
||||
|
||||
//合同条款-合同条款
|
||||
LambdaQueryWrapper<XzdContractClause> lambdaQueryWrapper2 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper2.in(XzdContractClause::getContractDetailsId, ids);
|
||||
xzdContractClauseService.remove(lambdaQueryWrapper2);
|
||||
|
||||
//支付条款
|
||||
LambdaQueryWrapper<XzdSjhtZfjd> lambdaQueryWrapper3 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper3.in(XzdSjhtZfjd::getMainId, ids);
|
||||
xzdSjhtZfjdService.remove(lambdaQueryWrapper3);
|
||||
|
||||
//印章信息
|
||||
xzdBusinessChangeService.remove(new LambdaQueryWrapper<XzdBusinessChange>().in(XzdBusinessChange::getContractChangeId, ids));
|
||||
|
||||
//合同变更清单
|
||||
xzdHtglHtbgqdService.remove(new LambdaQueryWrapper<XzdHtglHtbgqd>().in(XzdHtglHtbgqd::getMainDocumentId,ids));
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取合同条款内容
|
||||
* @param vo
|
||||
*/
|
||||
private void getHttk(XzdSjContractChangeVo vo) {
|
||||
//合同条款-扣款与奖励项
|
||||
LambdaQueryWrapper<XzdDeductionItems> lambdaQueryWrapper1 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper1.eq(XzdDeductionItems::getContractDetailsId, vo.getId());
|
||||
List<XzdDeductionItems> list = xzdDeductionItemsService.list(lambdaQueryWrapper1);
|
||||
vo.setKkyjlx(list);
|
||||
|
||||
//合同条款-合同条款
|
||||
LambdaQueryWrapper<XzdContractClause> lambdaQueryWrapper2 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper2.eq(XzdContractClause::getContractDetailsId, vo.getId());
|
||||
List<XzdContractClause> list1 = xzdContractClauseService.list(lambdaQueryWrapper2);
|
||||
vo.setHttk(list1);
|
||||
|
||||
//支付条款
|
||||
LambdaQueryWrapper<XzdSjhtZfjd> lambdaQueryWrapper3 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper3.eq(XzdSjhtZfjd::getMainId, vo.getId());
|
||||
List<XzdSjhtZfjd> list2 = xzdSjhtZfjdService.list(lambdaQueryWrapper3);
|
||||
vo.setZftk(list2);
|
||||
|
||||
//合同变更清单
|
||||
List<XzdHtglHtbgqd> list4 = xzdHtglHtbgqdService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdHtglHtbgqd>().eq(XzdHtglHtbgqd::getMainDocumentId, vo.getId()));
|
||||
vo.setHtbgqds(list4);
|
||||
|
||||
//印章信息
|
||||
LambdaQueryWrapper<XzdBusinessChange> lambdaQueryWrapper4 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper4.eq(XzdBusinessChange::getContractChangeId, vo.getId());
|
||||
lambdaQueryWrapper4.eq(XzdBusinessChange::getType, "16");
|
||||
List<XzdBusinessChange> list3 = xzdBusinessChangeService.list(lambdaQueryWrapper4);
|
||||
if (list3 != null && !list3.isEmpty()){
|
||||
for (XzdBusinessChange businessChange : list3) {
|
||||
XzdBusinessSealVo sealVo = xzdBusinessSealService.queryById(businessChange.getBusinessId());
|
||||
if (sealVo != null){
|
||||
businessChange.setSealName(sealVo.getYzName());
|
||||
}
|
||||
}
|
||||
vo.setSealInfo(list3);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
|
||||
* 正常使用只需#processEvent.flowCode=='leave1'
|
||||
* 示例为了方便则使用startsWith匹配了全部示例key
|
||||
*
|
||||
* @param processEvent 参数
|
||||
*/
|
||||
@org.springframework.context.event.EventListener(condition = "#processEvent.flowCode.endsWith('xzdSjContractChange')")
|
||||
public void processPlansHandlErequipmentList(ProcessEvent processEvent) {
|
||||
log.info("综合服务合同变更审核任务执行了{}", processEvent.toString());
|
||||
String id = processEvent.getBusinessId();
|
||||
XzdSjContractChange xzdCsContractChange = baseMapper.selectById(Long.valueOf(id));
|
||||
if (xzdCsContractChange == null){return;}
|
||||
xzdCsContractChange.setAuditStatus(processEvent.getStatus());
|
||||
baseMapper.updateById(xzdCsContractChange);
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行任务创建监听
|
||||
* 示例:也可通过 @EventListener(condition = "#processTaskEvent.flowCode=='leave1'")进行判断
|
||||
* 在方法中判断流程节点key
|
||||
* if ("xxx".equals(processTaskEvent.getNodeCode())) {
|
||||
* //执行业务逻辑
|
||||
* }
|
||||
*
|
||||
* @param processTaskEvent 参数
|
||||
*/
|
||||
@org.springframework.context.event.EventListener(condition = "#processTaskEvent.flowCode.endsWith('xzdSjContractChange')")
|
||||
public void processTaskPlansHandlerEquipmentList(ProcessTaskEvent processTaskEvent) {
|
||||
log.info("综合服务合同变更审核任务创建了{}", processTaskEvent.toString());
|
||||
}
|
||||
|
||||
/**
|
||||
* 监听删除流程事件
|
||||
* 正常使用只需#processDeleteEvent.flowCode=='leave1'
|
||||
* 示例为了方便则使用startsWith匹配了全部示例key
|
||||
*
|
||||
* @param processDeleteEvent 参数
|
||||
*/
|
||||
@EventListener(condition = "#processDeleteEvent.flowCode.endsWith('xzdSjContractChange')")
|
||||
public void processDeletePlansHandlerEquipmentList(ProcessDeleteEvent processDeleteEvent) {
|
||||
log.info("综合服务合同变更计划删除流程事件,技术标准文件审核任务执行了{}", processDeleteEvent.toString());
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,474 @@
|
||||
package org.dromara.xzd.comprehensive.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.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.impl.SysOssServiceImpl;
|
||||
import org.dromara.xzd.comprehensive.domain.*;
|
||||
import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractInformationVo;
|
||||
import org.dromara.xzd.comprehensive.service.IXzdCsContractSuspendZfkxService;
|
||||
import org.dromara.xzd.comprehensive.service.IXzdHtglHtbgqdService;
|
||||
import org.dromara.xzd.comprehensive.service.IXzdSjhtZfjdService;
|
||||
import org.dromara.xzd.domain.XzdBusinessChange;
|
||||
import org.dromara.xzd.domain.XzdContractClause;
|
||||
import org.dromara.xzd.domain.XzdDeductionItems;
|
||||
import org.dromara.xzd.domain.vo.XzdBusinessSealVo;
|
||||
import org.dromara.xzd.enums.XzdClassEnum;
|
||||
import org.dromara.xzd.enums.ZxdEnum;
|
||||
import org.dromara.xzd.service.impl.XzdBusinessChangeServiceImpl;
|
||||
import org.dromara.xzd.service.impl.XzdBusinessSealServiceImpl;
|
||||
import org.dromara.xzd.service.impl.XzdContractClauseServiceImpl;
|
||||
import org.dromara.xzd.service.impl.XzdDeductionItemsServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.xzd.comprehensive.domain.bo.XzdSjContractInfoBo;
|
||||
import org.dromara.xzd.comprehensive.domain.vo.XzdSjContractInfoVo;
|
||||
import org.dromara.xzd.comprehensive.mapper.XzdSjContractInfoMapper;
|
||||
import org.dromara.xzd.comprehensive.service.IXzdSjContractInfoService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 设计合同信息Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-11-19
|
||||
*/
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class XzdSjContractInfoServiceImpl extends ServiceImpl<XzdSjContractInfoMapper, XzdSjContractInfo> implements IXzdSjContractInfoService {
|
||||
|
||||
private final XzdSjContractInfoMapper baseMapper;
|
||||
|
||||
@Autowired
|
||||
private XzdDeductionItemsServiceImpl xzdDeductionItemsService;
|
||||
@Autowired
|
||||
private XzdContractClauseServiceImpl xzdContractClauseService;
|
||||
@Autowired
|
||||
private IXzdSjhtZfjdService xzdSjhtZfjdService;
|
||||
@Autowired
|
||||
private SysOssServiceImpl sysOssService;
|
||||
|
||||
@Autowired
|
||||
private IXzdHtglHtbgqdService xzdHtglHtbgqdService;
|
||||
|
||||
@Autowired
|
||||
private XzdBusinessChangeServiceImpl xzdBusinessChangeService;
|
||||
@Autowired
|
||||
private XzdBusinessSealServiceImpl xzdBusinessSealService;
|
||||
|
||||
/**
|
||||
* 查询设计合同信息
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 设计合同信息
|
||||
*/
|
||||
@Override
|
||||
public XzdSjContractInfoVo queryById(Long id){
|
||||
XzdSjContractInfoVo vo = baseMapper.selectVoById(id);
|
||||
if (vo != null){
|
||||
getHttk(vo);
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询设计合同信息列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 设计合同信息分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<XzdSjContractInfoVo> queryPageList(XzdSjContractInfoBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<XzdSjContractInfo> lqw = buildQueryWrapper(bo);
|
||||
Page<XzdSjContractInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的设计合同信息列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 设计合同信息列表
|
||||
*/
|
||||
@Override
|
||||
public List<XzdSjContractInfoVo> queryList(XzdSjContractInfoBo bo) {
|
||||
LambdaQueryWrapper<XzdSjContractInfo> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<XzdSjContractInfo> buildQueryWrapper(XzdSjContractInfoBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<XzdSjContractInfo> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(XzdSjContractInfo::getId);
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getHtzt()), XzdSjContractInfo::getHtzt, bo.getHtzt());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getContractCode()), XzdSjContractInfo::getContractCode, bo.getContractCode());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdSjContractInfo::getContractName, bo.getContractName());
|
||||
lqw.eq(bo.getDocumentDate() != null, XzdSjContractInfo::getDocumentDate, bo.getDocumentDate());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getContractType()), XzdSjContractInfo::getContractType, bo.getContractType());
|
||||
lqw.eq(bo.getProjectId() != null, XzdSjContractInfo::getProjectId, bo.getProjectId());
|
||||
lqw.eq(bo.getSignDate() != null, XzdSjContractInfo::getSignDate, bo.getSignDate());
|
||||
lqw.eq(bo.getPartyA() != null, XzdSjContractInfo::getPartyA, bo.getPartyA());
|
||||
lqw.eq(bo.getTaxIncludedAmount() != null, XzdSjContractInfo::getTaxIncludedAmount, bo.getTaxIncludedAmount());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getContractStatus()), XzdSjContractInfo::getContractStatus, bo.getContractStatus());
|
||||
lqw.eq(bo.getPartyB() != null, XzdSjContractInfo::getPartyB, bo.getPartyB());
|
||||
lqw.eq(bo.getCumulativeChangeAmount() != null, XzdSjContractInfo::getCumulativeChangeAmount, bo.getCumulativeChangeAmount());
|
||||
lqw.eq(bo.getDepartmentId() != null, XzdSjContractInfo::getDepartmentId, bo.getDepartmentId());
|
||||
lqw.eq(bo.getArchivalDate() != null, XzdSjContractInfo::getArchivalDate, bo.getArchivalDate());
|
||||
lqw.eq(bo.getIsRD() != null, XzdSjContractInfo::getIsRD, bo.getIsRD());
|
||||
lqw.eq(bo.getInvoiceIssuer() != null, XzdSjContractInfo::getInvoiceIssuer, bo.getInvoiceIssuer());
|
||||
lqw.eq(bo.getInvoiceReceiver() != null, XzdSjContractInfo::getInvoiceReceiver, bo.getInvoiceReceiver());
|
||||
lqw.eq(bo.getValidStartDate() != null, XzdSjContractInfo::getValidStartDate, bo.getValidStartDate());
|
||||
lqw.eq(bo.getValidEndDate() != null, XzdSjContractInfo::getValidEndDate, bo.getValidEndDate());
|
||||
lqw.eq(bo.getIsSealed() != null, XzdSjContractInfo::getIsSealed, bo.getIsSealed());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTaxIncludedAmountUpper()), XzdSjContractInfo::getTaxIncludedAmountUpper, bo.getTaxIncludedAmountUpper());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getWarning()), XzdSjContractInfo::getWarning, bo.getWarning());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPaymentTerms()), XzdSjContractInfo::getPaymentTerms, bo.getPaymentTerms());
|
||||
lqw.eq(bo.getSignOrganization() != null, XzdSjContractInfo::getSignOrganization, bo.getSignOrganization());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectType()), XzdSjContractInfo::getProjectType, bo.getProjectType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectCategory()), XzdSjContractInfo::getProjectCategory, bo.getProjectCategory());
|
||||
lqw.eq(bo.getProjectOwner() != null, XzdSjContractInfo::getProjectOwner, bo.getProjectOwner());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getWbs()), XzdSjContractInfo::getWbs, bo.getWbs());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFilingStatus()), XzdSjContractInfo::getFilingStatus, bo.getFilingStatus());
|
||||
lqw.eq(bo.getFilingTime() != null, XzdSjContractInfo::getFilingTime, bo.getFilingTime());
|
||||
lqw.eq(bo.getNeedFiling() != null, XzdSjContractInfo::getNeedFiling, bo.getNeedFiling());
|
||||
lqw.eq(bo.getBudgetCategory() != null, XzdSjContractInfo::getBudgetCategory, bo.getBudgetCategory());
|
||||
lqw.eq(bo.getIsFixedUnitPrice() != null, XzdSjContractInfo::getIsFixedUnitPrice, bo.getIsFixedUnitPrice());
|
||||
lqw.eq(bo.getIsLumpSum() != null, XzdSjContractInfo::getIsLumpSum, bo.getIsLumpSum());
|
||||
lqw.eq(bo.getPaymentNotExceedContract() != null, XzdSjContractInfo::getPaymentNotExceedContract, bo.getPaymentNotExceedContract());
|
||||
lqw.eq(bo.getPaymentNotExceedRatio() != null, XzdSjContractInfo::getPaymentNotExceedRatio, bo.getPaymentNotExceedRatio());
|
||||
lqw.eq(bo.getBudgetNotExceedContract() != null, XzdSjContractInfo::getBudgetNotExceedContract, bo.getBudgetNotExceedContract());
|
||||
lqw.eq(bo.getBudgetNotExceedRatio() != null, XzdSjContractInfo::getBudgetNotExceedRatio, bo.getBudgetNotExceedRatio());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getContractText()), XzdSjContractInfo::getContractText, bo.getContractText());
|
||||
lqw.eq(bo.getDeptId() != null, XzdSjContractInfo::getDeptId, bo.getDeptId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDocumentReference()), XzdSjContractInfo::getDocumentReference, bo.getDocumentReference());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdSjContractInfo::getFileId, bo.getFileId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XzdSjContractInfo::getAuditStatus, bo.getAuditStatus());
|
||||
lqw.eq(bo.getProvisionalTotalTaxIncluded() != null, XzdSjContractInfo::getProvisionalTotalTaxIncluded, bo.getProvisionalTotalTaxIncluded());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProvisionalTotalTaxIncludedUpper()), XzdSjContractInfo::getProvisionalTotalTaxIncludedUpper, bo.getProvisionalTotalTaxIncludedUpper());
|
||||
lqw.eq(bo.getProvisionalVatAmount() != null, XzdSjContractInfo::getProvisionalVatAmount, bo.getProvisionalVatAmount());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProvisionalVatAmountUpper()), XzdSjContractInfo::getProvisionalVatAmountUpper, bo.getProvisionalVatAmountUpper());
|
||||
lqw.eq(bo.getProvisionalVatRate() != null, XzdSjContractInfo::getProvisionalVatRate, bo.getProvisionalVatRate());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProvisionalVatInvoiceType()), XzdSjContractInfo::getProvisionalVatInvoiceType, bo.getProvisionalVatInvoiceType());
|
||||
lqw.eq(bo.getProvisionalTotalTaxExcluded() != null, XzdSjContractInfo::getProvisionalTotalTaxExcluded, bo.getProvisionalTotalTaxExcluded());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProvisionalTotalTaxExcludedUpper()), XzdSjContractInfo::getProvisionalTotalTaxExcludedUpper, bo.getProvisionalTotalTaxExcludedUpper());
|
||||
lqw.eq(bo.getFixedTotalTaxIncluded() != null, XzdSjContractInfo::getFixedTotalTaxIncluded, bo.getFixedTotalTaxIncluded());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFixedTotalTaxIncludedUpper()), XzdSjContractInfo::getFixedTotalTaxIncludedUpper, bo.getFixedTotalTaxIncludedUpper());
|
||||
lqw.eq(bo.getFixedVatAmount() != null, XzdSjContractInfo::getFixedVatAmount, bo.getFixedVatAmount());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFixedVatAmountUpper()), XzdSjContractInfo::getFixedVatAmountUpper, bo.getFixedVatAmountUpper());
|
||||
lqw.eq(bo.getFixedVatRate() != null, XzdSjContractInfo::getFixedVatRate, bo.getFixedVatRate());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFixedVatInvoiceType()), XzdSjContractInfo::getFixedVatInvoiceType, bo.getFixedVatInvoiceType());
|
||||
lqw.eq(bo.getFixedTotalTaxExcluded() != null, XzdSjContractInfo::getFixedTotalTaxExcluded, bo.getFixedTotalTaxExcluded());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFixedTotalTaxExcludedUpper()), XzdSjContractInfo::getFixedTotalTaxExcludedUpper, bo.getFixedTotalTaxExcludedUpper());
|
||||
lqw.eq(bo.getFixedTotalAdjustable() != null, XzdSjContractInfo::getFixedTotalAdjustable, bo.getFixedTotalAdjustable());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFixedTotalAdjustNote()), XzdSjContractInfo::getFixedTotalAdjustNote, bo.getFixedTotalAdjustNote());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增设计合同信息
|
||||
*
|
||||
* @param bo 设计合同信息
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean insertByBo(XzdSjContractInfoBo bo) {
|
||||
XzdSjContractInfo add = MapstructUtils.convert(bo, XzdSjContractInfo.class);
|
||||
validEntityBeforeSave(add);
|
||||
String banBen = BatchNumberGenerator.generateBatchNumber("SJHT-");
|
||||
add.setContractCode(banBen);
|
||||
add.setHtzt(ZxdEnum.HETONGZTYS.getTypeValue());
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
String tableName = XzdClassEnum.SJ_CONTRACT_INFO.getClassName();
|
||||
if (bo.getKkyjlx() == null || bo.getKkyjlx().isEmpty()) {
|
||||
throw new ServiceException("扣款与奖励项不能为空");
|
||||
}
|
||||
//合同条款-扣款与奖励项
|
||||
for (XzdDeductionItems kkyjlx : bo.getKkyjlx()) {
|
||||
kkyjlx.setTableName(tableName);
|
||||
kkyjlx.setContractDetailsId(add.getId());
|
||||
}
|
||||
xzdDeductionItemsService.saveBatch(bo.getKkyjlx());
|
||||
if (bo.getHttk() == null || bo.getHttk().isEmpty()) {
|
||||
throw new ServiceException("合同条款不能为空");
|
||||
}
|
||||
//合同条款-合同条款
|
||||
for (XzdContractClause clause : bo.getHttk()) {
|
||||
clause.setTableName(tableName);
|
||||
clause.setContractDetailsId(add.getId());
|
||||
}
|
||||
xzdContractClauseService.saveBatch(bo.getHttk());
|
||||
//支付条款
|
||||
if (bo.getZftk() != null && !bo.getZftk().isEmpty()) {
|
||||
for (XzdSjhtZfjd clause : bo.getZftk()) {
|
||||
clause.setMainId(add.getId());
|
||||
}
|
||||
xzdSjhtZfjdService.saveBatch(bo.getZftk());
|
||||
}
|
||||
|
||||
//合同变更清单
|
||||
if (bo.getHtbgqds() != null && !bo.getHtbgqds().isEmpty()) {
|
||||
bo.getHtbgqds().forEach(item->{item.setMainDocumentId(add.getId());});
|
||||
xzdHtglHtbgqdService.saveBatch(bo.getHtbgqds());
|
||||
}
|
||||
|
||||
//印章信息
|
||||
if (bo.getSealInfo() != null && !bo.getSealInfo().isEmpty()){
|
||||
for (XzdBusinessChange sealInfo : bo.getSealInfo()) {
|
||||
sealInfo.setContractChangeId(add.getId());
|
||||
sealInfo.setType("15");
|
||||
}
|
||||
xzdBusinessChangeService.saveBatch(bo.getSealInfo());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改设计合同信息
|
||||
*
|
||||
* @param bo 设计合同信息
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean updateByBo(XzdSjContractInfoBo bo) {
|
||||
XzdSjContractInfo update = MapstructUtils.convert(bo, XzdSjContractInfo.class);
|
||||
validEntityBeforeSave(update);
|
||||
|
||||
XzdSjContractInfo old = baseMapper.selectById(update.getId());
|
||||
if (old == null){
|
||||
throw new ServiceException("找不到要修改数据!!!");
|
||||
}
|
||||
|
||||
if (old.getHtzt().equals(ZxdEnum.HETONGZTZZ.getTypeValue())){
|
||||
throw new RuntimeException("该合同已被终止");
|
||||
}
|
||||
|
||||
//合同条款-合同条款
|
||||
LambdaQueryWrapper<XzdContractClause> lambdaQueryWrapper2 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper2.eq(XzdContractClause::getContractDetailsId, old.getId());
|
||||
xzdContractClauseService.remove(lambdaQueryWrapper2);
|
||||
|
||||
|
||||
//支付节点
|
||||
LambdaQueryWrapper<XzdSjhtZfjd> lambdaQueryWrapper3 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper3.eq(XzdSjhtZfjd::getMainId, old.getId());
|
||||
xzdSjhtZfjdService.remove(lambdaQueryWrapper3);
|
||||
|
||||
|
||||
//合同条款-扣款与奖励项
|
||||
LambdaQueryWrapper<XzdDeductionItems> lambdaQueryWrapper4 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper4.eq(XzdDeductionItems::getContractDetailsId, old.getId());
|
||||
xzdDeductionItemsService.remove(lambdaQueryWrapper4);
|
||||
//印章信息
|
||||
xzdBusinessChangeService.remove(new LambdaQueryWrapper<XzdBusinessChange>().eq(XzdBusinessChange::getContractChangeId, old.getId()));
|
||||
|
||||
|
||||
String tableName = XzdClassEnum.CS_CONTRACT_INFORMATION.getClassName();
|
||||
if (bo.getKkyjlx() == null || bo.getKkyjlx().isEmpty()) {
|
||||
throw new ServiceException("扣款与奖励项不能为空");
|
||||
}
|
||||
//合同条款-扣款与奖励项
|
||||
for (XzdDeductionItems kkyjlx : bo.getKkyjlx()) {
|
||||
kkyjlx.setTableName(tableName);
|
||||
kkyjlx.setContractDetailsId(update.getId());
|
||||
}
|
||||
xzdDeductionItemsService.saveBatch(bo.getKkyjlx());
|
||||
if (bo.getHttk() == null || bo.getHttk().isEmpty()) {
|
||||
throw new ServiceException("合同条款不能为空");
|
||||
}
|
||||
//合同条款-合同条款
|
||||
for (XzdContractClause clause : bo.getHttk()) {
|
||||
clause.setTableName(tableName);
|
||||
clause.setContractDetailsId(update.getId());
|
||||
}
|
||||
xzdContractClauseService.saveBatch(bo.getHttk());
|
||||
//支付节点
|
||||
if (bo.getZftk() != null && !bo.getZftk().isEmpty()) {
|
||||
for (XzdSjhtZfjd clause : bo.getZftk()) {
|
||||
clause.setMainId(update.getId());
|
||||
}
|
||||
xzdSjhtZfjdService.saveBatch(bo.getZftk());
|
||||
}
|
||||
//合同变更清单
|
||||
xzdHtglHtbgqdService.remove(new LambdaQueryWrapper<XzdHtglHtbgqd>().eq(XzdHtglHtbgqd::getMainDocumentId,bo.getId()));
|
||||
if (bo.getHtbgqds() != null && !bo.getHtbgqds().isEmpty()) {
|
||||
bo.getHtbgqds().forEach(item->{item.setMainDocumentId(bo.getId());});
|
||||
xzdHtglHtbgqdService.saveBatch(bo.getHtbgqds());
|
||||
}
|
||||
|
||||
//印章信息
|
||||
if (bo.getSealInfo() != null && !bo.getSealInfo().isEmpty()) {
|
||||
for (XzdBusinessChange xzdBusinessChange : bo.getSealInfo()) {
|
||||
xzdBusinessChange.setContractChangeId(update.getId());
|
||||
xzdBusinessChange.setType("15");
|
||||
}
|
||||
xzdBusinessChangeService.saveBatch(bo.getSealInfo());
|
||||
}
|
||||
|
||||
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(XzdSjContractInfo entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除设计合同信息信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
List<Long> deleteIds = new ArrayList<>();
|
||||
for (Long id : ids) {
|
||||
XzdSjContractInfoVo 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);
|
||||
}
|
||||
//合同条款-扣款与奖励项
|
||||
LambdaQueryWrapper<XzdDeductionItems> lambdaQueryWrapper1 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper1.in(XzdDeductionItems::getContractDetailsId, ids);
|
||||
xzdDeductionItemsService.remove(lambdaQueryWrapper1);
|
||||
|
||||
//合同条款-合同条款
|
||||
LambdaQueryWrapper<XzdContractClause> lambdaQueryWrapper2 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper2.in(XzdContractClause::getContractDetailsId, ids);
|
||||
xzdContractClauseService.remove(lambdaQueryWrapper2);
|
||||
|
||||
//支付节点
|
||||
LambdaQueryWrapper<XzdSjhtZfjd> lambdaQueryWrapper3 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper3.in(XzdSjhtZfjd::getMainId, ids);
|
||||
xzdSjhtZfjdService.remove(lambdaQueryWrapper3);
|
||||
xzdHtglHtbgqdService.remove(new LambdaQueryWrapper<XzdHtglHtbgqd>().in(XzdHtglHtbgqd::getMainDocumentId,ids));
|
||||
//印章信息
|
||||
xzdBusinessChangeService.remove(new LambdaQueryWrapper<XzdBusinessChange>().in(XzdBusinessChange::getContractChangeId, ids));
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取合同条款内容
|
||||
* @param vo
|
||||
*/
|
||||
private void getHttk(XzdSjContractInfoVo vo) {
|
||||
//合同条款-扣款与奖励项
|
||||
LambdaQueryWrapper<XzdDeductionItems> lambdaQueryWrapper1 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper1.eq(XzdDeductionItems::getContractDetailsId, vo.getId());
|
||||
List<XzdDeductionItems> list = xzdDeductionItemsService.list(lambdaQueryWrapper1);
|
||||
vo.setKkyjlx(list);
|
||||
|
||||
//合同条款-合同条款
|
||||
LambdaQueryWrapper<XzdContractClause> lambdaQueryWrapper2 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper2.eq(XzdContractClause::getContractDetailsId, vo.getId());
|
||||
List<XzdContractClause> list1 = xzdContractClauseService.list(lambdaQueryWrapper2);
|
||||
vo.setHttk(list1);
|
||||
|
||||
//支付条款
|
||||
LambdaQueryWrapper<XzdSjhtZfjd> lambdaQueryWrapper3 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper3.eq(XzdSjhtZfjd::getMainId, vo.getId());
|
||||
List<XzdSjhtZfjd> list2 = xzdSjhtZfjdService.list(lambdaQueryWrapper3);
|
||||
vo.setZftk(list2);
|
||||
//合同变更清单
|
||||
List<XzdHtglHtbgqd> list4 = xzdHtglHtbgqdService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdHtglHtbgqd>().eq(XzdHtglHtbgqd::getMainDocumentId, vo.getId()));
|
||||
vo.setHtbgqds(list4);
|
||||
|
||||
//印章信息
|
||||
LambdaQueryWrapper<XzdBusinessChange> lambdaQueryWrapper4 = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper4.eq(XzdBusinessChange::getContractChangeId, vo.getId());
|
||||
lambdaQueryWrapper4.eq(XzdBusinessChange::getType, "15");
|
||||
List<XzdBusinessChange> list3 = xzdBusinessChangeService.list(lambdaQueryWrapper4);
|
||||
if (list3 != null && !list3.isEmpty()){
|
||||
for (XzdBusinessChange businessChange : list3) {
|
||||
XzdBusinessSealVo sealVo = xzdBusinessSealService.queryById(businessChange.getBusinessId());
|
||||
if (sealVo != null){
|
||||
businessChange.setSealName(sealVo.getYzName());
|
||||
}
|
||||
}
|
||||
vo.setSealInfo(list3);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
|
||||
* 正常使用只需#processEvent.flowCode=='leave1'
|
||||
* 示例为了方便则使用startsWith匹配了全部示例key
|
||||
*
|
||||
* @param processEvent 参数
|
||||
*/
|
||||
@org.springframework.context.event.EventListener(condition = "#processEvent.flowCode.endsWith('xzdSjContractInfo')")
|
||||
public void processPlansHandlErequipmentList(ProcessEvent processEvent) {
|
||||
log.info("设计合同信息审核任务执行了{}", processEvent.toString());
|
||||
String id = processEvent.getBusinessId();
|
||||
XzdSjContractInfo xzdCsContractInformation = baseMapper.selectById(Long.valueOf(id));
|
||||
if (xzdCsContractInformation == null){return;}
|
||||
xzdCsContractInformation.setAuditStatus(processEvent.getStatus());
|
||||
baseMapper.updateById(xzdCsContractInformation);
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行任务创建监听
|
||||
* 示例:也可通过 @EventListener(condition = "#processTaskEvent.flowCode=='leave1'")进行判断
|
||||
* 在方法中判断流程节点key
|
||||
* if ("xxx".equals(processTaskEvent.getNodeCode())) {
|
||||
* //执行业务逻辑
|
||||
* }
|
||||
*
|
||||
* @param processTaskEvent 参数
|
||||
*/
|
||||
@org.springframework.context.event.EventListener(condition = "#processTaskEvent.flowCode.endsWith('xzdSjContractInfo')")
|
||||
public void processTaskPlansHandlerEquipmentList(ProcessTaskEvent processTaskEvent) {
|
||||
log.info("设计合同信息审核任务创建了{}", processTaskEvent.toString());
|
||||
}
|
||||
|
||||
/**
|
||||
* 监听删除流程事件
|
||||
* 正常使用只需#processDeleteEvent.flowCode=='leave1'
|
||||
* 示例为了方便则使用startsWith匹配了全部示例key
|
||||
*
|
||||
* @param processDeleteEvent 参数
|
||||
*/
|
||||
@EventListener(condition = "#processDeleteEvent.flowCode.endsWith('xzdSjContractInfo')")
|
||||
public void processDeletePlansHandlerEquipmentList(ProcessDeleteEvent processDeleteEvent) {
|
||||
log.info("设计合同信息计划删除流程事件,技术标准文件审核任务执行了{}", processDeleteEvent.toString());
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,239 @@
|
||||
package org.dromara.xzd.comprehensive.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.comprehensive.domain.XzdCsContractInformation;
|
||||
import org.dromara.xzd.comprehensive.domain.XzdCsContractSuspend;
|
||||
import org.dromara.xzd.comprehensive.domain.XzdSjContractInfo;
|
||||
import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractSuspendVo;
|
||||
import org.dromara.xzd.comprehensive.service.IXzdSjContractInfoService;
|
||||
import org.dromara.xzd.enums.ZxdEnum;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.xzd.comprehensive.domain.bo.XzdSjContractSuspendBo;
|
||||
import org.dromara.xzd.comprehensive.domain.vo.XzdSjContractSuspendVo;
|
||||
import org.dromara.xzd.comprehensive.domain.XzdSjContractSuspend;
|
||||
import org.dromara.xzd.comprehensive.mapper.XzdSjContractSuspendMapper;
|
||||
import org.dromara.xzd.comprehensive.service.IXzdSjContractSuspendService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 设计合同终止Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-11-19
|
||||
*/
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class XzdSjContractSuspendServiceImpl extends ServiceImpl<XzdSjContractSuspendMapper, XzdSjContractSuspend> implements IXzdSjContractSuspendService {
|
||||
|
||||
private final XzdSjContractSuspendMapper baseMapper;
|
||||
@Autowired
|
||||
private SysOssServiceImpl sysOssService;
|
||||
@Autowired
|
||||
private IXzdSjContractInfoService xzdSjContractInfoService;
|
||||
|
||||
/**
|
||||
* 查询设计合同终止
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 设计合同终止
|
||||
*/
|
||||
@Override
|
||||
public XzdSjContractSuspendVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询设计合同终止列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 设计合同终止分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<XzdSjContractSuspendVo> queryPageList(XzdSjContractSuspendBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<XzdSjContractSuspend> lqw = buildQueryWrapper(bo);
|
||||
Page<XzdSjContractSuspendVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的设计合同终止列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 设计合同终止列表
|
||||
*/
|
||||
@Override
|
||||
public List<XzdSjContractSuspendVo> queryList(XzdSjContractSuspendBo bo) {
|
||||
LambdaQueryWrapper<XzdSjContractSuspend> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<XzdSjContractSuspend> buildQueryWrapper(XzdSjContractSuspendBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<XzdSjContractSuspend> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(XzdSjContractSuspend::getId);
|
||||
lqw.eq(bo.getContractInformationId() != null, XzdSjContractSuspend::getContractInformationId, bo.getContractInformationId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getReceiptsCode()), XzdSjContractSuspend::getReceiptsCode, bo.getReceiptsCode());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdSjContractSuspend::getTitle, bo.getTitle());
|
||||
lqw.eq(bo.getDocumentDate() != null, XzdSjContractSuspend::getDocumentDate, bo.getDocumentDate());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdSjContractSuspend::getContractName, bo.getContractName());
|
||||
lqw.eq(bo.getTerminationDate() != null, XzdSjContractSuspend::getTerminationDate, bo.getTerminationDate());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProject()), XzdSjContractSuspend::getProject, bo.getProject());
|
||||
lqw.eq(bo.getArtyBUnit() != null, XzdSjContractSuspend::getArtyBUnit, bo.getArtyBUnit());
|
||||
lqw.eq(bo.getPartyAUnit() != null, XzdSjContractSuspend::getPartyAUnit, bo.getPartyAUnit());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTerminationCause()), XzdSjContractSuspend::getTerminationCause, bo.getTerminationCause());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectCategory()), XzdSjContractSuspend::getProjectCategory, bo.getProjectCategory());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectType()), XzdSjContractSuspend::getProjectType, bo.getProjectType());
|
||||
lqw.eq(bo.getCumulativeSettlementAmount() != null, XzdSjContractSuspend::getCumulativeSettlementAmount, bo.getCumulativeSettlementAmount());
|
||||
lqw.eq(bo.getDeptId() != null, XzdSjContractSuspend::getDeptId, bo.getDeptId());
|
||||
lqw.eq(bo.getCumulativePaymentAmount() != null, XzdSjContractSuspend::getCumulativePaymentAmount, bo.getCumulativePaymentAmount());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdSjContractSuspend::getFileId, bo.getFileId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XzdSjContractSuspend::getAuditStatus, bo.getAuditStatus());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增设计合同终止
|
||||
*
|
||||
* @param bo 设计合同终止
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean insertByBo(XzdSjContractSuspendBo bo) {
|
||||
XzdSjContractSuspend add = MapstructUtils.convert(bo, XzdSjContractSuspend.class);
|
||||
String banBen = BatchNumberGenerator.generateBatchNumber("SJHTZZ-");
|
||||
add.setReceiptsCode(banBen);
|
||||
|
||||
LambdaQueryWrapper<XzdSjContractSuspend> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(XzdSjContractSuspend::getContractInformationId, bo.getContractInformationId());
|
||||
if (baseMapper.selectCount(lambdaQueryWrapper) > 1){
|
||||
throw new RuntimeException("该合同已终止");
|
||||
}
|
||||
|
||||
XzdSjContractInfo byId = xzdSjContractInfoService.getById(bo.getContractInformationId());
|
||||
if (byId != null){
|
||||
byId.setHtzt(ZxdEnum.HETONGZTZZ.getTypeValue());
|
||||
xzdSjContractInfoService.updateById(byId);
|
||||
}
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改设计合同终止
|
||||
*
|
||||
* @param bo 设计合同终止
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(XzdSjContractSuspendBo bo) {
|
||||
XzdSjContractSuspend update = MapstructUtils.convert(bo, XzdSjContractSuspend.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(XzdSjContractSuspend entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除设计合同终止信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
List<Long> deleteIds = new ArrayList<>();
|
||||
for (Long id : ids) {
|
||||
XzdSjContractSuspendVo 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);
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
|
||||
* 正常使用只需#processEvent.flowCode=='leave1'
|
||||
* 示例为了方便则使用startsWith匹配了全部示例key
|
||||
*
|
||||
* @param processEvent 参数
|
||||
*/
|
||||
@org.springframework.context.event.EventListener(condition = "#processEvent.flowCode.endsWith('xzdSjContractSuspend')")
|
||||
public void processPlansHandlErequipmentList(ProcessEvent processEvent) {
|
||||
log.info("综合服务合同终止审核任务执行了{}", processEvent.toString());
|
||||
String id = processEvent.getBusinessId();
|
||||
XzdSjContractSuspend xzdCsContractSuspend = baseMapper.selectById(Long.valueOf(id));
|
||||
if (xzdCsContractSuspend == null){return;}
|
||||
xzdCsContractSuspend.setAuditStatus(processEvent.getStatus());
|
||||
baseMapper.updateById(xzdCsContractSuspend);
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行任务创建监听
|
||||
* 示例:也可通过 @EventListener(condition = "#processTaskEvent.flowCode=='leave1'")进行判断
|
||||
* 在方法中判断流程节点key
|
||||
* if ("xxx".equals(processTaskEvent.getNodeCode())) {
|
||||
* //执行业务逻辑
|
||||
* }
|
||||
*
|
||||
* @param processTaskEvent 参数
|
||||
*/
|
||||
@org.springframework.context.event.EventListener(condition = "#processTaskEvent.flowCode.endsWith('xzdSjContractSuspend')")
|
||||
public void processTaskPlansHandlerEquipmentList(ProcessTaskEvent processTaskEvent) {
|
||||
log.info("综合服务合同终止审核任务创建了{}", processTaskEvent.toString());
|
||||
}
|
||||
|
||||
/**
|
||||
* 监听删除流程事件
|
||||
* 正常使用只需#processDeleteEvent.flowCode=='leave1'
|
||||
* 示例为了方便则使用startsWith匹配了全部示例key
|
||||
*
|
||||
* @param processDeleteEvent 参数
|
||||
*/
|
||||
@EventListener(condition = "#processDeleteEvent.flowCode.endsWith('xzdSjContractSuspend')")
|
||||
public void processDeletePlansHandlerEquipmentList(ProcessDeleteEvent processDeleteEvent) {
|
||||
log.info("综合服务合同终止计划删除流程事件,技术标准文件审核任务执行了{}", processDeleteEvent.toString());
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,136 @@
|
||||
package org.dromara.xzd.comprehensive.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.xzd.comprehensive.domain.bo.XzdSjhtZfjdBo;
|
||||
import org.dromara.xzd.comprehensive.domain.vo.XzdSjhtZfjdVo;
|
||||
import org.dromara.xzd.comprehensive.domain.XzdSjhtZfjd;
|
||||
import org.dromara.xzd.comprehensive.mapper.XzdSjhtZfjdMapper;
|
||||
import org.dromara.xzd.comprehensive.service.IXzdSjhtZfjdService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 设计合同付款节点信息Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-11-19
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class XzdSjhtZfjdServiceImpl extends ServiceImpl<XzdSjhtZfjdMapper, XzdSjhtZfjd> implements IXzdSjhtZfjdService {
|
||||
|
||||
private final XzdSjhtZfjdMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询设计合同付款节点信息
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 设计合同付款节点信息
|
||||
*/
|
||||
@Override
|
||||
public XzdSjhtZfjdVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询设计合同付款节点信息列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 设计合同付款节点信息分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<XzdSjhtZfjdVo> queryPageList(XzdSjhtZfjdBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<XzdSjhtZfjd> lqw = buildQueryWrapper(bo);
|
||||
Page<XzdSjhtZfjdVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的设计合同付款节点信息列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 设计合同付款节点信息列表
|
||||
*/
|
||||
@Override
|
||||
public List<XzdSjhtZfjdVo> queryList(XzdSjhtZfjdBo bo) {
|
||||
LambdaQueryWrapper<XzdSjhtZfjd> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<XzdSjhtZfjd> buildQueryWrapper(XzdSjhtZfjdBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<XzdSjhtZfjd> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(XzdSjhtZfjd::getId);
|
||||
lqw.eq(bo.getMainId() != null, XzdSjhtZfjd::getMainId, bo.getMainId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPaymentStage()), XzdSjhtZfjd::getPaymentStage, bo.getPaymentStage());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getStageDesc()), XzdSjhtZfjd::getStageDesc, bo.getStageDesc());
|
||||
lqw.eq(bo.getPaymentRatio() != null, XzdSjhtZfjd::getPaymentRatio, bo.getPaymentRatio());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTriggerConditions()), XzdSjhtZfjd::getTriggerConditions, bo.getTriggerConditions());
|
||||
lqw.eq(bo.getTimeLimit() != null, XzdSjhtZfjd::getTimeLimit, bo.getTimeLimit());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增设计合同付款节点信息
|
||||
*
|
||||
* @param bo 设计合同付款节点信息
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(XzdSjhtZfjdBo bo) {
|
||||
XzdSjhtZfjd add = MapstructUtils.convert(bo, XzdSjhtZfjd.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改设计合同付款节点信息
|
||||
*
|
||||
* @param bo 设计合同付款节点信息
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(XzdSjhtZfjdBo bo) {
|
||||
XzdSjhtZfjd update = MapstructUtils.convert(bo, XzdSjhtZfjd.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(XzdSjhtZfjd entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除设计合同付款节点信息信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@ -17,8 +17,11 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.xzd.domain.XzdSupplierOpenBank;
|
||||
import org.dromara.xzd.domain.bo.XzdSupplierOpenBankBo;
|
||||
import org.dromara.xzd.domain.vo.XzdPoiAreaVo;
|
||||
import org.dromara.xzd.domain.vo.XzdSupplierOpenBankVo;
|
||||
import org.dromara.xzd.service.IXzdCorrespondentList;
|
||||
import org.dromara.xzd.service.IXzdSupplierOpenBankService;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@ -38,6 +41,16 @@ public class XzdSupplierOpenBankController extends BaseController {
|
||||
|
||||
private final IXzdSupplierOpenBankService xzdSupplierOpenBankService;
|
||||
|
||||
|
||||
/**
|
||||
* 查询区域列表
|
||||
*/
|
||||
@SaCheckPermission("xzd:supplierOpenBank:list")
|
||||
@GetMapping("/getPoiAreaList")
|
||||
public R<List<XzdPoiAreaVo>> getPoiAreaList() {
|
||||
return R.ok(xzdSupplierOpenBankService.getPoiAreaList());
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询供应商信息-开户银行列表
|
||||
*/
|
||||
|
||||
@ -18,6 +18,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.xzd.domain.bo.XzdSupplierOpenBankBo;
|
||||
import org.dromara.xzd.domain.bo.XzdYhxxBo;
|
||||
import org.dromara.xzd.domain.vo.XzdPoiAreaVo;
|
||||
import org.dromara.xzd.domain.vo.XzdSupplierOpenBankVo;
|
||||
import org.dromara.xzd.domain.vo.XzdYhxxVo;
|
||||
import org.dromara.xzd.service.IXzdSupplierOpenBankService;
|
||||
@ -48,8 +49,17 @@ public class XzdYhxxController extends BaseController {
|
||||
*/
|
||||
@SaCheckPermission(value = {"yhzjb:yhxxzjb:add","yhzjb:yhxxzjb:edit","yhzjb:yhxxzjb:list"},mode = SaMode.OR)
|
||||
@GetMapping("/getOpenBankList")
|
||||
public TableDataInfo<XzdSupplierOpenBankVo> getOpenBankList(XzdSupplierOpenBankBo bo, PageQuery pageQuery) {
|
||||
return xzdSupplierOpenBankService.queryPageList(bo, pageQuery);
|
||||
public R<List<String>> getOpenBankList(XzdSupplierOpenBankBo bo) {
|
||||
return R.ok(xzdSupplierOpenBankService.getOpenBankList(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询区域列表
|
||||
*/
|
||||
@SaCheckPermission(value = {"yhzjb:yhxxzjb:add","yhzjb:yhxxzjb:edit","yhzjb:yhxxzjb:list"},mode = SaMode.OR)
|
||||
@GetMapping("/getPoiAreaList")
|
||||
public R<List<XzdPoiAreaVo>> getPoiAreaList() {
|
||||
return R.ok(xzdSupplierOpenBankService.getPoiAreaList());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -54,7 +54,7 @@ public class XzdBusinessChange extends BaseEntity {
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 类型(4、分包合同信息,5、分包合同变更,7、采购合同信息,8、采购合同变更,10、综合服务合同信息,11、综合服务合同变更)
|
||||
* 类型(4、分包合同信息,5、分包合同变更,7、采购合同信息,8、采购合同变更,10、综合服务合同信息,11、综合服务合同变更,15、设计合同信息,16设计合同变更)
|
||||
*/
|
||||
private String type;
|
||||
|
||||
|
||||
@ -38,6 +38,11 @@ public class XzdSupplierOpenBank extends BaseEntity {
|
||||
*/
|
||||
private String openBank;
|
||||
|
||||
/**
|
||||
* 支行名称
|
||||
*/
|
||||
private String branchName;
|
||||
|
||||
/**
|
||||
* 开户账号
|
||||
*/
|
||||
|
||||
@ -34,9 +34,14 @@ public class XzdYhxx extends BaseEntity {
|
||||
private Long mainId;
|
||||
|
||||
/**
|
||||
* 银行id
|
||||
* 开户银行
|
||||
*/
|
||||
private Long yhId;
|
||||
private String openBank;
|
||||
|
||||
/**
|
||||
* 支行名称
|
||||
*/
|
||||
private String branchName;
|
||||
|
||||
/**
|
||||
* 开户账号
|
||||
|
||||
@ -35,6 +35,10 @@ public class XzdSupplierOpenBankBo extends BaseEntity {
|
||||
*/
|
||||
@NotBlank(message = "开户银行不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String openBank;
|
||||
/**
|
||||
* 支行名称
|
||||
*/
|
||||
private String branchName;
|
||||
|
||||
/**
|
||||
* 开户账号
|
||||
|
||||
@ -28,9 +28,14 @@ public class XzdYhxxBo extends BaseEntity {
|
||||
private Long mainId;
|
||||
|
||||
/**
|
||||
* 银行id
|
||||
* 开户银行
|
||||
*/
|
||||
private Long yhId;
|
||||
private String openBank;
|
||||
|
||||
/**
|
||||
* 支行名称
|
||||
*/
|
||||
private String branchName;
|
||||
|
||||
/**
|
||||
* 开户账号
|
||||
|
||||
@ -10,6 +10,7 @@ import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@ -71,7 +72,7 @@ public class XzdPoiAreaVo implements Serializable {
|
||||
private String islast;
|
||||
|
||||
|
||||
private List<XzdPoiAreaVo> children;
|
||||
private List<XzdPoiAreaVo> children = new ArrayList<>();
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -41,6 +41,11 @@ public class XzdSupplierOpenBankVo implements Serializable {
|
||||
@ExcelProperty(value = "开户银行")
|
||||
private String openBank;
|
||||
|
||||
/**
|
||||
* 支行名称
|
||||
*/
|
||||
private String branchName;
|
||||
|
||||
/**
|
||||
* 开户账号
|
||||
*/
|
||||
|
||||
@ -41,12 +41,14 @@ public class XzdYhxxVo implements Serializable {
|
||||
private String mainName;
|
||||
|
||||
/**
|
||||
* 银行id
|
||||
* 开户银行
|
||||
*/
|
||||
@ExcelProperty(value = "银行id")
|
||||
private Long yhId;
|
||||
@Translation(type = TransConstant.XZD_SUPPLIER_OPEN_BANK_ID_TO_NAME, mapper = "yhId")
|
||||
private String yhName;
|
||||
private String openBank;
|
||||
|
||||
/**
|
||||
* 支行名称
|
||||
*/
|
||||
private String branchName;
|
||||
|
||||
/**
|
||||
* 开户账号
|
||||
|
||||
@ -9,6 +9,8 @@ public enum XzdClassEnum {
|
||||
|
||||
CS_CONTRACT_INFORMATION("xzd_cs_contract_information"), //综合服务合同信息
|
||||
CS_CONTRACT_CHANGE("xzd_cs_contract_change"), //综合服务合同变更
|
||||
SJ_CONTRACT_INFO("xzd_sj_contract_info"), //设计合同信息
|
||||
SJ_CONTRACT_CHANGE("xzd_sj_contract_change"), //设计合同变更
|
||||
JS_ZHFW_JINDU("xzd_js_zhfw_jindu"), //综合服务合同进度结算
|
||||
JS_CG_JUNGON("xzd_js_cg_jungon"), //采购合同竣工结算
|
||||
XZD_JS_CG_JUNGON_EDIT("xzd_js_cg_jungon_edit"), //采购合同竣工结算
|
||||
|
||||
@ -9,6 +9,7 @@ import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 区域Service接口
|
||||
@ -67,4 +68,6 @@ public interface IXzdPoiAreaService extends IService<XzdPoiArea>{
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
List<XzdPoiAreaVo> getAreaListByName(Set<String> areaName);
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@ import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.xzd.domain.XzdSupplierOpenBank;
|
||||
import org.dromara.xzd.domain.bo.XzdSupplierOpenBankBo;
|
||||
import org.dromara.xzd.domain.vo.XzdPoiAreaVo;
|
||||
import org.dromara.xzd.domain.vo.XzdSupplierOpenBankVo;
|
||||
|
||||
import java.util.Collection;
|
||||
@ -71,4 +72,7 @@ public interface IXzdSupplierOpenBankService extends IService<XzdSupplierOpenBan
|
||||
|
||||
String queryNameById(Long id);
|
||||
|
||||
List<XzdPoiAreaVo> getPoiAreaList();
|
||||
|
||||
List<String> getOpenBankList(XzdSupplierOpenBankBo bo);
|
||||
}
|
||||
|
||||
@ -485,7 +485,8 @@ public class XzdContractDetailsServiceImpl extends ServiceImpl<XzdContractDetail
|
||||
|
||||
List<XzdSupplierOpenBank> xzdSupplierOpenBanks = new ArrayList<>();
|
||||
for (XzdYhxx xzdYhxx : xzdYhxxList) {
|
||||
XzdSupplierOpenBank byId = xzdSupplierOpenBankService.getById(xzdYhxx.getYhId());
|
||||
XzdSupplierOpenBank byId = xzdSupplierOpenBankService.getBaseMapper().selectOne(new LambdaQueryWrapper<XzdSupplierOpenBank>()
|
||||
.eq(XzdSupplierOpenBank::getOpenBank, xzdYhxx.getOpenBank()).eq(XzdSupplierOpenBank::getBranchName,xzdYhxx.getBranchName()));
|
||||
if (byId != null){
|
||||
byId.setAccount(xzdYhxx.getAccount());
|
||||
xzdSupplierOpenBanks.add(byId);
|
||||
|
||||
@ -265,7 +265,8 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList {
|
||||
ArrayList<XzdYhxx> xzdYhxxes = new ArrayList<>();
|
||||
for (XzdSupplierOpenBank bank : xzdSettlementInfo.getOpenBanks()) {
|
||||
XzdYhxx xzdYhxxBo = new XzdYhxx();
|
||||
xzdYhxxBo.setYhId(bank.getId());
|
||||
xzdYhxxBo.setOpenBank(bank.getOpenBank());
|
||||
xzdYhxxBo.setBranchName(bank.getBranchName());
|
||||
xzdYhxxBo.setMainId(id);
|
||||
xzdYhxxBo.setSfmr(bank.getIsDefault());
|
||||
xzdYhxxBo.setAccount(bank.getAccount());
|
||||
@ -493,7 +494,8 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList {
|
||||
ArrayList<XzdYhxx> xzdYhxxes = new ArrayList<>();
|
||||
for (XzdSupplierOpenBank bank : xzdSettlementInfo.getOpenBanks()) {
|
||||
XzdYhxx xzdYhxxBo = new XzdYhxx();
|
||||
xzdYhxxBo.setYhId(bank.getId());
|
||||
xzdYhxxBo.setOpenBank(bank.getOpenBank());
|
||||
xzdYhxxBo.setBranchName(bank.getBranchName());
|
||||
xzdYhxxBo.setMainId(dto.getXzdCustomerinformation().getId());
|
||||
xzdYhxxBo.setSfmr(bank.getIsDefault());
|
||||
xzdYhxxBo.setAccount(bank.getAccount());
|
||||
@ -607,7 +609,8 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList {
|
||||
if (xzdYhxxList!= null && !xzdYhxxList.isEmpty()) {
|
||||
List<XzdSupplierOpenBank> openBanks = new ArrayList<>();
|
||||
for (XzdYhxx yhxx : xzdYhxxList) {
|
||||
XzdSupplierOpenBank byId = xzdSupplierOpenBankService.getById(yhxx.getYhId());
|
||||
XzdSupplierOpenBank byId = xzdSupplierOpenBankService.getBaseMapper().selectOne(new LambdaQueryWrapper<XzdSupplierOpenBank>()
|
||||
.eq(XzdSupplierOpenBank::getOpenBank, yhxx.getOpenBank()).eq(XzdSupplierOpenBank::getBranchName,yhxx.getBranchName()));
|
||||
if (byId != null){
|
||||
byId.setAccount(yhxx.getAccount());
|
||||
byId.setIsDefault(yhxx.getSfmr());
|
||||
|
||||
@ -16,9 +16,8 @@ import org.dromara.xzd.domain.XzdPoiArea;
|
||||
import org.dromara.xzd.mapper.XzdPoiAreaMapper;
|
||||
import org.dromara.xzd.service.IXzdPoiAreaService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 区域Service业务层处理
|
||||
@ -133,4 +132,96 @@ public class XzdPoiAreaServiceImpl extends ServiceImpl<XzdPoiAreaMapper, XzdPoiA
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<XzdPoiAreaVo> getAreaListByName(Set<String> areaName) {
|
||||
return buildAreaTreeByProvinceSet(areaName);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 构建区域树形结构(顶层parentid=0)
|
||||
*/
|
||||
public List<XzdPoiAreaVo> buildAreaTree() {
|
||||
// 1. 查询所有区域数据
|
||||
List<XzdPoiAreaVo> allAreas = baseMapper.selectVoList();// 从数据库查询全量数据
|
||||
|
||||
// 2. 按parentid分组:key=parentid,value=该父节点下的所有子区域
|
||||
Map<Long, List<XzdPoiAreaVo>> parentMap = allAreas.stream()
|
||||
.collect(Collectors.groupingBy(XzdPoiAreaVo::getParentid));
|
||||
|
||||
// 3. 从顶层节点(parentid=0)开始构建树形结构
|
||||
List<XzdPoiAreaVo> rootTrees = new ArrayList<>();
|
||||
// 获取parentid=0的所有顶层区域
|
||||
List<XzdPoiAreaVo> rootAreas = parentMap.getOrDefault(0, Collections.emptyList());
|
||||
|
||||
for (XzdPoiAreaVo rootArea : rootAreas) {
|
||||
// 递归为当前节点挂载子节点
|
||||
buildChildren(rootArea, parentMap);
|
||||
rootTrees.add(rootArea);
|
||||
}
|
||||
|
||||
return rootTrees;
|
||||
}
|
||||
|
||||
/**
|
||||
* 递归为当前节点挂载子节点
|
||||
* @param currentTree 当前节点
|
||||
* @param parentMap 按parentid分组的全量数据
|
||||
*/
|
||||
private void buildChildren(XzdPoiAreaVo currentTree, Map<Long, List<XzdPoiAreaVo>> parentMap) {
|
||||
// 当前节点的adcode(子节点的parentid应等于此值)
|
||||
Long currentAdcode = currentTree.getAdcode();
|
||||
// 获取当前节点的所有子区域(parentid=currentAdcode)
|
||||
List<XzdPoiAreaVo> childAreas = parentMap.getOrDefault(currentAdcode, Collections.emptyList());
|
||||
|
||||
for (XzdPoiAreaVo childArea : childAreas) {
|
||||
// 递归为子节点挂载它的子节点(深度优先)
|
||||
buildChildren(childArea, parentMap);
|
||||
// 将子节点添加到当前节点的children列表
|
||||
currentTree.getChildren().add(childArea);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 按省份名称集合过滤,返回所有匹配省份及其下属区域的树形结构
|
||||
* @param provinceNames 省份名称集合(如 {"江苏省", "广东省"})
|
||||
* @return 多个省份的子树列表(无匹配时返回空列表)
|
||||
*/
|
||||
public List<XzdPoiAreaVo> buildAreaTreeByProvinceSet(Set<String> provinceNames) {
|
||||
// 1. 边界处理:集合为空时直接返回空
|
||||
if (provinceNames == null || provinceNames.isEmpty()) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
// 2. 查询所有区域数据
|
||||
List<XzdPoiAreaVo> allAreas = baseMapper.selectVoList();// 从数据库查询全量数据
|
||||
if (allAreas.isEmpty()) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
// 3. 按parentid分组(便于快速查找子节点)
|
||||
Map<Long, List<XzdPoiAreaVo>> parentMap = allAreas.stream()
|
||||
.collect(Collectors.groupingBy(XzdPoiAreaVo::getParentid));
|
||||
|
||||
// 4. 匹配集合中所有符合条件的省份节点(名称在集合中 + 层级为“省”)
|
||||
List<XzdPoiAreaVo> targetProvinces = allAreas.stream()
|
||||
.filter(area -> provinceNames.contains(area.getName()) // 名称在集合中
|
||||
&& "province".equals(area.getLevel())) // 层级为省份(需按实际数据调整)
|
||||
.toList();
|
||||
|
||||
// 5. 若无匹配的省份,返回空列表
|
||||
if (targetProvinces.isEmpty()) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
// 6. 为每个匹配的省份构建子树,并汇总结果
|
||||
List<XzdPoiAreaVo> resultTrees = new ArrayList<>();
|
||||
for (XzdPoiAreaVo province : targetProvinces) {
|
||||
buildChildren(province, parentMap); // 递归挂载下属区域
|
||||
resultTrees.add(province);
|
||||
}
|
||||
|
||||
return resultTrees;
|
||||
}
|
||||
}
|
||||
|
||||
@ -288,7 +288,8 @@ public class XzdSupplierInfoServiceImpl extends ServiceImpl<XzdSupplierInfoMappe
|
||||
if(bo.getSettlement().getOpenBanks() != null && !bo.getSettlement().getOpenBanks().isEmpty()){
|
||||
for (XzdSupplierOpenBank bank : bo.getSettlement().getOpenBanks()) {
|
||||
XzdYhxxBo xzdYhxxBo = new XzdYhxxBo();
|
||||
xzdYhxxBo.setYhId(bank.getId());
|
||||
xzdYhxxBo.setOpenBank(bank.getOpenBank());
|
||||
xzdYhxxBo.setBranchName(bank.getBranchName());
|
||||
xzdYhxxBo.setMainId(add.getId());
|
||||
xzdYhxxBo.setSfmr(bank.getIsDefault());
|
||||
xzdYhxxBo.setAccount(bank.getAccount());
|
||||
@ -491,7 +492,8 @@ public class XzdSupplierInfoServiceImpl extends ServiceImpl<XzdSupplierInfoMappe
|
||||
//保存此次的
|
||||
for (XzdSupplierOpenBank bank : bo.getSettlement().getOpenBanks()) {
|
||||
XzdYhxxBo xzdYhxxBo = new XzdYhxxBo();
|
||||
xzdYhxxBo.setYhId(bank.getId());
|
||||
xzdYhxxBo.setOpenBank(bank.getOpenBank());
|
||||
xzdYhxxBo.setBranchName(bank.getBranchName());
|
||||
xzdYhxxBo.setMainId(update.getId());
|
||||
xzdYhxxBo.setSfmr(bank.getIsDefault());
|
||||
xzdYhxxBo.setAccount(bank.getAccount());
|
||||
@ -932,7 +934,8 @@ public class XzdSupplierInfoServiceImpl extends ServiceImpl<XzdSupplierInfoMappe
|
||||
bankLambdaQueryWrapper.eq(XzdYhxx::getSfmr,"1");
|
||||
XzdYhxx xzdYhxx = xzdYhxxService.getOne(bankLambdaQueryWrapper);
|
||||
if (xzdYhxx!= null) {
|
||||
XzdSupplierOpenBank openBank = xzdSupplierOpenBankService.getById(xzdYhxx.getYhId());
|
||||
XzdSupplierOpenBank openBank = xzdSupplierOpenBankService.getBaseMapper().selectOne(new LambdaQueryWrapper<XzdSupplierOpenBank>()
|
||||
.eq(XzdSupplierOpenBank::getOpenBank, xzdYhxx.getOpenBank()).eq(XzdSupplierOpenBank::getBranchName,xzdYhxx.getBranchName()));
|
||||
if (openBank != null) {
|
||||
vo.setKhyh(openBank.getOpenBank());
|
||||
vo.setKhhzh(xzdYhxx.getAccount());
|
||||
@ -946,7 +949,8 @@ public class XzdSupplierInfoServiceImpl extends ServiceImpl<XzdSupplierInfoMappe
|
||||
if (xzdYhxxList!= null && !xzdYhxxList.isEmpty()) {
|
||||
List<XzdSupplierOpenBank> openBanks = new ArrayList<>();
|
||||
for (XzdYhxx yhxx : xzdYhxxList) {
|
||||
XzdSupplierOpenBank byId = xzdSupplierOpenBankService.getById(yhxx.getYhId());
|
||||
XzdSupplierOpenBank byId = xzdSupplierOpenBankService.getBaseMapper().selectOne(new LambdaQueryWrapper<XzdSupplierOpenBank>()
|
||||
.eq(XzdSupplierOpenBank::getOpenBank, xzdYhxx.getOpenBank()).eq(XzdSupplierOpenBank::getBranchName,xzdYhxx.getBranchName()));
|
||||
if (byId != null){
|
||||
byId.setAccount(yhxx.getAccount());
|
||||
byId.setIsDefault(yhxx.getSfmr());
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package org.dromara.xzd.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
@ -8,6 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.service.XzdSupplierOpenBankService;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.SpringUtils;
|
||||
@ -16,15 +18,17 @@ import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.xzd.domain.XzdSupplierOpenBank;
|
||||
import org.dromara.xzd.domain.bo.XzdSupplierOpenBankBo;
|
||||
import org.dromara.xzd.domain.vo.XzdPoiAreaVo;
|
||||
import org.dromara.xzd.domain.vo.XzdSupplierOpenBankVo;
|
||||
import org.dromara.xzd.mapper.XzdSupplierOpenBankMapper;
|
||||
import org.dromara.xzd.service.IXzdCorrespondentList;
|
||||
import org.dromara.xzd.service.IXzdPoiAreaService;
|
||||
import org.dromara.xzd.service.IXzdSupplierOpenBankService;
|
||||
import org.dromara.xzd.utilS.AreaUtil;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 供应商信息-开户银行Service业务层处理
|
||||
@ -38,6 +42,9 @@ public class XzdSupplierOpenBankServiceImpl extends ServiceImpl<XzdSupplierOpenB
|
||||
|
||||
private final XzdSupplierOpenBankMapper baseMapper;
|
||||
|
||||
@Lazy
|
||||
private final IXzdPoiAreaService xzdPoiAreaService;
|
||||
|
||||
/**
|
||||
* 查询供应商信息-开户银行
|
||||
*
|
||||
@ -82,6 +89,7 @@ public class XzdSupplierOpenBankServiceImpl extends ServiceImpl<XzdSupplierOpenB
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getOpenBank()), XzdSupplierOpenBank::getOpenBank, bo.getOpenBank());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAccount()), XzdSupplierOpenBank::getAccount, bo.getAccount());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getPersonName()), XzdSupplierOpenBank::getPersonName, bo.getPersonName());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getBranchName()), XzdSupplierOpenBank::getBranchName, bo.getBranchName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBankSf()), XzdSupplierOpenBank::getBankSf, bo.getBankSf());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBankCs()), XzdSupplierOpenBank::getBankCs, bo.getBankCs());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBankQx()), XzdSupplierOpenBank::getBankQx, bo.getBankQx());
|
||||
@ -145,6 +153,13 @@ public class XzdSupplierOpenBankServiceImpl extends ServiceImpl<XzdSupplierOpenB
|
||||
*/
|
||||
private void validEntityBeforeSave(XzdSupplierOpenBank entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
Long count = baseMapper.selectCount(new LambdaQueryWrapper<XzdSupplierOpenBank>()
|
||||
.eq(XzdSupplierOpenBank::getOpenBank, entity.getOpenBank())
|
||||
.eq(XzdSupplierOpenBank::getBranchName, entity.getBranchName())
|
||||
.ne(entity.getId() != null,XzdSupplierOpenBank::getId, entity.getId()));
|
||||
if (count > 0){
|
||||
throw new ServiceException("该银行的支行名称已存在");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -167,6 +182,39 @@ public class XzdSupplierOpenBankServiceImpl extends ServiceImpl<XzdSupplierOpenB
|
||||
return baseMapper.selectVoById(id).getOpenBank();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<XzdPoiAreaVo> getPoiAreaList() {
|
||||
Set<String> areaName = new HashSet<>();
|
||||
List<XzdSupplierOpenBank> xzdSupplierOpenBanks = baseMapper.selectList();
|
||||
if (CollectionUtil.isEmpty(xzdSupplierOpenBanks)) {
|
||||
return null;
|
||||
}
|
||||
xzdSupplierOpenBanks.stream().forEach(xzdSupplierOpenBank -> {areaName.add(xzdSupplierOpenBank.getBankSf());});
|
||||
return xzdPoiAreaService.getAreaListByName(areaName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getOpenBankList(XzdSupplierOpenBankBo bo) {
|
||||
List<XzdSupplierOpenBankVo> vos = baseMapper.selectVoList(new LambdaQueryWrapper<XzdSupplierOpenBank>()
|
||||
.select(StringUtils.isBlank(bo.getOpenBank()) ? XzdSupplierOpenBank::getOpenBank:XzdSupplierOpenBank::getBranchName)
|
||||
.eq(StringUtils.isNotBlank(bo.getBankSf()), XzdSupplierOpenBank::getBankSf, bo.getBankSf())
|
||||
.eq(StringUtils.isNotBlank(bo.getBankCs()), XzdSupplierOpenBank::getBankCs, bo.getBankCs())
|
||||
.eq(StringUtils.isNotBlank(bo.getBankQx()), XzdSupplierOpenBank::getBankQx, bo.getBankQx())
|
||||
.eq(StringUtils.isNotBlank(bo.getOpenBank()), XzdSupplierOpenBank::getOpenBank, bo.getOpenBank())
|
||||
.groupBy(StringUtils.isBlank(bo.getOpenBank()) ? XzdSupplierOpenBank::getOpenBank:XzdSupplierOpenBank::getBranchName));
|
||||
List<String> names = new ArrayList<>();
|
||||
if (StringUtils.isNotBlank(bo.getOpenBank())) {
|
||||
for (XzdSupplierOpenBankVo vo : vos) {
|
||||
names.add(vo.getBranchName());
|
||||
}
|
||||
}else {
|
||||
for (XzdSupplierOpenBankVo vo : vos) {
|
||||
names.add(vo.getOpenBank());
|
||||
}
|
||||
}
|
||||
return names;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String selectNameByIds(String ids) {
|
||||
List<String> list = new ArrayList<>();
|
||||
|
||||
@ -106,8 +106,9 @@ public class XzdYhxxServiceImpl extends ServiceImpl<XzdYhxxMapper, XzdYhxx> impl
|
||||
LambdaQueryWrapper<XzdYhxx> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(XzdYhxx::getId);
|
||||
lqw.eq(bo.getMainId() != null, XzdYhxx::getMainId, bo.getMainId());
|
||||
lqw.eq(bo.getYhId() != null, XzdYhxx::getYhId, bo.getYhId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSfmr()), XzdYhxx::getSfmr, bo.getSfmr());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getOpenBank()), XzdYhxx::getOpenBank, bo.getOpenBank());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBranchName()), XzdYhxx::getBranchName, bo.getBranchName());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getAccount()), XzdYhxx::getAccount, bo.getAccount());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getKhhm()), XzdYhxx::getKhhm, bo.getKhhm());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getType()), XzdYhxx::getType, bo.getType());
|
||||
|
||||
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.xzd.comprehensive.mapper.XzdSjContractChangeMapper">
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.xzd.comprehensive.mapper.XzdSjContractInfoMapper">
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.xzd.comprehensive.mapper.XzdSjContractSuspendMapper">
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.xzd.comprehensive.mapper.XzdSjhtZfjdMapper">
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user