diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusMrpBaseController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusMrpBaseController.java index be6f08d3..316b8767 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusMrpBaseController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusMrpBaseController.java @@ -140,13 +140,29 @@ public class BusMrpBaseController extends BaseController { return toAjax(busMrpBaseService.importData(dto)); } + + /** + * 获取到物资状态为已完成的版本 + */ + @SaCheckPermission("cailiaoshebei:purchaseDoc:obtainTheVersion") + @GetMapping("/obtainTheVersion") + public R> obtainTheVersion(Long projectId) { + List list = busBillofquantitiesVersionsService.list(Wrappers.lambdaQuery() + .eq(BusBillofquantitiesVersions::getProjectId, projectId) + .eq(BusBillofquantitiesVersions::getStatus, BusinessStatusEnum.FINISH.getStatus()) + ); + if (!list.isEmpty()){ + throw new ServiceException("请先完成物资工程量清单"); + } + return R.ok(list); + } + /** * 获取工程量清单列表 */ @SaCheckPermission("cailiaoshebei:purchaseDoc:add") @GetMapping("/engineeringList") public R> obtainTheList(Long projectId) { - BusBillofquantitiesVersions one = busBillofquantitiesVersionsService.getOne(Wrappers.lambdaQuery() .eq(BusBillofquantitiesVersions::getWorkOrderType, "3") //物资工程量清单 .eq(BusBillofquantitiesVersions::getProjectId, projectId) @@ -159,7 +175,6 @@ public class BusMrpBaseController extends BaseController { List list = busBillofquantitiesService.list(Wrappers.lambdaQuery() .eq(BusBillofquantities::getVersions, one.getVersions()) ); - return R.ok(list); } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/controller/BusProcurementController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/controller/BusProcurementController.java new file mode 100644 index 00000000..e8dc8561 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/controller/BusProcurementController.java @@ -0,0 +1,105 @@ +package org.dromara.out.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.out.domain.vo.BusProcurementVo; +import org.dromara.out.domain.bo.BusProcurementBo; +import org.dromara.out.service.IBusProcurementService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 产值-采购完成产值 + * + * @author Lion Li + * @date 2025-08-23 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/out/procurement") +public class BusProcurementController extends BaseController { + + private final IBusProcurementService busProcurementService; + + /** + * 查询产值-采购完成产值列表 + */ + @SaCheckPermission("out:procurement:list") + @GetMapping("/list") + public TableDataInfo list(BusProcurementBo bo, PageQuery pageQuery) { + return busProcurementService.queryPageList(bo, pageQuery); + } + + /** + * 导出产值-采购完成产值列表 + */ + @SaCheckPermission("out:procurement:export") + @Log(title = "产值-采购完成产值", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(BusProcurementBo bo, HttpServletResponse response) { + List list = busProcurementService.queryList(bo); + ExcelUtil.exportExcel(list, "产值-采购完成产值", BusProcurementVo.class, response); + } + + /** + * 获取产值-采购完成产值详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("out:procurement:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(busProcurementService.queryById(id)); + } + + /** + * 新增产值-采购完成产值 + */ + @SaCheckPermission("out:procurement:add") + @Log(title = "产值-采购完成产值", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody BusProcurementBo bo) { + return toAjax(busProcurementService.insertByBo(bo)); + } + + /** + * 修改产值-采购完成产值 + */ + @SaCheckPermission("out:procurement:edit") + @Log(title = "产值-采购完成产值", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody BusProcurementBo bo) { + return toAjax(busProcurementService.updateByBo(bo)); + } + + /** + * 删除产值-采购完成产值 + * + * @param ids 主键串 + */ + @SaCheckPermission("out:procurement:remove") + @Log(title = "产值-采购完成产值", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(busProcurementService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/controller/OutMonthPlanController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/controller/OutMonthPlanController.java index 26eb7947..9b8e7942 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/controller/OutMonthPlanController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/controller/OutMonthPlanController.java @@ -6,6 +6,10 @@ import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.out.domain.BusProcurement; +import org.dromara.out.domain.bo.PurchaseValueAReq; +import org.dromara.out.domain.bo.PurchaseValueAupReq; +import org.dromara.out.domain.vo.PurchaseValueARes; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.dromara.common.idempotent.annotation.RepeatSubmit; @@ -134,4 +138,29 @@ public class OutMonthPlanController extends BaseController { @NotNull(message = "计划月份不能为空") String planMonth) { return R.ok(outMonthPlanService.infoByPlanMonth(projectId,planMonth)); } + + + //================================采购完工产值================================ + + /** + * 采购完工产值对甲 + */ + @SaCheckPermission("out:monthPlan:purchaseValueA") + @Log(title = "采购完工产值对甲乙", businessType = BusinessType.UPDATE) + @GetMapping("/purchaseValueA") + public R> purchaseValueA(PurchaseValueAReq req) { + return R.ok(outMonthPlanService.purchaseValueA(req)); + } + + + /** + * 修改采购完工产值对甲 + */ + @SaCheckPermission("out:monthPlan:purchaseValueAup") + @Log(title = "修改采购完工产值对甲", businessType = BusinessType.UPDATE) + @GetMapping("/purchaseValueAup") + public R purchaseValueAup(PurchaseValueAupReq req) { + return R.ok(outMonthPlanService.purchaseValueAup(req)); + } + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/BusProcurement.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/BusProcurement.java new file mode 100644 index 00000000..968d421c --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/BusProcurement.java @@ -0,0 +1,67 @@ +package org.dromara.out.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.math.BigDecimal; + +/** + * 产值-采购完成产值对象 bus_procurement + * + * @author Lion Li + * @date 2025-08-23 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("bus_procurement") +public class BusProcurement extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 名称 + */ + private String name; + + /** + * 规格 + */ + private String specification; + + /** + * 单位 + */ + private String unit; + + /** + * 接收数量 + */ + private BigDecimal acceptedQuantity; + + /** + * 价格 + */ + private BigDecimal unitPrice; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/OutMonthPlanAudit.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/OutMonthPlanAudit.java index 8603c60a..bcb063b6 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/OutMonthPlanAudit.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/OutMonthPlanAudit.java @@ -38,11 +38,6 @@ public class OutMonthPlanAudit extends BaseEntity { */ private String type; - /** - * 计划产值 - */ - private BigDecimal planValue; - /** * 设计产值 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/bo/BusProcurementBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/bo/BusProcurementBo.java new file mode 100644 index 00000000..3707a401 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/bo/BusProcurementBo.java @@ -0,0 +1,60 @@ +package org.dromara.out.domain.bo; + +import org.dromara.out.domain.BusProcurement; +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.*; + +/** + * 产值-采购完成产值业务对象 bus_procurement + * + * @author Lion Li + * @date 2025-08-23 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = BusProcurement.class, reverseConvertGenerate = false) +public class BusProcurementBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 名称 + */ + private String name; + + /** + * 规格 + */ + private String specification; + + /** + * 单位 + */ + private String unit; + + /** + * 接收数量 + */ + private Long acceptedQuantity; + + /** + * 价格 + */ + private Long unitPrice; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/bo/OutMonthPlanAuditBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/bo/OutMonthPlanAuditBo.java index 0da7eab7..9612f626 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/bo/OutMonthPlanAuditBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/bo/OutMonthPlanAuditBo.java @@ -39,11 +39,6 @@ public class OutMonthPlanAuditBo extends BaseEntity { @NotBlank(message = "类型不能为空", groups = { AddGroup.class, EditGroup.class }) private String type; - /** - * 计划产值 - */ - @NotNull(message = "计划产值不能为空", groups = { AddGroup.class, EditGroup.class }) - private BigDecimal planValue; /** * 设计产值 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/bo/PurchaseValueAReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/bo/PurchaseValueAReq.java new file mode 100644 index 00000000..fdf91750 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/bo/PurchaseValueAReq.java @@ -0,0 +1,29 @@ +package org.dromara.out.domain.bo; + +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author 铁憨憨 + * @Date 2025/8/22 23:13 + * @Version 1.0 + */ + +@Data +public class PurchaseValueAReq implements Serializable { + + /** + * 项目id + */ + @NotNull + private Long projectId; + + /** + * 类型 1:采购完工产值对甲 2:采购完工产值对乙 + */ + @NotNull + private Integer type; + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/bo/PurchaseValueAupReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/bo/PurchaseValueAupReq.java new file mode 100644 index 00000000..55cf9d14 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/bo/PurchaseValueAupReq.java @@ -0,0 +1,26 @@ +package org.dromara.out.domain.bo; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @Author 铁憨憨 + * @Date 2025/8/23 2:31 + * @Version 1.0 + */ + +@Data +public class PurchaseValueAupReq implements Serializable { + + /** + * 主键 + */ + private Long id; + + /** + * 修改金额 + */ + private BigDecimal unitPrice; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/BusProcurementVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/BusProcurementVo.java new file mode 100644 index 00000000..c9201b63 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/BusProcurementVo.java @@ -0,0 +1,74 @@ +package org.dromara.out.domain.vo; + +import org.dromara.out.domain.BusProcurement; +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; + + + +/** + * 产值-采购完成产值视图对象 bus_procurement + * + * @author Lion Li + * @date 2025-08-23 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BusProcurement.class) +public class BusProcurementVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 名称 + */ + @ExcelProperty(value = "名称") + private String name; + + /** + * 规格 + */ + @ExcelProperty(value = "规格") + private String specification; + + /** + * 单位 + */ + @ExcelProperty(value = "单位") + private String unit; + + /** + * 接收数量 + */ + @ExcelProperty(value = "接收数量") + private Long acceptedQuantity; + + /** + * 价格 + */ + @ExcelProperty(value = "价格") + private Long unitPrice; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/PurchaseValueARes.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/PurchaseValueARes.java new file mode 100644 index 00000000..8a5dfe2a --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/PurchaseValueARes.java @@ -0,0 +1,48 @@ +package org.dromara.out.domain.vo; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author 铁憨憨 + * @Date 2025/8/22 23:22 + * @Version 1.0 + */ +@Data +public class PurchaseValueARes implements Serializable { + /** + * 类型 1对甲 2对乙 + */ + private String type; + + /** + * 编号 + */ + private String num; + + /** + * 名称 + */ + private String name; + + /** + * 规格 + */ + private String specification; + + /** + * 单位 + */ + private String unit; + + /** + * 数量 + */ + private Integer quantity; + + /** + * 验收 + */ + private Integer acceptanceReceive; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/mapper/BusProcurementMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/mapper/BusProcurementMapper.java new file mode 100644 index 00000000..63f1cce2 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/mapper/BusProcurementMapper.java @@ -0,0 +1,15 @@ +package org.dromara.out.mapper; + +import org.dromara.out.domain.BusProcurement; +import org.dromara.out.domain.vo.BusProcurementVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 产值-采购完成产值Mapper接口 + * + * @author Lion Li + * @date 2025-08-23 + */ +public interface BusProcurementMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/mapper/OutMonthPlanMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/mapper/OutMonthPlanMapper.java index c0026829..c567d60f 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/mapper/OutMonthPlanMapper.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/mapper/OutMonthPlanMapper.java @@ -2,11 +2,13 @@ package org.dromara.out.mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import org.dromara.out.domain.BusProcurement; import org.dromara.out.domain.OutMonthPlan; import org.dromara.out.domain.vo.OutMonthPlanVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import java.math.BigDecimal; +import java.util.List; /** * 月度产值计划Mapper接口 @@ -25,4 +27,8 @@ public interface OutMonthPlanMapper extends BaseMapperPlus" }) BigDecimal getDesignValueByProjectId(@Param("projectId") Long projectId,@Param("planMonth") String planMonth); + + List purchaseValueAA(@Param("projectId") Long projectId); + + List purchaseValueBB(@Param("projectId") Long projectId); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/IBusProcurementService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/IBusProcurementService.java new file mode 100644 index 00000000..0051fdd5 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/IBusProcurementService.java @@ -0,0 +1,70 @@ +package org.dromara.out.service; + +import org.dromara.out.domain.vo.BusProcurementVo; +import org.dromara.out.domain.bo.BusProcurementBo; +import org.dromara.out.domain.BusProcurement; +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-08-23 + */ +public interface IBusProcurementService extends IService{ + + /** + * 查询产值-采购完成产值 + * + * @param id 主键 + * @return 产值-采购完成产值 + */ + BusProcurementVo queryById(Long id); + + /** + * 分页查询产值-采购完成产值列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 产值-采购完成产值分页列表 + */ + TableDataInfo queryPageList(BusProcurementBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的产值-采购完成产值列表 + * + * @param bo 查询条件 + * @return 产值-采购完成产值列表 + */ + List queryList(BusProcurementBo bo); + + /** + * 新增产值-采购完成产值 + * + * @param bo 产值-采购完成产值 + * @return 是否新增成功 + */ + Boolean insertByBo(BusProcurementBo bo); + + /** + * 修改产值-采购完成产值 + * + * @param bo 产值-采购完成产值 + * @return 是否修改成功 + */ + Boolean updateByBo(BusProcurementBo 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/out/service/IOutMonthPlanService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/IOutMonthPlanService.java index 6eb81068..3f04d161 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/IOutMonthPlanService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/IOutMonthPlanService.java @@ -1,6 +1,9 @@ package org.dromara.out.service; import jakarta.validation.constraints.NotNull; +import org.dromara.out.domain.BusProcurement; +import org.dromara.out.domain.bo.PurchaseValueAReq; +import org.dromara.out.domain.bo.PurchaseValueAupReq; import org.dromara.out.domain.vo.OutMonthPlanVo; import org.dromara.out.domain.bo.OutMonthPlanBo; import org.dromara.out.domain.OutMonthPlan; @@ -8,6 +11,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.service.IService; +import org.dromara.out.domain.vo.PurchaseValueARes; import org.springframework.web.bind.annotation.PathVariable; import java.math.BigDecimal; @@ -96,4 +100,14 @@ public interface IOutMonthPlanService extends IService{ */ List infoByPlanMonth(Long projectId, String planMonth); + /** + * 采购完工产值对甲 + */ + List purchaseValueA(PurchaseValueAReq req); + + /** + * 修改采购完工产值对甲 + */ + Boolean purchaseValueAup(PurchaseValueAupReq req); + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/impl/BusProcurementServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/impl/BusProcurementServiceImpl.java new file mode 100644 index 00000000..84a4e5a2 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/impl/BusProcurementServiceImpl.java @@ -0,0 +1,135 @@ +package org.dromara.out.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.out.domain.bo.BusProcurementBo; +import org.dromara.out.domain.vo.BusProcurementVo; +import org.dromara.out.domain.BusProcurement; +import org.dromara.out.mapper.BusProcurementMapper; +import org.dromara.out.service.IBusProcurementService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 产值-采购完成产值Service业务层处理 + * + * @author Lion Li + * @date 2025-08-23 + */ +@RequiredArgsConstructor +@Service +public class BusProcurementServiceImpl extends ServiceImpl implements IBusProcurementService { + + private final BusProcurementMapper baseMapper; + + /** + * 查询产值-采购完成产值 + * + * @param id 主键 + * @return 产值-采购完成产值 + */ + @Override + public BusProcurementVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询产值-采购完成产值列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 产值-采购完成产值分页列表 + */ + @Override + public TableDataInfo queryPageList(BusProcurementBo 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(BusProcurementBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(BusProcurementBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(BusProcurement::getId); + lqw.like(StringUtils.isNotBlank(bo.getName()), BusProcurement::getName, bo.getName()); + lqw.eq(StringUtils.isNotBlank(bo.getSpecification()), BusProcurement::getSpecification, bo.getSpecification()); + lqw.eq(StringUtils.isNotBlank(bo.getUnit()), BusProcurement::getUnit, bo.getUnit()); + lqw.eq(bo.getAcceptedQuantity() != null, BusProcurement::getAcceptedQuantity, bo.getAcceptedQuantity()); + lqw.eq(bo.getUnitPrice() != null, BusProcurement::getUnitPrice, bo.getUnitPrice()); + return lqw; + } + + /** + * 新增产值-采购完成产值 + * + * @param bo 产值-采购完成产值 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(BusProcurementBo bo) { + BusProcurement add = MapstructUtils.convert(bo, BusProcurement.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改产值-采购完成产值 + * + * @param bo 产值-采购完成产值 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(BusProcurementBo bo) { + BusProcurement update = MapstructUtils.convert(bo, BusProcurement.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(BusProcurement 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/out/service/impl/OutMonthPlanServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/impl/OutMonthPlanServiceImpl.java index 98198cb6..13e04cef 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/impl/OutMonthPlanServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/impl/OutMonthPlanServiceImpl.java @@ -19,8 +19,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.out.domain.BusProcurement; import org.dromara.out.domain.OutConstructionValue; import org.dromara.out.domain.OutMonthPlanAudit; +import org.dromara.out.domain.bo.PurchaseValueAReq; +import org.dromara.out.domain.bo.PurchaseValueAupReq; +import org.dromara.out.domain.vo.PurchaseValueARes; +import org.dromara.out.service.IBusProcurementService; import org.dromara.out.service.IOutConstructionValueService; import org.dromara.out.service.IOutMonthPlanAuditService; import org.jetbrains.annotations.NotNull; @@ -55,6 +60,8 @@ public class OutMonthPlanServiceImpl extends ServiceImpl purchaseValueA(PurchaseValueAReq req) { + //1、为1查询出数据,存储到数据表,并返回数据 + if ("1".equals(req.getType())){ + List busProcurements = baseMapper.purchaseValueAA(req.getProjectId()); + //查询出现有的数据busProcurements1,如果busProcurements的数据已经在busProcurements1中(根据名称和规格)就修改,否则保存 + List busProcurements1 = busProcurementService.list(Wrappers.lambdaQuery() + .eq(BusProcurement::getProjectId, req.getProjectId()) + ); + for (BusProcurement busProcurement : busProcurements) { + for (BusProcurement procurement : busProcurements1) { + if (busProcurement.getName().equals(procurement.getName()) && busProcurement.getSpecification().equals(procurement.getSpecification())){ + busProcurement.setId(procurement.getId()); + } + } + } + //保存 + boolean b = busProcurementService.saveOrUpdateBatch(busProcurements); + if (!b) { + throw new ServiceException("保存失败"); + } + return busProcurementService.list(Wrappers.lambdaQuery() + .eq(BusProcurement::getProjectId, req.getProjectId()) + ); + } + //2、为2查询出数据,直接返回 + else if ("2".equals(req.getType())){ + return baseMapper.purchaseValueBB(req.getProjectId()); + } + return null; + } + + @Override + public Boolean purchaseValueAup(PurchaseValueAupReq req) { + BusProcurement busProcurement = new BusProcurement(); + busProcurement.setId(req.getId()); + busProcurement.setUnitPrice(req.getUnitPrice()); + return busProcurementService.updateById(busProcurement); + } + /** * 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等) * 正常使用只需#processEvent.flowCode=='leave1' diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/out/BusProcurementMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/out/BusProcurementMapper.xml new file mode 100644 index 00000000..7ba37b39 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/out/BusProcurementMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/out/OutMonthPlanMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/out/OutMonthPlanMapper.xml index 9f1e1e17..81a86b59 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/out/OutMonthPlanMapper.xml +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/out/OutMonthPlanMapper.xml @@ -4,4 +4,36 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + +