diff --git a/xinnengyuan/ruoyi-admin/src/main/resources/application.yml b/xinnengyuan/ruoyi-admin/src/main/resources/application.yml index 2879f78d..0abd0799 100644 --- a/xinnengyuan/ruoyi-admin/src/main/resources/application.yml +++ b/xinnengyuan/ruoyi-admin/src/main/resources/application.yml @@ -253,6 +253,8 @@ springdoc: packages-to-scan: org.dromara.design - group: 13.工作流模块 packages-to-scan: org.dromara.workflow + - group: 14.合同模块 + packages-to-scan: org.dromara.ctr - group: 15.无人机模块 packages-to-scan: org.dromara.drone - group: 20.代码生成模块 diff --git a/xinnengyuan/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java b/xinnengyuan/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java index 1cb4074e..97797a90 100644 --- a/xinnengyuan/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java +++ b/xinnengyuan/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java @@ -77,7 +77,7 @@ public class RedisUtils { public static void publish(String channelKey, T msg, Consumer consumer) { RTopic topic = CLIENT.getTopic(channelKey); topic.publish(msg); - System.out.println("发布通道消息---------"+msg.toString()); +// System.out.println("发布通道消息---------"+msg.toString()); consumer.accept(msg); } diff --git a/xinnengyuan/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/utils/WebSocketUtils.java b/xinnengyuan/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/utils/WebSocketUtils.java index 8c4170aa..14c26b2d 100644 --- a/xinnengyuan/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/utils/WebSocketUtils.java +++ b/xinnengyuan/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/utils/WebSocketUtils.java @@ -69,8 +69,8 @@ public class WebSocketUtils { broadcastMessage.setMessage(webSocketMessage.getMessage()); broadcastMessage.setSessionKeys(unsentSessionKeys); RedisUtils.publish(WEB_SOCKET_TOPIC, broadcastMessage, consumer -> { - log.info(" WebSocket发送主题订阅消息topic:{} session keys:{} message:{}", - WEB_SOCKET_TOPIC, unsentSessionKeys, webSocketMessage.getMessage()); +// log.info(" WebSocket发送主题订阅消息topic:{} session keys:{} message:{}", +// WEB_SOCKET_TOPIC, unsentSessionKeys, webSocketMessage.getMessage()); }); } } @@ -84,7 +84,7 @@ public class WebSocketUtils { WebSocketMessageDto broadcastMessage = new WebSocketMessageDto(); broadcastMessage.setMessage(message); RedisUtils.publish(WEB_SOCKET_TOPIC, broadcastMessage, consumer -> { - log.info("WebSocket发送主题订阅消息topic:{} message:{}", WEB_SOCKET_TOPIC, message); +// log.info("WebSocket发送主题订阅消息topic:{} message:{}", WEB_SOCKET_TOPIC, message); }); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/controller/CtrContractProgressSettlementController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/controller/CtrContractProgressSettlementController.java new file mode 100644 index 00000000..f7b099aa --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/controller/CtrContractProgressSettlementController.java @@ -0,0 +1,107 @@ +package org.dromara.ctr.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.web.core.BaseController; +import org.dromara.ctr.domain.bo.CtrContractProgressSettlementBo; +import org.dromara.ctr.domain.dto.CtrContractProgressSettlementCreateReq; +import org.dromara.ctr.domain.dto.CtrContractProgressSettlementUpdateReq; +import org.dromara.ctr.domain.vo.CtrContractProgressSettlementVo; +import org.dromara.ctr.service.ICtrContractProgressSettlementService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 承包合同进度结算 + * + * @author lilemy + * @date 2025-10-18 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/ctr/contractProgressSettlement") +public class CtrContractProgressSettlementController extends BaseController { + + private final ICtrContractProgressSettlementService ctrContractProgressSettlementService; + + /** + * 查询承包合同进度结算列表 + */ + @SaCheckPermission("ctr:contractProgressSettlement:list") + @GetMapping("/list") + public TableDataInfo list(CtrContractProgressSettlementBo bo, PageQuery pageQuery) { + return ctrContractProgressSettlementService.queryPageList(bo, pageQuery); + } + + /** + * 导出承包合同进度结算列表 + */ + @SaCheckPermission("ctr:contractProgressSettlement:export") + @Log(title = "承包合同进度结算", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(CtrContractProgressSettlementBo bo, HttpServletResponse response) { + List list = ctrContractProgressSettlementService.queryList(bo); + ExcelUtil.exportExcel(list, "承包合同进度结算", CtrContractProgressSettlementVo.class, response); + } + + /** + * 获取承包合同进度结算详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("ctr:contractProgressSettlement:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(ctrContractProgressSettlementService.queryById(id)); + } + + /** + * 新增承包合同进度结算 + */ + @SaCheckPermission("ctr:contractProgressSettlement:add") + @Log(title = "承包合同进度结算", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated @RequestBody CtrContractProgressSettlementCreateReq req) { + return toAjax(ctrContractProgressSettlementService.insertByBo(req)); + } + + /** + * 修改承包合同进度结算 + */ + @SaCheckPermission("ctr:contractProgressSettlement:edit") + @Log(title = "承包合同进度结算", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated @RequestBody CtrContractProgressSettlementUpdateReq req) { + return toAjax(ctrContractProgressSettlementService.updateByBo(req)); + } + + /** + * 删除承包合同进度结算 + * + * @param ids 主键串 + */ + @SaCheckPermission("ctr:contractProgressSettlement:remove") + @Log(title = "承包合同进度结算", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(ctrContractProgressSettlementService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/controller/CtrContractProgressSettlementItemController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/controller/CtrContractProgressSettlementItemController.java new file mode 100644 index 00000000..5b298f89 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/controller/CtrContractProgressSettlementItemController.java @@ -0,0 +1,105 @@ +package org.dromara.ctr.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.ctr.domain.vo.CtrContractProgressSettlementItemVo; +import org.dromara.ctr.domain.bo.CtrContractProgressSettlementItemBo; +import org.dromara.ctr.service.ICtrContractProgressSettlementItemService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 承包合同进度结算清单 + * + * @author lilemy + * @date 2025-10-18 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/ctr/contractProgressSettlementItem") +public class CtrContractProgressSettlementItemController extends BaseController { + + private final ICtrContractProgressSettlementItemService ctrContractProgressSettlementItemService; + + /** + * 查询承包合同进度结算清单列表 + */ + @SaCheckPermission("ctr:contractProgressSettlementItem:list") + @GetMapping("/list") + public TableDataInfo list(CtrContractProgressSettlementItemBo bo, PageQuery pageQuery) { + return ctrContractProgressSettlementItemService.queryPageList(bo, pageQuery); + } + + /** + * 导出承包合同进度结算清单列表 + */ + @SaCheckPermission("ctr:contractProgressSettlementItem:export") + @Log(title = "承包合同进度结算清单", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(CtrContractProgressSettlementItemBo bo, HttpServletResponse response) { + List list = ctrContractProgressSettlementItemService.queryList(bo); + ExcelUtil.exportExcel(list, "承包合同进度结算清单", CtrContractProgressSettlementItemVo.class, response); + } + + /** + * 获取承包合同进度结算清单详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("ctr:contractProgressSettlementItem:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(ctrContractProgressSettlementItemService.queryById(id)); + } + + /** + * 新增承包合同进度结算清单 + */ + @SaCheckPermission("ctr:contractProgressSettlementItem:add") + @Log(title = "承包合同进度结算清单", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody CtrContractProgressSettlementItemBo bo) { + return toAjax(ctrContractProgressSettlementItemService.insertByBo(bo)); + } + + /** + * 修改承包合同进度结算清单 + */ + @SaCheckPermission("ctr:contractProgressSettlementItem:edit") + @Log(title = "承包合同进度结算清单", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody CtrContractProgressSettlementItemBo bo) { + return toAjax(ctrContractProgressSettlementItemService.updateByBo(bo)); + } + + /** + * 删除承包合同进度结算清单 + * + * @param ids 主键串 + */ + @SaCheckPermission("ctr:contractProgressSettlementItem:remove") + @Log(title = "承包合同进度结算清单", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(ctrContractProgressSettlementItemService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/controller/CtrSubcontractProgressSettlementController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/controller/CtrSubcontractProgressSettlementController.java new file mode 100644 index 00000000..11bbb272 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/controller/CtrSubcontractProgressSettlementController.java @@ -0,0 +1,106 @@ +package org.dromara.ctr.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.web.core.BaseController; +import org.dromara.ctr.domain.bo.CtrSubcontractProgressSettlementBo; +import org.dromara.ctr.domain.dto.CtrSubcontractProgressSettlementCreateReq; +import org.dromara.ctr.domain.dto.CtrSubcontractProgressSettlementUpdateReq; +import org.dromara.ctr.domain.vo.CtrSubcontractProgressSettlementVo; +import org.dromara.ctr.service.ICtrSubcontractProgressSettlementService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 分包合同进度结算 + * + * @author lilemy + * @date 2025-10-18 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/ctr/subcontractProgressSettlement") +public class CtrSubcontractProgressSettlementController extends BaseController { + + private final ICtrSubcontractProgressSettlementService ctrSubcontractProgressSettlementService; + + /** + * 查询分包合同进度结算列表 + */ + @SaCheckPermission("ctr:subcontractProgressSettlement:list") + @GetMapping("/list") + public TableDataInfo list(CtrSubcontractProgressSettlementBo bo, PageQuery pageQuery) { + return ctrSubcontractProgressSettlementService.queryPageList(bo, pageQuery); + } + + /** + * 导出分包合同进度结算列表 + */ + @SaCheckPermission("ctr:subcontractProgressSettlement:export") + @Log(title = "分包合同进度结算", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(CtrSubcontractProgressSettlementBo bo, HttpServletResponse response) { + List list = ctrSubcontractProgressSettlementService.queryList(bo); + ExcelUtil.exportExcel(list, "分包合同进度结算", CtrSubcontractProgressSettlementVo.class, response); + } + + /** + * 获取分包合同进度结算详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("ctr:subcontractProgressSettlement:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(ctrSubcontractProgressSettlementService.queryById(id)); + } + + /** + * 新增分包合同进度结算 + */ + @SaCheckPermission("ctr:subcontractProgressSettlement:add") + @Log(title = "分包合同进度结算", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated @RequestBody CtrSubcontractProgressSettlementCreateReq req) { + return toAjax(ctrSubcontractProgressSettlementService.insertByBo(req)); + } + + /** + * 修改分包合同进度结算 + */ + @SaCheckPermission("ctr:subcontractProgressSettlement:edit") + @Log(title = "分包合同进度结算", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated @RequestBody CtrSubcontractProgressSettlementUpdateReq req) { + return toAjax(ctrSubcontractProgressSettlementService.updateByBo(req)); + } + + /** + * 删除分包合同进度结算 + * + * @param ids 主键串 + */ + @SaCheckPermission("ctr:subcontractProgressSettlement:remove") + @Log(title = "分包合同进度结算", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(ctrSubcontractProgressSettlementService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/controller/CtrSubcontractProgressSettlementItemController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/controller/CtrSubcontractProgressSettlementItemController.java new file mode 100644 index 00000000..a3248ad7 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/controller/CtrSubcontractProgressSettlementItemController.java @@ -0,0 +1,105 @@ +package org.dromara.ctr.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.ctr.domain.vo.CtrSubcontractProgressSettlementItemVo; +import org.dromara.ctr.domain.bo.CtrSubcontractProgressSettlementItemBo; +import org.dromara.ctr.service.ICtrSubcontractProgressSettlementItemService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 分包合同进度结算清单 + * + * @author lilemy + * @date 2025-10-18 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/ctr/subcontractProgressSettlementItem") +public class CtrSubcontractProgressSettlementItemController extends BaseController { + + private final ICtrSubcontractProgressSettlementItemService ctrSubcontractProgressSettlementItemService; + + /** + * 查询分包合同进度结算清单列表 + */ + @SaCheckPermission("ctr:subcontractProgressSettlementItem:list") + @GetMapping("/list") + public TableDataInfo list(CtrSubcontractProgressSettlementItemBo bo, PageQuery pageQuery) { + return ctrSubcontractProgressSettlementItemService.queryPageList(bo, pageQuery); + } + + /** + * 导出分包合同进度结算清单列表 + */ + @SaCheckPermission("ctr:subcontractProgressSettlementItem:export") + @Log(title = "分包合同进度结算清单", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(CtrSubcontractProgressSettlementItemBo bo, HttpServletResponse response) { + List list = ctrSubcontractProgressSettlementItemService.queryList(bo); + ExcelUtil.exportExcel(list, "分包合同进度结算清单", CtrSubcontractProgressSettlementItemVo.class, response); + } + + /** + * 获取分包合同进度结算清单详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("ctr:subcontractProgressSettlementItem:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(ctrSubcontractProgressSettlementItemService.queryById(id)); + } + + /** + * 新增分包合同进度结算清单 + */ + @SaCheckPermission("ctr:subcontractProgressSettlementItem:add") + @Log(title = "分包合同进度结算清单", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody CtrSubcontractProgressSettlementItemBo bo) { + return toAjax(ctrSubcontractProgressSettlementItemService.insertByBo(bo)); + } + + /** + * 修改分包合同进度结算清单 + */ + @SaCheckPermission("ctr:subcontractProgressSettlementItem:edit") + @Log(title = "分包合同进度结算清单", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody CtrSubcontractProgressSettlementItemBo bo) { + return toAjax(ctrSubcontractProgressSettlementItemService.updateByBo(bo)); + } + + /** + * 删除分包合同进度结算清单 + * + * @param ids 主键串 + */ + @SaCheckPermission("ctr:subcontractProgressSettlementItem:remove") + @Log(title = "分包合同进度结算清单", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(ctrSubcontractProgressSettlementItemService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/CtrContractProgressSettlement.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/CtrContractProgressSettlement.java new file mode 100644 index 00000000..f89196c8 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/CtrContractProgressSettlement.java @@ -0,0 +1,139 @@ +package org.dromara.ctr.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.mybatis.core.domain.BaseEntity; + +import java.io.Serial; +import java.math.BigDecimal; +import java.time.LocalDate; + +/** + * 承包合同进度结算对象 ctr_contract_progress_settlement + * + * @author lilemy + * @date 2025-10-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("ctr_contract_progress_settlement") +public class CtrContractProgressSettlement extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 所属部门 + */ + private Long deptId; + + /** + * 单据编码 + */ + private String documentCode; + + /** + * 标题 + */ + private String title; + + /** + * 结算日期 + */ + private LocalDate settlementDate; + + /** + * 合同编码 + */ + private String contractCode; + + /** + * 合同名称 + */ + private String contractName; + + /** + * 统计周期 + */ + private String contractProgress; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 审批金额 + */ + private BigDecimal approvalAmount; + + /** + * 计量开始日期 + */ + private LocalDate measureDateBegin; + + /** + * 计量结束日期 + */ + private LocalDate measureDateEnd; + + /** + * 结算单位(客户) + */ + private Long settlementUnit; + + /** + * 本期结算金额 + */ + private BigDecimal settlementMoney; + + /** + * 本期扣款金额 + */ + private BigDecimal deductionMoney; + + /** + * 本期奖励金额 + */ + private BigDecimal bonus; + + /** + * 合同金额 + */ + private BigDecimal contractAmount; + + /** + * 本次结算比例 + */ + private BigDecimal thisSettlementRatio; + + /** + * 支付条款 + */ + private Long paymentTerms; + + /** + * 多文件逗号分隔 + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/CtrContractProgressSettlementItem.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/CtrContractProgressSettlementItem.java new file mode 100644 index 00000000..ac1cd262 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/CtrContractProgressSettlementItem.java @@ -0,0 +1,107 @@ +package org.dromara.ctr.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; + +/** + * 承包合同进度结算清单对象 ctr_contract_progress_settlement_item + * + * @author lilemy + * @date 2025-10-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("ctr_contract_progress_settlement_item") +public class CtrContractProgressSettlementItem extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 结算单ID + */ + private Long settlementId; + + /** + * 类型(1合同内清单 2变更增加清单 3合同外清单) + */ + private String type; + + /** + * 编码 + */ + private String code; + + /** + * 合同清单名称 + */ + private String name; + + /** + * 计量单位 + */ + private String unit; + + /** + * 单价 + */ + private BigDecimal unitPrice; + + /** + * 含税单价 + */ + private BigDecimal taxUnitPrice; + + /** + * 本期结算数量 + */ + private BigDecimal currentQty; + + /** + * 本期结算百分比 + */ + private BigDecimal currentRate; + + /** + * 本期结算金额 + */ + private BigDecimal currentAmount; + + /** + * 本期结算不含税金额 + */ + private BigDecimal currentNoAmount; + + /** + * 本期审批数量 + */ + private BigDecimal currentApprovedQty; + + /** + * 本期审批金额 + */ + private BigDecimal currentApprovedAmount; + + /** + * 税率(%) + */ + private String taxRate; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/CtrSubcontractProgressSettlement.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/CtrSubcontractProgressSettlement.java new file mode 100644 index 00000000..a873a84d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/CtrSubcontractProgressSettlement.java @@ -0,0 +1,118 @@ +package org.dromara.ctr.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; + +/** + * 分包合同进度结算对象 ctr_subcontract_progress_settlement + * + * @author lilemy + * @date 2025-10-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("ctr_subcontract_progress_settlement") +public class CtrSubcontractProgressSettlement extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 单据编码 + */ + private String documentCode; + + /** + * 标题 + */ + private String title; + + /** + * 单据日期 + */ + private LocalDate documentDate; + + /** + * 合同编码 + */ + private String contractCode; + + /** + * 合同名称 + */ + private String contractName; + + /** + * 统计周期 + */ + private String contractProgress; + + /** + * 计量开始日期 + */ + private LocalDate measureDateBegin; + + /** + * 计量结束日期 + */ + private LocalDate measureDateEnd; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 审批金额 + */ + private BigDecimal approvalAmount; + + /** + * 结算单位 + */ + private Long settlementUnit; + + /** + * 合同金额 + */ + private BigDecimal contractAmount; + + /** + * 本次结算比例 + */ + private BigDecimal currentSettlementRate; + + /** + * 文件ID + */ + private String fileId; + + /** + * 审核状态 + */ + private String auditStatus; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/CtrSubcontractProgressSettlementItem.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/CtrSubcontractProgressSettlementItem.java new file mode 100644 index 00000000..4081ee94 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/CtrSubcontractProgressSettlementItem.java @@ -0,0 +1,130 @@ +package org.dromara.ctr.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 分包合同进度结算清单对象 ctr_subcontract_progress_settlement_item + * + * @author lilemy + * @date 2025-10-18 + */ +@Data +@TableName("ctr_subcontract_progress_settlement_item") +public class CtrSubcontractProgressSettlementItem implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 结算单ID + */ + private Long settlementId; + + /** + * 类型(1合同内清单 2变更增加清单 3合同外清单) + */ + private String type; + + /** + * 编码 + */ + private String code; + + /** + * 合同清单名称 + */ + private String name; + + /** + * 计量单位 + */ + private String unit; + + /** + * 单价 + */ + private BigDecimal unitPrice; + + /** + * 含税单价 + */ + private BigDecimal taxUnitPrice; + + /** + * 本期结算数量 + */ + private BigDecimal currentQty; + + /** + * 本期结算百分比 + */ + private BigDecimal currentRate; + + /** + * 本期结算金额 + */ + private BigDecimal currentAmount; + + /** + * 本期结算不含税金额 + */ + private BigDecimal currentNoAmount; + + /** + * 本期审批数量 + */ + private BigDecimal currentApprovedQty; + + /** + * 本期审批金额 + */ + private BigDecimal currentApprovedAmount; + + /** + * 税率(%) + */ + private String taxRate; + + /** + * 税额 + */ + private String tax; + + /** + * WBS工作分解结构 + */ + private String wbs; + + /** + * CBS成本分解结构 + */ + private String cbs; + + /** + * CBS预算总额 + */ + private BigDecimal cbsBudgetTotal; + + /** + * CBS余额 + */ + private BigDecimal cbsBalance; + + /** + * 备注 + */ + private String remark; + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/bo/CtrContractProgressSettlementBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/bo/CtrContractProgressSettlementBo.java new file mode 100644 index 00000000..f49a6b67 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/bo/CtrContractProgressSettlementBo.java @@ -0,0 +1,145 @@ +package org.dromara.ctr.domain.bo; + +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.ctr.domain.CtrContractProgressSettlement; + +import java.math.BigDecimal; +import java.time.LocalDate; + +/** + * 承包合同进度结算业务对象 ctr_contract_progress_settlement + * + * @author lilemy + * @date 2025-10-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = CtrContractProgressSettlement.class, reverseConvertGenerate = false) +public class CtrContractProgressSettlementBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = {EditGroup.class}) + private Long id; + + /** + * 所属部门 + */ + @NotNull(message = "所属部门不能为空", groups = {AddGroup.class, EditGroup.class}) + private Long deptId; + + /** + * 单据编码 + */ + @NotBlank(message = "单据编码不能为空", groups = {AddGroup.class, EditGroup.class}) + private String documentCode; + + /** + * 标题 + */ + @NotBlank(message = "标题不能为空", groups = {AddGroup.class, EditGroup.class}) + private String title; + + /** + * 结算日期 + */ + @NotNull(message = "结算日期不能为空", groups = {AddGroup.class, EditGroup.class}) + private LocalDate settlementDate; + + /** + * 合同编码 + */ + @NotBlank(message = "合同编码不能为空", groups = {AddGroup.class, EditGroup.class}) + private String contractCode; + + /** + * 合同名称 + */ + private String contractName; + + /** + * 统计周期 + */ + private String contractProgress; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 审批金额 + */ + @NotNull(message = "审批金额不能为空", groups = {AddGroup.class, EditGroup.class}) + private BigDecimal approvalAmount; + + /** + * 计量开始日期 + */ + private LocalDate measureDateBegin; + + /** + * 计量结束日期 + */ + private LocalDate measureDateEnd; + + /** + * 结算单位(客户) + */ + private Long settlementUnit; + + /** + * 本期结算金额 + */ + private BigDecimal settlementMoney; + + /** + * 本期扣款金额 + */ + private BigDecimal deductionMoney; + + /** + * 本期奖励金额 + */ + private BigDecimal bonus; + + /** + * 合同金额 + */ + private BigDecimal contractAmount; + + /** + * 本次结算比例 + */ + private BigDecimal thisSettlementRatio; + + /** + * 支付条款 + */ + private Long paymentTerms; + + /** + * 多文件逗号分隔 + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/bo/CtrContractProgressSettlementItemBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/bo/CtrContractProgressSettlementItemBo.java new file mode 100644 index 00000000..763c0b63 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/bo/CtrContractProgressSettlementItemBo.java @@ -0,0 +1,110 @@ +package org.dromara.ctr.domain.bo; + +import org.dromara.ctr.domain.CtrContractProgressSettlementItem; +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; + +/** + * 承包合同进度结算清单业务对象 ctr_contract_progress_settlement_item + * + * @author lilemy + * @date 2025-10-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = CtrContractProgressSettlementItem.class, reverseConvertGenerate = false) +public class CtrContractProgressSettlementItemBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 结算单ID + */ + @NotNull(message = "结算单ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long settlementId; + + /** + * 类型(1合同内清单 2变更增加清单 3合同外清单) + */ + @NotBlank(message = "类型(1合同内清单 2变更增加清单 3合同外清单)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String type; + + /** + * 编码 + */ + @NotBlank(message = "编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String code; + + /** + * 合同清单名称 + */ + @NotBlank(message = "合同清单名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String name; + + /** + * 计量单位 + */ + @NotBlank(message = "计量单位不能为空", groups = { AddGroup.class, EditGroup.class }) + private String unit; + + /** + * 单价 + */ + private BigDecimal unitPrice; + + /** + * 含税单价 + */ + private BigDecimal taxUnitPrice; + + /** + * 本期结算数量 + */ + private BigDecimal currentQty; + + /** + * 本期结算百分比 + */ + private BigDecimal currentRate; + + /** + * 本期结算金额 + */ + private BigDecimal currentAmount; + + /** + * 本期结算不含税金额 + */ + private BigDecimal currentNoAmount; + + /** + * 本期审批数量 + */ + private BigDecimal currentApprovedQty; + + /** + * 本期审批金额 + */ + private BigDecimal currentApprovedAmount; + + /** + * 税率(%) + */ + private String taxRate; + + /** + * 备注 + */ + private String remark; + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/bo/CtrSubcontractProgressSettlementBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/bo/CtrSubcontractProgressSettlementBo.java new file mode 100644 index 00000000..d12b7525 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/bo/CtrSubcontractProgressSettlementBo.java @@ -0,0 +1,122 @@ +package org.dromara.ctr.domain.bo; + +import org.dromara.ctr.domain.CtrSubcontractProgressSettlement; +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; + +/** + * 分包合同进度结算业务对象 ctr_subcontract_progress_settlement + * + * @author lilemy + * @date 2025-10-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = CtrSubcontractProgressSettlement.class, reverseConvertGenerate = false) +public class CtrSubcontractProgressSettlementBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 单据编码 + */ + @NotBlank(message = "单据编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String documentCode; + + /** + * 标题 + */ + @NotBlank(message = "标题不能为空", groups = { AddGroup.class, EditGroup.class }) + private String title; + + /** + * 单据日期 + */ + @NotNull(message = "单据日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate documentDate; + + /** + * 合同编码 + */ + @NotBlank(message = "合同编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String contractCode; + + /** + * 合同名称 + */ + private String contractName; + + /** + * 统计周期 + */ + private String contractProgress; + + /** + * 计量开始日期 + */ + private LocalDate measureDateBegin; + + /** + * 计量结束日期 + */ + private LocalDate measureDateEnd; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 审批金额 + */ + @NotNull(message = "审批金额不能为空", groups = { AddGroup.class, EditGroup.class }) + private BigDecimal approvalAmount; + + /** + * 结算单位 + */ + private Long settlementUnit; + + /** + * 合同金额 + */ + private BigDecimal contractAmount; + + /** + * 本次结算比例 + */ + private BigDecimal currentSettlementRate; + + /** + * 文件ID + */ + private String fileId; + + /** + * 审核状态 + */ + private String auditStatus; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/bo/CtrSubcontractProgressSettlementItemBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/bo/CtrSubcontractProgressSettlementItemBo.java new file mode 100644 index 00000000..e29126d3 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/bo/CtrSubcontractProgressSettlementItemBo.java @@ -0,0 +1,136 @@ +package org.dromara.ctr.domain.bo; + +import org.dromara.ctr.domain.CtrSubcontractProgressSettlementItem; +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; + +/** + * 分包合同进度结算清单业务对象 ctr_subcontract_progress_settlement_item + * + * @author lilemy + * @date 2025-10-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = CtrSubcontractProgressSettlementItem.class, reverseConvertGenerate = false) +public class CtrSubcontractProgressSettlementItemBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 结算单ID + */ + @NotNull(message = "结算单ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long settlementId; + + /** + * 类型(1合同内清单 2变更增加清单 3合同外清单) + */ + @NotBlank(message = "类型(1合同内清单 2变更增加清单 3合同外清单)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String type; + + /** + * 编码 + */ + @NotBlank(message = "编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String code; + + /** + * 合同清单名称 + */ + @NotBlank(message = "合同清单名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String name; + + /** + * 计量单位 + */ + @NotBlank(message = "计量单位不能为空", groups = { AddGroup.class, EditGroup.class }) + private String unit; + + /** + * 单价 + */ + private BigDecimal unitPrice; + + /** + * 含税单价 + */ + private BigDecimal taxUnitPrice; + + /** + * 本期结算数量 + */ + private BigDecimal currentQty; + + /** + * 本期结算百分比 + */ + private BigDecimal currentRate; + + /** + * 本期结算金额 + */ + private BigDecimal currentAmount; + + /** + * 本期结算不含税金额 + */ + private BigDecimal currentNoAmount; + + /** + * 本期审批数量 + */ + private BigDecimal currentApprovedQty; + + /** + * 本期审批金额 + */ + private BigDecimal currentApprovedAmount; + + /** + * 税率(%) + */ + private String taxRate; + + /** + * 税额 + */ + private String tax; + + /** + * WBS工作分解结构 + */ + private String wbs; + + /** + * CBS成本分解结构 + */ + private String cbs; + + /** + * CBS预算总额 + */ + private BigDecimal cbsBudgetTotal; + + /** + * CBS余额 + */ + private BigDecimal cbsBalance; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrContractProgressSettlementCreateReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrContractProgressSettlementCreateReq.java new file mode 100644 index 00000000..7ced0af4 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrContractProgressSettlementCreateReq.java @@ -0,0 +1,154 @@ +package org.dromara.ctr.domain.dto; + +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import org.dromara.ctr.domain.CtrContractProgressSettlement; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.List; + +/** + * 承包合同进度结算业务对象 ctr_contract_progress_settlement + * + * @author lilemy + * @date 2025-10-18 + */ +@Data +@AutoMapper(target = CtrContractProgressSettlement.class, reverseConvertGenerate = false) +public class CtrContractProgressSettlementCreateReq implements Serializable { + + @Serial + private static final long serialVersionUID = -7707258738219359278L; + + /** + * 所属部门 + */ + @NotNull(message = "所属部门不能为空") + private Long deptId; + + /** + * 单据编码 + */ + @NotBlank(message = "单据编码不能为空") + private String documentCode; + + /** + * 标题 + */ + @NotBlank(message = "标题不能为空") + private String title; + + /** + * 结算日期 + */ + @NotNull(message = "结算日期不能为空") + private LocalDate settlementDate; + + /** + * 合同编码 + */ + @NotBlank(message = "合同编码不能为空") + private String contractCode; + + /** + * 合同名称 + */ + private String contractName; + + /** + * 统计周期 + */ + private String contractProgress; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 审批金额 + */ + @NotNull(message = "审批金额不能为空") + private BigDecimal approvalAmount; + + /** + * 计量开始日期 + */ + private LocalDate measureDateBegin; + + /** + * 计量结束日期 + */ + private LocalDate measureDateEnd; + + /** + * 结算单位(客户) + */ + private Long settlementUnit; + + /** + * 本期结算金额 + */ + private BigDecimal settlementMoney; + + /** + * 本期扣款金额 + */ + private BigDecimal deductionMoney; + + /** + * 本期奖励金额 + */ + private BigDecimal bonus; + + /** + * 合同金额 + */ + private BigDecimal contractAmount; + + /** + * 本次结算比例 + */ + private BigDecimal thisSettlementRatio; + + /** + * 支付条款 + */ + private Long paymentTerms; + + /** + * 多文件逗号分隔 + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + /** + * 合同内清单 + */ + private List inInventory; + + /** + * 变更增加清单 + */ + private List changeInventory; + + /** + * 合同外清单 + */ + private List outInventory; + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrContractProgressSettlementItemCreateReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrContractProgressSettlementItemCreateReq.java new file mode 100644 index 00000000..c848838c --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrContractProgressSettlementItemCreateReq.java @@ -0,0 +1,86 @@ +package org.dromara.ctr.domain.dto; + +import jakarta.validation.constraints.NotBlank; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * @author lilemy + * @date 2025-10-18 17:05 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class CtrContractProgressSettlementItemCreateReq { + + /** + * 编码 + */ + @NotBlank(message = "编码不能为空") + private String code; + + /** + * 合同清单名称 + */ + @NotBlank(message = "合同清单名称不能为空") + private String name; + + /** + * 计量单位 + */ + @NotBlank(message = "计量单位不能为空") + private String unit; + + /** + * 单价 + */ + private BigDecimal unitPrice; + + /** + * 含税单价 + */ + private BigDecimal taxUnitPrice; + + /** + * 本期结算数量 + */ + private BigDecimal currentQty; + + /** + * 本期结算百分比 + */ + private BigDecimal currentRate; + + /** + * 本期结算金额 + */ + private BigDecimal currentAmount; + + /** + * 本期结算不含税金额 + */ + private BigDecimal currentNoAmount; + + /** + * 本期审批数量 + */ + private BigDecimal currentApprovedQty; + + /** + * 本期审批金额 + */ + private BigDecimal currentApprovedAmount; + + /** + * 税率(%) + */ + private String taxRate; + + /** + * 备注 + */ + private String remark; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrContractProgressSettlementItemUpdateReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrContractProgressSettlementItemUpdateReq.java new file mode 100644 index 00000000..397817b7 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrContractProgressSettlementItemUpdateReq.java @@ -0,0 +1,91 @@ +package org.dromara.ctr.domain.dto; + +import jakarta.validation.constraints.NotBlank; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * @author lilemy + * @date 2025-10-18 17:39 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class CtrContractProgressSettlementItemUpdateReq { + + /** + * 主键ID + */ + private Long id; + + /** + * 编码 + */ + @NotBlank(message = "编码不能为空") + private String code; + + /** + * 合同清单名称 + */ + @NotBlank(message = "合同清单名称不能为空") + private String name; + + /** + * 计量单位 + */ + @NotBlank(message = "计量单位不能为空") + private String unit; + + /** + * 单价 + */ + private BigDecimal unitPrice; + + /** + * 含税单价 + */ + private BigDecimal taxUnitPrice; + + /** + * 本期结算数量 + */ + private BigDecimal currentQty; + + /** + * 本期结算百分比 + */ + private BigDecimal currentRate; + + /** + * 本期结算金额 + */ + private BigDecimal currentAmount; + + /** + * 本期结算不含税金额 + */ + private BigDecimal currentNoAmount; + + /** + * 本期审批数量 + */ + private BigDecimal currentApprovedQty; + + /** + * 本期审批金额 + */ + private BigDecimal currentApprovedAmount; + + /** + * 税率(%) + */ + private String taxRate; + + /** + * 备注 + */ + private String remark; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrContractProgressSettlementUpdateReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrContractProgressSettlementUpdateReq.java new file mode 100644 index 00000000..48830249 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrContractProgressSettlementUpdateReq.java @@ -0,0 +1,157 @@ +package org.dromara.ctr.domain.dto; + +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import org.dromara.ctr.domain.CtrContractProgressSettlement; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.List; + +/** + * @author lilemy + * @date 2025-10-18 17:30 + */ +@Data +@AutoMapper(target = CtrContractProgressSettlement.class, reverseConvertGenerate = false) +public class CtrContractProgressSettlementUpdateReq implements Serializable { + + @Serial + private static final long serialVersionUID = -105855005415297131L; + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空") + private Long id; + + /** + * 所属部门 + */ + @NotNull(message = "所属部门不能为空") + private Long deptId; + + /** + * 单据编码 + */ + @NotBlank(message = "单据编码不能为空") + private String documentCode; + + /** + * 标题 + */ + @NotBlank(message = "标题不能为空") + private String title; + + /** + * 结算日期 + */ + @NotNull(message = "结算日期不能为空") + private LocalDate settlementDate; + + /** + * 合同编码 + */ + @NotBlank(message = "合同编码不能为空") + private String contractCode; + + /** + * 合同名称 + */ + private String contractName; + + /** + * 统计周期 + */ + private String contractProgress; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 审批金额 + */ + @NotNull(message = "审批金额不能为空") + private BigDecimal approvalAmount; + + /** + * 计量开始日期 + */ + private LocalDate measureDateBegin; + + /** + * 计量结束日期 + */ + private LocalDate measureDateEnd; + + /** + * 结算单位(客户) + */ + private Long settlementUnit; + + /** + * 本期结算金额 + */ + private BigDecimal settlementMoney; + + /** + * 本期扣款金额 + */ + private BigDecimal deductionMoney; + + /** + * 本期奖励金额 + */ + private BigDecimal bonus; + + /** + * 合同金额 + */ + private BigDecimal contractAmount; + + /** + * 本次结算比例 + */ + private BigDecimal thisSettlementRatio; + + /** + * 支付条款 + */ + private Long paymentTerms; + + /** + * 多文件逗号分隔 + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + /** + * 合同内清单 + */ + private List inInventory; + + /** + * 变更增加清单 + */ + private List changeInventory; + + /** + * 合同外清单 + */ + private List outInventory; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrSubcontractProgressSettlementCreateReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrSubcontractProgressSettlementCreateReq.java new file mode 100644 index 00000000..b8a0e392 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrSubcontractProgressSettlementCreateReq.java @@ -0,0 +1,130 @@ +package org.dromara.ctr.domain.dto; + +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import org.dromara.ctr.domain.CtrSubcontractProgressSettlement; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.List; + +/** + * @author lilemy + * @date 2025-10-18 19:14 + */ +@Data +@AutoMapper(target = CtrSubcontractProgressSettlement.class, reverseConvertGenerate = false) +public class CtrSubcontractProgressSettlementCreateReq implements Serializable { + + @Serial + private static final long serialVersionUID = 770553999547826460L; + + /** + * 单据编码 + */ + @NotBlank(message = "单据编码不能为空") + private String documentCode; + + /** + * 标题 + */ + @NotBlank(message = "标题不能为空") + private String title; + + /** + * 单据日期 + */ + @NotNull(message = "单据日期不能为空") + private LocalDate documentDate; + + /** + * 合同编码 + */ + @NotBlank(message = "合同编码不能为空") + private String contractCode; + + /** + * 合同名称 + */ + private String contractName; + + /** + * 统计周期 + */ + private String contractProgress; + + /** + * 计量开始日期 + */ + private LocalDate measureDateBegin; + + /** + * 计量结束日期 + */ + private LocalDate measureDateEnd; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 审批金额 + */ + @NotNull(message = "审批金额不能为空") + private BigDecimal approvalAmount; + + /** + * 结算单位 + */ + private Long settlementUnit; + + /** + * 合同金额 + */ + private BigDecimal contractAmount; + + /** + * 本次结算比例 + */ + private BigDecimal currentSettlementRate; + + /** + * 文件ID + */ + private String fileId; + + /** + * 审核状态 + */ + private String auditStatus; + + /** + * 备注 + */ + private String remark; + + /** + * 合同内清单 + */ + private List inInventory; + + /** + * 变更增加清单 + */ + private List changeInventory; + + /** + * 合同外清单 + */ + private List outInventory; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrSubcontractProgressSettlementItemCreateReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrSubcontractProgressSettlementItemCreateReq.java new file mode 100644 index 00000000..66d53895 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrSubcontractProgressSettlementItemCreateReq.java @@ -0,0 +1,115 @@ +package org.dromara.ctr.domain.dto; + +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import org.dromara.ctr.domain.CtrSubcontractProgressSettlementItem; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @author lilemy + * @date 2025-10-18 19:17 + */ +@Data +@AutoMapper(target = CtrSubcontractProgressSettlementItem.class, reverseConvertGenerate = false) +public class CtrSubcontractProgressSettlementItemCreateReq implements Serializable { + + @Serial + private static final long serialVersionUID = -7720839036718185218L; + + /** + * 编码 + */ + @NotBlank(message = "编码不能为空") + private String code; + + /** + * 合同清单名称 + */ + @NotBlank(message = "合同清单名称不能为空") + private String name; + + /** + * 计量单位 + */ + @NotBlank(message = "计量单位不能为空") + private String unit; + + /** + * 单价 + */ + private BigDecimal unitPrice; + + /** + * 含税单价 + */ + private BigDecimal taxUnitPrice; + + /** + * 本期结算数量 + */ + private BigDecimal currentQty; + + /** + * 本期结算百分比 + */ + private BigDecimal currentRate; + + /** + * 本期结算金额 + */ + private BigDecimal currentAmount; + + /** + * 本期结算不含税金额 + */ + private BigDecimal currentNoAmount; + + /** + * 本期审批数量 + */ + private BigDecimal currentApprovedQty; + + /** + * 本期审批金额 + */ + private BigDecimal currentApprovedAmount; + + /** + * 税率(%) + */ + private String taxRate; + + /** + * 税额 + */ + private String tax; + + /** + * WBS工作分解结构 + */ + private String wbs; + + /** + * CBS成本分解结构 + */ + private String cbs; + + /** + * CBS预算总额 + */ + private BigDecimal cbsBudgetTotal; + + /** + * CBS余额 + */ + private BigDecimal cbsBalance; + + /** + * 备注 + */ + private String remark; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrSubcontractProgressSettlementItemUpdateReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrSubcontractProgressSettlementItemUpdateReq.java new file mode 100644 index 00000000..43912961 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrSubcontractProgressSettlementItemUpdateReq.java @@ -0,0 +1,123 @@ +package org.dromara.ctr.domain.dto; + +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import org.dromara.ctr.domain.CtrSubcontractProgressSettlementItem; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @author lilemy + * @date 2025-10-18 19:21 + */ +@Data +@AutoMapper(target = CtrSubcontractProgressSettlementItem.class, reverseConvertGenerate = false) +public class CtrSubcontractProgressSettlementItemUpdateReq implements Serializable { + + @Serial + private static final long serialVersionUID = 4319471696029509036L; + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空") + private Long id; + + /** + * 编码 + */ + @NotBlank(message = "编码不能为空") + private String code; + + /** + * 合同清单名称 + */ + @NotBlank(message = "合同清单名称不能为空") + private String name; + + /** + * 计量单位 + */ + @NotBlank(message = "计量单位不能为空") + private String unit; + + /** + * 单价 + */ + private BigDecimal unitPrice; + + /** + * 含税单价 + */ + private BigDecimal taxUnitPrice; + + /** + * 本期结算数量 + */ + private BigDecimal currentQty; + + /** + * 本期结算百分比 + */ + private BigDecimal currentRate; + + /** + * 本期结算金额 + */ + private BigDecimal currentAmount; + + /** + * 本期结算不含税金额 + */ + private BigDecimal currentNoAmount; + + /** + * 本期审批数量 + */ + private BigDecimal currentApprovedQty; + + /** + * 本期审批金额 + */ + private BigDecimal currentApprovedAmount; + + /** + * 税率(%) + */ + private String taxRate; + + /** + * 税额 + */ + private String tax; + + /** + * WBS工作分解结构 + */ + private String wbs; + + /** + * CBS成本分解结构 + */ + private String cbs; + + /** + * CBS预算总额 + */ + private BigDecimal cbsBudgetTotal; + + /** + * CBS余额 + */ + private BigDecimal cbsBalance; + + /** + * 备注 + */ + private String remark; + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrSubcontractProgressSettlementUpdateReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrSubcontractProgressSettlementUpdateReq.java new file mode 100644 index 00000000..57d77232 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrSubcontractProgressSettlementUpdateReq.java @@ -0,0 +1,136 @@ +package org.dromara.ctr.domain.dto; + +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import org.dromara.ctr.domain.CtrSubcontractProgressSettlement; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.List; + +/** + * @author lilemy + * @date 2025-10-18 19:20 + */ +@Data +@AutoMapper(target = CtrSubcontractProgressSettlement.class, reverseConvertGenerate = false) +public class CtrSubcontractProgressSettlementUpdateReq implements Serializable { + + @Serial + private static final long serialVersionUID = -7099475527833822253L; + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空") + private Long id; + + /** + * 单据编码 + */ + @NotBlank(message = "单据编码不能为空") + private String documentCode; + + /** + * 标题 + */ + @NotBlank(message = "标题不能为空") + private String title; + + /** + * 单据日期 + */ + @NotNull(message = "单据日期不能为空") + private LocalDate documentDate; + + /** + * 合同编码 + */ + @NotBlank(message = "合同编码不能为空") + private String contractCode; + + /** + * 合同名称 + */ + private String contractName; + + /** + * 统计周期 + */ + private String contractProgress; + + /** + * 计量开始日期 + */ + private LocalDate measureDateBegin; + + /** + * 计量结束日期 + */ + private LocalDate measureDateEnd; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 审批金额 + */ + @NotNull(message = "审批金额不能为空") + private BigDecimal approvalAmount; + + /** + * 结算单位 + */ + private Long settlementUnit; + + /** + * 合同金额 + */ + private BigDecimal contractAmount; + + /** + * 本次结算比例 + */ + private BigDecimal currentSettlementRate; + + /** + * 文件ID + */ + private String fileId; + + /** + * 审核状态 + */ + private String auditStatus; + + /** + * 备注 + */ + private String remark; + + /** + * 合同内清单 + */ + private List inInventory; + + /** + * 变更增加清单 + */ + private List changeInventory; + + /** + * 合同外清单 + */ + private List outInventory; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrContractProgressSettlementItemVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrContractProgressSettlementItemVo.java new file mode 100644 index 00000000..9fbcf61c --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrContractProgressSettlementItemVo.java @@ -0,0 +1,130 @@ +package org.dromara.ctr.domain.vo; + +import java.math.BigDecimal; +import org.dromara.ctr.domain.CtrContractProgressSettlementItem; +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; + + + +/** + * 承包合同进度结算清单视图对象 ctr_contract_progress_settlement_item + * + * @author lilemy + * @date 2025-10-18 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = CtrContractProgressSettlementItem.class) +public class CtrContractProgressSettlementItemVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 结算单ID + */ + @ExcelProperty(value = "结算单ID") + private Long settlementId; + + /** + * 类型(1合同内清单 2变更增加清单 3合同外清单) + */ + @ExcelProperty(value = "类型(1合同内清单 2变更增加清单 3合同外清单)") + private String type; + + /** + * 编码 + */ + @ExcelProperty(value = "编码") + private String code; + + /** + * 合同清单名称 + */ + @ExcelProperty(value = "合同清单名称") + private String name; + + /** + * 计量单位 + */ + @ExcelProperty(value = "计量单位") + private String unit; + + /** + * 单价 + */ + @ExcelProperty(value = "单价") + private BigDecimal unitPrice; + + /** + * 含税单价 + */ + @ExcelProperty(value = "含税单价") + private BigDecimal taxUnitPrice; + + /** + * 本期结算数量 + */ + @ExcelProperty(value = "本期结算数量") + private BigDecimal currentQty; + + /** + * 本期结算百分比 + */ + @ExcelProperty(value = "本期结算百分比") + private BigDecimal currentRate; + + /** + * 本期结算金额 + */ + @ExcelProperty(value = "本期结算金额") + private BigDecimal currentAmount; + + /** + * 本期结算不含税金额 + */ + @ExcelProperty(value = "本期结算不含税金额") + private BigDecimal currentNoAmount; + + /** + * 本期审批数量 + */ + @ExcelProperty(value = "本期审批数量") + private BigDecimal currentApprovedQty; + + /** + * 本期审批金额 + */ + @ExcelProperty(value = "本期审批金额") + private BigDecimal currentApprovedAmount; + + /** + * 税率(%) + */ + @ExcelProperty(value = "税率", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "xzd_tax_rate") + private String taxRate; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrContractProgressSettlementVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrContractProgressSettlementVo.java new file mode 100644 index 00000000..81851e95 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrContractProgressSettlementVo.java @@ -0,0 +1,180 @@ +package org.dromara.ctr.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.ctr.domain.CtrContractProgressSettlement; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.List; + + +/** + * 承包合同进度结算视图对象 ctr_contract_progress_settlement + * + * @author lilemy + * @date 2025-10-18 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = CtrContractProgressSettlement.class) +public class CtrContractProgressSettlementVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 所属部门 + */ + @ExcelProperty(value = "所属部门") + private Long deptId; + + /** + * 单据编码 + */ + @ExcelProperty(value = "单据编码") + private String documentCode; + + /** + * 标题 + */ + @ExcelProperty(value = "标题") + private String title; + + /** + * 结算日期 + */ + @ExcelProperty(value = "结算日期") + private LocalDate settlementDate; + + /** + * 合同编码 + */ + @ExcelProperty(value = "合同编码") + private String contractCode; + + /** + * 合同名称 + */ + @ExcelProperty(value = "合同名称") + private String contractName; + + /** + * 统计周期 + */ + @ExcelProperty(value = "统计周期") + private String contractProgress; + + /** + * 项目ID + */ + @ExcelProperty(value = "项目ID") + private Long projectId; + + /** + * 项目名称 + */ + @ExcelProperty(value = "项目名称") + @Translation(type = TransConstant.PROJECT_ID_TO_NAME, mapper = "projectId") + private String projectName; + + /** + * 审批金额 + */ + @ExcelProperty(value = "审批金额") + private BigDecimal approvalAmount; + + /** + * 计量开始日期 + */ + @ExcelProperty(value = "计量开始日期") + private LocalDate measureDateBegin; + + /** + * 计量结束日期 + */ + @ExcelProperty(value = "计量结束日期") + private LocalDate measureDateEnd; + + /** + * 结算单位(客户) + */ + @ExcelProperty(value = "结算单位(客户)") + private Long settlementUnit; + + /** + * 本期结算金额 + */ + @ExcelProperty(value = "本期结算金额") + private BigDecimal settlementMoney; + + /** + * 本期扣款金额 + */ + @ExcelProperty(value = "本期扣款金额") + private BigDecimal deductionMoney; + + /** + * 本期奖励金额 + */ + @ExcelProperty(value = "本期奖励金额") + private BigDecimal bonus; + + /** + * 合同金额 + */ + @ExcelProperty(value = "合同金额") + private BigDecimal contractAmount; + + /** + * 本次结算比例 + */ + @ExcelProperty(value = "本次结算比例") + private BigDecimal thisSettlementRatio; + + /** + * 支付条款 + */ + @ExcelProperty(value = "支付条款") + private Long paymentTerms; + + /** + * 多文件逗号分隔 + */ + @ExcelProperty(value = "多文件逗号分隔") + private String fileId; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 合同内清单 + */ + private List inInventory; + + /** + * 变更增加清单 + */ + private List changeInventory; + + /** + * 合同外清单 + */ + private List outInventory; + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrSubcontractProgressSettlementItemVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrSubcontractProgressSettlementItemVo.java new file mode 100644 index 00000000..e8e612fb --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrSubcontractProgressSettlementItemVo.java @@ -0,0 +1,160 @@ +package org.dromara.ctr.domain.vo; + +import java.math.BigDecimal; +import org.dromara.ctr.domain.CtrSubcontractProgressSettlementItem; +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; + + + +/** + * 分包合同进度结算清单视图对象 ctr_subcontract_progress_settlement_item + * + * @author lilemy + * @date 2025-10-18 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = CtrSubcontractProgressSettlementItem.class) +public class CtrSubcontractProgressSettlementItemVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 结算单ID + */ + @ExcelProperty(value = "结算单ID") + private Long settlementId; + + /** + * 类型(1合同内清单 2变更增加清单 3合同外清单) + */ + @ExcelProperty(value = "类型(1合同内清单 2变更增加清单 3合同外清单)") + private String type; + + /** + * 编码 + */ + @ExcelProperty(value = "编码") + private String code; + + /** + * 合同清单名称 + */ + @ExcelProperty(value = "合同清单名称") + private String name; + + /** + * 计量单位 + */ + @ExcelProperty(value = "计量单位") + private String unit; + + /** + * 单价 + */ + @ExcelProperty(value = "单价") + private BigDecimal unitPrice; + + /** + * 含税单价 + */ + @ExcelProperty(value = "含税单价") + private BigDecimal taxUnitPrice; + + /** + * 本期结算数量 + */ + @ExcelProperty(value = "本期结算数量") + private BigDecimal currentQty; + + /** + * 本期结算百分比 + */ + @ExcelProperty(value = "本期结算百分比") + private BigDecimal currentRate; + + /** + * 本期结算金额 + */ + @ExcelProperty(value = "本期结算金额") + private BigDecimal currentAmount; + + /** + * 本期结算不含税金额 + */ + @ExcelProperty(value = "本期结算不含税金额") + private BigDecimal currentNoAmount; + + /** + * 本期审批数量 + */ + @ExcelProperty(value = "本期审批数量") + private BigDecimal currentApprovedQty; + + /** + * 本期审批金额 + */ + @ExcelProperty(value = "本期审批金额") + private BigDecimal currentApprovedAmount; + + /** + * 税率(%) + */ + @ExcelProperty(value = "税率", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "xzd_tax_rate") + private String taxRate; + + /** + * 税额 + */ + @ExcelProperty(value = "税额") + private String tax; + + /** + * WBS工作分解结构 + */ + @ExcelProperty(value = "WBS工作分解结构") + private String wbs; + + /** + * CBS成本分解结构 + */ + @ExcelProperty(value = "CBS成本分解结构") + private String cbs; + + /** + * CBS预算总额 + */ + @ExcelProperty(value = "CBS预算总额") + private BigDecimal cbsBudgetTotal; + + /** + * CBS余额 + */ + @ExcelProperty(value = "CBS余额") + private BigDecimal cbsBalance; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrSubcontractProgressSettlementVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrSubcontractProgressSettlementVo.java new file mode 100644 index 00000000..32ec34bb --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrSubcontractProgressSettlementVo.java @@ -0,0 +1,153 @@ +package org.dromara.ctr.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.ctr.domain.CtrSubcontractProgressSettlement; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.List; + + +/** + * 分包合同进度结算视图对象 ctr_subcontract_progress_settlement + * + * @author lilemy + * @date 2025-10-18 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = CtrSubcontractProgressSettlement.class) +public class CtrSubcontractProgressSettlementVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 单据编码 + */ + @ExcelProperty(value = "单据编码") + private String documentCode; + + /** + * 标题 + */ + @ExcelProperty(value = "标题") + private String title; + + /** + * 单据日期 + */ + @ExcelProperty(value = "单据日期") + private LocalDate documentDate; + + /** + * 合同编码 + */ + @ExcelProperty(value = "合同编码") + private String contractCode; + + /** + * 合同名称 + */ + @ExcelProperty(value = "合同名称") + private String contractName; + + /** + * 统计周期 + */ + @ExcelProperty(value = "统计周期") + private String contractProgress; + + /** + * 计量开始日期 + */ + @ExcelProperty(value = "计量开始日期") + private LocalDate measureDateBegin; + + /** + * 计量结束日期 + */ + @ExcelProperty(value = "计量结束日期") + private LocalDate measureDateEnd; + + /** + * 项目ID + */ + @ExcelProperty(value = "项目ID") + private Long projectId; + + /** + * 项目名称 + */ + @ExcelProperty(value = "项目名称") + private String projectName; + + /** + * 审批金额 + */ + @ExcelProperty(value = "审批金额") + private BigDecimal approvalAmount; + + /** + * 结算单位 + */ + @ExcelProperty(value = "结算单位") + private Long settlementUnit; + + /** + * 合同金额 + */ + @ExcelProperty(value = "合同金额") + private BigDecimal contractAmount; + + /** + * 本次结算比例 + */ + @ExcelProperty(value = "本次结算比例") + private BigDecimal currentSettlementRate; + + /** + * 文件ID + */ + @ExcelProperty(value = "文件ID") + private String fileId; + + /** + * 审核状态 + */ + @ExcelProperty(value = "审核状态") + private String auditStatus; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 合同内清单 + */ + private List inInventory; + + /** + * 变更增加清单 + */ + private List changeInventory; + + /** + * 合同外清单 + */ + private List outInventory; + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/mapper/CtrContractProgressSettlementItemMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/mapper/CtrContractProgressSettlementItemMapper.java new file mode 100644 index 00000000..310c3d20 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/mapper/CtrContractProgressSettlementItemMapper.java @@ -0,0 +1,15 @@ +package org.dromara.ctr.mapper; + +import org.dromara.ctr.domain.CtrContractProgressSettlementItem; +import org.dromara.ctr.domain.vo.CtrContractProgressSettlementItemVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 承包合同进度结算清单Mapper接口 + * + * @author lilemy + * @date 2025-10-18 + */ +public interface CtrContractProgressSettlementItemMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/mapper/CtrContractProgressSettlementMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/mapper/CtrContractProgressSettlementMapper.java new file mode 100644 index 00000000..681646a6 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/mapper/CtrContractProgressSettlementMapper.java @@ -0,0 +1,15 @@ +package org.dromara.ctr.mapper; + +import org.dromara.ctr.domain.CtrContractProgressSettlement; +import org.dromara.ctr.domain.vo.CtrContractProgressSettlementVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 承包合同进度结算Mapper接口 + * + * @author lilemy + * @date 2025-10-18 + */ +public interface CtrContractProgressSettlementMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/mapper/CtrSubcontractProgressSettlementItemMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/mapper/CtrSubcontractProgressSettlementItemMapper.java new file mode 100644 index 00000000..25027590 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/mapper/CtrSubcontractProgressSettlementItemMapper.java @@ -0,0 +1,15 @@ +package org.dromara.ctr.mapper; + +import org.dromara.ctr.domain.CtrSubcontractProgressSettlementItem; +import org.dromara.ctr.domain.vo.CtrSubcontractProgressSettlementItemVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 分包合同进度结算清单Mapper接口 + * + * @author lilemy + * @date 2025-10-18 + */ +public interface CtrSubcontractProgressSettlementItemMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/mapper/CtrSubcontractProgressSettlementMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/mapper/CtrSubcontractProgressSettlementMapper.java new file mode 100644 index 00000000..15d27b4d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/mapper/CtrSubcontractProgressSettlementMapper.java @@ -0,0 +1,15 @@ +package org.dromara.ctr.mapper; + +import org.dromara.ctr.domain.CtrSubcontractProgressSettlement; +import org.dromara.ctr.domain.vo.CtrSubcontractProgressSettlementVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 分包合同进度结算Mapper接口 + * + * @author lilemy + * @date 2025-10-18 + */ +public interface CtrSubcontractProgressSettlementMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/ICtrContractProgressSettlementItemService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/ICtrContractProgressSettlementItemService.java new file mode 100644 index 00000000..d1d45600 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/ICtrContractProgressSettlementItemService.java @@ -0,0 +1,70 @@ +package org.dromara.ctr.service; + +import org.dromara.ctr.domain.vo.CtrContractProgressSettlementItemVo; +import org.dromara.ctr.domain.bo.CtrContractProgressSettlementItemBo; +import org.dromara.ctr.domain.CtrContractProgressSettlementItem; +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 lilemy + * @date 2025-10-18 + */ +public interface ICtrContractProgressSettlementItemService extends IService{ + + /** + * 查询承包合同进度结算清单 + * + * @param id 主键 + * @return 承包合同进度结算清单 + */ + CtrContractProgressSettlementItemVo queryById(Long id); + + /** + * 分页查询承包合同进度结算清单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 承包合同进度结算清单分页列表 + */ + TableDataInfo queryPageList(CtrContractProgressSettlementItemBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的承包合同进度结算清单列表 + * + * @param bo 查询条件 + * @return 承包合同进度结算清单列表 + */ + List queryList(CtrContractProgressSettlementItemBo bo); + + /** + * 新增承包合同进度结算清单 + * + * @param bo 承包合同进度结算清单 + * @return 是否新增成功 + */ + Boolean insertByBo(CtrContractProgressSettlementItemBo bo); + + /** + * 修改承包合同进度结算清单 + * + * @param bo 承包合同进度结算清单 + * @return 是否修改成功 + */ + Boolean updateByBo(CtrContractProgressSettlementItemBo bo); + + /** + * 校验并批量删除承包合同进度结算清单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/ICtrContractProgressSettlementService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/ICtrContractProgressSettlementService.java new file mode 100644 index 00000000..18e95e79 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/ICtrContractProgressSettlementService.java @@ -0,0 +1,72 @@ +package org.dromara.ctr.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.ctr.domain.CtrContractProgressSettlement; +import org.dromara.ctr.domain.bo.CtrContractProgressSettlementBo; +import org.dromara.ctr.domain.dto.CtrContractProgressSettlementCreateReq; +import org.dromara.ctr.domain.dto.CtrContractProgressSettlementUpdateReq; +import org.dromara.ctr.domain.vo.CtrContractProgressSettlementVo; + +import java.util.Collection; +import java.util.List; + +/** + * 承包合同进度结算Service接口 + * + * @author lilemy + * @date 2025-10-18 + */ +public interface ICtrContractProgressSettlementService extends IService { + + /** + * 查询承包合同进度结算 + * + * @param id 主键 + * @return 承包合同进度结算 + */ + CtrContractProgressSettlementVo queryById(Long id); + + /** + * 分页查询承包合同进度结算列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 承包合同进度结算分页列表 + */ + TableDataInfo queryPageList(CtrContractProgressSettlementBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的承包合同进度结算列表 + * + * @param bo 查询条件 + * @return 承包合同进度结算列表 + */ + List queryList(CtrContractProgressSettlementBo bo); + + /** + * 新增承包合同进度结算 + * + * @param req 承包合同进度结算 + * @return 是否新增成功 + */ + Boolean insertByBo(CtrContractProgressSettlementCreateReq req); + + /** + * 修改承包合同进度结算 + * + * @param req 承包合同进度结算 + * @return 是否修改成功 + */ + Boolean updateByBo(CtrContractProgressSettlementUpdateReq req); + + /** + * 校验并批量删除承包合同进度结算信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/ICtrSubcontractProgressSettlementItemService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/ICtrSubcontractProgressSettlementItemService.java new file mode 100644 index 00000000..5c6d8705 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/ICtrSubcontractProgressSettlementItemService.java @@ -0,0 +1,70 @@ +package org.dromara.ctr.service; + +import org.dromara.ctr.domain.vo.CtrSubcontractProgressSettlementItemVo; +import org.dromara.ctr.domain.bo.CtrSubcontractProgressSettlementItemBo; +import org.dromara.ctr.domain.CtrSubcontractProgressSettlementItem; +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 lilemy + * @date 2025-10-18 + */ +public interface ICtrSubcontractProgressSettlementItemService extends IService{ + + /** + * 查询分包合同进度结算清单 + * + * @param id 主键 + * @return 分包合同进度结算清单 + */ + CtrSubcontractProgressSettlementItemVo queryById(Long id); + + /** + * 分页查询分包合同进度结算清单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 分包合同进度结算清单分页列表 + */ + TableDataInfo queryPageList(CtrSubcontractProgressSettlementItemBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的分包合同进度结算清单列表 + * + * @param bo 查询条件 + * @return 分包合同进度结算清单列表 + */ + List queryList(CtrSubcontractProgressSettlementItemBo bo); + + /** + * 新增分包合同进度结算清单 + * + * @param bo 分包合同进度结算清单 + * @return 是否新增成功 + */ + Boolean insertByBo(CtrSubcontractProgressSettlementItemBo bo); + + /** + * 修改分包合同进度结算清单 + * + * @param bo 分包合同进度结算清单 + * @return 是否修改成功 + */ + Boolean updateByBo(CtrSubcontractProgressSettlementItemBo bo); + + /** + * 校验并批量删除分包合同进度结算清单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/ICtrSubcontractProgressSettlementService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/ICtrSubcontractProgressSettlementService.java new file mode 100644 index 00000000..2eb56019 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/ICtrSubcontractProgressSettlementService.java @@ -0,0 +1,72 @@ +package org.dromara.ctr.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.ctr.domain.CtrSubcontractProgressSettlement; +import org.dromara.ctr.domain.bo.CtrSubcontractProgressSettlementBo; +import org.dromara.ctr.domain.dto.CtrSubcontractProgressSettlementCreateReq; +import org.dromara.ctr.domain.dto.CtrSubcontractProgressSettlementUpdateReq; +import org.dromara.ctr.domain.vo.CtrSubcontractProgressSettlementVo; + +import java.util.Collection; +import java.util.List; + +/** + * 分包合同进度结算Service接口 + * + * @author lilemy + * @date 2025-10-18 + */ +public interface ICtrSubcontractProgressSettlementService extends IService { + + /** + * 查询分包合同进度结算 + * + * @param id 主键 + * @return 分包合同进度结算 + */ + CtrSubcontractProgressSettlementVo queryById(Long id); + + /** + * 分页查询分包合同进度结算列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 分包合同进度结算分页列表 + */ + TableDataInfo queryPageList(CtrSubcontractProgressSettlementBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的分包合同进度结算列表 + * + * @param bo 查询条件 + * @return 分包合同进度结算列表 + */ + List queryList(CtrSubcontractProgressSettlementBo bo); + + /** + * 新增分包合同进度结算 + * + * @param req 分包合同进度结算 + * @return 是否新增成功 + */ + Boolean insertByBo(CtrSubcontractProgressSettlementCreateReq req); + + /** + * 修改分包合同进度结算 + * + * @param req 分包合同进度结算 + * @return 是否修改成功 + */ + Boolean updateByBo(CtrSubcontractProgressSettlementUpdateReq req); + + /** + * 校验并批量删除分包合同进度结算信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrContractProgressSettlementItemServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrContractProgressSettlementItemServiceImpl.java new file mode 100644 index 00000000..d8f391be --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrContractProgressSettlementItemServiceImpl.java @@ -0,0 +1,142 @@ +package org.dromara.ctr.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.ctr.domain.bo.CtrContractProgressSettlementItemBo; +import org.dromara.ctr.domain.vo.CtrContractProgressSettlementItemVo; +import org.dromara.ctr.domain.CtrContractProgressSettlementItem; +import org.dromara.ctr.mapper.CtrContractProgressSettlementItemMapper; +import org.dromara.ctr.service.ICtrContractProgressSettlementItemService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 承包合同进度结算清单Service业务层处理 + * + * @author lilemy + * @date 2025-10-18 + */ +@RequiredArgsConstructor +@Service +public class CtrContractProgressSettlementItemServiceImpl extends ServiceImpl implements ICtrContractProgressSettlementItemService { + + /** + * 查询承包合同进度结算清单 + * + * @param id 主键 + * @return 承包合同进度结算清单 + */ + @Override + public CtrContractProgressSettlementItemVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询承包合同进度结算清单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 承包合同进度结算清单分页列表 + */ + @Override + public TableDataInfo queryPageList(CtrContractProgressSettlementItemBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的承包合同进度结算清单列表 + * + * @param bo 查询条件 + * @return 承包合同进度结算清单列表 + */ + @Override + public List queryList(CtrContractProgressSettlementItemBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(CtrContractProgressSettlementItemBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(CtrContractProgressSettlementItem::getId); + lqw.eq(bo.getSettlementId() != null, CtrContractProgressSettlementItem::getSettlementId, bo.getSettlementId()); + lqw.eq(StringUtils.isNotBlank(bo.getType()), CtrContractProgressSettlementItem::getType, bo.getType()); + lqw.eq(StringUtils.isNotBlank(bo.getCode()), CtrContractProgressSettlementItem::getCode, bo.getCode()); + lqw.like(StringUtils.isNotBlank(bo.getName()), CtrContractProgressSettlementItem::getName, bo.getName()); + lqw.eq(StringUtils.isNotBlank(bo.getUnit()), CtrContractProgressSettlementItem::getUnit, bo.getUnit()); + lqw.eq(bo.getUnitPrice() != null, CtrContractProgressSettlementItem::getUnitPrice, bo.getUnitPrice()); + lqw.eq(bo.getTaxUnitPrice() != null, CtrContractProgressSettlementItem::getTaxUnitPrice, bo.getTaxUnitPrice()); + lqw.eq(bo.getCurrentQty() != null, CtrContractProgressSettlementItem::getCurrentQty, bo.getCurrentQty()); + lqw.eq(bo.getCurrentRate() != null, CtrContractProgressSettlementItem::getCurrentRate, bo.getCurrentRate()); + lqw.eq(bo.getCurrentAmount() != null, CtrContractProgressSettlementItem::getCurrentAmount, bo.getCurrentAmount()); + lqw.eq(bo.getCurrentNoAmount() != null, CtrContractProgressSettlementItem::getCurrentNoAmount, bo.getCurrentNoAmount()); + lqw.eq(bo.getCurrentApprovedQty() != null, CtrContractProgressSettlementItem::getCurrentApprovedQty, bo.getCurrentApprovedQty()); + lqw.eq(bo.getCurrentApprovedAmount() != null, CtrContractProgressSettlementItem::getCurrentApprovedAmount, bo.getCurrentApprovedAmount()); + lqw.eq(StringUtils.isNotBlank(bo.getTaxRate()), CtrContractProgressSettlementItem::getTaxRate, bo.getTaxRate()); + return lqw; + } + + /** + * 新增承包合同进度结算清单 + * + * @param bo 承包合同进度结算清单 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(CtrContractProgressSettlementItemBo bo) { + CtrContractProgressSettlementItem add = MapstructUtils.convert(bo, CtrContractProgressSettlementItem.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改承包合同进度结算清单 + * + * @param bo 承包合同进度结算清单 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(CtrContractProgressSettlementItemBo bo) { + CtrContractProgressSettlementItem update = MapstructUtils.convert(bo, CtrContractProgressSettlementItem.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(CtrContractProgressSettlementItem entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除承包合同进度结算清单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrContractProgressSettlementServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrContractProgressSettlementServiceImpl.java new file mode 100644 index 00000000..aebb80ec --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrContractProgressSettlementServiceImpl.java @@ -0,0 +1,269 @@ +package org.dromara.ctr.service.impl; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +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.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.ctr.domain.CtrContractProgressSettlement; +import org.dromara.ctr.domain.CtrContractProgressSettlementItem; +import org.dromara.ctr.domain.bo.CtrContractProgressSettlementBo; +import org.dromara.ctr.domain.dto.CtrContractProgressSettlementCreateReq; +import org.dromara.ctr.domain.dto.CtrContractProgressSettlementItemCreateReq; +import org.dromara.ctr.domain.dto.CtrContractProgressSettlementItemUpdateReq; +import org.dromara.ctr.domain.dto.CtrContractProgressSettlementUpdateReq; +import org.dromara.ctr.domain.vo.CtrContractProgressSettlementItemVo; +import org.dromara.ctr.domain.vo.CtrContractProgressSettlementVo; +import org.dromara.ctr.mapper.CtrContractProgressSettlementMapper; +import org.dromara.ctr.service.ICtrContractProgressSettlementItemService; +import org.dromara.ctr.service.ICtrContractProgressSettlementService; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 承包合同进度结算Service业务层处理 + * + * @author lilemy + * @date 2025-10-18 + */ +@RequiredArgsConstructor +@Service +public class CtrContractProgressSettlementServiceImpl extends ServiceImpl + implements ICtrContractProgressSettlementService { + + private final ICtrContractProgressSettlementItemService contractProgressSettlementItemService; + + /** + * 查询承包合同进度结算 + * + * @param id 主键 + * @return 承包合同进度结算 + */ + @Override + public CtrContractProgressSettlementVo queryById(Long id) { + CtrContractProgressSettlementVo vo = baseMapper.selectVoById(id); + List list = contractProgressSettlementItemService.lambdaQuery() + .eq(CtrContractProgressSettlementItem::getSettlementId, id) + .list(); + if (CollUtil.isNotEmpty(list)) { + List listVo = list.stream().map(item -> + MapstructUtils.convert(item, CtrContractProgressSettlementItemVo.class)) + .toList(); + Map> map = listVo.stream() + .collect(Collectors.groupingBy(CtrContractProgressSettlementItemVo::getType)); + vo.setInInventory(map.getOrDefault("1", new ArrayList<>())); + vo.setChangeInventory(map.getOrDefault("2", new ArrayList<>())); + vo.setOutInventory(map.getOrDefault("3", new ArrayList<>())); + } + return vo; + } + + /** + * 分页查询承包合同进度结算列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 承包合同进度结算分页列表 + */ + @Override + public TableDataInfo queryPageList(CtrContractProgressSettlementBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的承包合同进度结算列表 + * + * @param bo 查询条件 + * @return 承包合同进度结算列表 + */ + @Override + public List queryList(CtrContractProgressSettlementBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(CtrContractProgressSettlementBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(CtrContractProgressSettlement::getId); + lqw.eq(bo.getDeptId() != null, CtrContractProgressSettlement::getDeptId, bo.getDeptId()); + lqw.like(StringUtils.isNotBlank(bo.getDocumentCode()), CtrContractProgressSettlement::getDocumentCode, bo.getDocumentCode()); + lqw.eq(StringUtils.isNotBlank(bo.getTitle()), CtrContractProgressSettlement::getTitle, bo.getTitle()); + lqw.eq(bo.getSettlementDate() != null, CtrContractProgressSettlement::getSettlementDate, bo.getSettlementDate()); + lqw.eq(StringUtils.isNotBlank(bo.getContractCode()), CtrContractProgressSettlement::getContractCode, bo.getContractCode()); + lqw.like(StringUtils.isNotBlank(bo.getContractName()), CtrContractProgressSettlement::getContractName, bo.getContractName()); + lqw.eq(StringUtils.isNotBlank(bo.getContractProgress()), CtrContractProgressSettlement::getContractProgress, bo.getContractProgress()); + lqw.eq(bo.getProjectId() != null, CtrContractProgressSettlement::getProjectId, bo.getProjectId()); + lqw.like(StringUtils.isNotBlank(bo.getProjectName()), CtrContractProgressSettlement::getProjectName, bo.getProjectName()); + lqw.eq(bo.getApprovalAmount() != null, CtrContractProgressSettlement::getApprovalAmount, bo.getApprovalAmount()); + lqw.eq(bo.getMeasureDateBegin() != null, CtrContractProgressSettlement::getMeasureDateBegin, bo.getMeasureDateBegin()); + lqw.eq(bo.getMeasureDateEnd() != null, CtrContractProgressSettlement::getMeasureDateEnd, bo.getMeasureDateEnd()); + lqw.eq(bo.getSettlementUnit() != null, CtrContractProgressSettlement::getSettlementUnit, bo.getSettlementUnit()); + lqw.eq(bo.getSettlementMoney() != null, CtrContractProgressSettlement::getSettlementMoney, bo.getSettlementMoney()); + lqw.eq(bo.getDeductionMoney() != null, CtrContractProgressSettlement::getDeductionMoney, bo.getDeductionMoney()); + lqw.eq(bo.getBonus() != null, CtrContractProgressSettlement::getBonus, bo.getBonus()); + lqw.eq(bo.getContractAmount() != null, CtrContractProgressSettlement::getContractAmount, bo.getContractAmount()); + lqw.eq(bo.getThisSettlementRatio() != null, CtrContractProgressSettlement::getThisSettlementRatio, bo.getThisSettlementRatio()); + lqw.eq(bo.getPaymentTerms() != null, CtrContractProgressSettlement::getPaymentTerms, bo.getPaymentTerms()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), CtrContractProgressSettlement::getFileId, bo.getFileId()); + return lqw; + } + + /** + * 新增承包合同进度结算 + * + * @param req 承包合同进度结算 + * @return 是否新增成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean insertByBo(CtrContractProgressSettlementCreateReq req) { + CtrContractProgressSettlement add = MapstructUtils.convert(req, CtrContractProgressSettlement.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + Long id = add.getId(); + List inInventory = req.getInInventory(); + List changeInventory = req.getChangeInventory(); + List outInventory = req.getOutInventory(); + List itemList = new ArrayList<>(); + itemList.addAll(inInventory.stream().map(r -> { + CtrContractProgressSettlementItem item = new CtrContractProgressSettlementItem(); + item.setSettlementId(id); + item.setType("1"); + BeanUtils.copyProperties(r, item); + return item; + }).toList()); + itemList.addAll(changeInventory.stream().map(r -> { + CtrContractProgressSettlementItem item = new CtrContractProgressSettlementItem(); + item.setSettlementId(id); + item.setType("2"); + BeanUtils.copyProperties(r, item); + return item; + }).toList()); + itemList.addAll(outInventory.stream().map(r -> { + CtrContractProgressSettlementItem item = new CtrContractProgressSettlementItem(); + item.setSettlementId(id); + item.setType("3"); + BeanUtils.copyProperties(r, item); + return item; + }).toList()); + if (CollUtil.isNotEmpty(itemList)) { + boolean saveBatch = contractProgressSettlementItemService.saveBatch(itemList); + if (!saveBatch) { + throw new ServiceException("保存承包合同进度结算明细失败"); + } + } + } + return flag; + } + + /** + * 修改承包合同进度结算 + * + * @param req 承包合同进度结算 + * @return 是否修改成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean updateByBo(CtrContractProgressSettlementUpdateReq req) { + CtrContractProgressSettlement update = MapstructUtils.convert(req, CtrContractProgressSettlement.class); + validEntityBeforeSave(update); + Long id = req.getId(); + // 删除旧数据 + List oldList = contractProgressSettlementItemService.lambdaQuery() + .eq(CtrContractProgressSettlementItem::getSettlementId, id) + .list(); + if (CollUtil.isNotEmpty(oldList)) { + boolean deleteBatch = contractProgressSettlementItemService.removeByIds(oldList); + if (!deleteBatch) { + throw new ServiceException("删除承包合同进度结算明细失败"); + } + } + // 新增子数据 + List inInventory = req.getInInventory(); + List changeInventory = req.getChangeInventory(); + List outInventory = req.getOutInventory(); + List itemList = new ArrayList<>(); + itemList.addAll(inInventory.stream().map(r -> { + CtrContractProgressSettlementItem item = new CtrContractProgressSettlementItem(); + item.setSettlementId(id); + item.setType("1"); + BeanUtils.copyProperties(r, item); + return item; + }).toList()); + itemList.addAll(changeInventory.stream().map(r -> { + CtrContractProgressSettlementItem item = new CtrContractProgressSettlementItem(); + item.setSettlementId(id); + item.setType("2"); + BeanUtils.copyProperties(r, item); + return item; + }).toList()); + itemList.addAll(outInventory.stream().map(r -> { + CtrContractProgressSettlementItem item = new CtrContractProgressSettlementItem(); + item.setSettlementId(id); + item.setType("3"); + BeanUtils.copyProperties(r, item); + return item; + }).toList()); + if (CollUtil.isNotEmpty(itemList)) { + boolean saveBatch = contractProgressSettlementItemService.saveBatch(itemList); + if (!saveBatch) { + throw new ServiceException("保存承包合同进度结算明细失败"); + } + } + // 保存主数据 + boolean b = baseMapper.updateById(update) > 0; + if (!b) { + throw new ServiceException("修改承包合同进度结算失败"); + } + return true; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(CtrContractProgressSettlement entity) { + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除承包合同进度结算信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + // 删除关联数据 + List list = contractProgressSettlementItemService.lambdaQuery() + .in(CtrContractProgressSettlementItem::getSettlementId, ids) + .list(); + if (CollUtil.isNotEmpty(list)) { + boolean deleteBatch = contractProgressSettlementItemService.removeByIds(list); + if (!deleteBatch) { + throw new ServiceException("删除承包合同进度结算明细失败"); + } + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrSubcontractProgressSettlementItemServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrSubcontractProgressSettlementItemServiceImpl.java new file mode 100644 index 00000000..834657d3 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrSubcontractProgressSettlementItemServiceImpl.java @@ -0,0 +1,150 @@ +package org.dromara.ctr.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.ctr.domain.CtrSubcontractProgressSettlementItem; +import org.dromara.ctr.domain.bo.CtrSubcontractProgressSettlementItemBo; +import org.dromara.ctr.domain.vo.CtrSubcontractProgressSettlementItemVo; +import org.dromara.ctr.mapper.CtrSubcontractProgressSettlementItemMapper; +import org.dromara.ctr.service.ICtrSubcontractProgressSettlementItemService; +import org.springframework.stereotype.Service; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * 分包合同进度结算清单Service业务层处理 + * + * @author lilemy + * @date 2025-10-18 + */ +@RequiredArgsConstructor +@Service +public class CtrSubcontractProgressSettlementItemServiceImpl extends ServiceImpl + implements ICtrSubcontractProgressSettlementItemService { + + private final CtrSubcontractProgressSettlementItemMapper baseMapper; + + /** + * 查询分包合同进度结算清单 + * + * @param id 主键 + * @return 分包合同进度结算清单 + */ + @Override + public CtrSubcontractProgressSettlementItemVo queryById(Long id) { + return baseMapper.selectVoById(id); + } + + /** + * 分页查询分包合同进度结算清单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 分包合同进度结算清单分页列表 + */ + @Override + public TableDataInfo queryPageList(CtrSubcontractProgressSettlementItemBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的分包合同进度结算清单列表 + * + * @param bo 查询条件 + * @return 分包合同进度结算清单列表 + */ + @Override + public List queryList(CtrSubcontractProgressSettlementItemBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(CtrSubcontractProgressSettlementItemBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(CtrSubcontractProgressSettlementItem::getId); + lqw.eq(bo.getSettlementId() != null, CtrSubcontractProgressSettlementItem::getSettlementId, bo.getSettlementId()); + lqw.eq(StringUtils.isNotBlank(bo.getType()), CtrSubcontractProgressSettlementItem::getType, bo.getType()); + lqw.eq(StringUtils.isNotBlank(bo.getCode()), CtrSubcontractProgressSettlementItem::getCode, bo.getCode()); + lqw.like(StringUtils.isNotBlank(bo.getName()), CtrSubcontractProgressSettlementItem::getName, bo.getName()); + lqw.eq(StringUtils.isNotBlank(bo.getUnit()), CtrSubcontractProgressSettlementItem::getUnit, bo.getUnit()); + lqw.eq(bo.getUnitPrice() != null, CtrSubcontractProgressSettlementItem::getUnitPrice, bo.getUnitPrice()); + lqw.eq(bo.getTaxUnitPrice() != null, CtrSubcontractProgressSettlementItem::getTaxUnitPrice, bo.getTaxUnitPrice()); + lqw.eq(bo.getCurrentQty() != null, CtrSubcontractProgressSettlementItem::getCurrentQty, bo.getCurrentQty()); + lqw.eq(bo.getCurrentRate() != null, CtrSubcontractProgressSettlementItem::getCurrentRate, bo.getCurrentRate()); + lqw.eq(bo.getCurrentAmount() != null, CtrSubcontractProgressSettlementItem::getCurrentAmount, bo.getCurrentAmount()); + lqw.eq(bo.getCurrentNoAmount() != null, CtrSubcontractProgressSettlementItem::getCurrentNoAmount, bo.getCurrentNoAmount()); + lqw.eq(bo.getCurrentApprovedQty() != null, CtrSubcontractProgressSettlementItem::getCurrentApprovedQty, bo.getCurrentApprovedQty()); + lqw.eq(bo.getCurrentApprovedAmount() != null, CtrSubcontractProgressSettlementItem::getCurrentApprovedAmount, bo.getCurrentApprovedAmount()); + lqw.eq(StringUtils.isNotBlank(bo.getTaxRate()), CtrSubcontractProgressSettlementItem::getTaxRate, bo.getTaxRate()); + lqw.eq(StringUtils.isNotBlank(bo.getTax()), CtrSubcontractProgressSettlementItem::getTax, bo.getTax()); + lqw.eq(StringUtils.isNotBlank(bo.getWbs()), CtrSubcontractProgressSettlementItem::getWbs, bo.getWbs()); + lqw.eq(StringUtils.isNotBlank(bo.getCbs()), CtrSubcontractProgressSettlementItem::getCbs, bo.getCbs()); + lqw.eq(bo.getCbsBudgetTotal() != null, CtrSubcontractProgressSettlementItem::getCbsBudgetTotal, bo.getCbsBudgetTotal()); + lqw.eq(bo.getCbsBalance() != null, CtrSubcontractProgressSettlementItem::getCbsBalance, bo.getCbsBalance()); + return lqw; + } + + /** + * 新增分包合同进度结算清单 + * + * @param bo 分包合同进度结算清单 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(CtrSubcontractProgressSettlementItemBo bo) { + CtrSubcontractProgressSettlementItem add = MapstructUtils.convert(bo, CtrSubcontractProgressSettlementItem.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改分包合同进度结算清单 + * + * @param bo 分包合同进度结算清单 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(CtrSubcontractProgressSettlementItemBo bo) { + CtrSubcontractProgressSettlementItem update = MapstructUtils.convert(bo, CtrSubcontractProgressSettlementItem.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(CtrSubcontractProgressSettlementItem entity) { + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除分包合同进度结算清单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrSubcontractProgressSettlementServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrSubcontractProgressSettlementServiceImpl.java new file mode 100644 index 00000000..e3e91cc3 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrSubcontractProgressSettlementServiceImpl.java @@ -0,0 +1,262 @@ +package org.dromara.ctr.service.impl; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +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.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.ctr.domain.CtrSubcontractProgressSettlement; +import org.dromara.ctr.domain.CtrSubcontractProgressSettlementItem; +import org.dromara.ctr.domain.bo.CtrSubcontractProgressSettlementBo; +import org.dromara.ctr.domain.dto.CtrSubcontractProgressSettlementCreateReq; +import org.dromara.ctr.domain.dto.CtrSubcontractProgressSettlementItemCreateReq; +import org.dromara.ctr.domain.dto.CtrSubcontractProgressSettlementItemUpdateReq; +import org.dromara.ctr.domain.dto.CtrSubcontractProgressSettlementUpdateReq; +import org.dromara.ctr.domain.vo.CtrSubcontractProgressSettlementItemVo; +import org.dromara.ctr.domain.vo.CtrSubcontractProgressSettlementVo; +import org.dromara.ctr.mapper.CtrSubcontractProgressSettlementMapper; +import org.dromara.ctr.service.ICtrSubcontractProgressSettlementItemService; +import org.dromara.ctr.service.ICtrSubcontractProgressSettlementService; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 分包合同进度结算Service业务层处理 + * + * @author lilemy + * @date 2025-10-18 + */ +@RequiredArgsConstructor +@Service +public class CtrSubcontractProgressSettlementServiceImpl extends ServiceImpl + implements ICtrSubcontractProgressSettlementService { + + private final ICtrSubcontractProgressSettlementItemService subcontractProgressSettlementItemService; + + /** + * 查询分包合同进度结算 + * + * @param id 主键 + * @return 分包合同进度结算 + */ + @Override + public CtrSubcontractProgressSettlementVo queryById(Long id) { + CtrSubcontractProgressSettlementVo vo = baseMapper.selectVoById(id); + List list = subcontractProgressSettlementItemService.lambdaQuery() + .eq(CtrSubcontractProgressSettlementItem::getSettlementId, id) + .list(); + if (CollUtil.isNotEmpty(list)) { + List listVo = list.stream().map(item -> + MapstructUtils.convert(item, CtrSubcontractProgressSettlementItemVo.class)) + .toList(); + Map> map = listVo.stream() + .collect(Collectors.groupingBy(CtrSubcontractProgressSettlementItemVo::getType)); + vo.setInInventory(map.getOrDefault("1", new ArrayList<>())); + vo.setChangeInventory(map.getOrDefault("2", new ArrayList<>())); + vo.setOutInventory(map.getOrDefault("3", new ArrayList<>())); + } + return vo; + } + + /** + * 分页查询分包合同进度结算列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 分包合同进度结算分页列表 + */ + @Override + public TableDataInfo queryPageList(CtrSubcontractProgressSettlementBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的分包合同进度结算列表 + * + * @param bo 查询条件 + * @return 分包合同进度结算列表 + */ + @Override + public List queryList(CtrSubcontractProgressSettlementBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(CtrSubcontractProgressSettlementBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(CtrSubcontractProgressSettlement::getId); + lqw.like(StringUtils.isNotBlank(bo.getDocumentCode()), CtrSubcontractProgressSettlement::getDocumentCode, bo.getDocumentCode()); + lqw.eq(StringUtils.isNotBlank(bo.getTitle()), CtrSubcontractProgressSettlement::getTitle, bo.getTitle()); + lqw.eq(bo.getDocumentDate() != null, CtrSubcontractProgressSettlement::getDocumentDate, bo.getDocumentDate()); + lqw.eq(StringUtils.isNotBlank(bo.getContractCode()), CtrSubcontractProgressSettlement::getContractCode, bo.getContractCode()); + lqw.like(StringUtils.isNotBlank(bo.getContractName()), CtrSubcontractProgressSettlement::getContractName, bo.getContractName()); + lqw.eq(StringUtils.isNotBlank(bo.getContractProgress()), CtrSubcontractProgressSettlement::getContractProgress, bo.getContractProgress()); + lqw.eq(bo.getMeasureDateBegin() != null, CtrSubcontractProgressSettlement::getMeasureDateBegin, bo.getMeasureDateBegin()); + lqw.eq(bo.getMeasureDateEnd() != null, CtrSubcontractProgressSettlement::getMeasureDateEnd, bo.getMeasureDateEnd()); + lqw.eq(bo.getProjectId() != null, CtrSubcontractProgressSettlement::getProjectId, bo.getProjectId()); + lqw.like(StringUtils.isNotBlank(bo.getProjectName()), CtrSubcontractProgressSettlement::getProjectName, bo.getProjectName()); + lqw.eq(bo.getApprovalAmount() != null, CtrSubcontractProgressSettlement::getApprovalAmount, bo.getApprovalAmount()); + lqw.eq(bo.getSettlementUnit() != null, CtrSubcontractProgressSettlement::getSettlementUnit, bo.getSettlementUnit()); + lqw.eq(bo.getContractAmount() != null, CtrSubcontractProgressSettlement::getContractAmount, bo.getContractAmount()); + lqw.eq(bo.getCurrentSettlementRate() != null, CtrSubcontractProgressSettlement::getCurrentSettlementRate, bo.getCurrentSettlementRate()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), CtrSubcontractProgressSettlement::getFileId, bo.getFileId()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), CtrSubcontractProgressSettlement::getAuditStatus, bo.getAuditStatus()); + return lqw; + } + + /** + * 新增分包合同进度结算 + * + * @param req 分包合同进度结算 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(CtrSubcontractProgressSettlementCreateReq req) { + CtrSubcontractProgressSettlement add = MapstructUtils.convert(req, CtrSubcontractProgressSettlement.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + Long id = add.getId(); + List inInventory = req.getInInventory(); + List changeInventory = req.getChangeInventory(); + List outInventory = req.getOutInventory(); + List itemList = new ArrayList<>(); + itemList.addAll(inInventory.stream().map(r -> { + CtrSubcontractProgressSettlementItem item = new CtrSubcontractProgressSettlementItem(); + item.setSettlementId(id); + item.setType("1"); + BeanUtils.copyProperties(r, item); + return item; + }).toList()); + itemList.addAll(changeInventory.stream().map(r -> { + CtrSubcontractProgressSettlementItem item = new CtrSubcontractProgressSettlementItem(); + item.setSettlementId(id); + item.setType("2"); + BeanUtils.copyProperties(r, item); + return item; + }).toList()); + itemList.addAll(outInventory.stream().map(r -> { + CtrSubcontractProgressSettlementItem item = new CtrSubcontractProgressSettlementItem(); + item.setSettlementId(id); + item.setType("3"); + BeanUtils.copyProperties(r, item); + return item; + }).toList()); + if (CollUtil.isNotEmpty(itemList)) { + boolean saveBatch = subcontractProgressSettlementItemService.saveBatch(itemList); + if (!saveBatch) { + throw new ServiceException("保存分包合同进度结算明细失败"); + } + } + } + return flag; + } + + /** + * 修改分包合同进度结算 + * + * @param req 分包合同进度结算 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(CtrSubcontractProgressSettlementUpdateReq req) { + CtrSubcontractProgressSettlement update = MapstructUtils.convert(req, CtrSubcontractProgressSettlement.class); + validEntityBeforeSave(update); + Long id = req.getId(); + // 删除旧数据 + List oldList = subcontractProgressSettlementItemService.lambdaQuery() + .eq(CtrSubcontractProgressSettlementItem::getSettlementId, id) + .list(); + if (CollUtil.isNotEmpty(oldList)) { + boolean deleteBatch = subcontractProgressSettlementItemService.removeByIds(oldList); + if (!deleteBatch) { + throw new ServiceException("删除分包合同进度结算明细失败"); + } + } + // 新增子数据 + List inInventory = req.getInInventory(); + List changeInventory = req.getChangeInventory(); + List outInventory = req.getOutInventory(); + List itemList = new ArrayList<>(); + itemList.addAll(inInventory.stream().map(r -> { + CtrSubcontractProgressSettlementItem item = new CtrSubcontractProgressSettlementItem(); + item.setSettlementId(id); + item.setType("1"); + BeanUtils.copyProperties(r, item); + return item; + }).toList()); + itemList.addAll(changeInventory.stream().map(r -> { + CtrSubcontractProgressSettlementItem item = new CtrSubcontractProgressSettlementItem(); + item.setSettlementId(id); + item.setType("2"); + BeanUtils.copyProperties(r, item); + return item; + }).toList()); + itemList.addAll(outInventory.stream().map(r -> { + CtrSubcontractProgressSettlementItem item = new CtrSubcontractProgressSettlementItem(); + item.setSettlementId(id); + item.setType("3"); + BeanUtils.copyProperties(r, item); + return item; + }).toList()); + if (CollUtil.isNotEmpty(itemList)) { + boolean saveBatch = subcontractProgressSettlementItemService.saveBatch(itemList); + if (!saveBatch) { + throw new ServiceException("保存承包合同进度结算明细失败"); + } + } + // 保存主数据 + boolean b = baseMapper.updateById(update) > 0; + if (!b) { + throw new ServiceException("修改分包合同进度结算失败"); + } + return true; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(CtrSubcontractProgressSettlement entity) { + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除分包合同进度结算信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + // 删除关联数据 + List list = subcontractProgressSettlementItemService.lambdaQuery() + .in(CtrSubcontractProgressSettlementItem::getSettlementId, ids) + .list(); + if (CollUtil.isNotEmpty(list)) { + boolean deleteBatch = subcontractProgressSettlementItemService.removeByIds(list); + if (!deleteBatch) { + throw new ServiceException("删除分包合同进度结算明细失败"); + } + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/dto/project/BusProjectUpdateReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/dto/project/BusProjectUpdateReq.java index aaec5bc9..d191231b 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/dto/project/BusProjectUpdateReq.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/dto/project/BusProjectUpdateReq.java @@ -152,4 +152,9 @@ public class BusProjectUpdateReq implements Serializable { */ private String position; + /** + * 所属部门列表 + */ + private List deptIds; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/vo/project/BusProjectVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/vo/project/BusProjectVo.java index 556c29af..4e8d060e 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/vo/project/BusProjectVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/vo/project/BusProjectVo.java @@ -8,7 +8,6 @@ import org.dromara.common.excel.annotation.ExcelDictFormat; import org.dromara.common.excel.convert.ExcelDictConvert; import org.dromara.project.domain.BusProject; import org.dromara.project.domain.bo.Punchrange; -import org.dromara.system.domain.vo.SysDeptVo; import java.io.Serial; import java.io.Serializable; @@ -214,8 +213,8 @@ public class BusProjectVo implements Serializable { private String position; /** - * 所属部门 + * 所属部门列表 */ - private List deptList; + private List deptIds; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectServiceImpl.java index 1ef8e281..2f07326f 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectServiceImpl.java @@ -562,6 +562,43 @@ public class BusProjectServiceImpl extends ServiceImpl deptIds = req.getDeptIds(); + // 根据项目查询部门 + List oldDeptIds = projectDeptService.lambdaQuery() + .eq(BusProjectDept::getProjectId, project.getId()) + .list() + .stream().map(BusProjectDept::getDeptId) + .toList(); + if (CollUtil.isEmpty(deptIds) && CollUtil.isEmpty(oldDeptIds)) { + return true; + } else if (CollUtil.isEmpty(deptIds) && CollUtil.isNotEmpty(oldDeptIds)) { + //删除所有旧部门 + boolean remove = projectDeptService.remove(Wrappers.lambdaQuery(BusProjectDept.class) + .eq(BusProjectDept::getProjectId, project.getId())); + if (!remove) { + throw new ServiceException("删除项目部门失败", HttpStatus.ERROR); + } + } else if (CollUtil.isNotEmpty(deptIds)) { + if (CollUtil.isNotEmpty(oldDeptIds)) { + //删除所有旧部门 + boolean remove = projectDeptService.remove(Wrappers.lambdaQuery(BusProjectDept.class) + .eq(BusProjectDept::getProjectId, project.getId())); + if (!remove) { + throw new ServiceException("删除项目部门失败", HttpStatus.ERROR); + } + } + //新增部门 + List busProjectDepts = deptIds.stream().map(deptId -> { + BusProjectDept projectDept = new BusProjectDept(); + projectDept.setDeptId(deptId); + projectDept.setProjectId(project.getId()); + return projectDept; + }).toList(); + boolean save = projectDeptService.saveBatch(busProjectDepts); + if (!save) { + throw new ServiceException("部门增加失败", HttpStatus.ERROR); + } + } return true; } return false; @@ -691,6 +728,11 @@ public class BusProjectServiceImpl extends ServiceImpl deptList = projectDeptService.lambdaQuery() + .eq(BusProjectDept::getProjectId, project.getId()) + .list(); + projectVo.setDeptIds(deptList.stream().map(BusProjectDept::getDeptId).toList()); return projectVo; } @@ -1174,43 +1216,195 @@ public class BusProjectServiceImpl extends ServiceImpl>> map = new HashMap<>(); for (SysDictDataVo projectType : projectTypes) { Map> map1 = new HashMap<>(); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/vo/safetyinspection/HseSafetyInspectionGis.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/vo/safetyinspection/HseSafetyInspectionGis.java index 2e3f74c2..0a52a57b 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/vo/safetyinspection/HseSafetyInspectionGis.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/vo/safetyinspection/HseSafetyInspectionGis.java @@ -1,9 +1,12 @@ package org.dromara.safety.domain.vo.safetyinspection; import lombok.Data; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; import java.io.Serial; import java.io.Serializable; +import java.util.Date; /** * @author lilemy @@ -26,9 +29,10 @@ public class HseSafetyInspectionGis implements Serializable { private String checkType; /** - * 违章类型 + * 巡检类型名称 */ - private String violationType; + @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "checkType", other = "safety_inspection_check_type") + private String inspectionTypeLabel; /** * 巡检结果 @@ -40,4 +44,9 @@ public class HseSafetyInspectionGis implements Serializable { */ private String status; + /** + * 创建时间 + */ + private Date createTime; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/impl/HseSafetyInspectionServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/impl/HseSafetyInspectionServiceImpl.java index 3b8fbe22..4ce868e2 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/impl/HseSafetyInspectionServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/impl/HseSafetyInspectionServiceImpl.java @@ -217,50 +217,33 @@ public class HseSafetyInspectionServiceImpl extends ServiceImpl()); } + gisVo.setTeamMeetingCount((long) teamMeetings.size()); // 获取整改情况 List safetyInspectionList = this.lambdaQuery() - .select(HseSafetyInspection::getId, HseSafetyInspection::getStatus, HseSafetyInspection::getIsReply) .eq(HseSafetyInspection::getProjectId, projectId) .list(); - long passCount = 0L; - for (HseSafetyInspection safetyInspection : safetyInspectionList) { - if ("1".equals(safetyInspection.getIsReply())) { - if (!safetyInspection.getStatus().equals(HseSafetyInspectionStatusEnum.INFORM.getValue())) { - passCount++; - } - } - } List passList = safetyInspectionList.stream() .filter(q -> "1".equals(q.getIsReply())) .filter(q -> !q.getStatus().equals(HseSafetyInspectionStatusEnum.INFORM.getValue())) .toList(); List pass = passList.stream().map(p -> { HseSafetyInspectionGis gis = new HseSafetyInspectionGis(); - gis.setId(p.getId()); - gis.setCheckType(p.getCheckType()); - gis.setViolationType(p.getViolationType()); - gis.setInspectionResult(p.getInspectionResult()); - gis.setStatus(p.getStatus()); + BeanUtils.copyProperties(p, gis); return gis; }).toList(); - gisVo.setTeamMeetingCount((long) teamMeetings.size()); List inspections = safetyInspectionList.stream() .filter(q -> "2".equals(q.getIsReply())) .toList() .stream().map(p -> { HseSafetyInspectionGis gis = new HseSafetyInspectionGis(); - gis.setId(p.getId()); - gis.setCheckType(p.getCheckType()); - gis.setViolationType(p.getViolationType()); - gis.setInspectionResult(p.getInspectionResult()); - gis.setStatus(p.getStatus()); + BeanUtils.copyProperties(p, gis); return gis; }).toList(); gisVo.setSafetyInspectionCount((long) inspections.size()); gisVo.setSafetyInspectionList(inspections); - gisVo.setCorrectSituationCount(passCount); + gisVo.setCorrectSituationCount((long) pass.size()); gisVo.setCorrectSituationList(pass); - gisVo.setCorrectSituation(String.format("%.2f", passCount * 100.0 / safetyInspectionList.size())); +// gisVo.setCorrectSituation(String.format("%.2f", (long) pass.size() * 100.0 / safetyInspectionList.size())); return gisVo; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java index 7319f1c4..8be47a4f 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java @@ -148,4 +148,13 @@ public class SysDeptController extends BaseController { return R.ok(deptService.selectDeptByIds(deptIds == null ? null : List.of(deptIds))); } + /** + * 查询部门 + */ + @GetMapping("/listTopDept") + public R> list() { + List list = deptService.querListDept(); + return R.ok(list); + } + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biaoqianlixiang/service/impl/XzdBidPreProjectServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biaoqianlixiang/service/impl/XzdBidPreProjectServiceImpl.java index 0735e128..58265422 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biaoqianlixiang/service/impl/XzdBidPreProjectServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biaoqianlixiang/service/impl/XzdBidPreProjectServiceImpl.java @@ -7,6 +7,7 @@ import org.dromara.common.mybatis.core.page.PageQuery; 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.biddingManagement.biaoqianlixiang.domain.XzdBqlxProjectInfo; import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.bo.XzdBqlxProjectInfoBo; @@ -146,15 +147,13 @@ public class XzdBidPreProjectServiceImpl extends ServiceImpl().gt(XzdBidPreProject::getCreateTime, LocalDate.now())); - String s = areaUtil.generateDateBasedNumber(); - + String banBen = BatchNumberGenerator.generateBatchNumber("BQLX-"); // 标前立项 XzdBidPreProjectBo xzdBidPreProjectBo = bo.getXzdBidPreProjectBo(); XzdBidPreProject xzdBidPreProject = new XzdBidPreProject(); if (xzdBidPreProjectBo != null) { BeanUtil.copyProperties(xzdBidPreProjectBo, xzdBidPreProject); - xzdBidPreProject.setProjectNumber(s+"-"+(l+1)); + xzdBidPreProject.setProjectNumber(banBen); baseMapper.insert(xzdBidPreProject); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biaoqianlixiang/service/impl/XzdProjectRiskAssessmentServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biaoqianlixiang/service/impl/XzdProjectRiskAssessmentServiceImpl.java index a5084dea..f2c33351 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biaoqianlixiang/service/impl/XzdProjectRiskAssessmentServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biaoqianlixiang/service/impl/XzdProjectRiskAssessmentServiceImpl.java @@ -9,6 +9,7 @@ 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.biddingManagement.biaoqianlixiang.domain.XzdProjectRiskAssessment; import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.bo.XzdProjectRiskAssessmentBo; @@ -140,9 +141,8 @@ public class XzdProjectRiskAssessmentServiceImpl extends ServiceImpl().gt(XzdProjectRiskAssessment::getCreateTime, LocalDate.now())); - add.setDocumentNumber(s+"-"+(l+1)); + String banBen = BatchNumberGenerator.generateBatchNumber("XMFXPGYJB-"); + add.setDocumentNumber(banBen); } boolean flag = baseMapper.insert(add) > 0; if (flag) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocument/service/impl/XzdBiddingFileEstimateServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocument/service/impl/XzdBiddingFileEstimateServiceImpl.java index 02aa021b..9bd353da 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocument/service/impl/XzdBiddingFileEstimateServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocument/service/impl/XzdBiddingFileEstimateServiceImpl.java @@ -9,6 +9,7 @@ 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.biddingManagement.biaoqianlixiang.domain.vo.XzdBidPreProjectVo; import org.dromara.xzd.utilS.AreaUtil; @@ -119,11 +120,9 @@ public class XzdBiddingFileEstimateServiceImpl extends ServiceImpl().gt(XzdBiddingFileEstimate::getCreateTime, LocalDate.now())); + String banBen = BatchNumberGenerator.generateBatchNumber("ZBWJPG-"); - String s = areaUtil.generateDateBasedNumber(); - - add.setDocumentCode(s+"-"+(l+1)); + add.setDocumentCode(banBen); boolean flag = baseMapper.insert(add) > 0; if (flag) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/impl/XzdBiddingDocumentServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/impl/XzdBiddingDocumentServiceImpl.java index 7dc50217..3b330aa5 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/impl/XzdBiddingDocumentServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/impl/XzdBiddingDocumentServiceImpl.java @@ -9,6 +9,7 @@ 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.xzd.biddingManagement.biaoqianlixiang.domain.XzdBidPreProject; import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdBiddingDocument; import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjBusinessBid; @@ -135,14 +136,12 @@ public class XzdBiddingDocumentServiceImpl extends ServiceImpl().gt(XzdBiddingDocument::getCreateTime, LocalDate.now())); - String s = areaUtil.generateDateBasedNumber(); - XzdBiddingDocument xzdBiddingDocument = new XzdBiddingDocument(); BeanUtils.copyProperties(xzdBiddingDocumentbo, xzdBiddingDocument); // 单据编号 - xzdBiddingDocument.setDocumentNumber(s+"-"+(l+1)); + String banBen = BatchNumberGenerator.generateBatchNumber("TBWJ-"); + xzdBiddingDocument.setDocumentNumber(banBen); this.save(xzdBiddingDocument); // 投标文件-技术标 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/service/impl/XzdBidDepositPaymentServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/service/impl/XzdBidDepositPaymentServiceImpl.java index f440dbf2..a384063d 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/service/impl/XzdBidDepositPaymentServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/service/impl/XzdBidDepositPaymentServiceImpl.java @@ -9,6 +9,7 @@ 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.biddingManagement.biaoqianlixiang.domain.XzdBidPreProject; import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.QuerListXzdBidPreVo; @@ -134,9 +135,8 @@ public class XzdBidDepositPaymentServiceImpl extends ServiceImpl().gt(XzdBidDepositPayment::getCreateTime, LocalDate.now())); - String s = areaUtil.generateDateBasedNumber(); - add.setDocumentCode(s+"-"+(l+1)); + String banBen = BatchNumberGenerator.generateBatchNumber("TBBZJJN-"); + add.setDocumentCode(banBen); boolean flag = baseMapper.insert(add) > 0; if (flag) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/service/impl/XzdBidDepositRecoveryServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/service/impl/XzdBidDepositRecoveryServiceImpl.java index 6efc8766..e9f2afd3 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/service/impl/XzdBidDepositRecoveryServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/service/impl/XzdBidDepositRecoveryServiceImpl.java @@ -9,6 +9,7 @@ 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.biddingManagement.earnestMoney.domain.vo.XzdBidDepositPaymentByBqlx; import org.dromara.xzd.biddingManagement.earnestMoney.service.IXzdBidDepositPaymentService; @@ -142,10 +143,8 @@ public class XzdBidDepositRecoveryServiceImpl extends ServiceImpl().gt(XzdBidDepositRecovery::getCreateTime, LocalDate.now())); - String s = areaUtil.generateDateBasedNumber(); - add.setDocumentCode(s+"-"+(l+1)); + String banBen = BatchNumberGenerator.generateBatchNumber("TBBZJSH-"); + add.setDocumentCode(banBen); boolean flag = baseMapper.insert(add) > 0; if (flag) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/paymentapplication/service/impl/XzdBiddingAgencyFeePaymentServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/paymentapplication/service/impl/XzdBiddingAgencyFeePaymentServiceImpl.java index 20f58caf..e4501819 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/paymentapplication/service/impl/XzdBiddingAgencyFeePaymentServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/paymentapplication/service/impl/XzdBiddingAgencyFeePaymentServiceImpl.java @@ -9,6 +9,7 @@ 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.biddingManagement.biaoqianlixiang.domain.vo.XzdBidPreProjectVo; import org.dromara.xzd.utilS.AreaUtil; @@ -115,12 +116,8 @@ public class XzdBiddingAgencyFeePaymentServiceImpl extends ServiceImpl().gt(XzdBiddingAgencyFeePayment::getCreateTime, LocalDate .now())); - - String s = areaUtil.generateDateBasedNumber(); - - add.setDocumentCode(s+"-"+(l+1)); + String banBen = BatchNumberGenerator.generateBatchNumber("ZBDLZFSQ-"); + add.setDocumentCode(banBen); boolean flag = baseMapper.insert(add) > 0; if (flag) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/controller/XzdCsContractChangeController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/controller/XzdCsContractChangeController.java index 07028f51..66be22e9 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/controller/XzdCsContractChangeController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/controller/XzdCsContractChangeController.java @@ -61,7 +61,7 @@ public class XzdCsContractChangeController extends BaseController { * * @param id 主键 */ - @SaCheckPermission("comprehensive:csContractChange:query") +// @SaCheckPermission("comprehensive:csContractChange:query") @GetMapping("/{id}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/controller/XzdCsContractInformationController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/controller/XzdCsContractInformationController.java index fb5e1584..fd99584e 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/controller/XzdCsContractInformationController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/controller/XzdCsContractInformationController.java @@ -70,7 +70,7 @@ public class XzdCsContractInformationController extends BaseController { * * @param id 主键 */ - @SaCheckPermission("comprehensive:csContractInformation:query") +// @SaCheckPermission("comprehensive:csContractInformation:query") @GetMapping("/{id}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/controller/XzdCsContractSuspendController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/controller/XzdCsContractSuspendController.java index 7acb3cbc..b6f7c482 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/controller/XzdCsContractSuspendController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/controller/XzdCsContractSuspendController.java @@ -61,7 +61,7 @@ public class XzdCsContractSuspendController extends BaseController { * * @param id 主键 */ - @SaCheckPermission("comprehensive:csContractSuspend:query") +// @SaCheckPermission("comprehensive:csContractSuspend:query") @GetMapping("/{id}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/XzdHtglHtbgqd.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/XzdHtglHtbgqd.java index d72fb2e9..960117f2 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/XzdHtglHtbgqd.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/XzdHtglHtbgqd.java @@ -32,6 +32,12 @@ public class XzdHtglHtbgqd extends BaseEntity { * 立项(1、承包合同信息,2、承包合同变更,3分包合同信息,4、分包合同变更,5、采购合同信息,6、采购合同变更,7、综合服务信息,8、综合服务变更) */ private Long type; + /** + * 关联主表id + */ + private Long mainDocumentId; + + /** * 附件(路径/关联ID) @@ -42,6 +48,10 @@ public class XzdHtglHtbgqd extends BaseEntity { * 编码 */ private String code; + /** + * 项目 + */ + private String project; /** * 合同名称(带*,必填) @@ -58,6 +68,11 @@ public class XzdHtglHtbgqd extends BaseEntity { */ private String calculateUnit; + /** + * 规格型号 + */ + private String specificationModel; + /** * 原数值 */ @@ -72,6 +87,10 @@ public class XzdHtglHtbgqd extends BaseEntity { * 原含税单价 */ private BigDecimal originalTaxInclUnitPrice; + /** + * 单价 + */ + private BigDecimal unitPrice; /** * 变更后含税单价 @@ -88,6 +107,17 @@ public class XzdHtglHtbgqd extends BaseEntity { */ private BigDecimal afterChangeTaxInclAmount; + + /** + * 原不含税金额 + */ + private BigDecimal noOriginalTaxInclAmount; + + /** + * 变更后含不税金额 + */ + private BigDecimal noAfterChangeTaxInclAmount; + /** * 原税率 */ @@ -128,6 +158,12 @@ public class XzdHtglHtbgqd extends BaseEntity { */ private String costBudgetSource; + + /** + * 换算比例 + */ + private String conversionRatio; + /** * 备注 */ @@ -138,5 +174,23 @@ public class XzdHtglHtbgqd extends BaseEntity { */ private Long settledPriceTotal; + /** + * 金额 + */ + private BigDecimal amount; + /** + * 税额 + */ + private BigDecimal taxAmount; + /** + * 成本预算余额 + */ + private BigDecimal costBudgetBalance; + /** + * 合同累计签订成本预算 + */ + private BigDecimal totalSignedCostBudget; + + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/XzdHtglHthzsj.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/XzdHtglHthzsj.java new file mode 100644 index 00000000..7962f66b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/XzdHtglHthzsj.java @@ -0,0 +1,92 @@ +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_htgl_hthzsj + * + * @author Lion Li + * @date 2025-10-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_htgl_hthzsj") +public class XzdHtglHthzsj extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 主表id + */ + private Long mainDocumentId; + + /** + * 资源编码 + */ + private String resourceCode; + + /** + * 资源名称 + */ + private String resourceName; + + /** + * 规格型号 + */ + private String specModel; + + /** + * 单位 + */ + private String unit; + + /** + * 数量 + */ + private BigDecimal quantity; + + /** + * 单价 + */ + private BigDecimal unitPrice; + + /** + * 税率(如 13% 存储为 0.1300) + */ + private BigDecimal taxRate; + + /** + * 税额 + */ + private BigDecimal taxAmount; + + /** + * 含税单价 + */ + private BigDecimal taxInclUnitPrice; + + /** + * 不含税金额 + */ + private BigDecimal taxExclAmount; + + /** + * 含税金额 + */ + private BigDecimal taxInclAmount; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/bo/XzdCsContractChangeBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/bo/XzdCsContractChangeBo.java index 470ec51d..ca80d8ac 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/bo/XzdCsContractChangeBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/bo/XzdCsContractChangeBo.java @@ -15,6 +15,7 @@ import java.util.Date; import java.util.List; import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd; import org.dromara.xzd.domain.XzdContractClause; import org.dromara.xzd.domain.XzdDeductionItems; import org.dromara.xzd.domain.XzdSettlementRules; @@ -225,5 +226,10 @@ public class XzdCsContractChangeBo extends BaseEntity { */ private List zftk; + /** + * 合同变更清单 + */ + private List htbgqds; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/bo/XzdCsContractInformationBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/bo/XzdCsContractInformationBo.java index 84c25f2b..8d409a2e 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/bo/XzdCsContractInformationBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/bo/XzdCsContractInformationBo.java @@ -15,6 +15,7 @@ import java.util.Date; import java.util.List; import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd; import org.dromara.xzd.domain.XzdContractClause; import org.dromara.xzd.domain.XzdDeductionItems; import org.dromara.xzd.domain.XzdSettlementRules; @@ -268,5 +269,10 @@ public class XzdCsContractInformationBo extends BaseEntity { */ private List zftk; + /** + * 合同变更清单 + */ + private List htbgqds; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/bo/XzdHtglHtbgqdBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/bo/XzdHtglHtbgqdBo.java index 48209fde..881dea2b 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/bo/XzdHtglHtbgqdBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/bo/XzdHtglHtbgqdBo.java @@ -33,6 +33,11 @@ public class XzdHtglHtbgqdBo extends BaseEntity { @NotNull(message = "立项(1、承包合同信息,2、承包合同变更,3分包合同信息,4、分包合同变更,5、采购合同信息,6、采购合同变更,7、综合服务信息,8、综合服务变更)不能为空", groups = { AddGroup.class, EditGroup.class }) private Long type; + /** + * 关联主表id + */ + private Long mainDocumentId; + /** * 附件(路径/关联ID) */ @@ -60,6 +65,11 @@ public class XzdHtglHtbgqdBo extends BaseEntity { @NotBlank(message = "计算单位(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) private String calculateUnit; + /** + * 规格型号 + */ + private String specificationModel; + /** * 原数值 */ @@ -75,6 +85,11 @@ public class XzdHtglHtbgqdBo extends BaseEntity { */ private BigDecimal originalTaxInclUnitPrice; + /** + * 单价 + */ + private BigDecimal unitPrice; + /** * 变更后含税单价 */ @@ -90,6 +105,16 @@ public class XzdHtglHtbgqdBo extends BaseEntity { */ private BigDecimal afterChangeTaxInclAmount; + /** + * 原不含税金额 + */ + private BigDecimal noOriginalTaxInclAmount; + + /** + * 变更后含不税金额 + */ + private BigDecimal noAfterChangeTaxInclAmount; + /** * 原税率 */ @@ -130,6 +155,11 @@ public class XzdHtglHtbgqdBo extends BaseEntity { */ private String costBudgetSource; + /** + * 换算比例 + */ + private String conversionRatio; + /** * 备注 */ @@ -141,4 +171,22 @@ public class XzdHtglHtbgqdBo extends BaseEntity { private Long settledPriceTotal; + /** + * 金额 + */ + private BigDecimal amount; + /** + * 税额 + */ + private BigDecimal taxAmount; + /** + * 成本预算余额 + */ + private BigDecimal costBudgetBalance; + /** + * 合同累计签订成本预算 + */ + private BigDecimal totalSignedCostBudget; + + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/bo/XzdHtglHthzsjBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/bo/XzdHtglHthzsjBo.java new file mode 100644 index 00000000..1ede738e --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/bo/XzdHtglHthzsjBo.java @@ -0,0 +1,91 @@ +package org.dromara.xzd.comprehensive.domain.bo; + +import org.dromara.xzd.comprehensive.domain.XzdHtglHthzsj; +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_htgl_hthzsj + * + * @author Lion Li + * @date 2025-10-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdHtglHthzsj.class, reverseConvertGenerate = false) +public class XzdHtglHthzsjBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 主表id + */ + private Long mainDocumentId; + + /** + * 资源编码 + */ + private String resourceCode; + + /** + * 资源名称 + */ + private String resourceName; + + /** + * 规格型号 + */ + private String specModel; + + /** + * 单位 + */ + private String unit; + + /** + * 数量 + */ + private BigDecimal quantity; + + /** + * 单价 + */ + private BigDecimal unitPrice; + + /** + * 税率(如 13% 存储为 0.1300) + */ + private BigDecimal taxRate; + + /** + * 税额 + */ + private BigDecimal taxAmount; + + /** + * 含税单价 + */ + private BigDecimal taxInclUnitPrice; + + /** + * 不含税金额 + */ + private BigDecimal taxExclAmount; + + /** + * 含税金额 + */ + private BigDecimal taxInclAmount; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/vo/XzdCsContractChangeVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/vo/XzdCsContractChangeVo.java index 8ba4c07c..8f565e5e 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/vo/XzdCsContractChangeVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/vo/XzdCsContractChangeVo.java @@ -11,6 +11,7 @@ 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.XzdHtglHtbgqd; import org.dromara.xzd.domain.XzdContractClause; import org.dromara.xzd.domain.XzdDeductionItems; import org.dromara.xzd.domain.XzdSettlementRules; @@ -274,5 +275,10 @@ public class XzdCsContractChangeVo implements Serializable { */ private List zftk; + /** + * 合同变更清单 + */ + private List htbgqds; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/vo/XzdCsContractInformationVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/vo/XzdCsContractInformationVo.java index 854e9ef7..a0919c69 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/vo/XzdCsContractInformationVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/vo/XzdCsContractInformationVo.java @@ -11,6 +11,7 @@ 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.XzdHtglHtbgqd; import org.dromara.xzd.domain.XzdContractClause; import org.dromara.xzd.domain.XzdDeductionItems; import org.dromara.xzd.domain.XzdSettlementRules; @@ -323,5 +324,10 @@ public class XzdCsContractInformationVo implements Serializable { */ private List zftk; + /** + * 合同变更清单 + */ + private List htbgqds; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/vo/XzdHtglHtbgqdVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/vo/XzdHtglHtbgqdVo.java index 81b16e46..e48926d4 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/vo/XzdHtglHtbgqdVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/vo/XzdHtglHtbgqdVo.java @@ -42,6 +42,11 @@ public class XzdHtglHtbgqdVo implements Serializable { @ExcelDictFormat(readConverterExp = "1=、承包合同信息,2、承包合同变更,3分包合同信息,4、分包合同变更,5、采购合同信息,6、采购合同变更,7、综合服务信息,8、综合服务变更") private Long type; + /** + * 关联主表id + */ + private Long mainDocumentId; + /** * 附件(路径/关联ID) */ @@ -75,6 +80,11 @@ public class XzdHtglHtbgqdVo implements Serializable { @ExcelDictFormat(readConverterExp = "带=*,必填") private String calculateUnit; + /** + * 规格型号 + */ + private String specificationModel; + /** * 原数值 */ @@ -92,6 +102,10 @@ public class XzdHtglHtbgqdVo implements Serializable { */ @ExcelProperty(value = "原含税单价") private BigDecimal originalTaxInclUnitPrice; + /** + * 单价 + */ + private BigDecimal unitPrice; /** * 变更后含税单价 @@ -111,6 +125,17 @@ public class XzdHtglHtbgqdVo implements Serializable { @ExcelProperty(value = "变更后含税金额") private BigDecimal afterChangeTaxInclAmount; + + /** + * 原不含税金额 + */ + private BigDecimal noOriginalTaxInclAmount; + + /** + * 变更后含不税金额 + */ + private BigDecimal noAfterChangeTaxInclAmount; + /** * 原税率 */ @@ -159,6 +184,11 @@ public class XzdHtglHtbgqdVo implements Serializable { @ExcelProperty(value = "成本预算来源") private String costBudgetSource; + /** + * 换算比例 + */ + private String conversionRatio; + /** * 备注 */ @@ -172,4 +202,22 @@ public class XzdHtglHtbgqdVo implements Serializable { private Long settledPriceTotal; + /** + * 金额 + */ + private BigDecimal amount; + /** + * 税额 + */ + private BigDecimal taxAmount; + /** + * 成本预算余额 + */ + private BigDecimal costBudgetBalance; + /** + * 合同累计签订成本预算 + */ + private BigDecimal totalSignedCostBudget; + + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/vo/XzdHtglHthzsjVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/vo/XzdHtglHthzsjVo.java new file mode 100644 index 00000000..ecd88fa9 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/vo/XzdHtglHthzsjVo.java @@ -0,0 +1,112 @@ +package org.dromara.xzd.comprehensive.domain.vo; + +import java.math.BigDecimal; +import org.dromara.xzd.comprehensive.domain.XzdHtglHthzsj; +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_htgl_hthzsj + * + * @author Lion Li + * @date 2025-10-18 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdHtglHthzsj.class) +public class XzdHtglHthzsjVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 主表id + */ + @ExcelProperty(value = "主表id") + private Long mainDocumentId; + + /** + * 资源编码 + */ + @ExcelProperty(value = "资源编码") + private String resourceCode; + + /** + * 资源名称 + */ + @ExcelProperty(value = "资源名称") + private String resourceName; + + /** + * 规格型号 + */ + @ExcelProperty(value = "规格型号") + private String specModel; + + /** + * 单位 + */ + @ExcelProperty(value = "单位") + private String unit; + + /** + * 数量 + */ + @ExcelProperty(value = "数量") + private BigDecimal quantity; + + /** + * 单价 + */ + @ExcelProperty(value = "单价") + private BigDecimal unitPrice; + + /** + * 税率(如 13% 存储为 0.1300) + */ + @ExcelProperty(value = "税率", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "如=,1=3%,存=储为,0=.1300") + private BigDecimal taxRate; + + /** + * 税额 + */ + @ExcelProperty(value = "税额") + private BigDecimal taxAmount; + + /** + * 含税单价 + */ + @ExcelProperty(value = "含税单价") + private BigDecimal taxInclUnitPrice; + + /** + * 不含税金额 + */ + @ExcelProperty(value = "不含税金额") + private BigDecimal taxExclAmount; + + /** + * 含税金额 + */ + @ExcelProperty(value = "含税金额") + private BigDecimal taxInclAmount; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/mapper/XzdHtglHthzsjMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/mapper/XzdHtglHthzsjMapper.java new file mode 100644 index 00000000..54da02b6 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/mapper/XzdHtglHthzsjMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.comprehensive.mapper; + +import org.dromara.xzd.comprehensive.domain.XzdHtglHthzsj; +import org.dromara.xzd.comprehensive.domain.vo.XzdHtglHthzsjVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 合同管理-合同汇总数据Mapper接口 + * + * @author Lion Li + * @date 2025-10-18 + */ +public interface XzdHtglHthzsjMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/IXzdHtglHthzsjService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/IXzdHtglHthzsjService.java new file mode 100644 index 00000000..e07d70a9 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/IXzdHtglHthzsjService.java @@ -0,0 +1,70 @@ +package org.dromara.xzd.comprehensive.service; + +import org.dromara.xzd.comprehensive.domain.vo.XzdHtglHthzsjVo; +import org.dromara.xzd.comprehensive.domain.bo.XzdHtglHthzsjBo; +import org.dromara.xzd.comprehensive.domain.XzdHtglHthzsj; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; +import java.util.List; + +/** + * 合同管理-合同汇总数据Service接口 + * + * @author Lion Li + * @date 2025-10-18 + */ +public interface IXzdHtglHthzsjService extends IService{ + + /** + * 查询合同管理-合同汇总数据 + * + * @param id 主键 + * @return 合同管理-合同汇总数据 + */ + XzdHtglHthzsjVo queryById(Long id); + + /** + * 分页查询合同管理-合同汇总数据列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 合同管理-合同汇总数据分页列表 + */ + TableDataInfo queryPageList(XzdHtglHthzsjBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的合同管理-合同汇总数据列表 + * + * @param bo 查询条件 + * @return 合同管理-合同汇总数据列表 + */ + List queryList(XzdHtglHthzsjBo bo); + + /** + * 新增合同管理-合同汇总数据 + * + * @param bo 合同管理-合同汇总数据 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdHtglHthzsjBo bo); + + /** + * 修改合同管理-合同汇总数据 + * + * @param bo 合同管理-合同汇总数据 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdHtglHthzsjBo bo); + + /** + * 校验并批量删除合同管理-合同汇总数据信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractChangeServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractChangeServiceImpl.java index 147f46cc..4cdba1ea 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractChangeServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractChangeServiceImpl.java @@ -16,7 +16,9 @@ import org.dromara.system.service.ISysUserService; import org.dromara.system.service.impl.SysDeptServiceImpl; import org.dromara.system.service.impl.SysOssServiceImpl; import org.dromara.xzd.comprehensive.domain.XzdCsContractInformation; +import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd; import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractInformationVo; +import org.dromara.xzd.comprehensive.service.IXzdHtglHtbgqdService; import org.dromara.xzd.domain.XzdContractClause; import org.dromara.xzd.domain.XzdDeductionItems; import org.dromara.xzd.domain.XzdSettlementRules; @@ -68,6 +70,9 @@ public class XzdCsContractChangeServiceImpl extends ServiceImpl{item.setMainDocumentId(add.getId());}); + xzdHtglHtbgqdService.saveBatch(bo.getHtbgqds()); + } return flag; } @@ -258,6 +268,13 @@ public class XzdCsContractChangeServiceImpl extends ServiceImpl().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; } @@ -310,6 +327,8 @@ public class XzdCsContractChangeServiceImpl extends ServiceImpl lambdaQueryWrapper3 = new LambdaQueryWrapper<>(); lambdaQueryWrapper3.in(XzdSettlementRules::getContractDetailsId, ids); xzdSettlementRulesService.remove(lambdaQueryWrapper3); + //合同变更清单 + xzdHtglHtbgqdService.remove(new LambdaQueryWrapper().in(XzdHtglHtbgqd::getMainDocumentId,ids)); return baseMapper.deleteByIds(ids) > 0; } @@ -378,5 +397,9 @@ public class XzdCsContractChangeServiceImpl extends ServiceImpl list2 = xzdSettlementRulesService.list(lambdaQueryWrapper3); vo.setZftk(list2); + + //合同变更清单 + List list4 = xzdHtglHtbgqdService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(XzdHtglHtbgqd::getMainDocumentId, vo.getId())); + vo.setHtbgqds(list4); } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractInformationServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractInformationServiceImpl.java index 24830897..17f6aad5 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractInformationServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractInformationServiceImpl.java @@ -17,6 +17,8 @@ import org.dromara.common.utils.BatchNumberGenerator; import org.dromara.system.domain.vo.SysDeptVo; import org.dromara.system.service.impl.SysDeptServiceImpl; import org.dromara.system.service.impl.SysOssServiceImpl; +import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd; +import org.dromara.xzd.comprehensive.service.IXzdHtglHtbgqdService; import org.dromara.xzd.domain.XzdContractAdvanceInfo; import org.dromara.xzd.domain.XzdContractClause; import org.dromara.xzd.domain.XzdDeductionItems; @@ -70,6 +72,9 @@ public class XzdCsContractInformationServiceImpl extends ServiceImpl list2 = xzdSettlementRulesService.list(lambdaQueryWrapper3); vo.setZftk(list2); + //合同变更清单 + List list4 = xzdHtglHtbgqdService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(XzdHtglHtbgqd::getMainDocumentId, vo.getId())); + vo.setHtbgqds(list4); } /** @@ -288,6 +296,12 @@ public class XzdCsContractInformationServiceImpl extends ServiceImpl{item.setMainDocumentId(add.getId());}); + xzdHtglHtbgqdService.saveBatch(bo.getHtbgqds()); + } return flag; } @@ -351,6 +365,12 @@ public class XzdCsContractInformationServiceImpl extends ServiceImpl().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; } @@ -403,6 +423,7 @@ public class XzdCsContractInformationServiceImpl extends ServiceImpl lambdaQueryWrapper3 = new LambdaQueryWrapper<>(); lambdaQueryWrapper3.in(XzdSettlementRules::getContractDetailsId, ids); xzdSettlementRulesService.remove(lambdaQueryWrapper3); + xzdHtglHtbgqdService.remove(new LambdaQueryWrapper().in(XzdHtglHtbgqd::getMainDocumentId,ids)); return baseMapper.deleteByIds(ids) > 0; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdHtglHthzsjServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdHtglHthzsjServiceImpl.java new file mode 100644 index 00000000..019e8111 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdHtglHthzsjServiceImpl.java @@ -0,0 +1,142 @@ +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.XzdHtglHthzsjBo; +import org.dromara.xzd.comprehensive.domain.vo.XzdHtglHthzsjVo; +import org.dromara.xzd.comprehensive.domain.XzdHtglHthzsj; +import org.dromara.xzd.comprehensive.mapper.XzdHtglHthzsjMapper; +import org.dromara.xzd.comprehensive.service.IXzdHtglHthzsjService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 合同管理-合同汇总数据Service业务层处理 + * + * @author Lion Li + * @date 2025-10-18 + */ +@RequiredArgsConstructor +@Service +public class XzdHtglHthzsjServiceImpl extends ServiceImpl implements IXzdHtglHthzsjService { + + private final XzdHtglHthzsjMapper baseMapper; + + /** + * 查询合同管理-合同汇总数据 + * + * @param id 主键 + * @return 合同管理-合同汇总数据 + */ + @Override + public XzdHtglHthzsjVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询合同管理-合同汇总数据列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 合同管理-合同汇总数据分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdHtglHthzsjBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的合同管理-合同汇总数据列表 + * + * @param bo 查询条件 + * @return 合同管理-合同汇总数据列表 + */ + @Override + public List queryList(XzdHtglHthzsjBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdHtglHthzsjBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdHtglHthzsj::getId); + lqw.eq(bo.getMainDocumentId() != null, XzdHtglHthzsj::getMainDocumentId, bo.getMainDocumentId()); + lqw.eq(StringUtils.isNotBlank(bo.getResourceCode()), XzdHtglHthzsj::getResourceCode, bo.getResourceCode()); + lqw.like(StringUtils.isNotBlank(bo.getResourceName()), XzdHtglHthzsj::getResourceName, bo.getResourceName()); + lqw.eq(StringUtils.isNotBlank(bo.getSpecModel()), XzdHtglHthzsj::getSpecModel, bo.getSpecModel()); + lqw.eq(StringUtils.isNotBlank(bo.getUnit()), XzdHtglHthzsj::getUnit, bo.getUnit()); + lqw.eq(bo.getQuantity() != null, XzdHtglHthzsj::getQuantity, bo.getQuantity()); + lqw.eq(bo.getUnitPrice() != null, XzdHtglHthzsj::getUnitPrice, bo.getUnitPrice()); + lqw.eq(bo.getTaxRate() != null, XzdHtglHthzsj::getTaxRate, bo.getTaxRate()); + lqw.eq(bo.getTaxAmount() != null, XzdHtglHthzsj::getTaxAmount, bo.getTaxAmount()); + lqw.eq(bo.getTaxInclUnitPrice() != null, XzdHtglHthzsj::getTaxInclUnitPrice, bo.getTaxInclUnitPrice()); + lqw.eq(bo.getTaxExclAmount() != null, XzdHtglHthzsj::getTaxExclAmount, bo.getTaxExclAmount()); + lqw.eq(bo.getTaxInclAmount() != null, XzdHtglHthzsj::getTaxInclAmount, bo.getTaxInclAmount()); + return lqw; + } + + /** + * 新增合同管理-合同汇总数据 + * + * @param bo 合同管理-合同汇总数据 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdHtglHthzsjBo bo) { + XzdHtglHthzsj add = MapstructUtils.convert(bo, XzdHtglHthzsj.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改合同管理-合同汇总数据 + * + * @param bo 合同管理-合同汇总数据 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdHtglHthzsjBo bo) { + XzdHtglHthzsj update = MapstructUtils.convert(bo, XzdHtglHthzsj.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdHtglHthzsj entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除合同管理-合同汇总数据信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigoucontractTermination/service/impl/XzdPurchaseContractSuspendServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigoucontractTermination/service/impl/XzdPurchaseContractSuspendServiceImpl.java index ce3669e5..1aaffd0c 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigoucontractTermination/service/impl/XzdPurchaseContractSuspendServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigoucontractTermination/service/impl/XzdPurchaseContractSuspendServiceImpl.java @@ -10,6 +10,7 @@ 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.biddingManagement.biaoqianlixiang.domain.vo.XzdBidPreProjectVo; import org.dromara.xzd.contractManagement.purchaseManagement.domain.XzdPurchaseContractInformation; @@ -177,10 +178,9 @@ public class XzdPurchaseContractSuspendServiceImpl extends ServiceImpl().gt(XzdPurchaseContractSuspend::getCreateTime, LocalDate.now())); - String s = areaUtil.generateDateBasedNumber(); - add.setReceiptsCode(s+"-"+(l+1)); + add.setReceiptsCode(banBen); boolean flag = baseMapper.insert(add) > 0; if (flag) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigouhetongbiangeng/domain/bo/XzdPurchaseContractAlterationBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigouhetongbiangeng/domain/bo/XzdPurchaseContractAlterationBo.java index 94dfd269..53b94557 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigouhetongbiangeng/domain/bo/XzdPurchaseContractAlterationBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigouhetongbiangeng/domain/bo/XzdPurchaseContractAlterationBo.java @@ -1,5 +1,7 @@ package org.dromara.xzd.contractManagement.caigouhetongbiangeng.domain.bo; +import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd; +import org.dromara.xzd.comprehensive.domain.XzdHtglHthzsj; import org.dromara.xzd.contractManagement.caigouhetongbiangeng.domain.XzdPurchaseContractAlteration; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.core.validate.AddGroup; @@ -236,4 +238,14 @@ public class XzdPurchaseContractAlterationBo extends BaseEntity { private List httk; + /** + * 合同变更清单 + */ + private List htbgqds; + + /** + * 汇总数据 + */ + private List htghthzsjs; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigouhetongbiangeng/domain/vo/XzdPurchaseContractAlterationVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigouhetongbiangeng/domain/vo/XzdPurchaseContractAlterationVo.java index ab03d075..967eb6ea 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigouhetongbiangeng/domain/vo/XzdPurchaseContractAlterationVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigouhetongbiangeng/domain/vo/XzdPurchaseContractAlterationVo.java @@ -9,6 +9,8 @@ import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import org.dromara.common.translation.annotation.Translation; import org.dromara.common.translation.constant.TransConstant; +import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd; +import org.dromara.xzd.comprehensive.domain.XzdHtglHthzsj; import org.dromara.xzd.contractManagement.caigouhetongbiangeng.domain.XzdPurchaseContractAlteration; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; @@ -309,5 +311,15 @@ public class XzdPurchaseContractAlterationVo implements Serializable { // private XzdPurchaseContractInformationVo xzdPurchaseContractInformationVo; + /** + * 合同变更清单 + */ + private List htbgqds; + + /** + * 汇总数据 + */ + private List htghthzsjs; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigouhetongbiangeng/service/impl/XzdPurchaseContractAlterationServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigouhetongbiangeng/service/impl/XzdPurchaseContractAlterationServiceImpl.java index 0d1924db..a620da64 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigouhetongbiangeng/service/impl/XzdPurchaseContractAlterationServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigouhetongbiangeng/service/impl/XzdPurchaseContractAlterationServiceImpl.java @@ -10,7 +10,12 @@ 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.XzdHtglHtbgqd; +import org.dromara.xzd.comprehensive.domain.XzdHtglHthzsj; +import org.dromara.xzd.comprehensive.service.IXzdHtglHtbgqdService; +import org.dromara.xzd.comprehensive.service.IXzdHtglHthzsjService; import org.dromara.xzd.contractManagement.purchaseManagement.domain.vo.XzdPurchaseContractInformationVo; import org.dromara.xzd.contractManagement.purchaseManagement.service.IXzdPurchaseContractInformationService; import org.dromara.xzd.domain.*; @@ -69,6 +74,10 @@ public class XzdPurchaseContractAlterationServiceImpl extends ServiceImpl list4 = xzdHtglHtbgqdService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(XzdHtglHtbgqd::getMainDocumentId, item.getId())); + item.setHtbgqds(list4); + List xzdHtglHthzsjs = xzdHtglHthzsjService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(XzdHtglHthzsj::getMainDocumentId, item.getId())); + item.setHtghthzsjs(xzdHtglHthzsjs); } @@ -206,6 +219,9 @@ public class XzdPurchaseContractAlterationServiceImpl extends ServiceImpl 0; /** @@ -238,6 +254,16 @@ public class XzdPurchaseContractAlterationServiceImpl extends ServiceImpl{item.setMainDocumentId(add.getId());}); + xzdHtglHtbgqdService.saveBatch(bo.getHtbgqds()); + } + //汇总数据 + if (bo.getHtghthzsjs() != null && !bo.getHtghthzsjs().isEmpty()) { + bo.getHtghthzsjs().forEach(item->{item.setMainDocumentId(add.getId());}); + xzdHtglHthzsjService.saveBatch(bo.getHtghthzsjs()); + } return flag; } @@ -290,6 +316,18 @@ public class XzdPurchaseContractAlterationServiceImpl extends ServiceImpl().eq(XzdHtglHtbgqd::getMainDocumentId,bo.getId())); + if (bo.getHtbgqds() != null && !bo.getHtbgqds().isEmpty()) { + bo.getHtbgqds().forEach(item->{item.setMainDocumentId(add.getId());}); + xzdHtglHtbgqdService.saveBatch(bo.getHtbgqds()); + } + //汇总数据 + xzdHtglHthzsjService.remove(new LambdaQueryWrapper().eq(XzdHtglHthzsj::getMainDocumentId,bo.getId())); + if (bo.getHtghthzsjs() != null && !bo.getHtghthzsjs().isEmpty()) { + bo.getHtghthzsjs().forEach(item->{item.setMainDocumentId(add.getId());}); + xzdHtglHthzsjService.saveBatch(bo.getHtghthzsjs()); + } return baseMapper.updateById(add) > 0; } @@ -337,6 +375,9 @@ public class XzdPurchaseContractAlterationServiceImpl extends ServiceImpl lambdaQueryWrapper3 = new LambdaQueryWrapper<>(); lambdaQueryWrapper3.in(XzdSettlementRules::getContractDetailsId, ids); xzdSettlementRulesService.remove(lambdaQueryWrapper3); + xzdHtglHtbgqdService.remove(new LambdaQueryWrapper().in(XzdHtglHtbgqd::getMainDocumentId,ids)); + xzdHtglHthzsjService.remove(new LambdaQueryWrapper().in(XzdHtglHthzsj::getMainDocumentId,ids)); + if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongbiangg/domain/XzdSubcontractChange.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongbiangg/domain/XzdSubcontractChange.java index 912ee735..277895ff 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongbiangg/domain/XzdSubcontractChange.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongbiangg/domain/XzdSubcontractChange.java @@ -67,7 +67,7 @@ public class XzdSubcontractChange extends BaseEntity { /** * 项目 */ - private String project; + private String projectName; /** * 经营模式 @@ -77,17 +77,17 @@ public class XzdSubcontractChange extends BaseEntity { /** * 组织 */ - private String organization; + private String organizationName; /** * 甲方单位 */ - private String partyAUnit; + private String partyAUnitName; /** * 乙方单位 */ - private String partyBUnit; + private String partyBUnitName; /** * 原合同造价 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongbiangg/domain/bo/XzdSubcontractChangeBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongbiangg/domain/bo/XzdSubcontractChangeBo.java index c60ffd21..43b2064e 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongbiangg/domain/bo/XzdSubcontractChangeBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongbiangg/domain/bo/XzdSubcontractChangeBo.java @@ -1,5 +1,6 @@ package org.dromara.xzd.contractManagement.fenbaohetongbiangg.domain.bo; +import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd; import org.dromara.xzd.contractManagement.fenbaohetongbiangg.domain.XzdSubcontractChange; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.core.validate.AddGroup; @@ -30,13 +31,11 @@ public class XzdSubcontractChangeBo extends BaseEntity { /** * */ - @NotNull(message = "不能为空", groups = { EditGroup.class }) private Long id; /** * 单据编码 */ - @NotBlank(message = "单据编码不能为空", groups = { AddGroup.class, EditGroup.class }) private String documentCode; /** @@ -72,7 +71,7 @@ public class XzdSubcontractChangeBo extends BaseEntity { /** * 项目 */ - private String project; + private String projectName; /** * 经营模式 @@ -82,17 +81,17 @@ public class XzdSubcontractChangeBo extends BaseEntity { /** * 组织 */ - private String organization; + private String organizationName; /** * 甲方单位 */ - private String partyAUnit; + private String partyAUnitName; /** * 乙方单位 */ - private String partyBUnit; + private String partyBUnitName; /** * 原合同造价 @@ -239,6 +238,11 @@ public class XzdSubcontractChangeBo extends BaseEntity { */ private List httk; + /** + * 合同变更清单 + */ + private List htbgqds; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongbiangg/domain/vo/XzdSubcontractChangeVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongbiangg/domain/vo/XzdSubcontractChangeVo.java index 02de849e..3b9aab1d 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongbiangg/domain/vo/XzdSubcontractChangeVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongbiangg/domain/vo/XzdSubcontractChangeVo.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import org.dromara.common.translation.annotation.Translation; import org.dromara.common.translation.constant.TransConstant; +import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd; import org.dromara.xzd.contractManagement.fenbaohetongbiangg.domain.XzdSubcontractChange; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; @@ -69,6 +70,12 @@ public class XzdSubcontractChangeVo implements Serializable { @ExcelProperty(value = "合同编码") private Long contractCode; + /** + * 合同编码名称 + */ + @ExcelProperty(value = "合同编码名称") + private String contractCodeName; + /** * 合同名称 */ @@ -93,7 +100,7 @@ public class XzdSubcontractChangeVo implements Serializable { * 项目 */ @ExcelProperty(value = "项目") - private String project; + private String projectName; /** * 经营模式 @@ -105,19 +112,19 @@ public class XzdSubcontractChangeVo implements Serializable { * 组织 */ @ExcelProperty(value = "组织") - private String organization; + private String organizationName; /** * 甲方单位 */ @ExcelProperty(value = "甲方单位") - private String partyAUnit; + private String partyAUnitName; /** * 乙方单位 */ @ExcelProperty(value = "乙方单位") - private String partyBUnit; + private String partyBUnitName; /** * 原合同造价 @@ -191,18 +198,39 @@ public class XzdSubcontractChangeVo implements Serializable { @ExcelProperty(value = "变更后项目经理") private Long postChangeProjectManager; + /** + * 变更后项目经理名称 + */ + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "postChangeProjectManager") + @ExcelProperty(value = "变更后项目经理名称") + private String postChangeProjectManagerName; + /** * 变更后项目责任人 */ @ExcelProperty(value = "变更后项目责任人") private Long postChangeProjectOwner; + /** + * 变更后项目责任人名成 + */ + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "postChangeProjectOwner") + @ExcelProperty(value = "变更后项目责任人") + private String postChangeProjectOwnerName; + /** * 变更后现场经理 */ @ExcelProperty(value = "变更后现场经理") private Long postChangeSiteManager; + /** + * 变更后现场经理 + */ + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "postChangeSiteManager") + @ExcelProperty(value = "变更后现场经理") + private Long postChangeSiteManagerName; + /** * 变更后合同备注 */ @@ -318,6 +346,10 @@ public class XzdSubcontractChangeVo implements Serializable { */ private XzdContractDepositInfo htzytkyd; + /** + * 合同变更清单 + */ + private List htbgqds; diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongbiangg/service/impl/XzdSubcontractChangeServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongbiangg/service/impl/XzdSubcontractChangeServiceImpl.java index 2b5c83fb..d02dec6c 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongbiangg/service/impl/XzdSubcontractChangeServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongbiangg/service/impl/XzdSubcontractChangeServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.xzd.contractManagement.fenbaohetongbiangg.service.impl; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; @@ -10,7 +11,10 @@ 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.XzdHtglHtbgqd; +import org.dromara.xzd.comprehensive.service.IXzdHtglHtbgqdService; import org.dromara.xzd.contractManagement.caigouhetongbiangeng.domain.vo.XzdPurchaseContractAlterationVo; import org.dromara.xzd.contractManagement.fenbaohetongxinxi.domain.vo.XzdSubcontractVo; import org.dromara.xzd.contractManagement.fenbaohetongxinxi.service.IXzdSubcontractService; @@ -65,6 +69,9 @@ public class XzdSubcontractChangeServiceImpl extends ServiceImpl lists) { for (XzdSubcontractChangeVo item : lists) { + + +// 合同编号名称 + XzdSubcontractVo xzdSubcontractVo = iXzdSubcontractService.queryById(item.getContractCode()); + if (xzdSubcontractVo != null) { + item.setContractCodeName(xzdSubcontractVo.getContractCode()); + } //合同文本-预收款项 LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(XzdContractAdvanceInfo::getContractDetailsId, item.getId()); @@ -115,6 +129,10 @@ public class XzdSubcontractChangeServiceImpl extends ServiceImpl list4 = xzdHtglHtbgqdService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(XzdHtglHtbgqd::getMainDocumentId, item.getId())); + item.setHtbgqds(list4); + } } @@ -129,6 +147,7 @@ public class XzdSubcontractChangeServiceImpl extends ServiceImpl queryPageList(XzdSubcontractChangeBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + setValue(result.getRecords()); return TableDataInfo.build(result); } @@ -160,11 +179,7 @@ public class XzdSubcontractChangeServiceImpl extends ServiceImpl 0; String tableName = XzdClassEnum.CAIGOUHETONG_INFORMATION.getClassName(); @@ -235,6 +252,12 @@ public class XzdSubcontractChangeServiceImpl extends ServiceImpl{item.setMainDocumentId(add.getId());}); + xzdHtglHtbgqdService.saveBatch(bo.getHtbgqds()); + } if (flag) { bo.setId(add.getId()); } @@ -293,7 +316,12 @@ public class XzdSubcontractChangeServiceImpl extends ServiceImpl().eq(XzdHtglHtbgqd::getMainDocumentId,bo.getId())); + if (bo.getHtbgqds() != null && !bo.getHtbgqds().isEmpty()) { + bo.getHtbgqds().forEach(item->{item.setMainDocumentId(bo.getId());}); + xzdHtglHtbgqdService.saveBatch(bo.getHtbgqds()); + } @@ -349,7 +377,7 @@ public class XzdSubcontractChangeServiceImpl extends ServiceImpl().in(XzdHtglHtbgqd::getMainDocumentId,ids)); return baseMapper.deleteByIds(ids) > 0; } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongxinxi/controller/XzdSubcontractController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongxinxi/controller/XzdSubcontractController.java index dd3688ac..1eb89ef7 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongxinxi/controller/XzdSubcontractController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongxinxi/controller/XzdSubcontractController.java @@ -61,7 +61,7 @@ public class XzdSubcontractController extends BaseController { * * @param id 主键 */ - @SaCheckPermission("fenbaohetongxinxi:subcontract:query") +// @SaCheckPermission("fenbaohetongxinxi:subcontract:query") @GetMapping("/{id}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongxinxi/domain/XzdSubcontract.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongxinxi/domain/XzdSubcontract.java index f6c364c1..d38fb085 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongxinxi/domain/XzdSubcontract.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongxinxi/domain/XzdSubcontract.java @@ -161,7 +161,7 @@ public class XzdSubcontract extends BaseEntity { /** * 项目类型(字典) */ - private String projectType; + private Long projectType; /** * 项目大类(字典) diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongxinxi/domain/bo/XzdSubcontractBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongxinxi/domain/bo/XzdSubcontractBo.java index e01480e6..e2d7654a 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongxinxi/domain/bo/XzdSubcontractBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongxinxi/domain/bo/XzdSubcontractBo.java @@ -1,5 +1,7 @@ package org.dromara.xzd.contractManagement.fenbaohetongxinxi.domain.bo; +import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd; +import org.dromara.xzd.comprehensive.domain.XzdHtglHthzsj; import org.dromara.xzd.contractManagement.fenbaohetongxinxi.domain.XzdSubcontract; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.core.validate.AddGroup; @@ -164,7 +166,7 @@ public class XzdSubcontractBo extends BaseEntity { /** * 项目类型(字典) */ - private String projectType; + private Long projectType; /** * 项目大类(字典) @@ -286,5 +288,10 @@ public class XzdSubcontractBo extends BaseEntity { */ private XzdContractDepositInfo htzytkyd; + /** + * 合同变更清单 + */ + private List htbgqds; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongxinxi/domain/vo/XzdSubcontractVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongxinxi/domain/vo/XzdSubcontractVo.java index 4382fffb..05197530 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongxinxi/domain/vo/XzdSubcontractVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongxinxi/domain/vo/XzdSubcontractVo.java @@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import org.dromara.common.translation.annotation.Translation; import org.dromara.common.translation.constant.TransConstant; +import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd; +import org.dromara.xzd.comprehensive.domain.XzdHtglHthzsj; import org.dromara.xzd.contractManagement.fenbaohetongxinxi.domain.XzdSubcontract; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; @@ -249,6 +251,7 @@ public class XzdSubcontractVo implements Serializable { /** * 签约组织名称 */ + @Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "signingOrganization") @ExcelProperty(value = "签约组织名称") private String signingOrganizationName; @@ -257,7 +260,7 @@ public class XzdSubcontractVo implements Serializable { */ @ExcelProperty(value = "项目类型", converter = ExcelDictConvert.class) @ExcelDictFormat(readConverterExp = "字=典") - private String projectType; + private Long projectType; /** * 项目大类(字典) @@ -438,5 +441,9 @@ public class XzdSubcontractVo implements Serializable { private XzdContractDepositInfo htzytkyd; + /** + * 合同变更清单 + */ + private List htbgqds; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongxinxi/service/impl/XzdSubcontractServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongxinxi/service/impl/XzdSubcontractServiceImpl.java index 5ac03c16..2bdfbe96 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongxinxi/service/impl/XzdSubcontractServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongxinxi/service/impl/XzdSubcontractServiceImpl.java @@ -10,7 +10,10 @@ 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.XzdHtglHtbgqd; +import org.dromara.xzd.comprehensive.service.IXzdHtglHtbgqdService; import org.dromara.xzd.contractManagement.purchaseManagement.domain.XzdPurchaseContractInformation; import org.dromara.xzd.contractManagement.purchaseManagement.domain.vo.XzdPurchaseContractInformationVo; import org.dromara.xzd.domain.*; @@ -74,6 +77,9 @@ public class XzdSubcontractServiceImpl extends ServiceImpl byid2 = iXzdCorrespondentList.getCustomerByid(item.getTicketReceivingUnit()); - if (byid2!=null){ - if (byid2.getData().getXzdCustomerinformation() != null){ - item.setTicketReceivingUnitName(byid2.getData().getXzdCustomerinformation().getUnitName()); - } + //收票单位名称(供应商名称) + String unitName2 = xzdSupplierInfoService.queryNameById(item.getTicketReceivingUnit()); + if (unitName2 != null){ + item.setTicketReceivingUnitName(unitName2); } - //签约组织(供应商) - String unitName2 = xzdSupplierInfoService.queryNameById(item.getSigningOrganization()); - if (unitName2!= null){ - item.setSigningOrganizationName(unitName2); - } - //合同文本-预收款项 + +// //合同文本-预收款项 LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(XzdContractAdvanceInfo::getContractDetailsId, item.getId()); List advanceInfos = xzdContractAdvanceInfoService.list(lambdaQueryWrapper); @@ -183,6 +182,10 @@ public class XzdSubcontractServiceImpl extends ServiceImpl list4 = xzdHtglHtbgqdService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(XzdHtglHtbgqd::getMainDocumentId, item.getId())); + item.setHtbgqds(list4); + } @@ -234,7 +237,7 @@ public class XzdSubcontractServiceImpl extends ServiceImpl().gt(XzdSubcontract::getCreateTime, LocalDate.now())); - String s = areaUtil.generateDateBasedNumberByY(); + String banBen = BatchNumberGenerator.generateBatchNumber("FBHTXX-"); - add.setContractCode(ZxdEnum.FENBAOHETONG_PREFIX.getTypeValue()+"-"+s+"-"+(l+1)); + + add.setContractCode(banBen); boolean flag = baseMapper.insert(add) > 0; // 表名 String tableName = XzdClassEnum.FENBAOHETONG_INFORMATION.getClassName(); @@ -306,7 +309,11 @@ public class XzdSubcontractServiceImpl extends ServiceImpl{item.setMainDocumentId(add.getId());}); + xzdHtglHtbgqdService.saveBatch(bo.getHtbgqds()); + } if (flag) { bo.setId(add.getId()); @@ -379,6 +386,11 @@ public class XzdSubcontractServiceImpl extends ServiceImpl().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; } @@ -435,6 +447,8 @@ public class XzdSubcontractServiceImpl extends ServiceImpl().in(XzdHtglHtbgqd::getMainDocumentId,ids)); + return baseMapper.deleteByIds(ids) > 0; } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongzhongzhi/service/impl/XzdSubcontractTerminationServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongzhongzhi/service/impl/XzdSubcontractTerminationServiceImpl.java index ea17f912..0dc8bd6a 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongzhongzhi/service/impl/XzdSubcontractTerminationServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/fenbaohetongzhongzhi/service/impl/XzdSubcontractTerminationServiceImpl.java @@ -9,9 +9,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.utils.BatchNumberGenerator; import org.dromara.system.service.impl.SysOssServiceImpl; import org.dromara.xzd.contractManagement.caigoucontractTermination.domain.XzdPurchaseContractSuspend; import org.dromara.xzd.contractManagement.caigoucontractTermination.domain.vo.XzdPurchaseContractSuspendVo; +import org.dromara.xzd.contractManagement.fenbaohetongxinxi.domain.vo.XzdSubcontractVo; +import org.dromara.xzd.contractManagement.fenbaohetongxinxi.service.IXzdSubcontractService; import org.dromara.xzd.utilS.AreaUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -40,6 +43,7 @@ public class XzdSubcontractTerminationServiceImpl extends ServiceImpl res = List.of(vo); + saveValue(res); + return res.getFirst(); + } + + private void saveValue(List res) { + for (XzdSubcontractTerminationVo vo : res) { + XzdSubcontractVo xzdSubcontractVo = iXzdSubcontractService.queryById(vo.getContractNumber()); + if (xzdSubcontractVo != null) { + vo.setContractNumberName(xzdSubcontractVo.getContractCode()); + } + + } + } /** @@ -68,6 +84,7 @@ public class XzdSubcontractTerminationServiceImpl extends ServiceImpl queryPageList(XzdSubcontractTerminationBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + saveValue(result.getRecords()); return TableDataInfo.build(result); } @@ -117,10 +134,8 @@ public class XzdSubcontractTerminationServiceImpl extends ServiceImpl().gt(XzdSubcontractTermination::getCreateTime, LocalDate.now())); - String s = areaUtil.generateDateBasedNumber(); - add.setDocumentCode(s+"-"+(l+1)); + String banBen = BatchNumberGenerator.generateBatchNumber("FBHTZZ-"); + add.setDocumentCode(banBen); boolean flag = baseMapper.insert(add) > 0; if (flag) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/purchaseManagement/domain/bo/XzdPurchaseContractInformationBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/purchaseManagement/domain/bo/XzdPurchaseContractInformationBo.java index f48d3aab..a2953ef0 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/purchaseManagement/domain/bo/XzdPurchaseContractInformationBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/purchaseManagement/domain/bo/XzdPurchaseContractInformationBo.java @@ -14,6 +14,8 @@ import java.util.Date; import java.util.List; import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd; +import org.dromara.xzd.comprehensive.domain.XzdHtglHthzsj; import org.dromara.xzd.contractManagement.purchaseManagement.domain.XzdPurchaseContractInformation; import org.dromara.xzd.domain.*; @@ -310,4 +312,14 @@ public class XzdPurchaseContractInformationBo extends BaseEntity { private XzdContractDepositInfo htzytkyd; + /** + * 合同变更清单 + */ + private List htbgqds; + + /** + * 汇总数据 + */ + private List htghthzsjs; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/purchaseManagement/domain/vo/XzdPurchaseContractInformationVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/purchaseManagement/domain/vo/XzdPurchaseContractInformationVo.java index 3c33942b..5e5fa08c 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/purchaseManagement/domain/vo/XzdPurchaseContractInformationVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/purchaseManagement/domain/vo/XzdPurchaseContractInformationVo.java @@ -15,6 +15,8 @@ import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; 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.XzdHtglHthzsj; import org.dromara.xzd.contractManagement.purchaseManagement.domain.XzdPurchaseContractInformation; import org.dromara.xzd.domain.*; @@ -465,6 +467,16 @@ public class XzdPurchaseContractInformationVo implements Serializable { private XzdContractDepositInfo htzytkyd; + /** + * 合同变更清单 + */ + private List htbgqds; + + /** + * 汇总数据 + */ + private List htghthzsjs; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/purchaseManagement/service/impl/XzdPurchaseContractInformationServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/purchaseManagement/service/impl/XzdPurchaseContractInformationServiceImpl.java index 5c804af6..4c3f9fdd 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/purchaseManagement/service/impl/XzdPurchaseContractInformationServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/purchaseManagement/service/impl/XzdPurchaseContractInformationServiceImpl.java @@ -12,8 +12,13 @@ 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.biddingManagement.biaoqianlixiang.domain.XzdBidPreProject; +import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd; +import org.dromara.xzd.comprehensive.domain.XzdHtglHthzsj; +import org.dromara.xzd.comprehensive.service.IXzdHtglHtbgqdService; +import org.dromara.xzd.comprehensive.service.IXzdHtglHthzsjService; import org.dromara.xzd.contractManagement.purchaseManagement.domain.XzdPurchaseContractInformation; import org.dromara.xzd.contractManagement.purchaseManagement.domain.bo.XzdPurchaseContractInformationBo; import org.dromara.xzd.contractManagement.purchaseManagement.domain.vo.XzdPurchaseContractInformationVo; @@ -74,6 +79,10 @@ public class XzdPurchaseContractInformationServiceImpl extends ServiceImpl().gt(XzdPurchaseContractInformation::getCreateTime, LocalDate.now())); - String s = areaUtil.generateDateBasedNumberByY(); - add.setContractCode(ZxdEnum.PURCHASE_PREFIX.getTypeValue()+"-"+s+"-"+(l+1)); + String banBen = BatchNumberGenerator.generateBatchNumber("CGHTXX-"); + add.setContractCode(banBen); boolean flag = baseMapper.insert(add) > 0; String tableName = XzdClassEnum.PURCHASE_CONTRACT_INFORMATION.getClassName(); //合同文本-预收款项 @@ -237,10 +245,18 @@ public class XzdPurchaseContractInformationServiceImpl extends ServiceImpl{item.setMainDocumentId(add.getId());}); + xzdHtglHtbgqdService.saveBatch(bo.getHtbgqds()); + } + //汇总数据 + if (bo.getHtghthzsjs() != null && !bo.getHtghthzsjs().isEmpty()) { + bo.getHtghthzsjs().forEach(item->{item.setMainDocumentId(add.getId());}); + xzdHtglHthzsjService.saveBatch(bo.getHtghthzsjs()); + } return flag; } - /** * 修改采购合同信息 * @@ -299,12 +315,21 @@ public class XzdPurchaseContractInformationServiceImpl extends ServiceImpl().eq(XzdHtglHtbgqd::getMainDocumentId,bo.getId())); + if (bo.getHtbgqds() != null && !bo.getHtbgqds().isEmpty()) { + bo.getHtbgqds().forEach(item->{item.setMainDocumentId(bo.getId());}); + xzdHtglHtbgqdService.saveBatch(bo.getHtbgqds()); + } + //汇总数据 + xzdHtglHthzsjService.remove(new LambdaQueryWrapper().eq(XzdHtglHthzsj::getMainDocumentId,bo.getId())); + if (bo.getHtghthzsjs() != null && !bo.getHtghthzsjs().isEmpty()) { + bo.getHtghthzsjs().forEach(item->{item.setMainDocumentId(bo.getId());}); + xzdHtglHthzsjService.saveBatch(bo.getHtghthzsjs()); + } return baseMapper.updateById(update) > 0; } @@ -315,7 +340,6 @@ public class XzdPurchaseContractInformationServiceImpl extends ServiceImpl lambdaQueryWrapper3 = new LambdaQueryWrapper<>(); lambdaQueryWrapper3.in(XzdSettlementRules::getContractDetailsId, ids); xzdSettlementRulesService.remove(lambdaQueryWrapper3); + + xzdHtglHtbgqdService.remove(new LambdaQueryWrapper().in(XzdHtglHtbgqd::getMainDocumentId,ids)); + xzdHtglHthzsjService.remove(new LambdaQueryWrapper().in(XzdHtglHthzsj::getMainDocumentId,ids)); + return baseMapper.deleteByIds(ids) > 0; } @@ -379,6 +407,13 @@ public class XzdPurchaseContractInformationServiceImpl extends ServiceImpl byid = iXzdCorrespondentList.getCustomerByid(item.getPartyAUnit()); if (byid!=null){ @@ -452,6 +487,10 @@ public class XzdPurchaseContractInformationServiceImpl extends ServiceImpl list4 = xzdHtglHtbgqdService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(XzdHtglHtbgqd::getMainDocumentId, item.getId())); + item.setHtbgqds(list4); + List xzdHtglHthzsjs = xzdHtglHthzsjService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(XzdHtglHthzsj::getMainDocumentId, item.getId())); + item.setHtghthzsjs(xzdHtglHthzsjs); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdContractChangeController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdContractChangeController.java index 4661692c..f876a3b7 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdContractChangeController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdContractChangeController.java @@ -61,7 +61,7 @@ public class XzdContractChangeController extends BaseController { * * @param id 主键 */ - @SaCheckPermission("xzd:contractChange:query") +// @SaCheckPermission("xzd:contractChange:query") @GetMapping("/{id}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/controller/XzdCbysZjhcbAlterationController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/controller/XzdCbysZjhcbAlterationController.java new file mode 100644 index 00000000..9927d295 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/controller/XzdCbysZjhcbAlterationController.java @@ -0,0 +1,105 @@ +package org.dromara.xzd.costProjectApproval.costBudget.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysZjhcbAlterationVo; +import org.dromara.xzd.costProjectApproval.costBudget.domain.bo.XzdCbysZjhcbAlterationBo; +import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysZjhcbAlterationService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 立项及成本-成本预算-总体计划成本变更 + * + * @author Lion Li + * @date 2025-10-17 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/costBudget/cbysZjhcbAlteration") +public class XzdCbysZjhcbAlterationController extends BaseController { + + private final IXzdCbysZjhcbAlterationService xzdCbysZjhcbAlterationService; + + /** + * 查询立项及成本-成本预算-总体计划成本变更列表 + */ + @SaCheckPermission("costBudget:cbysZjhcbAlteration:list") + @GetMapping("/list") + public TableDataInfo list(XzdCbysZjhcbAlterationBo bo, PageQuery pageQuery) { + return xzdCbysZjhcbAlterationService.queryPageList(bo, pageQuery); + } + + /** + * 导出立项及成本-成本预算-总体计划成本变更列表 + */ + @SaCheckPermission("costBudget:cbysZjhcbAlteration:export") + @Log(title = "立项及成本-成本预算-总体计划成本变更", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdCbysZjhcbAlterationBo bo, HttpServletResponse response) { + List list = xzdCbysZjhcbAlterationService.queryList(bo); + ExcelUtil.exportExcel(list, "立项及成本-成本预算-总体计划成本变更", XzdCbysZjhcbAlterationVo.class, response); + } + + /** + * 获取立项及成本-成本预算-总体计划成本变更详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("costBudget:cbysZjhcbAlteration:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdCbysZjhcbAlterationService.queryById(id)); + } + + /** + * 新增立项及成本-成本预算-总体计划成本变更 + */ + @SaCheckPermission("costBudget:cbysZjhcbAlteration:add") + @Log(title = "立项及成本-成本预算-总体计划成本变更", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdCbysZjhcbAlterationBo bo) { + return toAjax(xzdCbysZjhcbAlterationService.insertByBo(bo)); + } + + /** + * 修改立项及成本-成本预算-总体计划成本变更 + */ + @SaCheckPermission("costBudget:cbysZjhcbAlteration:edit") + @Log(title = "立项及成本-成本预算-总体计划成本变更", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdCbysZjhcbAlterationBo bo) { + return toAjax(xzdCbysZjhcbAlterationService.updateByBo(bo)); + } + + /** + * 删除立项及成本-成本预算-总体计划成本变更 + * + * @param ids 主键串 + */ + @SaCheckPermission("costBudget:cbysZjhcbAlteration:remove") + @Log(title = "立项及成本-成本预算-总体计划成本变更", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdCbysZjhcbAlterationService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/XzdCbysZjhcbAlteration.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/XzdCbysZjhcbAlteration.java new file mode 100644 index 00000000..16d26e7e --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/XzdCbysZjhcbAlteration.java @@ -0,0 +1,153 @@ +package org.dromara.xzd.costProjectApproval.costBudget.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.math.BigDecimal; + +import java.io.Serial; +import java.time.LocalDate; + +/** + * 立项及成本-成本预算-总体计划成本变更对象 xzd_cbys_zjhcb_alteration + * + * @author Lion Li + * @date 2025-10-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_cbys_zjhcb_alteration") +public class XzdCbysZjhcbAlteration extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 单据编码(带*,必填) + */ + private String docCode; + + /** + * 单据标题(带*,必填) + */ + private String docTitle; + + /** + * 单据日期 + */ + private LocalDate docDate; + + /** + * 工程项目(带*,必填) + */ + private Long projectId; + + /** + * 预算分类(带*,必填) + */ + private String budgetCategory; + + /** + * 总不含税金额 + */ + private BigDecimal totalTaxExclAmount; + + /** + * 总税额 + */ + private BigDecimal totalTaxAmount; + + /** + * 总含税金额 + */ + private BigDecimal totalTaxInclAmount; + + /** + * 项目责任人 + */ + private Long projectLeader; + + /** + * 执行项目经理 + */ + private Long execProjectManager; + + /** + * 承包合同金额(带*,必填) + */ + private BigDecimal contractAmount; + + /** + * 税务成本 + */ + private BigDecimal taxCost; + + /** + * 利润率 + */ + private BigDecimal profitRate; + + /** + * 利润金额 + */ + private BigDecimal profitAmount; + + /** + * 变更理由 + */ + private String alterationReason; + + /** + * 备注 + */ + private String remark; + + /** + * 启用成本预控模式(0=未启用,1=启用) + */ + private Long enableCostPrecontrol; + + /** + * 成本控制模式(如WBS+CBS) + */ + private String costControlMode; + + /** + * 外币含税类型 + */ + private String foreignCurrencyTaxType; + + /** + * 禁止标识 + */ + private String forbidFlag; + + /** + * 启用按科目属性分页签编制模式(0=未启用,1=启用) + */ + private Long enableAccountAttrTab; + + /** + * 启用物料组编制模式(0=未启用,1=启用) + */ + private Long enableMaterialGroup; + + /** + * 单据引用 + */ + private String documentReference; + + /** + * 文件ID + */ + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/bo/XzdCbysZjhcbAlterationBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/bo/XzdCbysZjhcbAlterationBo.java new file mode 100644 index 00000000..082cca98 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/bo/XzdCbysZjhcbAlterationBo.java @@ -0,0 +1,175 @@ +package org.dromara.xzd.costProjectApproval.costBudget.domain.bo; + +import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysSscb; +import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysWgcbtbFubiao; +import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZjhcbAlteration; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZtjhcbBgjl; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.List; + +/** + * 立项及成本-成本预算-总体计划成本变更业务对象 xzd_cbys_zjhcb_alteration + * + * @author Lion Li + * @date 2025-10-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdCbysZjhcbAlteration.class, reverseConvertGenerate = false) +public class XzdCbysZjhcbAlterationBo extends BaseEntity { + + /** + * 主键ID + */ + private Long id; + + /** + * 单据编码(带*,必填) + */ + private String docCode; + + /** + * 单据标题(带*,必填) + */ + @NotBlank(message = "单据标题(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String docTitle; + + /** + * 单据日期 + */ + private LocalDate docDate; + + /** + * 工程项目(带*,必填) + */ + @NotNull(message = "工程项目(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long projectId; + + /** + * 预算分类(带*,必填) + */ + @NotBlank(message = "预算分类(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String budgetCategory; + + /** + * 总不含税金额 + */ + private BigDecimal totalTaxExclAmount; + + /** + * 总税额 + */ + private BigDecimal totalTaxAmount; + + /** + * 总含税金额 + */ + private BigDecimal totalTaxInclAmount; + + /** + * 项目责任人 + */ + private Long projectLeader; + + /** + * 执行项目经理 + */ + private Long execProjectManager; + + /** + * 承包合同金额(带*,必填) + */ + @NotNull(message = "承包合同金额(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private BigDecimal contractAmount; + + /** + * 税务成本 + */ + private BigDecimal taxCost; + + /** + * 利润率 + */ + private BigDecimal profitRate; + + /** + * 利润金额 + */ + private BigDecimal profitAmount; + + /** + * 变更理由 + */ + private String alterationReason; + + /** + * 备注 + */ + private String remark; + + /** + * 启用成本预控模式(0=未启用,1=启用) + */ + private Long enableCostPrecontrol; + + /** + * 成本控制模式(如WBS+CBS) + */ + private String costControlMode; + + /** + * 外币含税类型 + */ + private String foreignCurrencyTaxType; + + /** + * 禁止标识 + */ + private String forbidFlag; + + /** + * 启用按科目属性分页签编制模式(0=未启用,1=启用) + */ + private Long enableAccountAttrTab; + + /** + * 启用物料组编制模式(0=未启用,1=启用) + */ + private Long enableMaterialGroup; + + /** + * 单据引用 + */ + private String documentReference; + + /** + * 文件ID + */ + private String fileId; + + /** + * 变更记录 + */ + List xzdCbysZtjhcbBgjl; + + /** + * 成本明细 + */ + List xzdCbysWgcbtbFubiao; + + /** + * 税收成本 + */ + List xzdCbysSscb; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/bo/XzdCbysZjhcbBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/bo/XzdCbysZjhcbBo.java index 4c588a53..bf9172c4 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/bo/XzdCbysZjhcbBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/bo/XzdCbysZjhcbBo.java @@ -27,13 +27,11 @@ public class XzdCbysZjhcbBo extends BaseEntity { /** * 主键ID */ - @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) private Long id; /** * 单据编码(带*,必填) */ - @NotBlank(message = "单据编码(带*,必填)不能为空", groups = { EditGroup.class }) private String docCode; /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/vo/XzdCbysZjhcbAlterationVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/vo/XzdCbysZjhcbAlterationVo.java new file mode 100644 index 00000000..6409dd9f --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/vo/XzdCbysZjhcbAlterationVo.java @@ -0,0 +1,235 @@ +package org.dromara.xzd.costProjectApproval.costBudget.domain.vo; + +import java.math.BigDecimal; + +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysSscb; +import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysWgcbtbFubiao; +import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZjhcbAlteration; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZtjhcbBgjl; + +import java.io.Serial; +import java.io.Serializable; +import java.time.LocalDate; +import java.util.List; + + +/** + * 立项及成本-成本预算-总体计划成本变更视图对象 xzd_cbys_zjhcb_alteration + * + * @author Lion Li + * @date 2025-10-17 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdCbysZjhcbAlteration.class) +public class XzdCbysZjhcbAlterationVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 单据编码(带*,必填) + */ + @ExcelProperty(value = "单据编码", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private String docCode; + + /** + * 单据标题(带*,必填) + */ + @ExcelProperty(value = "单据标题", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private String docTitle; + + /** + * 单据日期 + */ + @ExcelProperty(value = "单据日期") + private LocalDate docDate; + + /** + * 工程项目(带*,必填) + */ + @ExcelProperty(value = "工程项目", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private Long projectId; + + /** + * 工程项目名称 + */ + private String projectName; + + /** + * 预算分类(带*,必填) + */ + @ExcelProperty(value = "预算分类", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private String budgetCategory; + + /** + * 总不含税金额 + */ + @ExcelProperty(value = "总不含税金额") + private BigDecimal totalTaxExclAmount; + + /** + * 总税额 + */ + @ExcelProperty(value = "总税额") + private BigDecimal totalTaxAmount; + + /** + * 总含税金额 + */ + @ExcelProperty(value = "总含税金额") + private BigDecimal totalTaxInclAmount; + + /** + * 项目责任人 + */ + @ExcelProperty(value = "项目责任人") + private Long projectLeader; + + /** + * 项目责任人名称 + */ + @ExcelProperty(value = "项目责任人名称") + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "projectLeader") + private String projectLeaderName; + + + /** + * 执行项目经理 + */ + @ExcelProperty(value = "执行项目经理") + private Long execProjectManager; + + /** + * 执行项目经理名称 + */ + @ExcelProperty(value = "执行项目经理名称") + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "execProjectManager") + private String execProjectManagerName; + + /** + * 承包合同金额(带*,必填) + */ + @ExcelProperty(value = "承包合同金额", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private BigDecimal contractAmount; + + /** + * 税务成本 + */ + @ExcelProperty(value = "税务成本") + private BigDecimal taxCost; + + /** + * 利润率 + */ + @ExcelProperty(value = "利润率") + private BigDecimal profitRate; + + /** + * 利润金额 + */ + @ExcelProperty(value = "利润金额") + private BigDecimal profitAmount; + + /** + * 变更理由 + */ + @ExcelProperty(value = "变更理由") + private String alterationReason; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 启用成本预控模式(0=未启用,1=启用) + */ + @ExcelProperty(value = "启用成本预控模式", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0==未启用,1=启用") + private Long enableCostPrecontrol; + + /** + * 成本控制模式(如WBS+CBS) + */ + @ExcelProperty(value = "成本控制模式", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "如=WBS+CBS") + private String costControlMode; + + /** + * 外币含税类型 + */ + @ExcelProperty(value = "外币含税类型") + private String foreignCurrencyTaxType; + + /** + * 禁止标识 + */ + @ExcelProperty(value = "禁止标识") + private String forbidFlag; + + /** + * 启用按科目属性分页签编制模式(0=未启用,1=启用) + */ + @ExcelProperty(value = "启用按科目属性分页签编制模式", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0==未启用,1=启用") + private Long enableAccountAttrTab; + + /** + * 启用物料组编制模式(0=未启用,1=启用) + */ + @ExcelProperty(value = "启用物料组编制模式", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0==未启用,1=启用") + private Long enableMaterialGroup; + + /** + * 单据引用 + */ + @ExcelProperty(value = "单据引用") + private String documentReference; + + /** + * 文件ID + */ + @ExcelProperty(value = "文件ID") + private String fileId; + + + /** + * 变更记录 + */ + List xzdCbysZtjhcbBgjl; + + /** + * 成本明细 + */ + List xzdCbysWgcbtbFubiao; + + /** + * 税收成本 + */ + List xzdCbysSscb; + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/mapper/XzdCbysZjhcbAlterationMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/mapper/XzdCbysZjhcbAlterationMapper.java new file mode 100644 index 00000000..8dd780d5 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/mapper/XzdCbysZjhcbAlterationMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.costProjectApproval.costBudget.mapper; + +import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZjhcbAlteration; +import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysZjhcbAlterationVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 立项及成本-成本预算-总体计划成本变更Mapper接口 + * + * @author Lion Li + * @date 2025-10-17 + */ +public interface XzdCbysZjhcbAlterationMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/service/IXzdCbysZjhcbAlterationService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/service/IXzdCbysZjhcbAlterationService.java new file mode 100644 index 00000000..e9c74347 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/service/IXzdCbysZjhcbAlterationService.java @@ -0,0 +1,70 @@ +package org.dromara.xzd.costProjectApproval.costBudget.service; + +import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysZjhcbAlterationVo; +import org.dromara.xzd.costProjectApproval.costBudget.domain.bo.XzdCbysZjhcbAlterationBo; +import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZjhcbAlteration; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; +import java.util.List; + +/** + * 立项及成本-成本预算-总体计划成本变更Service接口 + * + * @author Lion Li + * @date 2025-10-17 + */ +public interface IXzdCbysZjhcbAlterationService extends IService{ + + /** + * 查询立项及成本-成本预算-总体计划成本变更 + * + * @param id 主键 + * @return 立项及成本-成本预算-总体计划成本变更 + */ + XzdCbysZjhcbAlterationVo queryById(Long id); + + /** + * 分页查询立项及成本-成本预算-总体计划成本变更列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 立项及成本-成本预算-总体计划成本变更分页列表 + */ + TableDataInfo queryPageList(XzdCbysZjhcbAlterationBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的立项及成本-成本预算-总体计划成本变更列表 + * + * @param bo 查询条件 + * @return 立项及成本-成本预算-总体计划成本变更列表 + */ + List queryList(XzdCbysZjhcbAlterationBo bo); + + /** + * 新增立项及成本-成本预算-总体计划成本变更 + * + * @param bo 立项及成本-成本预算-总体计划成本变更 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdCbysZjhcbAlterationBo bo); + + /** + * 修改立项及成本-成本预算-总体计划成本变更 + * + * @param bo 立项及成本-成本预算-总体计划成本变更 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdCbysZjhcbAlterationBo bo); + + /** + * 校验并批量删除立项及成本-成本预算-总体计划成本变更信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/service/impl/XzdCbysWgcbtbServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/service/impl/XzdCbysWgcbtbServiceImpl.java index ec90d3c7..6dc3f931 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/service/impl/XzdCbysWgcbtbServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/service/impl/XzdCbysWgcbtbServiceImpl.java @@ -91,6 +91,10 @@ public class XzdCbysWgcbtbServiceImpl extends ServiceImpl hashMap = new HashMap<>(); + hashMap.put("main_doc_id", item.getId()); + List list = fubiaoService.getBaseMapper().selectByMap(hashMap); + item.setXzdCbysWgcbtbFubiao(list); } @@ -141,7 +145,7 @@ public class XzdCbysWgcbtbServiceImpl extends ServiceImpl 0; if (flag) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/service/impl/XzdCbysZjhcbAlterationServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/service/impl/XzdCbysZjhcbAlterationServiceImpl.java new file mode 100644 index 00000000..56fb6db0 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/service/impl/XzdCbysZjhcbAlterationServiceImpl.java @@ -0,0 +1,258 @@ +package org.dromara.xzd.costProjectApproval.costBudget.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.utils.BatchNumberGenerator; +import org.dromara.system.service.ISysUserService; +import org.dromara.system.service.impl.SysOssServiceImpl; +import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysSscb; +import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysWgcbtbFubiao; +import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZtjhcbBgjl; +import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysZjhcbVo; +import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysSscbService; +import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysWgcbtbFubiaoService; +import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysZtjhcbBgjlService; +import org.dromara.xzd.service.impl.XzdProjectServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.dromara.xzd.costProjectApproval.costBudget.domain.bo.XzdCbysZjhcbAlterationBo; +import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysZjhcbAlterationVo; +import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZjhcbAlteration; +import org.dromara.xzd.costProjectApproval.costBudget.mapper.XzdCbysZjhcbAlterationMapper; +import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysZjhcbAlterationService; + +import java.util.*; + +/** + * 立项及成本-成本预算-总体计划成本变更Service业务层处理 + * + * @author Lion Li + * @date 2025-10-17 + */ +@RequiredArgsConstructor +@Service +public class XzdCbysZjhcbAlterationServiceImpl extends ServiceImpl implements IXzdCbysZjhcbAlterationService { + + private final XzdCbysZjhcbAlterationMapper baseMapper; + + + @Autowired + private IXzdCbysZtjhcbBgjlService xzdCbysZtjhcbBgjlService; + @Autowired + private IXzdCbysSscbService xzdCbysSscbService; + @Autowired + private IXzdCbysWgcbtbFubiaoService fubiaoService; + @Autowired + private SysOssServiceImpl sysOssService; + @Autowired + private XzdProjectServiceImpl xzdProjectService; + @Autowired + private ISysUserService sysUserService; + + /** + * 查询立项及成本-成本预算-总体计划成本变更 + * + * @param id 主键 + * @return 立项及成本-成本预算-总体计划成本变更 + */ + @Override + public XzdCbysZjhcbAlterationVo queryById(Long id){ + XzdCbysZjhcbAlterationVo vo = baseMapper.selectVoById(id); + getName(vo); + getHttk(vo); + return vo; + } + + /** + * 分页查询立项及成本-成本预算-总体计划成本变更列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 立项及成本-成本预算-总体计划成本变更分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdCbysZjhcbAlterationBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + result.getRecords().forEach(this::getName); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的立项及成本-成本预算-总体计划成本变更列表 + * + * @param bo 查询条件 + * @return 立项及成本-成本预算-总体计划成本变更列表 + */ + @Override + public List queryList(XzdCbysZjhcbAlterationBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + /** + * 获取部分字段名称 + * @param item + */ + private void getName(XzdCbysZjhcbAlterationVo item) { + //项目名称 + if (item.getProjectId() != null){ + String projectName = xzdProjectService.queryNameById(item.getProjectId()); + if (projectName != null){ + item.setProjectName(projectName); + } + } + } + +// 回填数据 + private void getHttk(XzdCbysZjhcbAlterationVo vo) { + List xzdCbysZtjhcbBgjls = xzdCbysZtjhcbBgjlService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(XzdCbysZtjhcbBgjl::getMainDocumentId, vo.getId())); + vo.setXzdCbysZtjhcbBgjl(xzdCbysZtjhcbBgjls); + List xzdCbysSscbs = xzdCbysSscbService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(XzdCbysSscb::getMainDocumentId, vo.getId())); + vo.setXzdCbysSscb(xzdCbysSscbs); + List xzdCbysWgcbtbFubiaos = fubiaoService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(XzdCbysWgcbtbFubiao::getMainDocId, vo.getId())); + vo.setXzdCbysWgcbtbFubiao(xzdCbysWgcbtbFubiaos); + } + private LambdaQueryWrapper buildQueryWrapper(XzdCbysZjhcbAlterationBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdCbysZjhcbAlteration::getId); + lqw.eq(StringUtils.isNotBlank(bo.getDocCode()), XzdCbysZjhcbAlteration::getDocCode, bo.getDocCode()); + lqw.eq(StringUtils.isNotBlank(bo.getDocTitle()), XzdCbysZjhcbAlteration::getDocTitle, bo.getDocTitle()); + lqw.eq(bo.getDocDate() != null, XzdCbysZjhcbAlteration::getDocDate, bo.getDocDate()); + lqw.eq(bo.getProjectId() != null, XzdCbysZjhcbAlteration::getProjectId, bo.getProjectId()); + lqw.eq(StringUtils.isNotBlank(bo.getBudgetCategory()), XzdCbysZjhcbAlteration::getBudgetCategory, bo.getBudgetCategory()); + lqw.eq(bo.getTotalTaxExclAmount() != null, XzdCbysZjhcbAlteration::getTotalTaxExclAmount, bo.getTotalTaxExclAmount()); + lqw.eq(bo.getTotalTaxAmount() != null, XzdCbysZjhcbAlteration::getTotalTaxAmount, bo.getTotalTaxAmount()); + lqw.eq(bo.getTotalTaxInclAmount() != null, XzdCbysZjhcbAlteration::getTotalTaxInclAmount, bo.getTotalTaxInclAmount()); + lqw.eq(bo.getProjectLeader() != null, XzdCbysZjhcbAlteration::getProjectLeader, bo.getProjectLeader()); + lqw.eq(bo.getExecProjectManager() != null, XzdCbysZjhcbAlteration::getExecProjectManager, bo.getExecProjectManager()); + lqw.eq(bo.getContractAmount() != null, XzdCbysZjhcbAlteration::getContractAmount, bo.getContractAmount()); + lqw.eq(bo.getTaxCost() != null, XzdCbysZjhcbAlteration::getTaxCost, bo.getTaxCost()); + lqw.eq(bo.getProfitRate() != null, XzdCbysZjhcbAlteration::getProfitRate, bo.getProfitRate()); + lqw.eq(bo.getProfitAmount() != null, XzdCbysZjhcbAlteration::getProfitAmount, bo.getProfitAmount()); + lqw.eq(StringUtils.isNotBlank(bo.getAlterationReason()), XzdCbysZjhcbAlteration::getAlterationReason, bo.getAlterationReason()); + lqw.eq(bo.getEnableCostPrecontrol() != null, XzdCbysZjhcbAlteration::getEnableCostPrecontrol, bo.getEnableCostPrecontrol()); + lqw.eq(StringUtils.isNotBlank(bo.getCostControlMode()), XzdCbysZjhcbAlteration::getCostControlMode, bo.getCostControlMode()); + lqw.eq(StringUtils.isNotBlank(bo.getForeignCurrencyTaxType()), XzdCbysZjhcbAlteration::getForeignCurrencyTaxType, bo.getForeignCurrencyTaxType()); + lqw.eq(StringUtils.isNotBlank(bo.getForbidFlag()), XzdCbysZjhcbAlteration::getForbidFlag, bo.getForbidFlag()); + lqw.eq(bo.getEnableAccountAttrTab() != null, XzdCbysZjhcbAlteration::getEnableAccountAttrTab, bo.getEnableAccountAttrTab()); + lqw.eq(bo.getEnableMaterialGroup() != null, XzdCbysZjhcbAlteration::getEnableMaterialGroup, bo.getEnableMaterialGroup()); + lqw.eq(StringUtils.isNotBlank(bo.getDocumentReference()), XzdCbysZjhcbAlteration::getDocumentReference, bo.getDocumentReference()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdCbysZjhcbAlteration::getFileId, bo.getFileId()); + return lqw; + } + + /** + * 新增立项及成本-成本预算-总体计划成本变更 + * + * @param bo 立项及成本-成本预算-总体计划成本变更 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdCbysZjhcbAlterationBo bo) { + XzdCbysZjhcbAlteration add = MapstructUtils.convert(bo, XzdCbysZjhcbAlteration.class); + validEntityBeforeSave(add); + String banBen = BatchNumberGenerator.generateBatchNumber("WGCBTB-"); + add.setDocCode(banBen); + boolean flag = baseMapper.insert(add) > 0; + if (bo.getXzdCbysSscb() == null || bo.getXzdCbysSscb().isEmpty()) { + throw new ServiceException("税收成本不能为空"); + } + if (bo.getXzdCbysZtjhcbBgjl() == null || bo.getXzdCbysZtjhcbBgjl().isEmpty()) { + throw new ServiceException("变更记录不能为空"); + } + if (bo.getXzdCbysWgcbtbFubiao() == null || bo.getXzdCbysWgcbtbFubiao().isEmpty()) { + throw new ServiceException("成本明细不能为空"); + } + bo.getXzdCbysSscb().forEach(item -> {item.setMainDocumentId(add.getId());}); + xzdCbysSscbService.saveBatch(bo.getXzdCbysSscb()); + bo.getXzdCbysZtjhcbBgjl().forEach(item -> {item.setMainDocumentId(add.getId());}); + xzdCbysZtjhcbBgjlService.saveBatch(bo.getXzdCbysZtjhcbBgjl()); + bo.getXzdCbysWgcbtbFubiao().forEach(item -> {item.setMainDocId(add.getId());}); + fubiaoService.saveBatch(bo.getXzdCbysWgcbtbFubiao()); + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改立项及成本-成本预算-总体计划成本变更 + * + * @param bo 立项及成本-成本预算-总体计划成本变更 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdCbysZjhcbAlterationBo bo) { + XzdCbysZjhcbAlteration update = MapstructUtils.convert(bo, XzdCbysZjhcbAlteration.class); + validEntityBeforeSave(update); + if (bo.getXzdCbysSscb() == null || bo.getXzdCbysSscb().isEmpty()) { + throw new ServiceException("税收成本不能为空"); + } + if (bo.getXzdCbysZtjhcbBgjl() == null || bo.getXzdCbysZtjhcbBgjl().isEmpty()) { + throw new ServiceException("变更记录不能为空"); + } + if (bo.getXzdCbysWgcbtbFubiao() == null || bo.getXzdCbysWgcbtbFubiao().isEmpty()) { + throw new ServiceException("成本明细不能为空"); + } + xzdCbysZtjhcbBgjlService.remove(new LambdaQueryWrapper().eq(XzdCbysZtjhcbBgjl::getMainDocumentId, bo.getId())); + xzdCbysSscbService.remove(new LambdaQueryWrapper().eq(XzdCbysSscb::getMainDocumentId, bo.getId())); + fubiaoService.remove(new LambdaQueryWrapper().eq(XzdCbysWgcbtbFubiao::getMainDocId, bo.getId())); + bo.getXzdCbysSscb().forEach(item -> {item.setMainDocumentId(bo.getId());}); + xzdCbysSscbService.saveBatch(bo.getXzdCbysSscb()); + bo.getXzdCbysZtjhcbBgjl().forEach(item -> {item.setMainDocumentId(bo.getId());}); + xzdCbysZtjhcbBgjlService.saveBatch(bo.getXzdCbysZtjhcbBgjl()); + bo.getXzdCbysWgcbtbFubiao().forEach(item -> {item.setMainDocId(bo.getId());}); + fubiaoService.saveBatch(bo.getXzdCbysWgcbtbFubiao()); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdCbysZjhcbAlteration entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除立项及成本-成本预算-总体计划成本变更信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + + List deleteIds = new ArrayList<>(); + for (Long id : ids) { + XzdCbysZjhcbAlterationVo vo = baseMapper.selectVoById(id); + if (vo != null){ + //删除附件 + if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){ + List list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList(); + deleteIds.addAll(list); + } + } + } + if (!deleteIds.isEmpty()) { + sysOssService.deleteWithValidByIds(deleteIds, false); + } + xzdCbysZtjhcbBgjlService.remove(new LambdaQueryWrapper().in(XzdCbysZtjhcbBgjl::getMainDocumentId, ids)); + xzdCbysSscbService.remove(new LambdaQueryWrapper().in(XzdCbysSscb::getMainDocumentId, ids)); + fubiaoService.remove(new LambdaQueryWrapper().in(XzdCbysWgcbtbFubiao::getMainDocId, ids)); + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/backletter/service/impl/XzdGuaranteeChangeInfoServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/backletter/service/impl/XzdGuaranteeChangeInfoServiceImpl.java index 188a26bf..680675dc 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/backletter/service/impl/XzdGuaranteeChangeInfoServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/backletter/service/impl/XzdGuaranteeChangeInfoServiceImpl.java @@ -9,6 +9,7 @@ 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.biddingManagement.biaoqianlixiang.domain.XzdBidPreProject; import org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.domain.vo.XzdBidDepositRecoveryVo; @@ -151,11 +152,8 @@ public class XzdGuaranteeChangeInfoServiceImpl extends ServiceImpl().gt(XzdGuaranteeChangeInfo::getCreateTime, LocalDate.now())); - String s = areaUtil.generateDateBasedNumber(); - - add.setDocumentNumber(s+"-"+(l+1)); + String banBen = BatchNumberGenerator.generateBatchNumber("JBHTBHBG-"); + add.setDocumentNumber(banBen); boolean flag = baseMapper.insert(add) > 0; if (flag) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/contractBackletter/service/impl/XzdGuaranteeInfoServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/contractBackletter/service/impl/XzdGuaranteeInfoServiceImpl.java index 0e0af85b..23595ffd 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/contractBackletter/service/impl/XzdGuaranteeInfoServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/contractBackletter/service/impl/XzdGuaranteeInfoServiceImpl.java @@ -11,6 +11,7 @@ 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.biddingManagement.biaoqianlixiang.domain.XzdBidPreProject; import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdBidPreProjectVo; @@ -187,11 +188,8 @@ public class XzdGuaranteeInfoServiceImpl extends ServiceImpl().gt(XzdGuaranteeInfo::getCreateTime, LocalDate.now())); - String s = areaUtil.generateDateBasedNumber(); - - add.setDocumentNumber(s+"-"+(l+1)); + String banBen = BatchNumberGenerator.generateBatchNumber("CBHTBH-"); + add.setDocumentNumber(banBen); boolean flag = baseMapper.insert(add) > 0; if (flag) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/earnestMoney/service/impl/XzdDepositApplicationServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/earnestMoney/service/impl/XzdDepositApplicationServiceImpl.java index a2dc895f..052348cc 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/earnestMoney/service/impl/XzdDepositApplicationServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/earnestMoney/service/impl/XzdDepositApplicationServiceImpl.java @@ -9,6 +9,7 @@ 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.biddingManagement.biaoqianlixiang.domain.XzdBidPreProject; import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdBidPreProjectVo; @@ -115,10 +116,8 @@ public class XzdDepositApplicationServiceImpl extends ServiceImpl().gt(XzdDepositApplication::getCreateTime, LocalDate.now())); - String s = areaUtil.generateDateBasedNumber(); - add.setDocumentSerialNumber(s+"-"+(l+1)); + String banBen = BatchNumberGenerator.generateBatchNumber("BZJJNSPB-"); + add.setDocumentSerialNumber(banBen); boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setId(add.getId()); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/refundDeposit/service/impl/XzdFbhtzbjthServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/refundDeposit/service/impl/XzdFbhtzbjthServiceImpl.java index a4e77a39..d277cfea 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/refundDeposit/service/impl/XzdFbhtzbjthServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/refundDeposit/service/impl/XzdFbhtzbjthServiceImpl.java @@ -9,6 +9,7 @@ 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.biddingManagement.biaoqianlixiang.domain.XzdBidPreProject; import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdBidPreProjectVo; @@ -125,12 +126,10 @@ public class XzdFbhtzbjthServiceImpl extends ServiceImpl().gt(XzdFbhtzbjth::getCreateTime, LocalDate.now())); - String s = areaUtil.generateDateBasedNumber(); - - add.setDocumentCode(s+"-"+(l+1)); + add.setDocumentCode(banBen); boolean flag = baseMapper.insert(add) > 0; if (flag) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractChangeBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractChangeBo.java index be8ad606..d4709dd8 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractChangeBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractChangeBo.java @@ -1,6 +1,7 @@ package org.dromara.xzd.domain.bo; import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd; import org.dromara.xzd.domain.*; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.core.validate.AddGroup; @@ -219,4 +220,9 @@ public class XzdContractChangeBo extends BaseEntity { */ private List sealInfo; + /** + * 合同变更清单 + */ + private List htbgqds; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractDetailsBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractDetailsBo.java index 281bf9be..f2fae81a 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractDetailsBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractDetailsBo.java @@ -1,6 +1,7 @@ package org.dromara.xzd.domain.bo; import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd; import org.dromara.xzd.domain.*; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.core.validate.AddGroup; @@ -266,4 +267,9 @@ public class XzdContractDetailsBo extends BaseEntity { */ private XzdContractDepositInfo htzytkyd; + /** + * 合同变更清单 + */ + private List htbgqds; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdCustomerinformationBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdCustomerinformationBo.java index 41c0ce70..77ece025 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdCustomerinformationBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdCustomerinformationBo.java @@ -38,7 +38,6 @@ public class XzdCustomerinformationBo extends BaseEntity { /** * 单位编号 */ - @NotBlank(message = "单位编号不能为空", groups = { AddGroup.class, EditGroup.class }) private String unitCode; /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractChangeVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractChangeVo.java index ee8815e6..651a0c95 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractChangeVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractChangeVo.java @@ -4,6 +4,7 @@ import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd; import org.dromara.xzd.domain.*; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; @@ -290,4 +291,9 @@ public class XzdContractChangeVo implements Serializable { */ private List sealInfo; + /** + * 合同变更清单 + */ + private List htbgqds; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractDetailsVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractDetailsVo.java index 7dba343d..edf8b5f6 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractDetailsVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractDetailsVo.java @@ -4,6 +4,7 @@ import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd; import org.dromara.xzd.domain.*; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; @@ -358,5 +359,10 @@ public class XzdContractDetailsVo implements Serializable { */ private XzdContractDepositInfo htzytkyd; + /** + * 合同变更清单 + */ + private List htbgqds; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/XzdSfkFukuan.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/XzdSfkFukuan.java index f2a8c7b0..22dc22eb 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/XzdSfkFukuan.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/XzdSfkFukuan.java @@ -74,6 +74,11 @@ public class XzdSfkFukuan extends BaseEntity { */ private String remark; + /** + * 数据来源 + */ + private String sjly; + /** * 单据引用 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/bo/XzdSfkFukuanBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/bo/XzdSfkFukuanBo.java index 2054b2dc..aa513e28 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/bo/XzdSfkFukuanBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/bo/XzdSfkFukuanBo.java @@ -76,6 +76,11 @@ public class XzdSfkFukuanBo extends BaseEntity { */ private String remark; + /** + * 数据来源 + */ + private String sjly; + /** * 单据引用 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/vo/XzdSfkFukuanVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/vo/XzdSfkFukuanVo.java index 7c112f31..7c307515 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/vo/XzdSfkFukuanVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/vo/XzdSfkFukuanVo.java @@ -94,6 +94,12 @@ public class XzdSfkFukuanVo implements Serializable { @ExcelProperty(value = "备注") private String remark; + /** + * 数据来源 + */ + @ExcelProperty(value = "数据来源") + private String sjly; + /** * 单据引用 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractAccountServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractAccountServiceImpl.java index de78ffff..d9ee9e42 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractAccountServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractAccountServiceImpl.java @@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.utils.BatchNumberGenerator; import org.dromara.system.service.impl.SysOssServiceImpl; import org.dromara.xzd.domain.XzdSettlementRules; import org.dromara.xzd.domain.dto.QuerCorrespondentDto; @@ -133,7 +134,9 @@ public class XzdContractAccountServiceImpl extends ServiceImpl 0; if (!flag) { return false; diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractAgreementServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractAgreementServiceImpl.java index d80701c8..9a036673 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractAgreementServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractAgreementServiceImpl.java @@ -11,6 +11,7 @@ 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.domain.vo.SysDeptVo; import org.dromara.system.domain.vo.SysUserVo; import org.dromara.system.service.impl.SysDeptServiceImpl; @@ -126,7 +127,9 @@ public class XzdContractAgreementServiceImpl extends ServiceImpl 0; if (flag) { bo.setId(add.getId()); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractChangeServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractChangeServiceImpl.java index 92d0e589..ccd29dfc 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractChangeServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractChangeServiceImpl.java @@ -11,11 +11,14 @@ 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.domain.vo.SysDeptVo; import org.dromara.system.domain.vo.SysUserVo; import org.dromara.system.service.impl.SysDeptServiceImpl; import org.dromara.system.service.impl.SysOssServiceImpl; import org.dromara.system.service.impl.SysUserServiceImpl; +import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd; +import org.dromara.xzd.comprehensive.service.IXzdHtglHtbgqdService; import org.dromara.xzd.domain.*; import org.dromara.xzd.domain.dto.QuerCorrespondentDto; import org.dromara.xzd.domain.vo.XzdBusinessSealVo; @@ -68,6 +71,8 @@ public class XzdContractChangeServiceImpl extends ServiceImpl 0; if (!flag) { @@ -206,6 +211,11 @@ public class XzdContractChangeServiceImpl extends ServiceImpl{item.setMainDocumentId(add.getId());}); + xzdHtglHtbgqdService.saveBatch(bo.getHtbgqds()); + } return true; } @@ -216,10 +226,11 @@ public class XzdContractChangeServiceImpl extends ServiceImpl().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.getFileId() != null && !bo.getFileId().isEmpty()){ @@ -415,6 +417,7 @@ public class XzdContractChangeServiceImpl extends ServiceImpl().in(XzdHtglHtbgqd::getMainDocumentId,ids)); return baseMapper.deleteByIds(ids) > 0; } @@ -499,6 +502,9 @@ public class XzdContractChangeServiceImpl extends ServiceImpl list4 = xzdHtglHtbgqdService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(XzdHtglHtbgqd::getMainDocumentId, vo.getId())); + vo.setHtbgqds(list4); } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractDetailsServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractDetailsServiceImpl.java index 1fc7b9d1..480e1d9b 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractDetailsServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractDetailsServiceImpl.java @@ -13,12 +13,15 @@ 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.ctr.domain.ContractPaymentClause; import org.dromara.system.domain.vo.SysDeptVo; import org.dromara.system.domain.vo.SysUserVo; import org.dromara.system.service.impl.SysDeptServiceImpl; import org.dromara.system.service.impl.SysOssServiceImpl; import org.dromara.system.service.impl.SysUserServiceImpl; +import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd; +import org.dromara.xzd.comprehensive.service.IXzdHtglHtbgqdService; import org.dromara.xzd.domain.*; import org.dromara.xzd.domain.dto.QuerCorrespondentDto; import org.dromara.xzd.domain.vo.*; @@ -76,6 +79,8 @@ public class XzdContractDetailsServiceImpl extends ServiceImpl 0; if (!flag) { @@ -214,6 +220,10 @@ public class XzdContractDetailsServiceImpl extends ServiceImpl{item.setMainDocumentId(add.getId());}); + xzdHtglHtbgqdService.saveBatch(bo.getHtbgqds()); + } return true; } @@ -232,11 +242,11 @@ public class XzdContractDetailsServiceImpl extends ServiceImpl old1 = List.of(old); - setValue(old1); - old = old1.getFirst(); +// List old1 = List.of(old); +// setValue(old1); +// old = old1.getFirst(); // if (bo.getSealInfo() != null && !bo.getSealInfo().isEmpty()){ // if (old.getSealInfo() != null && !old.getSealInfo().isEmpty()){ @@ -339,6 +349,12 @@ public class XzdContractDetailsServiceImpl extends ServiceImpl().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.getHtzytkyd() != null){ bo.getHtzytkyd().setContractDetailsId(update.getId()); @@ -422,6 +438,9 @@ public class XzdContractDetailsServiceImpl extends ServiceImpl().eq(XzdHtglHtbgqd::getMainDocumentId,vo.getId())); + + } } @@ -440,6 +459,7 @@ public class XzdContractDetailsServiceImpl extends ServiceImpl list4 = xzdHtglHtbgqdService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(XzdHtglHtbgqd::getMainDocumentId, info.getId())); + info.setHtbgqds(list4); + //项目责任人 if (info.getProjectResponsiblePerson() != null) { SysUserVo sysUserVo = sysUserService.selectUserById(info.getProjectResponsiblePerson()); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractProgressSettlementServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractProgressSettlementServiceImpl.java index 9a2e510a..5d3405fe 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractProgressSettlementServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractProgressSettlementServiceImpl.java @@ -11,6 +11,7 @@ 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.domain.vo.SysDeptVo; import org.dromara.system.service.impl.SysDeptServiceImpl; import org.dromara.system.service.impl.SysOssServiceImpl; @@ -159,7 +160,8 @@ public class XzdContractProgressSettlementServiceImpl extends ServiceImpl 0; if (flag) { bo.setId(add.getId()); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractTerminationServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractTerminationServiceImpl.java index c4073b66..5c6d71c1 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractTerminationServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractTerminationServiceImpl.java @@ -10,6 +10,7 @@ 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.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -107,7 +108,8 @@ public class XzdContractTerminationServiceImpl extends ServiceImpl 0; if (flag) { bo.setId(add.getId()); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdCorrespondentListImp.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdCorrespondentListImp.java index 8148d16b..7cfa21fd 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdCorrespondentListImp.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdCorrespondentListImp.java @@ -11,6 +11,7 @@ import org.dromara.common.core.domain.R; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.common.utils.BatchNumberGenerator; import org.dromara.system.service.impl.SysOssServiceImpl; import org.dromara.xzd.domain.*; import org.dromara.xzd.domain.bo.*; @@ -109,6 +110,8 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList { dto.getXzdCustomerinformation().setPoiAreaId(dto.getXzdCustomerinformation().getPoiAreaId()); dto.getXzdCustomerinformation().setCreateDept(LoginHelper.getDeptId()); dto.getXzdCustomerinformation().setCreateBy((LoginHelper.getUserId())); + String banBen = BatchNumberGenerator.generateBatchNumber("KHXX-"); + dto.getXzdCustomerinformation().setUnitCode(banBen); // dto.getXzdCustomerinformation().setCreateTime(LocalDateTime.now()); xzdCustomerinformationService.insertByBo(dto.getXzdCustomerinformation()); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdProjectManagerApprovalServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdProjectManagerApprovalServiceImpl.java index 0f1ac5d1..06250540 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdProjectManagerApprovalServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdProjectManagerApprovalServiceImpl.java @@ -11,6 +11,7 @@ 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.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -101,6 +102,8 @@ public class XzdProjectManagerApprovalServiceImpl extends ServiceImpl 0; if (flag) { bo.setId(add.getId()); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdProjectServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdProjectServiceImpl.java index c41b80dc..6bb630d5 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdProjectServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdProjectServiceImpl.java @@ -11,6 +11,7 @@ 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.domain.vo.SysDeptVo; import org.dromara.system.domain.vo.SysOssVo; import org.dromara.system.domain.vo.SysUserVo; @@ -176,6 +177,8 @@ public class XzdProjectServiceImpl extends ServiceImpl 0; if (flag) { bo.setId(add.getId()); @@ -509,7 +512,7 @@ public class XzdProjectServiceImpl extends ServiceImpl profileLambdaQueryWrapper = new LambdaQueryWrapper<>(); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdSupplierInfoServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdSupplierInfoServiceImpl.java index 9bb4e0fe..e40e79a6 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdSupplierInfoServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdSupplierInfoServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.common.utils.BatchNumberGenerator; import org.dromara.system.domain.vo.SysUserVo; import org.dromara.system.service.impl.SysOssServiceImpl; import org.dromara.system.service.impl.SysUserServiceImpl; @@ -186,6 +187,8 @@ public class XzdSupplierInfoServiceImpl extends ServiceImpl 0; if (flag) { bo.setId(add.getId()); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/bo/XzdJsCgJungonEditBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/bo/XzdJsCgJungonEditBo.java index 6a91e0eb..1c77dd56 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/bo/XzdJsCgJungonEditBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/bo/XzdJsCgJungonEditBo.java @@ -53,7 +53,7 @@ public class XzdJsCgJungonEditBo extends BaseEntity { * 决算单号(带*,必填) */ @NotBlank(message = "决算单号(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) - private String finalAccountCode; + private Long finalAccountCode; /** * 合同名称 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/fenbaohetongjingdu/service/impl/SettlementOfSubcontractingContractServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/fenbaohetongjingdu/service/impl/SettlementOfSubcontractingContractServiceImpl.java index 09c12dc5..d14fb947 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/fenbaohetongjingdu/service/impl/SettlementOfSubcontractingContractServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/fenbaohetongjingdu/service/impl/SettlementOfSubcontractingContractServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.utils.BatchNumberGenerator; import org.dromara.system.service.impl.SysOssServiceImpl; import org.dromara.xzd.contractManagement.caigoucontractTermination.domain.XzdPurchaseContractSuspend; import org.dromara.xzd.contractManagement.fenbaohetongxinxi.domain.vo.XzdSubcontractVo; @@ -168,9 +169,9 @@ public class SettlementOfSubcontractingContractServiceImpl extends ServiceImpl().gt(SettlementOfSubcontractingContract::getCreateTime, LocalDate.now())); - String s = areaUtil.generateDateBasedNumber(); - add.setDocumentCode(s+"-"+(l+1)); + String banBen = BatchNumberGenerator.generateBatchNumber("FBHTJD-"); + + add.setDocumentCode(banBen); boolean flag = baseMapper.insert(add) > 0; if (flag) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/fenbaohetongjungong/service/impl/SettlementOfSubcontractingCompletionServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/fenbaohetongjungong/service/impl/SettlementOfSubcontractingCompletionServiceImpl.java index ab3879f7..d928b0c1 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/fenbaohetongjungong/service/impl/SettlementOfSubcontractingCompletionServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/fenbaohetongjungong/service/impl/SettlementOfSubcontractingCompletionServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.utils.BatchNumberGenerator; import org.dromara.system.service.impl.SysOssServiceImpl; import org.dromara.xzd.contractManagement.fenbaohetongxinxi.domain.vo.XzdSubcontractVo; import org.dromara.xzd.domain.*; @@ -227,9 +228,9 @@ public class SettlementOfSubcontractingCompletionServiceImpl extends ServiceImpl public Boolean insertByBo(SettlementOfSubcontractingCompletionBo bo) { SettlementOfSubcontractingCompletion add = MapstructUtils.convert(bo, SettlementOfSubcontractingCompletion.class); validEntityBeforeSave(add); - Long l = baseMapper.selectCount(new LambdaQueryWrapper().gt(SettlementOfSubcontractingCompletion::getCreateTime, LocalDate.now())); - String s = areaUtil.generateDateBasedNumber(); - add.setDocumentCode(s+"-"+(l+1)); + String banBen = BatchNumberGenerator.generateBatchNumber("FBHTJGJS-"); + + add.setDocumentCode(banBen); boolean flag = baseMapper.insert(add) > 0; if (flag) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/fenbaohetongtiaozheng/service/impl/SettlementOfSubcontractingAdjustmentServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/fenbaohetongtiaozheng/service/impl/SettlementOfSubcontractingAdjustmentServiceImpl.java index 92eece3e..41b313d0 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/fenbaohetongtiaozheng/service/impl/SettlementOfSubcontractingAdjustmentServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/fenbaohetongtiaozheng/service/impl/SettlementOfSubcontractingAdjustmentServiceImpl.java @@ -9,6 +9,7 @@ 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.settlement.fenbaohetongjungong.domain.SettlementOfSubcontractingCompletion; import org.dromara.xzd.settlement.fenbaohetongjungong.domain.vo.SettlementOfSubcontractingCompletionVo; @@ -110,9 +111,9 @@ public class SettlementOfSubcontractingAdjustmentServiceImpl extends ServiceImpl public Boolean insertByBo(SettlementOfSubcontractingAdjustmentBo bo) { SettlementOfSubcontractingAdjustment add = MapstructUtils.convert(bo, SettlementOfSubcontractingAdjustment.class); validEntityBeforeSave(add); - Long l = baseMapper.selectCount(new LambdaQueryWrapper().gt(SettlementOfSubcontractingAdjustment::getCreateTime, LocalDate.now())); - String s = areaUtil.generateDateBasedNumber(); - add.setDocumentNo(s+"-"+(l+1)); + String banBen = BatchNumberGenerator.generateBatchNumber("FBHTJGJSTZ-"); + + add.setDocumentNo(banBen); boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setId(add.getId()); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/impl/XzdJsCgJungonEditServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/impl/XzdJsCgJungonEditServiceImpl.java index 677e0985..384b9a49 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/impl/XzdJsCgJungonEditServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/impl/XzdJsCgJungonEditServiceImpl.java @@ -117,7 +117,7 @@ public class XzdJsCgJungonEditServiceImpl extends ServiceImpl 0; if (flag) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/skyfk/fbhtfk/domain/XzdSkyfkFbhtfk.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/skyfk/fbhtfk/domain/XzdSkyfkFbhtfk.java index 08148693..73ffa3fd 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/skyfk/fbhtfk/domain/XzdSkyfkFbhtfk.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/skyfk/fbhtfk/domain/XzdSkyfkFbhtfk.java @@ -1,9 +1,12 @@ package org.dromara.xzd.skyfk.fbhtfk.domain; +import com.fasterxml.jackson.annotation.JsonFormat; import org.dromara.common.mybatis.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; + import java.util.Date; import java.io.Serial; @@ -46,6 +49,8 @@ public class XzdSkyfkFbhtfk extends BaseEntity { /** * 单据日期 */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") private Date documentDate; /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/skyfk/fbhtfk/domain/bo/XzdSkyfkFbhtfkBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/skyfk/fbhtfk/domain/bo/XzdSkyfkFbhtfkBo.java index 4ce4f70e..b8be2b9a 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/skyfk/fbhtfk/domain/bo/XzdSkyfkFbhtfkBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/skyfk/fbhtfk/domain/bo/XzdSkyfkFbhtfkBo.java @@ -1,5 +1,6 @@ package org.dromara.xzd.skyfk.fbhtfk.domain.bo; +import com.fasterxml.jackson.annotation.JsonFormat; import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFapiao; import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFukuan; import org.dromara.xzd.paymentsReceipts.domain.bo.XzdSfkFapiaoBo; @@ -12,6 +13,8 @@ import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; +import org.springframework.format.annotation.DateTimeFormat; + import java.util.Date; import java.util.List; @@ -52,6 +55,8 @@ public class XzdSkyfkFbhtfkBo extends BaseEntity { * 单据日期 */ @NotNull(message = "单据日期不能为空", groups = { AddGroup.class, EditGroup.class }) + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") private Date documentDate; /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/skyfk/fbhtfk/domain/vo/XzdSkyfkFbhtfkVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/skyfk/fbhtfk/domain/vo/XzdSkyfkFbhtfkVo.java index 06a30dd4..9b7e50f6 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/skyfk/fbhtfk/domain/vo/XzdSkyfkFbhtfkVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/skyfk/fbhtfk/domain/vo/XzdSkyfkFbhtfkVo.java @@ -2,6 +2,7 @@ package org.dromara.xzd.skyfk.fbhtfk.domain.vo; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; import org.dromara.xzd.contractManagement.fenbaohetongxinxi.domain.vo.XzdSubcontractVo; import org.dromara.xzd.domain.vo.XzdContractDetailsVo; import org.dromara.xzd.paymentsReceipts.domain.bo.XzdSfkFapiaoBo; @@ -13,6 +14,7 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serial; import java.io.Serializable; @@ -61,6 +63,8 @@ public class XzdSkyfkFbhtfkVo implements Serializable { * 单据日期 */ @ExcelProperty(value = "单据日期") + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") private Date documentDate; /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/skyfk/fbhtfk/service/impl/XzdSkyfkFbhtfkServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/skyfk/fbhtfk/service/impl/XzdSkyfkFbhtfkServiceImpl.java index fef0dd9c..8459150f 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/skyfk/fbhtfk/service/impl/XzdSkyfkFbhtfkServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/skyfk/fbhtfk/service/impl/XzdSkyfkFbhtfkServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.xzd.skyfk.fbhtfk.service.impl; +import cn.hutool.core.util.IdUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.checkerframework.checker.units.qual.A; import org.dromara.common.core.utils.MapstructUtils; @@ -10,6 +11,7 @@ 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.domain.SysOss; import org.dromara.system.service.impl.SysOssServiceImpl; import org.dromara.xzd.contractManagement.fenbaohetongxinxi.domain.vo.XzdSubcontractVo; @@ -21,6 +23,7 @@ import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFukuan; import org.dromara.xzd.paymentsReceipts.domain.bo.XzdSfkFapiaoBo; import org.dromara.xzd.paymentsReceipts.domain.bo.XzdSfkFukuanBo; import org.dromara.xzd.paymentsReceipts.domain.vo.XzdSfkFapiaoVo; +import org.dromara.xzd.paymentsReceipts.domain.vo.XzdSfkFukuanVo; import org.dromara.xzd.paymentsReceipts.service.impl.XzdSfkFapiaoServiceImpl; import org.dromara.xzd.paymentsReceipts.service.impl.XzdSfkFukuanServiceImpl; import org.dromara.xzd.service.impl.*; @@ -74,7 +77,10 @@ public class XzdSkyfkFbhtfkServiceImpl extends ServiceImpl fbhtfkVo1 = List.of(fbhtfkVo); + setValue(fbhtfkVo1); + return fbhtfkVo1.getFirst(); } /** @@ -167,6 +173,8 @@ public class XzdSkyfkFbhtfkServiceImpl extends ServiceImpl 0; if (flag) { bo.setId(add.getId()); @@ -356,6 +364,20 @@ public class XzdSkyfkFbhtfkServiceImpl extends ServiceImpl xzdSfkFukuanVos = xzdSfkFukuanService.queryList(bo); + if (xzdSfkFukuanVos != null && !xzdSfkFukuanVos.isEmpty()){ + vo.setFkxx(xzdSfkFukuanVos); + } + //发票信息 + XzdSfkFapiaoBo bo1 = new XzdSfkFapiaoBo(); + bo1.setMainDocumentId(vo.getId()); + List xzdSfkFapiaoVos = xzdSfkFapiaoService.queryList(bo1); + if (xzdSfkFapiaoVos != null && !xzdSfkFapiaoVos.isEmpty()){ + vo.setFpxx(xzdSfkFapiaoVos); + } } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/controller/XzdSpykpKpsqController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/controller/XzdSpykpKpsqController.java new file mode 100644 index 00000000..f102fb3f --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/controller/XzdSpykpKpsqController.java @@ -0,0 +1,105 @@ +package org.dromara.xzd.spykp.kpsq.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.xzd.spykp.kpsq.domain.vo.XzdSpykpKpsqVo; +import org.dromara.xzd.spykp.kpsq.domain.bo.XzdSpykpKpsqBo; +import org.dromara.xzd.spykp.kpsq.service.IXzdSpykpKpsqService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 收票与开票-开票申请 + * + * @author Lion Li + * @date 2025-10-17 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/kpsq/kpsq") +public class XzdSpykpKpsqController extends BaseController { + + private final IXzdSpykpKpsqService xzdSpykpKpsqService; + + /** + * 查询收票与开票-开票申请列表 + */ + @SaCheckPermission("kpsq:kpsq:list") + @GetMapping("/list") + public TableDataInfo list(XzdSpykpKpsqBo bo, PageQuery pageQuery) { + return xzdSpykpKpsqService.queryPageList(bo, pageQuery); + } + + /** + * 导出收票与开票-开票申请列表 + */ + @SaCheckPermission("kpsq:kpsq:export") + @Log(title = "收票与开票-开票申请", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdSpykpKpsqBo bo, HttpServletResponse response) { + List list = xzdSpykpKpsqService.queryList(bo); + ExcelUtil.exportExcel(list, "收票与开票-开票申请", XzdSpykpKpsqVo.class, response); + } + + /** + * 获取收票与开票-开票申请详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("kpsq:kpsq:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdSpykpKpsqService.queryById(id)); + } + + /** + * 新增收票与开票-开票申请 + */ + @SaCheckPermission("kpsq:kpsq:add") + @Log(title = "收票与开票-开票申请", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdSpykpKpsqBo bo) { + return toAjax(xzdSpykpKpsqService.insertByBo(bo)); + } + + /** + * 修改收票与开票-开票申请 + */ + @SaCheckPermission("kpsq:kpsq:edit") + @Log(title = "收票与开票-开票申请", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdSpykpKpsqBo bo) { + return toAjax(xzdSpykpKpsqService.updateByBo(bo)); + } + + /** + * 删除收票与开票-开票申请 + * + * @param ids 主键串 + */ + @SaCheckPermission("kpsq:kpsq:remove") + @Log(title = "收票与开票-开票申请", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdSpykpKpsqService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/domain/XzdSpykpKpsq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/domain/XzdSpykpKpsq.java new file mode 100644 index 00000000..2d869d0b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/domain/XzdSpykpKpsq.java @@ -0,0 +1,452 @@ +package org.dromara.xzd.spykp.kpsq.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.util.Date; + +import java.io.Serial; + +/** + * 收票与开票-开票申请对象 xzd_spykp_kpsq + * + * @author Lion Li + * @date 2025-10-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_spykp_kpsq") +public class XzdSpykpKpsq extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(value = "id") + private Long id; + + /** + * 类型 + */ + private String type; + + /** + * 部门id + */ + private Long deptId; + + /** + * 单据编码 + */ + private String djbm; + + /** + * 申请日期 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date sqrq; + + /** + * 申请人 + */ + private String sqr; + + /** + * 申请部门(仅部门) + */ + private Long sqbm; + + /** + * 部门名称 + */ + private String sqbmmc; + + /** + * 发票类型(字典) + */ + private String fplx; + + /** + * 申请总额 + */ + private Long sqze; + + /** + * 所属组织 + */ + private String sszz; + + /** + * 项目id + */ + private Long projectId; + + /** + * 项目 + */ + private String projectName; + + /** + * 计征方式 + */ + private String jzfs; + + /** + * 项目金额 + */ + private BigDecimal xmje; + + /** + * 合同id + */ + private Long contractId; + + /** + * 合同编码 + */ + private String contractCode; + + /** + * 合同金额 + */ + private BigDecimal htje; + + /** + * 跨区涉税证号 + */ + private String kqsszh; + + /** + * 开票状态 + */ + private String kpzt; + + /** + * 差票开额0否1是 + */ + private String cekp; + + /** + * 差额扣除 + */ + private BigDecimal cekc; + + /** + * 是否预收款0否1是 + */ + private String ysk; + + /** + * 数据来源 + */ + private String sjly; + + /** + * 本次结算金额 + */ + private BigDecimal bcjsje; + + /** + * 开票说明 + */ + private String kpje; + + /** + * 开票分机号 + */ + private String kpfjh; + + /** + * 终止状态 + */ + private String zzzt; + + /** + * 扣押金比例 + */ + private BigDecimal kyjbl; + + /** + * 扣押金额度 + */ + private BigDecimal kyjed; + + /** + * 实时刷新0否1是 + */ + private String sssx; + + /** + * 项目累计申请总额 + */ + private BigDecimal xmljsqze; + + /** + * 项目累计开票总额 + */ + private BigDecimal xmljkpze; + + /** + * 合同累计申请总额 + */ + private BigDecimal htljsqze; + + /** + * 合同累计开票总额 + */ + private BigDecimal htljkpze; + + /** + * 累计结算金额 + */ + private BigDecimal ljjsje; + + /** + * 红蓝类型 + */ + private String hllx; + + /** + * 蓝字发票代码 + */ + private String lzfpdm; + + /** + * 蓝字发票号码 + */ + private String lzfphm; + + /** + * 红字信息编号 + */ + private String hzxxbh; + + /** + * 通知单编号 + */ + private String tzdbh; + + /** + * 拆分类型 + */ + private String cflx; + + /** + * 销项类型(字典) + */ + private String xxlx; + + /** + * 复核人 + */ + private Long fhr; + + /** + * 复核人姓名 + */ + private String fhrxm; + + /** + * 收款人 + */ + private Long skr; + + /** + * 收款人姓名 + */ + private String skrxm; + + /** + * 开票人 + */ + private Long kpr; + + /** + * 开票人姓名 + */ + private String kprxm; + + /** + * 备注 + */ + private String remark; + + /** + * 特定业务 + */ + private String tdyw; + + /** + * 土地增值税项目编号 + */ + private String tdzzsxmbh; + + /** + * 不动产权证号 + */ + private String bdcqzh; + + /** + * 租赁开始日期 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date zlksrq; + + /** + * 租赁结束日期 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date zljsrq; + + /** + * 红冲原因 + */ + private String hcyy; + + /** + * 销方id(供应商) + */ + private Long xfId; + + /** + * 销方名称 + */ + private String xfmc; + + /** + * 销方税号(社会信用代码) + */ + private String xfsh; + + /** + * 销方地址 + */ + private String xfdz; + + /** + * 销方电话 + */ + private String xfdh; + + /** + * 销方银行id + */ + private Long xfyhId; + + /** + * 销方银行行号 + */ + private String xfyhhh; + + /** + * 销方银行 + */ + private String xfyh; + + /** + * 销方银行账号 + */ + private String xfyhzh; + + /** + * 显示销方开户行及账号0否1是 + */ + private String xsxfkhhjzh; + + /** + * 购方id(客户) + */ + private Long gfId; + + /** + * 购方名称 + */ + private String gfmc; + + /** + * 购方税号(社会信用代码) + */ + private String gfsh; + + /** + * 购方地址 + */ + private String gfdz; + + /** + * 购方电话 + */ + private String gfdh; + + /** + * 购方银行id + */ + private Long gfyhId; + + /** + * 购方银行行号 + */ + private String gfyhhh; + + /** + * 购方银行 + */ + private String gfyh; + + /** + * 购方银行账号 + */ + private String gfyhzh; + + /** + * 购方邮箱 + */ + private String gfyx; + + /** + * 购方手机 + */ + private String gfsj; + + /** + * 显示购方开户行及账号0否1是 + */ + private String xsgfkhhjzh; + + /** + * 购方经办人姓名 + */ + private String gfjbrxm; + + /** + * 证件类型 + */ + private String zjlx; + + /** + * 证件号码 + */ + private String zjhm; + + /** + * 场景模板 + */ + private String cjmb; + + /** + * 附件(逗号分隔) + */ + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/domain/XzdSpykpKpsqKpmx.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/domain/XzdSpykpKpsqKpmx.java new file mode 100644 index 00000000..da325eae --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/domain/XzdSpykpKpsqKpmx.java @@ -0,0 +1,136 @@ +package org.dromara.xzd.spykp.kpsq.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 收票与开票-开票申请-发票明细对象 xzd_spykp_kpsq_kpmx + * + * @author Lion Li + * @date 2025-10-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_spykp_kpsq_kpmx") +public class XzdSpykpKpsqKpmx extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(value = "id") + private Long id; + + /** + * 关联id + */ + private Long mainId; + + /** + * 发票序号 + */ + private Long fpxh; + + /** + * 商品名称 + */ + private String spmc; + + /** + * 规格型号 + */ + private String spxh; + + /** + * 税收分类编码 + */ + private String ssflbm; + + /** + * 税收分类名称 + */ + private String ssflmc; + + /** + * 征税项目 + */ + private String zsxm; + + /** + * 数量 + */ + private Long sl; + + /** + * 单位(字典) + */ + private String dw; + + /** + * 含税单价 + */ + private Long hsdj; + + /** + * 价税合计 + */ + private Long jshj; + + /** + * 税率(%) + */ + private Long shuilv; + + /** + * 金额 + */ + private Long je; + + /** + * 税额 + */ + private Long se; + + /** + * 享受优惠政策0否1是 + */ + private String xsyhzc; + + /** + * 优惠政策类型(字典) + */ + private String yhzclx; + + /** + * 备注 + */ + private String remark; + + /** + * 编码 + */ + private String bm; + + /** + * 资源/合同清单名称 + */ + private String zyhtqdmc; + + /** + * 即征即退类型(字典) + */ + private String jzjtlx; + + /** + * + */ + private Long updateBy; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/domain/bo/XzdSpykpKpsqBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/domain/bo/XzdSpykpKpsqBo.java new file mode 100644 index 00000000..b534a913 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/domain/bo/XzdSpykpKpsqBo.java @@ -0,0 +1,458 @@ +package org.dromara.xzd.spykp.kpsq.domain.bo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.xzd.spykp.kpsq.domain.XzdSpykpKpsq; +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.spykp.kpsq.domain.XzdSpykpKpsqKpmx; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * 收票与开票-开票申请业务对象 xzd_spykp_kpsq + * + * @author Lion Li + * @date 2025-10-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdSpykpKpsq.class, reverseConvertGenerate = false) +public class XzdSpykpKpsqBo extends BaseEntity { + + /** + * id + */ + private Long id; + + /** + * 类型 + */ + private String type; + + /** + * 部门id + */ + private Long deptId; + + /** + * 单据编码 + */ + private String djbm; + + /** + * 申请日期 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date sqrq; + + /** + * 申请人 + */ + private String sqr; + + /** + * 申请部门(仅部门) + */ + private Long sqbm; + + /** + * 部门名称 + */ + private String sqbmmc; + + /** + * 发票类型(字典) + */ + private String fplx; + + /** + * 申请总额 + */ + private Long sqze; + + /** + * 所属组织 + */ + private String sszz; + + /** + * 项目id + */ + private Long projectId; + + /** + * 项目 + */ + private String projectName; + + /** + * 计征方式 + */ + private String jzfs; + + /** + * 项目金额 + */ + private BigDecimal xmje; + + /** + * 合同id + */ + @NotNull(message = "合同id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long contractId; + + /** + * 合同编码 + */ + @NotBlank(message = "合同编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String contractCode; + + /** + * 合同金额 + */ + private BigDecimal htje; + + /** + * 跨区涉税证号 + */ + private String kqsszh; + + /** + * 开票状态 + */ + private String kpzt; + + /** + * 差票开额0否1是 + */ + private String cekp; + + /** + * 差额扣除 + */ + private BigDecimal cekc; + + /** + * 是否预收款0否1是 + */ + private String ysk; + + /** + * 数据来源 + */ + private String sjly; + + /** + * 本次结算金额 + */ + private BigDecimal bcjsje; + + /** + * 开票说明 + */ + private String kpje; + + /** + * 开票分机号 + */ + private String kpfjh; + + /** + * 终止状态 + */ + private String zzzt; + + /** + * 扣押金比例 + */ + private BigDecimal kyjbl; + + /** + * 扣押金额度 + */ + private BigDecimal kyjed; + + /** + * 实时刷新0否1是 + */ + private String sssx; + + /** + * 项目累计申请总额 + */ + private BigDecimal xmljsqze; + + /** + * 项目累计开票总额 + */ + private BigDecimal xmljkpze; + + /** + * 合同累计申请总额 + */ + private BigDecimal htljsqze; + + /** + * 合同累计开票总额 + */ + private BigDecimal htljkpze; + + /** + * 累计结算金额 + */ + private BigDecimal ljjsje; + + /** + * 红蓝类型 + */ + private String hllx; + + /** + * 蓝字发票代码 + */ + private String lzfpdm; + + /** + * 蓝字发票号码 + */ + private String lzfphm; + + /** + * 红字信息编号 + */ + private String hzxxbh; + + /** + * 通知单编号 + */ + private String tzdbh; + + /** + * 拆分类型 + */ + private String cflx; + + /** + * 销项类型(字典) + */ + private String xxlx; + + /** + * 复核人 + */ + private Long fhr; + + /** + * 复核人姓名 + */ + private String fhrxm; + + /** + * 收款人 + */ + private Long skr; + + /** + * 收款人姓名 + */ + private String skrxm; + + /** + * 开票人 + */ + private Long kpr; + + /** + * 开票人姓名 + */ + private String kprxm; + + /** + * 备注 + */ + private String remark; + + /** + * 特定业务 + */ + private String tdyw; + + /** + * 土地增值税项目编号 + */ + private String tdzzsxmbh; + + /** + * 不动产权证号 + */ + private String bdcqzh; + + /** + * 租赁开始日期 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date zlksrq; + + /** + * 租赁结束日期 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date zljsrq; + + /** + * 红冲原因 + */ + private String hcyy; + + /** + * 销方id(供应商) + */ + private Long xfId; + + /** + * 销方名称 + */ + private String xfmc; + + /** + * 销方税号(社会信用代码) + */ + private String xfsh; + + /** + * 销方地址 + */ + private String xfdz; + + /** + * 销方电话 + */ + private String xfdh; + + /** + * 销方银行id + */ + private Long xfyhId; + + /** + * 销方银行行号 + */ + private String xfyhhh; + + /** + * 销方银行 + */ + private String xfyh; + + /** + * 销方银行账号 + */ + private String xfyhzh; + + /** + * 显示销方开户行及账号0否1是 + */ + private String xsxfkhhjzh; + + /** + * 购方id(客户) + */ + private Long gfId; + + /** + * 购方名称 + */ + private String gfmc; + + /** + * 购方税号(社会信用代码) + */ + private String gfsh; + + /** + * 购方地址 + */ + private String gfdz; + + /** + * 购方电话 + */ + private String gfdh; + + /** + * 购方银行id + */ + private Long gfyhId; + + /** + * 购方银行行号 + */ + private String gfyhhh; + + /** + * 购方银行 + */ + private String gfyh; + + /** + * 购方银行账号 + */ + private String gfyhzh; + + /** + * 购方邮箱 + */ + private String gfyx; + + /** + * 购方手机 + */ + private String gfsj; + + /** + * 显示购方开户行及账号0否1是 + */ + private String xsgfkhhjzh; + + /** + * 购方经办人姓名 + */ + private String gfjbrxm; + + /** + * 证件类型 + */ + private String zjlx; + + /** + * 证件号码 + */ + private String zjhm; + + /** + * 场景模板 + */ + private String cjmb; + + /** + * 附件(逗号分隔) + */ + private String fileId; + + /** + * 开票明细 + */ + List kpmx; + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/domain/bo/XzdSpykpKpsqKpmxBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/domain/bo/XzdSpykpKpsqKpmxBo.java new file mode 100644 index 00000000..4eaa7c62 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/domain/bo/XzdSpykpKpsqKpmxBo.java @@ -0,0 +1,134 @@ +package org.dromara.xzd.spykp.kpsq.domain.bo; + +import org.dromara.xzd.spykp.kpsq.domain.XzdSpykpKpsqKpmx; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 收票与开票-开票申请-发票明细业务对象 xzd_spykp_kpsq_kpmx + * + * @author Lion Li + * @date 2025-10-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdSpykpKpsqKpmx.class, reverseConvertGenerate = false) +public class XzdSpykpKpsqKpmxBo extends BaseEntity { + + /** + * id + */ + @NotNull(message = "id不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 关联id + */ + private Long mainId; + + /** + * 发票序号 + */ + private Long fpxh; + + /** + * 商品名称 + */ + private String spmc; + + /** + * 规格型号 + */ + private String spxh; + + /** + * 税收分类编码 + */ + private String ssflbm; + + /** + * 税收分类名称 + */ + private String ssflmc; + + /** + * 征税项目 + */ + private String zsxm; + + /** + * 数量 + */ + private Long sl; + + /** + * 单位(字典) + */ + private String dw; + + /** + * 含税单价 + */ + private Long hsdj; + + /** + * 价税合计 + */ + private Long jshj; + + /** + * 税率(%) + */ + private Long shuilv; + + /** + * 金额 + */ + private Long je; + + /** + * 税额 + */ + private Long se; + + /** + * 享受优惠政策0否1是 + */ + private String xsyhzc; + + /** + * 优惠政策类型(字典) + */ + private String yhzclx; + + /** + * 备注 + */ + private String remark; + + /** + * 编码 + */ + private String bm; + + /** + * 资源/合同清单名称 + */ + private String zyhtqdmc; + + /** + * 即征即退类型(字典) + */ + private String jzjtlx; + + /** + * + */ + private Long updateBy; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/domain/vo/XzdSpykpKpsqKpmxVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/domain/vo/XzdSpykpKpsqKpmxVo.java new file mode 100644 index 00000000..51287d7a --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/domain/vo/XzdSpykpKpsqKpmxVo.java @@ -0,0 +1,160 @@ +package org.dromara.xzd.spykp.kpsq.domain.vo; + +import org.dromara.xzd.spykp.kpsq.domain.XzdSpykpKpsqKpmx; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + + +/** + * 收票与开票-开票申请-发票明细视图对象 xzd_spykp_kpsq_kpmx + * + * @author Lion Li + * @date 2025-10-17 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdSpykpKpsqKpmx.class) +public class XzdSpykpKpsqKpmxVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @ExcelProperty(value = "id") + private Long id; + + /** + * 关联id + */ + @ExcelProperty(value = "关联id") + private Long mainId; + + /** + * 发票序号 + */ + @ExcelProperty(value = "发票序号") + private Long fpxh; + + /** + * 商品名称 + */ + @ExcelProperty(value = "商品名称") + private String spmc; + + /** + * 规格型号 + */ + @ExcelProperty(value = "规格型号") + private String spxh; + + /** + * 税收分类编码 + */ + @ExcelProperty(value = "税收分类编码") + private String ssflbm; + + /** + * 税收分类名称 + */ + @ExcelProperty(value = "税收分类名称") + private String ssflmc; + + /** + * 征税项目 + */ + @ExcelProperty(value = "征税项目") + private String zsxm; + + /** + * 数量 + */ + @ExcelProperty(value = "数量") + private Long sl; + + /** + * 单位(字典) + */ + @ExcelProperty(value = "单位(字典)") + private String dw; + + /** + * 含税单价 + */ + @ExcelProperty(value = "含税单价") + private Long hsdj; + + /** + * 价税合计 + */ + @ExcelProperty(value = "价税合计") + private Long jshj; + + /** + * 税率(%) + */ + @ExcelProperty(value = "税率(%)") + private Long shuilv; + + /** + * 金额 + */ + @ExcelProperty(value = "金额") + private Long je; + + /** + * 税额 + */ + @ExcelProperty(value = "税额") + private Long se; + + /** + * 享受优惠政策0否1是 + */ + @ExcelProperty(value = "享受优惠政策0否1是") + private String xsyhzc; + + /** + * 优惠政策类型(字典) + */ + @ExcelProperty(value = "优惠政策类型(字典)") + private String yhzclx; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 编码 + */ + @ExcelProperty(value = "编码") + private String bm; + + /** + * 资源/合同清单名称 + */ + @ExcelProperty(value = "资源/合同清单名称") + private String zyhtqdmc; + + /** + * 即征即退类型(字典) + */ + @ExcelProperty(value = "即征即退类型(字典)") + private String jzjtlx; + + /** + * + */ + @ExcelProperty(value = "") + private Long updateBy; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/domain/vo/XzdSpykpKpsqVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/domain/vo/XzdSpykpKpsqVo.java new file mode 100644 index 00000000..a57a573b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/domain/vo/XzdSpykpKpsqVo.java @@ -0,0 +1,541 @@ +package org.dromara.xzd.spykp.kpsq.domain.vo; + +import java.math.BigDecimal; +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.xzd.spykp.kpsq.domain.XzdSpykpKpsq; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.xzd.spykp.kpsq.domain.XzdSpykpKpsqKpmx; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + + +/** + * 收票与开票-开票申请视图对象 xzd_spykp_kpsq + * + * @author Lion Li + * @date 2025-10-17 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdSpykpKpsq.class) +public class XzdSpykpKpsqVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @ExcelProperty(value = "id") + private Long id; + + /** + * 类型 + */ + @ExcelProperty(value = "类型") + private String type; + + /** + * 部门id + */ + @ExcelProperty(value = "部门id") + private Long deptId; + + /** + * 单据编码 + */ + @ExcelProperty(value = "单据编码") + private String djbm; + + /** + * 申请日期 + */ + @ExcelProperty(value = "申请日期") + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date sqrq; + + /** + * 申请人 + */ + @ExcelProperty(value = "申请人") + private String sqr; + + /** + * 申请部门(仅部门) + */ + @ExcelProperty(value = "申请部门(仅部门)") + private Long sqbm; + + /** + * 部门名称 + */ + @ExcelProperty(value = "部门名称") + private String sqbmmc; + + /** + * 发票类型(字典) + */ + @ExcelProperty(value = "发票类型(字典)") + private String fplx; + + /** + * 申请总额 + */ + @ExcelProperty(value = "申请总额") + private Long sqze; + + /** + * 所属组织 + */ + @ExcelProperty(value = "所属组织") + private String sszz; + + /** + * 项目id + */ + @ExcelProperty(value = "项目id") + private Long projectId; + + /** + * 项目 + */ + @ExcelProperty(value = "项目") + private String projectName; + + /** + * 计征方式 + */ + @ExcelProperty(value = "计征方式") + private String jzfs; + + /** + * 项目金额 + */ + @ExcelProperty(value = "项目金额") + private BigDecimal xmje; + + /** + * 合同id + */ + @ExcelProperty(value = "合同id") + private Long contractId; + + /** + * 合同编码 + */ + @ExcelProperty(value = "合同编码") + private String contractCode; + + /** + * 合同金额 + */ + @ExcelProperty(value = "合同金额") + private BigDecimal htje; + + /** + * 跨区涉税证号 + */ + @ExcelProperty(value = "跨区涉税证号") + private String kqsszh; + + /** + * 开票状态 + */ + @ExcelProperty(value = "开票状态") + private String kpzt; + + /** + * 差票开额0否1是 + */ + @ExcelProperty(value = "差票开额0否1是") + private String cekp; + + /** + * 差额扣除 + */ + @ExcelProperty(value = "差额扣除") + private BigDecimal cekc; + + /** + * 是否预收款0否1是 + */ + @ExcelProperty(value = "是否预收款0否1是") + private String ysk; + + /** + * 数据来源 + */ + @ExcelProperty(value = "数据来源") + private String sjly; + + /** + * 本次结算金额 + */ + @ExcelProperty(value = "本次结算金额") + private Long bcjsje; + + /** + * 开票说明 + */ + @ExcelProperty(value = "开票说明") + private String kpje; + + /** + * 开票分机号 + */ + @ExcelProperty(value = "开票分机号") + private String kpfjh; + + /** + * 终止状态 + */ + @ExcelProperty(value = "终止状态") + private String zzzt; + + /** + * 扣押金比例 + */ + @ExcelProperty(value = "扣押金比例") + private BigDecimal kyjbl; + + /** + * 扣押金额度 + */ + @ExcelProperty(value = "扣押金额度") + private BigDecimal kyjed; + + /** + * 实时刷新0否1是 + */ + @ExcelProperty(value = "实时刷新0否1是") + private String sssx; + + /** + * 项目累计申请总额 + */ + @ExcelProperty(value = "项目累计申请总额") + private BigDecimal xmljsqze; + + /** + * 项目累计开票总额 + */ + @ExcelProperty(value = "项目累计开票总额") + private BigDecimal xmljkpze; + + /** + * 合同累计申请总额 + */ + @ExcelProperty(value = "合同累计申请总额") + private BigDecimal htljsqze; + + /** + * 合同累计开票总额 + */ + @ExcelProperty(value = "合同累计开票总额") + private BigDecimal htljkpze; + + /** + * 累计结算金额 + */ + @ExcelProperty(value = "累计结算金额") + private BigDecimal ljjsje; + + /** + * 红蓝类型 + */ + @ExcelProperty(value = "红蓝类型") + private String hllx; + + /** + * 蓝字发票代码 + */ + @ExcelProperty(value = "蓝字发票代码") + private String lzfpdm; + + /** + * 蓝字发票号码 + */ + @ExcelProperty(value = "蓝字发票号码") + private String lzfphm; + + /** + * 红字信息编号 + */ + @ExcelProperty(value = "红字信息编号") + private String hzxxbh; + + /** + * 通知单编号 + */ + @ExcelProperty(value = "通知单编号") + private String tzdbh; + + /** + * 拆分类型 + */ + @ExcelProperty(value = "拆分类型") + private String cflx; + + /** + * 销项类型(字典) + */ + @ExcelProperty(value = "销项类型(字典)") + private String xxlx; + + /** + * 复核人 + */ + @ExcelProperty(value = "复核人") + private Long fhr; + + /** + * 复核人姓名 + */ + @ExcelProperty(value = "复核人姓名") + private String fhrxm; + + /** + * 收款人 + */ + @ExcelProperty(value = "收款人") + private Long skr; + + /** + * 收款人姓名 + */ + @ExcelProperty(value = "收款人姓名") + private String skrxm; + + /** + * 开票人 + */ + @ExcelProperty(value = "开票人") + private Long kpr; + + /** + * 开票人姓名 + */ + @ExcelProperty(value = "开票人姓名") + private String kprxm; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 特定业务 + */ + @ExcelProperty(value = "特定业务") + private String tdyw; + + /** + * 土地增值税项目编号 + */ + @ExcelProperty(value = "土地增值税项目编号") + private String tdzzsxmbh; + + /** + * 不动产权证号 + */ + @ExcelProperty(value = "不动产权证号") + private String bdcqzh; + + /** + * 租赁开始日期 + */ + @ExcelProperty(value = "租赁开始日期") + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date zlksrq; + + /** + * 租赁结束日期 + */ + @ExcelProperty(value = "租赁结束日期") + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date zljsrq; + + /** + * 红冲原因 + */ + @ExcelProperty(value = "红冲原因") + private String hcyy; + + /** + * 销方id(供应商) + */ + @ExcelProperty(value = "销方id(供应商)") + private Long xfId; + + /** + * 销方名称 + */ + private String xfmc; + + /** + * 销方税号(社会信用代码) + */ + @ExcelProperty(value = "销方税号(社会信用代码)") + private String xfsh; + + /** + * 销方地址 + */ + @ExcelProperty(value = "销方地址") + private String xfdz; + + /** + * 销方电话 + */ + @ExcelProperty(value = "销方电话") + private String xfdh; + + /** + * 销方银行id + */ + @ExcelProperty(value = "销方银行id") + private Long xfyhId; + + /** + * 销方银行行号 + */ + @ExcelProperty(value = "销方银行行号") + private String xfyhhh; + + /** + * 销方银行 + */ + @ExcelProperty(value = "销方银行") + private String xfyh; + + /** + * 销方银行账号 + */ + private String xfyhzh; + + /** + * 显示销方开户行及账号0否1是 + */ + @ExcelProperty(value = "显示销方开户行及账号0否1是") + private String xsxfkhhjzh; + + /** + * 购方id(客户) + */ + @ExcelProperty(value = "购方id(客户)") + private Long gfId; + + /** + * 购方名称 + */ + @ExcelProperty(value = "购方名称") + private String gfmc; + + /** + * 购方税号(社会信用代码) + */ + @ExcelProperty(value = "购方税号(社会信用代码)") + private String gfsh; + + /** + * 购方地址 + */ + @ExcelProperty(value = "购方地址") + private String gfdz; + + /** + * 购方电话 + */ + @ExcelProperty(value = "购方电话") + private String gfdh; + + /** + * 购方银行id + */ + @ExcelProperty(value = "购方银行id") + private Long gfyhId; + + /** + * 购方银行行号 + */ + @ExcelProperty(value = "购方银行行号") + private String gfyhhh; + + /** + * 购方银行 + */ + @ExcelProperty(value = "购方银行") + private String gfyh; + + /** + * 购方银行账号 + */ + @ExcelProperty(value = "购方银行账号") + private String gfyhzh; + + /** + * 购方邮箱 + */ + @ExcelProperty(value = "购方邮箱") + private String gfyx; + + /** + * 购方手机 + */ + @ExcelProperty(value = "购方手机") + private String gfsj; + + /** + * 显示购方开户行及账号0否1是 + */ + @ExcelProperty(value = "显示购方开户行及账号0否1是") + private String xsgfkhhjzh; + + /** + * 购方经办人姓名 + */ + @ExcelProperty(value = "购方经办人姓名") + private String gfjbrxm; + + /** + * 证件类型 + */ + @ExcelProperty(value = "证件类型") + private String zjlx; + + /** + * 证件号码 + */ + @ExcelProperty(value = "证件号码") + private String zjhm; + + /** + * 场景模板 + */ + @ExcelProperty(value = "场景模板") + private String cjmb; + + /** + * 附件(逗号分隔) + */ + @ExcelProperty(value = "附件(逗号分隔)") + private String fileId; + + /** + * 开票明细 + */ + List kpmx; + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/mapper/XzdSpykpKpsqKpmxMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/mapper/XzdSpykpKpsqKpmxMapper.java new file mode 100644 index 00000000..82a03c49 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/mapper/XzdSpykpKpsqKpmxMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.spykp.kpsq.mapper; + +import org.dromara.xzd.spykp.kpsq.domain.XzdSpykpKpsqKpmx; +import org.dromara.xzd.spykp.kpsq.domain.vo.XzdSpykpKpsqKpmxVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 收票与开票-开票申请-发票明细Mapper接口 + * + * @author Lion Li + * @date 2025-10-17 + */ +public interface XzdSpykpKpsqKpmxMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/mapper/XzdSpykpKpsqMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/mapper/XzdSpykpKpsqMapper.java new file mode 100644 index 00000000..c52d487e --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/mapper/XzdSpykpKpsqMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.spykp.kpsq.mapper; + +import org.dromara.xzd.spykp.kpsq.domain.XzdSpykpKpsq; +import org.dromara.xzd.spykp.kpsq.domain.vo.XzdSpykpKpsqVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 收票与开票-开票申请Mapper接口 + * + * @author Lion Li + * @date 2025-10-17 + */ +public interface XzdSpykpKpsqMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/service/IXzdSpykpKpsqKpmxService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/service/IXzdSpykpKpsqKpmxService.java new file mode 100644 index 00000000..45d63d83 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/service/IXzdSpykpKpsqKpmxService.java @@ -0,0 +1,70 @@ +package org.dromara.xzd.spykp.kpsq.service; + +import org.dromara.xzd.spykp.kpsq.domain.vo.XzdSpykpKpsqKpmxVo; +import org.dromara.xzd.spykp.kpsq.domain.bo.XzdSpykpKpsqKpmxBo; +import org.dromara.xzd.spykp.kpsq.domain.XzdSpykpKpsqKpmx; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; +import java.util.List; + +/** + * 收票与开票-开票申请-发票明细Service接口 + * + * @author Lion Li + * @date 2025-10-17 + */ +public interface IXzdSpykpKpsqKpmxService extends IService{ + + /** + * 查询收票与开票-开票申请-发票明细 + * + * @param id 主键 + * @return 收票与开票-开票申请-发票明细 + */ + XzdSpykpKpsqKpmxVo queryById(Long id); + + /** + * 分页查询收票与开票-开票申请-发票明细列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 收票与开票-开票申请-发票明细分页列表 + */ + TableDataInfo queryPageList(XzdSpykpKpsqKpmxBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的收票与开票-开票申请-发票明细列表 + * + * @param bo 查询条件 + * @return 收票与开票-开票申请-发票明细列表 + */ + List queryList(XzdSpykpKpsqKpmxBo bo); + + /** + * 新增收票与开票-开票申请-发票明细 + * + * @param bo 收票与开票-开票申请-发票明细 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdSpykpKpsqKpmxBo bo); + + /** + * 修改收票与开票-开票申请-发票明细 + * + * @param bo 收票与开票-开票申请-发票明细 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdSpykpKpsqKpmxBo bo); + + /** + * 校验并批量删除收票与开票-开票申请-发票明细信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/service/IXzdSpykpKpsqService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/service/IXzdSpykpKpsqService.java new file mode 100644 index 00000000..7b6e03fd --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/service/IXzdSpykpKpsqService.java @@ -0,0 +1,70 @@ +package org.dromara.xzd.spykp.kpsq.service; + +import org.dromara.xzd.spykp.kpsq.domain.vo.XzdSpykpKpsqVo; +import org.dromara.xzd.spykp.kpsq.domain.bo.XzdSpykpKpsqBo; +import org.dromara.xzd.spykp.kpsq.domain.XzdSpykpKpsq; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; +import java.util.List; + +/** + * 收票与开票-开票申请Service接口 + * + * @author Lion Li + * @date 2025-10-17 + */ +public interface IXzdSpykpKpsqService extends IService{ + + /** + * 查询收票与开票-开票申请 + * + * @param id 主键 + * @return 收票与开票-开票申请 + */ + XzdSpykpKpsqVo queryById(Long id); + + /** + * 分页查询收票与开票-开票申请列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 收票与开票-开票申请分页列表 + */ + TableDataInfo queryPageList(XzdSpykpKpsqBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的收票与开票-开票申请列表 + * + * @param bo 查询条件 + * @return 收票与开票-开票申请列表 + */ + List queryList(XzdSpykpKpsqBo bo); + + /** + * 新增收票与开票-开票申请 + * + * @param bo 收票与开票-开票申请 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdSpykpKpsqBo bo); + + /** + * 修改收票与开票-开票申请 + * + * @param bo 收票与开票-开票申请 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdSpykpKpsqBo bo); + + /** + * 校验并批量删除收票与开票-开票申请信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/service/impl/XzdSpykpKpsqKpmxServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/service/impl/XzdSpykpKpsqKpmxServiceImpl.java new file mode 100644 index 00000000..f9dd23d9 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/service/impl/XzdSpykpKpsqKpmxServiceImpl.java @@ -0,0 +1,150 @@ +package org.dromara.xzd.spykp.kpsq.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.spykp.kpsq.domain.bo.XzdSpykpKpsqKpmxBo; +import org.dromara.xzd.spykp.kpsq.domain.vo.XzdSpykpKpsqKpmxVo; +import org.dromara.xzd.spykp.kpsq.domain.XzdSpykpKpsqKpmx; +import org.dromara.xzd.spykp.kpsq.mapper.XzdSpykpKpsqKpmxMapper; +import org.dromara.xzd.spykp.kpsq.service.IXzdSpykpKpsqKpmxService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 收票与开票-开票申请-发票明细Service业务层处理 + * + * @author Lion Li + * @date 2025-10-17 + */ +@RequiredArgsConstructor +@Service +public class XzdSpykpKpsqKpmxServiceImpl extends ServiceImpl implements IXzdSpykpKpsqKpmxService { + + private final XzdSpykpKpsqKpmxMapper baseMapper; + + /** + * 查询收票与开票-开票申请-发票明细 + * + * @param id 主键 + * @return 收票与开票-开票申请-发票明细 + */ + @Override + public XzdSpykpKpsqKpmxVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询收票与开票-开票申请-发票明细列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 收票与开票-开票申请-发票明细分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdSpykpKpsqKpmxBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的收票与开票-开票申请-发票明细列表 + * + * @param bo 查询条件 + * @return 收票与开票-开票申请-发票明细列表 + */ + @Override + public List queryList(XzdSpykpKpsqKpmxBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdSpykpKpsqKpmxBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdSpykpKpsqKpmx::getId); + lqw.eq(bo.getMainId() != null, XzdSpykpKpsqKpmx::getMainId, bo.getMainId()); + lqw.eq(bo.getFpxh() != null, XzdSpykpKpsqKpmx::getFpxh, bo.getFpxh()); + lqw.eq(StringUtils.isNotBlank(bo.getSpmc()), XzdSpykpKpsqKpmx::getSpmc, bo.getSpmc()); + lqw.eq(StringUtils.isNotBlank(bo.getSpxh()), XzdSpykpKpsqKpmx::getSpxh, bo.getSpxh()); + lqw.eq(StringUtils.isNotBlank(bo.getSsflbm()), XzdSpykpKpsqKpmx::getSsflbm, bo.getSsflbm()); + lqw.eq(StringUtils.isNotBlank(bo.getSsflmc()), XzdSpykpKpsqKpmx::getSsflmc, bo.getSsflmc()); + lqw.eq(StringUtils.isNotBlank(bo.getZsxm()), XzdSpykpKpsqKpmx::getZsxm, bo.getZsxm()); + lqw.eq(bo.getSl() != null, XzdSpykpKpsqKpmx::getSl, bo.getSl()); + lqw.eq(StringUtils.isNotBlank(bo.getDw()), XzdSpykpKpsqKpmx::getDw, bo.getDw()); + lqw.eq(bo.getHsdj() != null, XzdSpykpKpsqKpmx::getHsdj, bo.getHsdj()); + lqw.eq(bo.getJshj() != null, XzdSpykpKpsqKpmx::getJshj, bo.getJshj()); + lqw.eq(bo.getShuilv() != null, XzdSpykpKpsqKpmx::getShuilv, bo.getShuilv()); + lqw.eq(bo.getJe() != null, XzdSpykpKpsqKpmx::getJe, bo.getJe()); + lqw.eq(bo.getSe() != null, XzdSpykpKpsqKpmx::getSe, bo.getSe()); + lqw.eq(StringUtils.isNotBlank(bo.getXsyhzc()), XzdSpykpKpsqKpmx::getXsyhzc, bo.getXsyhzc()); + lqw.eq(StringUtils.isNotBlank(bo.getYhzclx()), XzdSpykpKpsqKpmx::getYhzclx, bo.getYhzclx()); + lqw.eq(StringUtils.isNotBlank(bo.getBm()), XzdSpykpKpsqKpmx::getBm, bo.getBm()); + lqw.eq(StringUtils.isNotBlank(bo.getZyhtqdmc()), XzdSpykpKpsqKpmx::getZyhtqdmc, bo.getZyhtqdmc()); + lqw.eq(StringUtils.isNotBlank(bo.getJzjtlx()), XzdSpykpKpsqKpmx::getJzjtlx, bo.getJzjtlx()); +// lqw.eq(bo.getUpdateBby() != null, XzdSpykpKpsqKpmx::getUpdateBby, bo.getUpdateBby()); + return lqw; + } + + /** + * 新增收票与开票-开票申请-发票明细 + * + * @param bo 收票与开票-开票申请-发票明细 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdSpykpKpsqKpmxBo bo) { + XzdSpykpKpsqKpmx add = MapstructUtils.convert(bo, XzdSpykpKpsqKpmx.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改收票与开票-开票申请-发票明细 + * + * @param bo 收票与开票-开票申请-发票明细 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdSpykpKpsqKpmxBo bo) { + XzdSpykpKpsqKpmx update = MapstructUtils.convert(bo, XzdSpykpKpsqKpmx.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdSpykpKpsqKpmx entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除收票与开票-开票申请-发票明细信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/service/impl/XzdSpykpKpsqServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/service/impl/XzdSpykpKpsqServiceImpl.java new file mode 100644 index 00000000..e7fc8c3c --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/kpsq/service/impl/XzdSpykpKpsqServiceImpl.java @@ -0,0 +1,317 @@ +package org.dromara.xzd.spykp.kpsq.service.impl; + +import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.common.utils.BatchNumberGenerator; +import org.dromara.system.domain.vo.SysDeptVo; +import org.dromara.system.service.impl.SysDeptServiceImpl; +import org.dromara.system.service.impl.SysOssServiceImpl; +import org.dromara.xzd.domain.XzdContractSkxx; +import org.dromara.xzd.paymentsReceipts.domain.bo.XzdSfkFapiaoBo; +import org.dromara.xzd.spykp.kpsq.domain.XzdSpykpKpsqKpmx; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.dromara.xzd.spykp.kpsq.domain.bo.XzdSpykpKpsqBo; +import org.dromara.xzd.spykp.kpsq.domain.vo.XzdSpykpKpsqVo; +import org.dromara.xzd.spykp.kpsq.domain.XzdSpykpKpsq; +import org.dromara.xzd.spykp.kpsq.mapper.XzdSpykpKpsqMapper; +import org.dromara.xzd.spykp.kpsq.service.IXzdSpykpKpsqService; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 收票与开票-开票申请Service业务层处理 + * + * @author Lion Li + * @date 2025-10-17 + */ +@RequiredArgsConstructor +@Service +public class XzdSpykpKpsqServiceImpl extends ServiceImpl implements IXzdSpykpKpsqService { + + private final XzdSpykpKpsqMapper baseMapper; + @Autowired + private SysOssServiceImpl sysOssService; + @Autowired + private XzdSpykpKpsqKpmxServiceImpl xzdSpykpKpsqKpmxService; + @Autowired + private SysDeptServiceImpl sysDeptService; + + /** + * 查询收票与开票-开票申请 + * + * @param id 主键 + * @return 收票与开票-开票申请 + */ + @Override + public XzdSpykpKpsqVo queryById(Long id){ + XzdSpykpKpsqVo vo = baseMapper.selectVoById(id); + if (vo != null){ + List vo1 = List.of(vo); + setValue(vo1); + return vo1.getFirst(); + }else { + return null; + } + } + + /** + * 分页查询收票与开票-开票申请列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 收票与开票-开票申请分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdSpykpKpsqBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + setValue(result.getRecords()); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的收票与开票-开票申请列表 + * + * @param bo 查询条件 + * @return 收票与开票-开票申请列表 + */ + @Override + public List queryList(XzdSpykpKpsqBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdSpykpKpsqBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdSpykpKpsq::getId); + lqw.eq(StringUtils.isNotBlank(bo.getType()), XzdSpykpKpsq::getType, bo.getType()); + lqw.eq(bo.getDeptId() != null, XzdSpykpKpsq::getDeptId, bo.getDeptId()); + lqw.eq(StringUtils.isNotBlank(bo.getDjbm()), XzdSpykpKpsq::getDjbm, bo.getDjbm()); + lqw.eq(bo.getSqrq() != null, XzdSpykpKpsq::getSqrq, bo.getSqrq()); + lqw.eq(StringUtils.isNotBlank(bo.getSqr()), XzdSpykpKpsq::getSqr, bo.getSqr()); + lqw.eq(bo.getSqbm() != null, XzdSpykpKpsq::getSqbm, bo.getSqbm()); + lqw.eq(StringUtils.isNotBlank(bo.getSqbmmc()), XzdSpykpKpsq::getSqbmmc, bo.getSqbmmc()); + lqw.eq(StringUtils.isNotBlank(bo.getFplx()), XzdSpykpKpsq::getFplx, bo.getFplx()); + lqw.eq(bo.getSqze() != null, XzdSpykpKpsq::getSqze, bo.getSqze()); + lqw.eq(StringUtils.isNotBlank(bo.getSszz()), XzdSpykpKpsq::getSszz, bo.getSszz()); + lqw.eq(bo.getProjectId() != null, XzdSpykpKpsq::getProjectId, bo.getProjectId()); + lqw.like(StringUtils.isNotBlank(bo.getProjectName()), XzdSpykpKpsq::getProjectName, bo.getProjectName()); + lqw.eq(StringUtils.isNotBlank(bo.getJzfs()), XzdSpykpKpsq::getJzfs, bo.getJzfs()); + lqw.eq(bo.getXmje() != null, XzdSpykpKpsq::getXmje, bo.getXmje()); + lqw.eq(bo.getContractId() != null, XzdSpykpKpsq::getContractId, bo.getContractId()); + lqw.eq(StringUtils.isNotBlank(bo.getContractCode()), XzdSpykpKpsq::getContractCode, bo.getContractCode()); + lqw.eq(bo.getHtje() != null, XzdSpykpKpsq::getHtje, bo.getHtje()); + lqw.eq(StringUtils.isNotBlank(bo.getKqsszh()), XzdSpykpKpsq::getKqsszh, bo.getKqsszh()); + lqw.eq(StringUtils.isNotBlank(bo.getKpzt()), XzdSpykpKpsq::getKpzt, bo.getKpzt()); + lqw.eq(StringUtils.isNotBlank(bo.getCekp()), XzdSpykpKpsq::getCekp, bo.getCekp()); + lqw.eq(bo.getCekc() != null, XzdSpykpKpsq::getCekc, bo.getCekc()); + lqw.eq(StringUtils.isNotBlank(bo.getYsk()), XzdSpykpKpsq::getYsk, bo.getYsk()); + lqw.eq(StringUtils.isNotBlank(bo.getSjly()), XzdSpykpKpsq::getSjly, bo.getSjly()); + lqw.eq(bo.getBcjsje() != null, XzdSpykpKpsq::getBcjsje, bo.getBcjsje()); + lqw.eq(StringUtils.isNotBlank(bo.getKpje()), XzdSpykpKpsq::getKpje, bo.getKpje()); + lqw.eq(StringUtils.isNotBlank(bo.getKpfjh()), XzdSpykpKpsq::getKpfjh, bo.getKpfjh()); + lqw.eq(StringUtils.isNotBlank(bo.getZzzt()), XzdSpykpKpsq::getZzzt, bo.getZzzt()); + lqw.eq(bo.getKyjbl() != null, XzdSpykpKpsq::getKyjbl, bo.getKyjbl()); + lqw.eq(bo.getKyjed() != null, XzdSpykpKpsq::getKyjed, bo.getKyjed()); + lqw.eq(StringUtils.isNotBlank(bo.getSssx()), XzdSpykpKpsq::getSssx, bo.getSssx()); + lqw.eq(bo.getXmljsqze() != null, XzdSpykpKpsq::getXmljsqze, bo.getXmljsqze()); + lqw.eq(bo.getXmljkpze() != null, XzdSpykpKpsq::getXmljkpze, bo.getXmljkpze()); + lqw.eq(bo.getHtljsqze() != null, XzdSpykpKpsq::getHtljsqze, bo.getHtljsqze()); + lqw.eq(bo.getHtljkpze() != null, XzdSpykpKpsq::getHtljkpze, bo.getHtljkpze()); + lqw.eq(bo.getLjjsje() != null, XzdSpykpKpsq::getLjjsje, bo.getLjjsje()); + lqw.eq(StringUtils.isNotBlank(bo.getHllx()), XzdSpykpKpsq::getHllx, bo.getHllx()); + lqw.eq(StringUtils.isNotBlank(bo.getLzfpdm()), XzdSpykpKpsq::getLzfpdm, bo.getLzfpdm()); + lqw.eq(StringUtils.isNotBlank(bo.getLzfphm()), XzdSpykpKpsq::getLzfphm, bo.getLzfphm()); + lqw.eq(StringUtils.isNotBlank(bo.getHzxxbh()), XzdSpykpKpsq::getHzxxbh, bo.getHzxxbh()); + lqw.eq(StringUtils.isNotBlank(bo.getTzdbh()), XzdSpykpKpsq::getTzdbh, bo.getTzdbh()); + lqw.eq(StringUtils.isNotBlank(bo.getCflx()), XzdSpykpKpsq::getCflx, bo.getCflx()); + lqw.eq(StringUtils.isNotBlank(bo.getXxlx()), XzdSpykpKpsq::getXxlx, bo.getXxlx()); + lqw.eq(bo.getFhr() != null, XzdSpykpKpsq::getFhr, bo.getFhr()); + lqw.eq(StringUtils.isNotBlank(bo.getFhrxm()), XzdSpykpKpsq::getFhrxm, bo.getFhrxm()); + lqw.eq(bo.getSkr() != null, XzdSpykpKpsq::getSkr, bo.getSkr()); + lqw.eq(StringUtils.isNotBlank(bo.getSkrxm()), XzdSpykpKpsq::getSkrxm, bo.getSkrxm()); + lqw.eq(bo.getKpr() != null, XzdSpykpKpsq::getKpr, bo.getKpr()); + lqw.eq(StringUtils.isNotBlank(bo.getKprxm()), XzdSpykpKpsq::getKprxm, bo.getKprxm()); + lqw.eq(StringUtils.isNotBlank(bo.getTdyw()), XzdSpykpKpsq::getTdyw, bo.getTdyw()); + lqw.eq(StringUtils.isNotBlank(bo.getTdzzsxmbh()), XzdSpykpKpsq::getTdzzsxmbh, bo.getTdzzsxmbh()); + lqw.eq(StringUtils.isNotBlank(bo.getBdcqzh()), XzdSpykpKpsq::getBdcqzh, bo.getBdcqzh()); + lqw.eq(bo.getZlksrq() != null, XzdSpykpKpsq::getZlksrq, bo.getZlksrq()); + lqw.eq(bo.getZljsrq() != null, XzdSpykpKpsq::getZljsrq, bo.getZljsrq()); + lqw.eq(StringUtils.isNotBlank(bo.getHcyy()), XzdSpykpKpsq::getHcyy, bo.getHcyy()); + lqw.eq(bo.getXfId() != null, XzdSpykpKpsq::getXfId, bo.getXfId()); + lqw.eq(StringUtils.isNotBlank(bo.getXfsh()), XzdSpykpKpsq::getXfsh, bo.getXfsh()); + lqw.eq(StringUtils.isNotBlank(bo.getXfdz()), XzdSpykpKpsq::getXfdz, bo.getXfdz()); + lqw.eq(StringUtils.isNotBlank(bo.getXfdh()), XzdSpykpKpsq::getXfdh, bo.getXfdh()); + lqw.eq(bo.getXfyhId() != null, XzdSpykpKpsq::getXfyhId, bo.getXfyhId()); + lqw.eq(StringUtils.isNotBlank(bo.getXfyhhh()), XzdSpykpKpsq::getXfyhhh, bo.getXfyhhh()); + lqw.eq(StringUtils.isNotBlank(bo.getXfyh()), XzdSpykpKpsq::getXfyh, bo.getXfyh()); + lqw.eq(StringUtils.isNotBlank(bo.getXsxfkhhjzh()), XzdSpykpKpsq::getXsxfkhhjzh, bo.getXsxfkhhjzh()); + lqw.eq(bo.getGfId() != null, XzdSpykpKpsq::getGfId, bo.getGfId()); + lqw.eq(StringUtils.isNotBlank(bo.getGfmc()), XzdSpykpKpsq::getGfmc, bo.getGfmc()); + lqw.eq(StringUtils.isNotBlank(bo.getGfsh()), XzdSpykpKpsq::getGfsh, bo.getGfsh()); + lqw.eq(StringUtils.isNotBlank(bo.getGfdz()), XzdSpykpKpsq::getGfdz, bo.getGfdz()); + lqw.eq(StringUtils.isNotBlank(bo.getGfdh()), XzdSpykpKpsq::getGfdh, bo.getGfdh()); + lqw.eq(bo.getGfyhId() != null, XzdSpykpKpsq::getGfyhId, bo.getGfyhId()); + lqw.eq(StringUtils.isNotBlank(bo.getGfyhhh()), XzdSpykpKpsq::getGfyhhh, bo.getGfyhhh()); + lqw.eq(StringUtils.isNotBlank(bo.getGfyh()), XzdSpykpKpsq::getGfyh, bo.getGfyh()); + lqw.eq(StringUtils.isNotBlank(bo.getGfyhzh()), XzdSpykpKpsq::getGfyhzh, bo.getGfyhzh()); + lqw.eq(StringUtils.isNotBlank(bo.getGfyx()), XzdSpykpKpsq::getGfyx, bo.getGfyx()); + lqw.eq(StringUtils.isNotBlank(bo.getGfsj()), XzdSpykpKpsq::getGfsj, bo.getGfsj()); + lqw.eq(StringUtils.isNotBlank(bo.getXsgfkhhjzh()), XzdSpykpKpsq::getXsgfkhhjzh, bo.getXsgfkhhjzh()); + lqw.eq(StringUtils.isNotBlank(bo.getGfjbrxm()), XzdSpykpKpsq::getGfjbrxm, bo.getGfjbrxm()); + lqw.eq(StringUtils.isNotBlank(bo.getZjlx()), XzdSpykpKpsq::getZjlx, bo.getZjlx()); + lqw.eq(StringUtils.isNotBlank(bo.getZjhm()), XzdSpykpKpsq::getZjhm, bo.getZjhm()); + lqw.eq(StringUtils.isNotBlank(bo.getCjmb()), XzdSpykpKpsq::getCjmb, bo.getCjmb()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdSpykpKpsq::getFileId, bo.getFileId()); + return lqw; + } + + /** + * 新增收票与开票-开票申请 + * + * @param bo 收票与开票-开票申请 + * @return 是否新增成功 + */ + @Transactional + @Override + public Boolean insertByBo(XzdSpykpKpsqBo bo) { + XzdSpykpKpsq add = MapstructUtils.convert(bo, XzdSpykpKpsq.class); + validEntityBeforeSave(add); + String banBen = BatchNumberGenerator.generateBatchNumber("KPSQ-"); + + add.setDjbm(banBen); + //申请人 + add.setSqr(LoginHelper.getLoginUser().getNickname()); + //申请部门 + SysDeptVo sysDeptVo = sysDeptService.selectDeptById(LoginHelper.getDeptId()); + if (sysDeptVo != null){ + add.setSqbm(sysDeptVo.getDeptId()); + add.setSqbmmc(sysDeptVo.getDeptName()); + } + + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + + if (bo.getKpmx() != null && !bo.getKpmx().isEmpty()){ + for (XzdSpykpKpsqKpmx kpmx : bo.getKpmx()) { + kpmx.setMainId(add.getId()); + } + xzdSpykpKpsqKpmxService.saveBatch(bo.getKpmx()); + } + + return flag; + } + + /** + * 修改收票与开票-开票申请 + * + * @param bo 收票与开票-开票申请 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdSpykpKpsqBo bo) { + XzdSpykpKpsq update = MapstructUtils.convert(bo, XzdSpykpKpsq.class); + validEntityBeforeSave(update); + + XzdSpykpKpsqVo old = queryById(update.getId()); + + //更新文件 + if (bo.getFileId() != null && !bo.getFileId().isEmpty()){ + if (old.getFileId() != null && !old.getFileId().isEmpty()) { + List oldFileId = Arrays.stream(old.getFileId().split(",")).map(Long::valueOf).toList(); + List nowFileId = Arrays.stream(bo.getFileId().split(",")).map(Long::valueOf).toList(); + for (Long l : oldFileId) { + if (!nowFileId.contains(l)) { + sysOssService.deleteWithValidByIds(List.of(l), false); + } + } + } + }else { + if (old.getFileId()!= null && !old.getFileId().isEmpty()){ + List deleteIds = Arrays.stream(old.getFileId().split(",")).map(Long::valueOf).toList(); + sysOssService.deleteWithValidByIds(deleteIds, false); + } + } + + if (bo.getKpmx() != null && !bo.getKpmx().isEmpty()){ + if (old.getKpmx() != null && !old.getKpmx().isEmpty()){ + xzdSpykpKpsqKpmxService.removeByIds(old.getKpmx()); + } + for (XzdSpykpKpsqKpmx skxx : bo.getKpmx()) { + skxx.setMainId(update.getId()); + } + xzdSpykpKpsqKpmxService.saveBatch(bo.getKpmx()); + }else { + if (old.getKpmx() != null && !old.getKpmx().isEmpty()){ + xzdSpykpKpsqKpmxService.removeByIds(old.getKpmx()); + } + } + + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdSpykpKpsq entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除收票与开票-开票申请信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + + for (Long id : ids) { + XzdSpykpKpsqVo vo = queryById(id); + + LambdaQueryWrapper lqw1 = new LambdaQueryWrapper<>(); + lqw1.eq(XzdSpykpKpsqKpmx::getMainId, id); + xzdSpykpKpsqKpmxService.remove(lqw1); + + if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){ + List deleteIds = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList(); + if (!deleteIds.isEmpty()) { + sysOssService.deleteWithValidByIds(deleteIds, false); + } + } + + } + + return baseMapper.deleteByIds(ids) > 0; + } + + public void setValue(List vos){ + for (XzdSpykpKpsqVo vo : vos) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(XzdSpykpKpsqKpmx::getMainId, vo.getId()); + vo.setKpmx(xzdSpykpKpsqKpmxService.list(lqw)); + } + } + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/sjsqd/controller/XzdSpykpSjsqdController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/sjsqd/controller/XzdSpykpSjsqdController.java new file mode 100644 index 00000000..867cc57c --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/sjsqd/controller/XzdSpykpSjsqdController.java @@ -0,0 +1,105 @@ +package org.dromara.xzd.spykp.sjsqd.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.xzd.spykp.sjsqd.domain.vo.XzdSpykpSjsqdVo; +import org.dromara.xzd.spykp.sjsqd.domain.bo.XzdSpykpSjsqdBo; +import org.dromara.xzd.spykp.sjsqd.service.IXzdSpykpSjsqdService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 收据申请单 + * + * @author Lion Li + * @date 2025-10-17 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/sjsqd/sjsqd") +public class XzdSpykpSjsqdController extends BaseController { + + private final IXzdSpykpSjsqdService xzdSpykpSjsqdService; + + /** + * 查询收据申请单列表 + */ + @SaCheckPermission("sjsqd:sjsqd:list") + @GetMapping("/list") + public TableDataInfo list(XzdSpykpSjsqdBo bo, PageQuery pageQuery) { + return xzdSpykpSjsqdService.queryPageList(bo, pageQuery); + } + + /** + * 导出收据申请单列表 + */ + @SaCheckPermission("sjsqd:sjsqd:export") + @Log(title = "收据申请单", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdSpykpSjsqdBo bo, HttpServletResponse response) { + List list = xzdSpykpSjsqdService.queryList(bo); + ExcelUtil.exportExcel(list, "收据申请单", XzdSpykpSjsqdVo.class, response); + } + + /** + * 获取收据申请单详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("sjsqd:sjsqd:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdSpykpSjsqdService.queryById(id)); + } + + /** + * 新增收据申请单 + */ + @SaCheckPermission("sjsqd:sjsqd:add") + @Log(title = "收据申请单", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdSpykpSjsqdBo bo) { + return toAjax(xzdSpykpSjsqdService.insertByBo(bo)); + } + + /** + * 修改收据申请单 + */ + @SaCheckPermission("sjsqd:sjsqd:edit") + @Log(title = "收据申请单", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdSpykpSjsqdBo bo) { + return toAjax(xzdSpykpSjsqdService.updateByBo(bo)); + } + + /** + * 删除收据申请单 + * + * @param ids 主键串 + */ + @SaCheckPermission("sjsqd:sjsqd:remove") + @Log(title = "收据申请单", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdSpykpSjsqdService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/sjsqd/domain/XzdSpykpSjsqd.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/sjsqd/domain/XzdSpykpSjsqd.java new file mode 100644 index 00000000..b5e4d4c1 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/sjsqd/domain/XzdSpykpSjsqd.java @@ -0,0 +1,113 @@ +package org.dromara.xzd.spykp.sjsqd.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.util.Date; + +import java.io.Serial; + +/** + * 收据申请单对象 xzd_spykp_sjsqd + * + * @author Lion Li + * @date 2025-10-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_spykp_sjsqd") +public class XzdSpykpSjsqd extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(value = "id") + private Long id; + + /** + * 部门id + */ + private Long deptId; + + /** + * 多文件逗号分隔 + */ + private String fileId; + + /** + * 单据编号(保存后随机生存) + */ + private String djbh; + + /** + * 标题 + */ + private String title; + + /** + * 日期 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date rq; + + /** + * 申请人id + */ + private Long sqrId; + + /** + * 申请金额 + */ + private BigDecimal sqje; + + /** + * 项目id + */ + private Long xmId; + + /** + * 合同id + */ + private Long htId; + + /** + * 合同编号 + */ + private String htbh; + + /** + * 付款单位id(客户) + */ + private Long fkdwId; + + /** + * 是否已收款(是,否) + */ + private String sfysk; + + /** + * 收据类型 + */ + private String sjlx; + + /** + * 收据号 + */ + private String sjh; + + /** + * 收款事由 + */ + private String sjsy; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/sjsqd/domain/bo/XzdSpykpSjsqdBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/sjsqd/domain/bo/XzdSpykpSjsqdBo.java new file mode 100644 index 00000000..57a7189c --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/sjsqd/domain/bo/XzdSpykpSjsqdBo.java @@ -0,0 +1,116 @@ +package org.dromara.xzd.spykp.sjsqd.domain.bo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.xzd.spykp.sjsqd.domain.XzdSpykpSjsqd; +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.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 收据申请单业务对象 xzd_spykp_sjsqd + * + * @author Lion Li + * @date 2025-10-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdSpykpSjsqd.class, reverseConvertGenerate = false) +public class XzdSpykpSjsqdBo extends BaseEntity { + + /** + * id + */ +// @NotNull(message = "id不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 部门id + */ + private Long deptId; + + /** + * 多文件逗号分隔 + */ + private String fileId; + + /** + * 单据编号(保存后随机生存) + */ + private String djbh; + + /** + * 标题 + */ + private String title; + + /** + * 日期 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date rq; + + /** + * 申请人id + */ + private Long sqrId; + + /** + * 申请金额 + */ + private BigDecimal sqje; + + /** + * 项目id + */ + @NotNull(message = "项目id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long xmId; + + /** + * 合同id + */ + @NotNull(message = "合同id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long htId; + + /** + * 合同编号 + */ + @NotBlank(message = "合同编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String htbh; + + /** + * 付款单位id(客户) + */ + private Long fkdwId; + + /** + * 是否已收款(是,否) + */ + private String sfysk; + + /** + * 收据类型 + */ + private String sjlx; + + /** + * 收据号 + */ + private String sjh; + + /** + * 收款事由 + */ + @NotBlank(message = "收款事由不能为空", groups = { AddGroup.class, EditGroup.class }) + private String sjsy; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/sjsqd/domain/vo/XzdSpykpSjsqdVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/sjsqd/domain/vo/XzdSpykpSjsqdVo.java new file mode 100644 index 00000000..21d98f1a --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/sjsqd/domain/vo/XzdSpykpSjsqdVo.java @@ -0,0 +1,161 @@ +package org.dromara.xzd.spykp.sjsqd.domain.vo; + +import java.math.BigDecimal; +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.system.domain.vo.SysUserVo; +import org.dromara.xzd.domain.vo.XzdProjectVo; +import org.dromara.xzd.spykp.sjsqd.domain.XzdSpykpSjsqd; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serial; +import java.io.Serializable; + + +/** + * 收据申请单视图对象 xzd_spykp_sjsqd + * + * @author Lion Li + * @date 2025-10-17 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdSpykpSjsqd.class) +public class XzdSpykpSjsqdVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @ExcelProperty(value = "id") + private Long id; + + /** + * 部门id + */ + @ExcelProperty(value = "部门id") + private Long deptId; + + /** + * 多文件逗号分隔 + */ + @ExcelProperty(value = "多文件逗号分隔") + private String fileId; + + /** + * 单据编号(保存后随机生存) + */ + @ExcelProperty(value = "单据编号(保存后随机生存)") + private String djbh; + + /** + * 标题 + */ + @ExcelProperty(value = "标题") + private String title; + + /** + * 日期 + */ + @ExcelProperty(value = "日期") + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date rq; + + /** + * 申请人id + */ + @ExcelProperty(value = "申请人id") + private Long sqrId; + + /** + * 申请人名称 + */ + private String sqrmc; + + /** + * 申请部门 + */ + private String sqbm; + + /** + * 申请金额 + */ + @ExcelProperty(value = "申请金额") + private BigDecimal sqje; + + /** + * 项目id + */ + @ExcelProperty(value = "项目id") + private Long xmId; + + /** + * 项目名称 + */ + private String xmmc; + + /** + * 合同id + */ + @ExcelProperty(value = "合同id") + private Long htId; + + /** + * 合同名称 + */ + private String htmc; + + /** + * 合同编号 + */ + @ExcelProperty(value = "合同编号") + private String htbh; + + /** + * 付款单位id(客户) + */ + @ExcelProperty(value = "付款单位id(客户)") + private Long fkdwId; + + /** + * 付款单位名称 + */ + private String fkdwmc; + + /** + * 是否已收款(是,否) + */ + @ExcelProperty(value = "是否已收款(是,否)") + private String sfysk; + + /** + * 收据类型 + */ + @ExcelProperty(value = "收据类型") + private String sjlx; + + /** + * 收据号 + */ + @ExcelProperty(value = "收据号") + private String sjh; + + /** + * 收款事由 + */ + @ExcelProperty(value = "收款事由") + private String sjsy; + + private Long createBy; + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/sjsqd/mapper/XzdSpykpSjsqdMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/sjsqd/mapper/XzdSpykpSjsqdMapper.java new file mode 100644 index 00000000..761917b3 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/sjsqd/mapper/XzdSpykpSjsqdMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.spykp.sjsqd.mapper; + +import org.dromara.xzd.spykp.sjsqd.domain.XzdSpykpSjsqd; +import org.dromara.xzd.spykp.sjsqd.domain.vo.XzdSpykpSjsqdVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 收据申请单Mapper接口 + * + * @author Lion Li + * @date 2025-10-17 + */ +public interface XzdSpykpSjsqdMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/sjsqd/service/IXzdSpykpSjsqdService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/sjsqd/service/IXzdSpykpSjsqdService.java new file mode 100644 index 00000000..c6ae9e07 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/sjsqd/service/IXzdSpykpSjsqdService.java @@ -0,0 +1,70 @@ +package org.dromara.xzd.spykp.sjsqd.service; + +import org.dromara.xzd.spykp.sjsqd.domain.vo.XzdSpykpSjsqdVo; +import org.dromara.xzd.spykp.sjsqd.domain.bo.XzdSpykpSjsqdBo; +import org.dromara.xzd.spykp.sjsqd.domain.XzdSpykpSjsqd; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; +import java.util.List; + +/** + * 收据申请单Service接口 + * + * @author Lion Li + * @date 2025-10-17 + */ +public interface IXzdSpykpSjsqdService extends IService{ + + /** + * 查询收据申请单 + * + * @param id 主键 + * @return 收据申请单 + */ + XzdSpykpSjsqdVo queryById(Long id); + + /** + * 分页查询收据申请单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 收据申请单分页列表 + */ + TableDataInfo queryPageList(XzdSpykpSjsqdBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的收据申请单列表 + * + * @param bo 查询条件 + * @return 收据申请单列表 + */ + List queryList(XzdSpykpSjsqdBo bo); + + /** + * 新增收据申请单 + * + * @param bo 收据申请单 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdSpykpSjsqdBo bo); + + /** + * 修改收据申请单 + * + * @param bo 收据申请单 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdSpykpSjsqdBo bo); + + /** + * 校验并批量删除收据申请单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/sjsqd/service/impl/XzdSpykpSjsqdServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/sjsqd/service/impl/XzdSpykpSjsqdServiceImpl.java new file mode 100644 index 00000000..9e75e140 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/sjsqd/service/impl/XzdSpykpSjsqdServiceImpl.java @@ -0,0 +1,263 @@ +package org.dromara.xzd.spykp.sjsqd.service.impl; + +import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.domain.model.LoginUser; +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.satoken.utils.LoginHelper; +import org.dromara.common.utils.BatchNumberGenerator; +import org.dromara.system.domain.vo.SysDeptVo; +import org.dromara.system.domain.vo.SysUserVo; +import org.dromara.system.service.impl.SysDeptServiceImpl; +import org.dromara.system.service.impl.SysOssServiceImpl; +import org.dromara.system.service.impl.SysUserServiceImpl; +import org.dromara.xzd.domain.dto.QuerCorrespondentDto; +import org.dromara.xzd.domain.vo.XzdContractDetailsVo; +import org.dromara.xzd.domain.vo.XzdProjectVo; +import org.dromara.xzd.service.IXzdCorrespondentList; +import org.dromara.xzd.service.impl.XzdContractDetailsServiceImpl; +import org.dromara.xzd.service.impl.XzdProjectServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.dromara.xzd.spykp.sjsqd.domain.bo.XzdSpykpSjsqdBo; +import org.dromara.xzd.spykp.sjsqd.domain.vo.XzdSpykpSjsqdVo; +import org.dromara.xzd.spykp.sjsqd.domain.XzdSpykpSjsqd; +import org.dromara.xzd.spykp.sjsqd.mapper.XzdSpykpSjsqdMapper; +import org.dromara.xzd.spykp.sjsqd.service.IXzdSpykpSjsqdService; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 收据申请单Service业务层处理 + * + * @author Lion Li + * @date 2025-10-17 + */ +@RequiredArgsConstructor +@Service +public class XzdSpykpSjsqdServiceImpl extends ServiceImpl implements IXzdSpykpSjsqdService { + + private final XzdSpykpSjsqdMapper baseMapper; + @Autowired + private SysOssServiceImpl sysOssService; + @Autowired + private SysUserServiceImpl sysUserService; + @Autowired + private XzdProjectServiceImpl xzdProjectService; + @Autowired + private XzdContractDetailsServiceImpl xzdContractDetailsService; + @Autowired + private IXzdCorrespondentList iXzdCorrespondentList; + @Autowired + private SysDeptServiceImpl sysDeptService; + + /** + * 查询收据申请单 + * + * @param id 主键 + * @return 收据申请单 + */ + @Override + public XzdSpykpSjsqdVo queryById(Long id){ + XzdSpykpSjsqdVo vo = baseMapper.selectVoById(id); + List vo1 = List.of(vo); + return vo1.getFirst(); + } + + /** + * 分页查询收据申请单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 收据申请单分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdSpykpSjsqdBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + setValue(result.getRecords()); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的收据申请单列表 + * + * @param bo 查询条件 + * @return 收据申请单列表 + */ + @Override + public List queryList(XzdSpykpSjsqdBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdSpykpSjsqdBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdSpykpSjsqd::getId); + lqw.eq(bo.getDeptId() != null, XzdSpykpSjsqd::getDeptId, bo.getDeptId()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdSpykpSjsqd::getFileId, bo.getFileId()); + lqw.eq(StringUtils.isNotBlank(bo.getDjbh()), XzdSpykpSjsqd::getDjbh, bo.getDjbh()); + lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdSpykpSjsqd::getTitle, bo.getTitle()); +// lqw.eq(bo.getRq() != null, XzdSpykpSjsqd::getRq, bo.getRq()); + lqw.between(params.get("beginRq") != null && params.get("endRq") != null, + XzdSpykpSjsqd::getRq ,params.get("beginRq"), params.get("endRq")); + lqw.eq(bo.getSqrId() != null, XzdSpykpSjsqd::getSqrId, bo.getSqrId()); + lqw.eq(bo.getSqje() != null, XzdSpykpSjsqd::getSqje, bo.getSqje()); + lqw.eq(bo.getXmId() != null, XzdSpykpSjsqd::getXmId, bo.getXmId()); + lqw.eq(bo.getHtId() != null, XzdSpykpSjsqd::getHtId, bo.getHtId()); + lqw.eq(StringUtils.isNotBlank(bo.getHtbh()), XzdSpykpSjsqd::getHtbh, bo.getHtbh()); + lqw.eq(bo.getFkdwId() != null, XzdSpykpSjsqd::getFkdwId, bo.getFkdwId()); + lqw.eq(StringUtils.isNotBlank(bo.getSfysk()), XzdSpykpSjsqd::getSfysk, bo.getSfysk()); + lqw.eq(StringUtils.isNotBlank(bo.getSjlx()), XzdSpykpSjsqd::getSjlx, bo.getSjlx()); + lqw.eq(StringUtils.isNotBlank(bo.getSjh()), XzdSpykpSjsqd::getSjh, bo.getSjh()); + lqw.eq(StringUtils.isNotBlank(bo.getSjsy()), XzdSpykpSjsqd::getSjsy, bo.getSjsy()); + return lqw; + } + + /** + * 新增收据申请单 + * + * @param bo 收据申请单 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdSpykpSjsqdBo bo) { + XzdSpykpSjsqd add = MapstructUtils.convert(bo, XzdSpykpSjsqd.class); + validEntityBeforeSave(add); + String banBen = BatchNumberGenerator.generateBatchNumber("SJSQD-"); + add.setDjbh(banBen); + LoginUser user = LoginHelper.getLoginUser(); + add.setSqrId(user.getUserId()); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改收据申请单 + * + * @param bo 收据申请单 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdSpykpSjsqdBo bo) { + XzdSpykpSjsqd update = MapstructUtils.convert(bo, XzdSpykpSjsqd.class); + validEntityBeforeSave(update); + + XzdSpykpSjsqdVo old = queryById(update.getId()); + + //更新文件 + if (bo.getFileId() != null && !bo.getFileId().isEmpty()){ + if (old.getFileId() != null && !old.getFileId().isEmpty()) { + List oldFileId = Arrays.stream(old.getFileId().split(",")).map(Long::valueOf).toList(); + List nowFileId = Arrays.stream(bo.getFileId().split(",")).map(Long::valueOf).toList(); + for (Long l : oldFileId) { + if (!nowFileId.contains(l)) { + sysOssService.deleteWithValidByIds(List.of(l), false); + } + } + } + }else { + if (old.getFileId()!= null && !old.getFileId().isEmpty()){ + List deleteIds = Arrays.stream(old.getFileId().split(",")).map(Long::valueOf).toList(); + sysOssService.deleteWithValidByIds(deleteIds, false); + } + } + + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdSpykpSjsqd entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除收据申请单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + + for (Long id : ids) { + + XzdSpykpSjsqdVo vo = queryById(id); + + //删除附件 + if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){ + List deleteIds = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList(); + if (!deleteIds.isEmpty()) { + sysOssService.deleteWithValidByIds(deleteIds, false); + } + } + + } + + return baseMapper.deleteByIds(ids) > 0; + } + + public void setValue(List vos){ + for (XzdSpykpSjsqdVo vo : vos) { + //申请人名称 + if (vo.getSqrId() != null){ + SysUserVo sysUserVo = sysUserService.queryById(vo.getSqrId()); + if (sysUserVo != null){ + vo.setSqrmc(sysUserVo.getNickName()); + //申请部门 + SysDeptVo sysDeptVo = sysDeptService.selectDeptById(sysUserVo.getDeptId()); + if (sysDeptVo != null){ + vo.setSqbm(sysDeptVo.getDeptName()); + } + } + } + //项目名称 + if (vo.getXmId() != null){ + XzdProjectVo projectVo = xzdProjectService.queryById(vo.getXmId()); + if (projectVo != null){ + vo.setXmmc(projectVo.getProjectName()); + } + } + //合同名称 + if (vo.getHtId() != null){ + XzdContractDetailsVo xzdContractDetailsVo = xzdContractDetailsService.queryById(vo.getHtId()); + if (xzdContractDetailsVo != null){ + vo.setHtmc(xzdContractDetailsVo.getContractName()); + //合同编号 + vo.setHtbh(xzdContractDetailsVo.getContractCode()); + } + } + //付款单位名称 + if (vo.getFkdwId() != null){ + R byid2 = iXzdCorrespondentList.getCustomerByid(vo.getFkdwId()); + if (byid2 != null) { + if (byid2.getData().getXzdCustomerinformation() != null) { + vo.setFkdwmc(byid2.getData().getXzdCustomerinformation().getUnitName()); + } + } + } + } + } + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/zijinjihua/yueduzijinbiangeng/service/impl/FinancialRevenuePlanAlterationServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/zijinjihua/yueduzijinbiangeng/service/impl/FinancialRevenuePlanAlterationServiceImpl.java index bc12334c..73af6c39 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/zijinjihua/yueduzijinbiangeng/service/impl/FinancialRevenuePlanAlterationServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/zijinjihua/yueduzijinbiangeng/service/impl/FinancialRevenuePlanAlterationServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.utils.BatchNumberGenerator; import org.dromara.system.service.impl.SysOssServiceImpl; import org.dromara.xzd.domain.XzdContractDetails; import org.dromara.xzd.domain.dto.QuerCorrespondentDto; @@ -220,9 +221,9 @@ public class FinancialRevenuePlanAlterationServiceImpl extends ServiceImpl().gt(FinancialRevenuePlanAlteration::getCreateTime, LocalDate.now())); - String s = areaUtil.generateDateBasedNumber(); - add.setDocumentCode( s+"-"+(l+1)); + String banBen = BatchNumberGenerator.generateBatchNumber("YDZJJHBG-"); + + add.setDocumentCode(banBen); boolean flag = baseMapper.insert(add) > 0; diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/zijinjihua/yueduzijinjihua/service/impl/FinancialRevenueExpenditurePlanServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/zijinjihua/yueduzijinjihua/service/impl/FinancialRevenueExpenditurePlanServiceImpl.java index 79565b72..25f1848a 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/zijinjihua/yueduzijinjihua/service/impl/FinancialRevenueExpenditurePlanServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/zijinjihua/yueduzijinjihua/service/impl/FinancialRevenueExpenditurePlanServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.utils.BatchNumberGenerator; import org.dromara.system.service.impl.SysOssServiceImpl; import org.dromara.xzd.contractManagement.caigoucontractTermination.domain.vo.XzdPurchaseContractSuspendVo; import org.dromara.xzd.contractManagement.fenbaohetongxinxi.domain.XzdSubcontract; @@ -235,9 +236,8 @@ public class FinancialRevenueExpenditurePlanServiceImpl extends ServiceImpl().gt(FinancialRevenueExpenditurePlan::getCreateTime, LocalDate.now())); - String s = areaUtil.generateDateBasedNumber(); - add.setDocumentCode(s+"-"+(l+1)); + String banBen = BatchNumberGenerator.generateBatchNumber("YDZJJH-"); + add.setDocumentCode(banBen); boolean flag = baseMapper.insert(add) > 0; // 收入明细 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/ctr/CtrContractProgressSettlementItemMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/ctr/CtrContractProgressSettlementItemMapper.xml new file mode 100644 index 00000000..ebead73a --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/ctr/CtrContractProgressSettlementItemMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/ctr/CtrContractProgressSettlementMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/ctr/CtrContractProgressSettlementMapper.xml new file mode 100644 index 00000000..9d0caa61 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/ctr/CtrContractProgressSettlementMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/ctr/CtrSubcontractProgressSettlementItemMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/ctr/CtrSubcontractProgressSettlementItemMapper.xml new file mode 100644 index 00000000..18543f74 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/ctr/CtrSubcontractProgressSettlementItemMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/ctr/CtrSubcontractProgressSettlementMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/ctr/CtrSubcontractProgressSettlementMapper.xml new file mode 100644 index 00000000..a10eb8fb --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/ctr/CtrSubcontractProgressSettlementMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/comprehensive/XzdHtglHthzsjMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/comprehensive/XzdHtglHthzsjMapper.xml new file mode 100644 index 00000000..45935a67 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/comprehensive/XzdHtglHthzsjMapper.xml @@ -0,0 +1,7 @@ + + + + +