From 786ed98c279190ae0c4e09fecb42689b80ed714e Mon Sep 17 00:00:00 2001
From: 李白 <7387820+wjli_13439841639@user.noreply.gitee.com>
Date: 星期六, 09 五月 2026 17:36:32 +0800
Subject: [PATCH] 排产计划标的物列表的操作
---
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ProductionPlanController.java | 72 ++++++++++++++++++++++++++++++++++-
1 files changed, 69 insertions(+), 3 deletions(-)
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ProductionPlanController.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ProductionPlanController.java
index d925735..234d838 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ProductionPlanController.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ProductionPlanController.java
@@ -6,7 +6,10 @@
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.by4cloud.platformx.business.entity.ContractSubjectMatter;
+import com.by4cloud.platformx.business.service.ContractSubjectMatterService;
import com.by4cloud.platformx.common.core.util.R;
+import com.by4cloud.platformx.common.data.mybatis.BaseModel;
import com.by4cloud.platformx.common.log.annotation.SysLog;
import com.by4cloud.platformx.business.entity.ProductionPlan;
import com.by4cloud.platformx.business.service.ProductionPlanService;
@@ -20,8 +23,10 @@
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
+import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
+import java.util.stream.Collectors;
/**
* 鎺掍骇璁″垝
@@ -37,6 +42,7 @@
public class ProductionPlanController {
private final ProductionPlanService productionPlanService;
+ private final ContractSubjectMatterService contractSubjectMatterService;
/**
* 鍒嗛〉鏌ヨ
@@ -53,7 +59,16 @@
wrapper.eq(productionPlan.getPartyaid()!=null,ProductionPlan::getPartyaid,productionPlan.getPartyaid());
wrapper.eq(productionPlan.getPartybid()!=null,ProductionPlan::getPartybid,productionPlan.getPartybid());
wrapper.eq(productionPlan.getStatus()!=null,ProductionPlan::getStatus,productionPlan.getStatus());
- return R.ok(productionPlanService.page(page, wrapper));
+ Page<ProductionPlan> page1 = productionPlanService.page(page, wrapper);
+ List<ProductionPlan> list = page1.getRecords();
+ for(ProductionPlan plan : list){
+ List<ContractSubjectMatter> metterList = contractSubjectMatterService.list(new LambdaQueryWrapper<ContractSubjectMatter>()
+ .eq(ContractSubjectMatter::getProductionPlanId,plan.getId())
+ );
+ plan.setContractSubjectMatterList(metterList);
+ }
+ page1.setRecords(list);
+ return R.ok(page1);
}
/**
@@ -78,7 +93,15 @@
@GetMapping("/{id}" )
@PreAuthorize("@pms.hasPermission('business_productionPlan_view')" )
public R getById(@PathVariable("id" ) Long id) {
- return R.ok(productionPlanService.getById(id));
+ ProductionPlan productionPlan = productionPlanService.getById(id);
+ if(productionPlan==null){
+ return R.failed("id閿欒锛�");
+ }
+ List<ContractSubjectMatter> list = contractSubjectMatterService.list(new LambdaQueryWrapper<ContractSubjectMatter>()
+ .eq(ContractSubjectMatter::getProductionPlanId,productionPlan.getId())
+ );
+ productionPlan.setContractSubjectMatterList(list);
+ return R.ok(productionPlan);
}
/**
@@ -91,7 +114,20 @@
@PostMapping
@PreAuthorize("@pms.hasPermission('business_productionPlan_add')" )
public R save(@RequestBody ProductionPlan productionPlan) {
- return R.ok(productionPlanService.save(productionPlan));
+ if(StrUtil.isEmpty(productionPlan.getProductionPlanName())){
+ return R.failed("鎺掍骇璁″垝鍚嶇О涓嶈兘涓虹┖锛�");
+ }
+ productionPlanService.save(productionPlan);
+
+ if(productionPlan.getContractSubjectMatterList()!=null){
+ for(ContractSubjectMatter matter1 : productionPlan.getContractSubjectMatterList()){
+ matter1.setProductionPlanId(productionPlan.getId());
+ matter1.setProductionPlanName(productionPlan.getProductionPlanName());
+ }
+ contractSubjectMatterService.saveBatch(productionPlan.getContractSubjectMatterList());
+ }
+
+ return R.ok(true);
}
/**
@@ -104,6 +140,36 @@
@PutMapping
@PreAuthorize("@pms.hasPermission('business_productionPlan_edit')" )
public R updateById(@RequestBody ProductionPlan productionPlan) {
+
+ List<ContractSubjectMatter> list = contractSubjectMatterService.list(new LambdaQueryWrapper<ContractSubjectMatter>()
+ .eq(ContractSubjectMatter::getProductionPlanId,productionPlan.getId())
+ );
+ List<Long> idsO = new ArrayList<>();
+ if(list!=null){
+ if(!list.isEmpty()){
+ idsO = list.stream().map(BaseModel::getId).collect(Collectors.toList());
+ }
+ }
+
+ if(productionPlan.getContractSubjectMatterList()!=null){
+ List<Long> idsN = new ArrayList<>();
+ for(ContractSubjectMatter matter : productionPlan.getContractSubjectMatterList()){
+ if(matter.getId()==null){
+ matter.setProductionPlanId(productionPlan.getId());
+ matter.setProductionPlanName(productionPlan.getProductionPlanName());
+ }else{
+ idsN.add(matter.getId());
+ }
+ }
+ contractSubjectMatterService.saveOrUpdateBatch(productionPlan.getContractSubjectMatterList());
+ if(!idsO.isEmpty()) {
+ for (Long id : idsO) {
+ if (!idsN.contains(id)) {
+ contractSubjectMatterService.removeById(id);
+ }
+ }
+ }
+ }
return R.ok(productionPlanService.updateById(productionPlan));
}
--
Gitblit v1.9.1