From 6416b165e4a3c8ecc2d547ceef0fb3962d3c7b56 Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期一, 12 一月 2026 14:58:45 +0800
Subject: [PATCH] 1.查询产品信息列表接口,销售台账查询其产品的状态 2.增添不合格现象字段,取消生产状态字段 3.修改发货审批接口,发货审批通过,生产该订单出库记录 4.存在质检记录并已提交的销售台账删除时做出限制 5.生产报工投入,产出2:1调整
---
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDtoCopy.java | 5 ++
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java | 2
src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java | 8 ++--
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 11 +++++
src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml | 9 +++-
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java | 7 +++
src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java | 19 +++++++++
src/main/java/com/ruoyi/quality/pojo/QualityInspect.java | 3 +
src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java | 20 ++++++++++
9 files changed, 74 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
index 2ac434b..a23002a 100644
--- a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
@@ -54,7 +54,7 @@
@Excel(name = "瀹㈡埛鍚嶇О")
private String customerName;
- private String salesLedgerProductId;
+ private Long salesLedgerProductId;
/**
* 鍑哄叆搴撴暟閲�
@@ -120,6 +120,11 @@
*/
@Excel(name = "浜у搧澶х被")
private String productCategory;
+ /**
+ * 浜у搧id
+ */
+ @Excel(name = "浜у搧id")
+ private Long productId;
/**
* 瑙勬牸鍨嬪彿
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDtoCopy.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDtoCopy.java
index b5dcb70..0bf8547 100644
--- a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDtoCopy.java
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDtoCopy.java
@@ -131,6 +131,11 @@
*/
@Excel(name = "浜у搧澶х被")
private String productCategory;
+ /**
+ * 浜у搧id
+ */
+ @Excel(name = "浜у搧id")
+ private Long productId;
/**
* 瑙勬牸鍨嬪彿
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
index 31a1e9c..c137411 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -185,7 +185,7 @@
for (ProductStructureDto productStructureDto : productStructureDtos) {
ProductionProductInput productionProductInput = new ProductionProductInput();
productionProductInput.setProductModelId(productStructureDto.getProductModelId());
- productionProductInput.setQuantity(productStructureDto.getUnitQuantity());
+ productionProductInput.setQuantity(productStructureDto.getUnitQuantity().multiply(dto.getQuantity()));
productionProductInput.setProductMainId(productionProductMain.getId());
productionProductInputMapper.insert(productionProductInput);
}
diff --git a/src/main/java/com/ruoyi/quality/pojo/QualityInspect.java b/src/main/java/com/ruoyi/quality/pojo/QualityInspect.java
index e03b74a..4207b8b 100644
--- a/src/main/java/com/ruoyi/quality/pojo/QualityInspect.java
+++ b/src/main/java/com/ruoyi/quality/pojo/QualityInspect.java
@@ -144,6 +144,7 @@
* 鎶ュ伐id
*/
private Long productMainId;
-
+ //涓嶅悎鏍肩幇璞�
+ private String defectivePhenomena;
}
diff --git a/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java b/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java
index 4c38a59..058360b 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java
@@ -2,7 +2,12 @@
import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.procurementrecord.dto.ProcurementPageDto;
+import com.ruoyi.procurementrecord.dto.ProcurementPageDtoCopy;
+import com.ruoyi.procurementrecord.service.ProcurementRecordService;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
import com.ruoyi.sales.service.ISalesLedgerProductService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -33,7 +38,8 @@
{
@Autowired
private ISalesLedgerProductService salesLedgerProductService;
-
+ @Autowired
+ private ProcurementRecordService procurementRecordService;
/**
* 鏌ヨ浜у搧淇℃伅鍒楄〃
*/
@@ -41,6 +47,17 @@
public AjaxResult list(SalesLedgerProduct salesLedgerProduct)
{
List<SalesLedgerProduct> list = salesLedgerProductService.selectSalesLedgerProductList(salesLedgerProduct);
+ list.forEach(item -> {
+ ProcurementPageDto procurementDto = new ProcurementPageDto();
+ procurementDto.setSalesLedgerProductId(item.getId());
+ procurementDto.setProductCategory(item.getProductCategory());
+ IPage<ProcurementPageDtoCopy> result = procurementRecordService.listPageCopyByProduction(new Page<>(1,-1), procurementDto);
+ ProcurementPageDtoCopy procurementDtoCopy = result.getRecords().get(0);
+ if(item.getQuantity().compareTo(procurementDtoCopy.getInboundNum0())>=0){
+ item.setApproveStatus(1);
+ salesLedgerProductService.addOrUpdateSalesLedgerProduct(item);
+ }
+ });
return AjaxResult.success(list);
}
diff --git a/src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java b/src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java
index 047cb37..c678c48 100644
--- a/src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java
+++ b/src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java
@@ -6,6 +6,10 @@
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.procurementrecord.dto.ProcurementAddDto;
+import com.ruoyi.procurementrecord.dto.ProcurementRecordOutAdd;
+import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut;
+import com.ruoyi.procurementrecord.service.ProcurementRecordOutService;
import com.ruoyi.sales.mapper.ShipmentApprovalMapper;
import com.ruoyi.sales.mapper.ShippingInfoMapper;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
@@ -21,6 +25,8 @@
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
import java.util.List;
@RestController
@@ -35,6 +41,8 @@
@Autowired
private ISalesLedgerProductService salesLedgerProductService;
+ @Autowired
+ private ProcurementRecordOutService procurementRecordOutService;
@GetMapping("/listPage")
@ApiOperation("鍙戣揣瀹℃壒鍒楄〃")
@@ -58,6 +66,18 @@
SalesLedgerProduct salesLedgerProduct = salesLedgerProductService.getById(shipmentApproval.getSalesLedgerProductId());
salesLedgerProduct.setApproveStatus(req.getApproveStatus());
salesLedgerProductService.updateById(salesLedgerProduct);
+ if(req.getApproveStatus()==3){
+ //鍙戣揣瀹℃壒閫氳繃锛岀敓浜ц璁㈠崟鍑哄簱璁板綍
+ ProcurementRecordOutAdd procurementRecordOutAdd = new ProcurementRecordOutAdd();
+ procurementRecordOutAdd.setSalesLedgerProductId(Math.toIntExact(salesLedgerProduct.getId()));
+ procurementRecordOutAdd.setType(2);
+ procurementRecordOutAdd.setUserId(Math.toIntExact(getUserId()));
+ procurementRecordOutAdd.setQuantity(String.valueOf(salesLedgerProduct.getQuantity()));
+ //鑾峰彇褰撳墠鏃堕棿
+ LocalDateTime now = LocalDateTime.now();
+ procurementRecordOutAdd.setTime(now.toString());
+ procurementRecordOutService.stockout(procurementRecordOutAdd);
+ }
}
return update ? AjaxResult.success() : AjaxResult.error();
}
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
index f35b916..c4e21b2 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -200,13 +200,13 @@
@JsonFormat(pattern = "yyyy-MM-dd")
private Date shippingDate;
- @TableField(exist = false)
- @ApiModelProperty(value = "鐢熶骇鐘舵��")
- private String productionStatus = "鏈紑濮�";
+// @TableField(exist = false)
+// @ApiModelProperty(value = "鐢熶骇鐘舵��")
+// private String productionStatus = "鏈紑濮�";
/**
* 鍙戣揣瀹℃壒鐘舵��
*/
// @TableField(exist = false)
- @ApiModelProperty(value = "瀹℃壒鐘舵��")
+ @ApiModelProperty(value = "瀹℃壒鐘舵�侊細0鏈敓浜�,1宸茬敓浜�,2寰呭鏍�(瀹℃牳涓�),3瀹℃牳瀹屾垚,4瀹℃牳澶辫触")
private Integer approveStatus;
}
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
index 2154217..66fabe0 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -24,6 +24,7 @@
import com.ruoyi.project.system.domain.SysDept;
import com.ruoyi.project.system.mapper.SysDeptMapper;
import com.ruoyi.quality.mapper.QualityInspectMapper;
+import com.ruoyi.quality.pojo.QualityInspect;
import com.ruoyi.sales.dto.MonthlyAmountDto;
import com.ruoyi.sales.dto.SalesLedgerDto;
import com.ruoyi.sales.mapper.*;
@@ -431,6 +432,16 @@
if (!CollectionUtils.isEmpty(productMainIds)) {
productionProductOutputMapper.deleteByProductMainIds(productMainIds);
productionProductInputMapper.deleteByProductMainIds(productMainIds);
+ List<QualityInspect> qualityInspects = qualityInspectMapper.selectList(
+ new LambdaQueryWrapper<QualityInspect>()
+ .in(QualityInspect::getProductMainId, productMainIds)
+ );
+ qualityInspects.forEach(qualityInspect -> {
+ //inspectState=1 宸叉彁浜� 涓嶈兘鍒犻櫎
+ if(qualityInspect.getInspectState() == 1){
+ throw new RuntimeException("宸叉彁浜ょ殑妫�楠屽崟涓嶈兘鍒犻櫎");
+ }
+ });
qualityInspectMapper.deleteByProductMainIds(productMainIds);
}
diff --git a/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml b/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
index cffeca8..fe9b9f8 100644
--- a/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
+++ b/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
@@ -255,7 +255,8 @@
t1.create_time,
t1.update_time,
t1.create_by,
- t2.warn_num
+ t2.warn_num,
+ t2.product_id
from procurement_record_storage t1
left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id and t2.type = 1
left join sales_ledger t3 on t3.id = t2.sales_ledger_id
@@ -297,7 +298,8 @@
t1.create_time,
t1.update_time,
t1.create_by,
- t2.warn_num
+ t2.warn_num,
+ t2.product_id
from procurement_record_storage t1
left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id and t2.type = 1
left join sales_ledger t3 on t3.id = t2.sales_ledger_id
@@ -312,6 +314,9 @@
<if test="req.timeStr != null and req.timeStr != ''">
and t1.create_time like concat('%',#{req.timeStr},'%')
</if>
+ <if test="req.salesLedgerProductId != null and req.salesLedgerProductId != ''">
+ and t1.sales_ledger_product_id = #{req.salesLedgerProductId}
+ </if>
<if test="req.reportDate != null">
and t1.create_time >= #{req.reportDate} and t1.create_time < DATE_ADD(#{req.reportDate}, INTERVAL 1 DAY)
</if>
--
Gitblit v1.9.3