From 5ff5e7cf4bc2034f728c7edfbfd249345a000104 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期一, 10 十一月 2025 10:11:52 +0800
Subject: [PATCH] yys 优化生产管控整体逻辑
---
src/main/java/com/ruoyi/production/service/impl/SalesLedgerSchedulingServiceImpl.java | 11 ++-
src/main/resources/mapper/production/SalesLedgerWorkMapper.xml | 3 +
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java | 6 +
src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java | 5 +
src/main/java/com/ruoyi/production/dto/ProcessSchedulingDto.java | 18 ++++++
src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java | 2
src/main/java/com/ruoyi/production/pojo/SalesLedgerWork.java | 15 +++++
src/main/java/com/ruoyi/production/dto/SalesLedgerWorkDto.java | 21 +++++++
src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml | 6 ++
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java | 5 +
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java | 7 ++
src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java | 26 ++++++++
src/main/java/com/ruoyi/procurementrecord/dto/Details.java | 6 +-
13 files changed, 121 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
index 7fb7b44..1f73ebe 100644
--- a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
+++ b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
@@ -41,6 +41,8 @@
@Log(title = "閲囪喘鍏ュ簱-鍏ュ簱绠$悊-鏂板鍏ュ簱", businessType = BusinessType.INSERT)
@Transactional
public AjaxResult add(@RequestBody ProcurementAddDto procurementDto) {
+ procurementDto.setType(1);
+ procurementDto.setTypeName("閲囪喘鍏ュ簱");
return AjaxResult.success(procurementRecordService.add(procurementDto));
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/Details.java b/src/main/java/com/ruoyi/procurementrecord/dto/Details.java
index b2e5a21..3ec8a1a 100644
--- a/src/main/java/com/ruoyi/procurementrecord/dto/Details.java
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/Details.java
@@ -10,7 +10,7 @@
*/
@Data
public class Details {
- private Integer id;
- private BigDecimal inboundQuantity;
- private BigDecimal warnNum;
+ private Integer id; // 浜у搧id
+ private BigDecimal inboundQuantity; // 鍏ュ簱鏁伴噺
+ private BigDecimal warnNum; // 棰勮鏁伴噺锛堥噰璐叆搴撴墠鏈夛級
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java
index 73d9895..9e7c186 100644
--- a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java
@@ -15,4 +15,11 @@
private String nickName;
+ /**
+ * 鍏ュ簱绫诲瀷 1-閲囪喘 2-鐢熶骇
+ */
+ private Integer type;
+
+ private String typeName;
+
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
index 4f3f260..c977127 100644
--- a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
@@ -22,6 +22,11 @@
private Long createUser;
/**
+ * 鍏ュ簱绫诲瀷 1-閲囪喘 2-鐢熶骇
+ */
+ private Integer type;
+
+ /**
* 鍏ュ簱鎵规
*/
@Excel(name = "鍏ュ簱鎵规")
diff --git a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java
index 28cee3c..91df389 100644
--- a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java
+++ b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java
@@ -40,6 +40,11 @@
* 棰勮鏁伴噺
*/
private BigDecimal warnNum;
+
+ /**
+ * 鍏ュ簱绫诲瀷 1-閲囪喘鍏ュ簱 2-鐢熶骇鍏ュ簱
+ */
+ private Integer type;
// /**
// * 鏈�浣庡簱瀛樻暟閲�
// */
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
index 1675069..3c1a4a8 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
@@ -342,13 +342,15 @@
for (Details detail : procurementDto.getDetails()) {
// 鏌ヨ閲囪喘鍏ュ簱鏁伴噺
LambdaQueryWrapper<ProcurementRecordStorage> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
- procurementRecordLambdaQueryWrapper.eq(ProcurementRecordStorage::getSalesLedgerProductId, detail.getId());
+ procurementRecordLambdaQueryWrapper.eq(ProcurementRecordStorage::getSalesLedgerProductId, detail.getId())
+ .eq(ProcurementRecordStorage::getType, procurementDto.getType());
Long aLong = procurementRecordMapper.selectCount(procurementRecordLambdaQueryWrapper);
ProcurementRecordStorage.ProcurementRecordStorageBuilder procurementRecordBuilder = ProcurementRecordStorage.builder()
.salesLedgerProductId(detail.getId())
- .inboundBatches(aLong.equals(0L) ? "绗�1鎵规" : "绗�"+ (aLong + 1) + "鎵规")
+ .inboundBatches(aLong.equals(0L) ? "绗�1鎵规("+ procurementDto.getTypeName() +")" : "绗�"+ (aLong + 1) + "鎵规(" + procurementDto.getTypeName() + ")" )
.inboundNum(detail.getInboundQuantity())
+ .type(procurementDto.getType())
.warnNum(detail.getWarnNum())
.createTime(LocalDateTime.now())
.createUser(loginUser.getUserId())
diff --git a/src/main/java/com/ruoyi/production/dto/ProcessSchedulingDto.java b/src/main/java/com/ruoyi/production/dto/ProcessSchedulingDto.java
index 6cf971e..da2ed71 100644
--- a/src/main/java/com/ruoyi/production/dto/ProcessSchedulingDto.java
+++ b/src/main/java/com/ruoyi/production/dto/ProcessSchedulingDto.java
@@ -48,5 +48,23 @@
@ApiModelProperty(value = "鎺掍骇鏃ユ湡")
private String schedulingDate;
+ /**
+ * 澶囨敞
+ */
+ @ApiModelProperty(value = "澶囨敞")
+ private String remark;
+
+ /**
+ * 鎹熻��
+ */
+ @ApiModelProperty(value = "鎹熻��")
+ private String loss;
+
+ /**
+ * 鍙e懗鍒嗙被
+ */
+ @ApiModelProperty(value = "鍙e懗鍒嗙被")
+ private String type;
+
}
diff --git a/src/main/java/com/ruoyi/production/dto/SalesLedgerWorkDto.java b/src/main/java/com/ruoyi/production/dto/SalesLedgerWorkDto.java
index 055f2a8..a32bd62 100644
--- a/src/main/java/com/ruoyi/production/dto/SalesLedgerWorkDto.java
+++ b/src/main/java/com/ruoyi/production/dto/SalesLedgerWorkDto.java
@@ -86,5 +86,26 @@
@Excel(name = "鐘舵��", readConverterExp = "1=寰呯敓浜�,2=鐢熶骇涓�,3=宸叉姤宸�")
private String statusName;
+ /**
+ * 澶囨敞
+ */
+ @ApiModelProperty(value = "澶囨敞")
+ @Excel(name = "澶囨敞")
+ private String remark;
+
+ /**
+ * 鎹熻��
+ */
+ @ApiModelProperty(value = "鎹熻��")
+ @Excel(name = "鎹熻��")
+ private String loss;
+
+ /**
+ * 鍙e懗鍒嗙被
+ */
+ @ApiModelProperty(value = "鍙e懗鍒嗙被")
+ @Excel(name = "鍙e懗鍒嗙被")
+ private String type;
+
}
diff --git a/src/main/java/com/ruoyi/production/pojo/SalesLedgerWork.java b/src/main/java/com/ruoyi/production/pojo/SalesLedgerWork.java
index b722105..f6c2a38 100644
--- a/src/main/java/com/ruoyi/production/pojo/SalesLedgerWork.java
+++ b/src/main/java/com/ruoyi/production/pojo/SalesLedgerWork.java
@@ -78,6 +78,21 @@
private Integer status;
/**
+ * 澶囨敞
+ */
+ private String remark;
+
+ /**
+ * 鎹熻��
+ */
+ private String loss;
+
+ /**
+ * 鍙e懗鍒嗙被
+ */
+ private String type;
+
+ /**
* 鍒涘缓鑰�
*/
@TableField(fill = FieldFill.INSERT)
diff --git a/src/main/java/com/ruoyi/production/service/impl/SalesLedgerSchedulingServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/SalesLedgerSchedulingServiceImpl.java
index 4f60b7e..995629d 100644
--- a/src/main/java/com/ruoyi/production/service/impl/SalesLedgerSchedulingServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/SalesLedgerSchedulingServiceImpl.java
@@ -152,10 +152,10 @@
SysUser sysUser = sysUserMapper.selectUserById(processSchedulingDto.getSchedulingUserId());
if(sysUser == null) throw new RuntimeException("鎺掍骇浜轰笉瀛樺湪");
salesLedgerScheduling.setFinishedNum(salesLedgerScheduling.getFinishedNum().add(processSchedulingDto.getSchedulingNum()));
- LambdaQueryWrapper<SalesLedgerWork> salesLedgerWorkLambdaQueryWrapper = new LambdaQueryWrapper<>();
- salesLedgerWorkLambdaQueryWrapper.eq(SalesLedgerWork::getSalesLedgerSchedulingId, salesLedgerScheduling.getId())
- .ne(SalesLedgerWork::getStatus, 1);
- List<SalesLedgerWork> salesLedgerWorks = salesLedgerWorkMapper.selectList(salesLedgerWorkLambdaQueryWrapper);
+// LambdaQueryWrapper<SalesLedgerWork> salesLedgerWorkLambdaQueryWrapper = new LambdaQueryWrapper<>();
+// salesLedgerWorkLambdaQueryWrapper.eq(SalesLedgerWork::getSalesLedgerSchedulingId, salesLedgerScheduling.getId())
+// .ne(SalesLedgerWork::getStatus, 1);
+// List<SalesLedgerWork> salesLedgerWorks = salesLedgerWorkMapper.selectList(salesLedgerWorkLambdaQueryWrapper);
if(salesLedgerScheduling.getSchedulingNum().compareTo(salesLedgerScheduling.getFinishedNum()) < 0){
throw new RuntimeException("褰撳墠鎺掍骇鏁伴噺澶т簬寰呮帓浜ф暟閲忥紝璇蜂粩缁嗘牳瀵癸紒");
}
@@ -168,6 +168,9 @@
SalesLedgerWork.SalesLedgerWorkBuilder salesLedgerWorkBuilder = SalesLedgerWork.builder()
.salesLedgerSchedulingId(salesLedgerScheduling.getId())
.salesLedgerId(salesLedgerScheduling.getSalesLedgerId())
+ .remark(processSchedulingDto.getRemark())
+ .type(processSchedulingDto.getType())
+ .loss(processSchedulingDto.getLoss())
.salesLedgerProductId(salesLedgerScheduling.getSalesLedgerProductId())
.schedulingUserId(salesLedgerScheduling.getSchedulingUserId())
.schedulingUserName(sysUser.getNickName())
diff --git a/src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java
index bf35f8a..d1aaae9 100644
--- a/src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java
@@ -4,7 +4,14 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.framework.security.LoginUser;
import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.procurementrecord.dto.Details;
+import com.ruoyi.procurementrecord.dto.ProcurementAddDto;
+import com.ruoyi.procurementrecord.dto.ProcurementRecordOutAdd;
+import com.ruoyi.procurementrecord.service.impl.ProcurementRecordOutServiceImpl;
+import com.ruoyi.procurementrecord.service.impl.ProcurementRecordServiceImpl;
import com.ruoyi.production.dto.ProductionReportDto;
import com.ruoyi.production.dto.SalesLedgerWorkDto;
import com.ruoyi.production.mapper.SalesLedgerProductionAccountingMapper;
@@ -23,6 +30,7 @@
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@@ -47,6 +55,8 @@
return iPage;
}
+ private final ProcurementRecordServiceImpl procurementRecordService;
+
@Override
public int productionReport(ProductionReportDto productionReportDto) {
SalesLedgerWork salesLedgerWork = salesLedgerWorkMapper.selectById(productionReportDto.getId());
@@ -66,7 +76,7 @@
.salesLedgerWorkId(salesLedgerWork.getId())
.salesLedgerSchedulingId(salesLedgerWork.getSalesLedgerSchedulingId())
.salesLedgerId(salesLedgerWork.getSalesLedgerId())
- .salesLedgerProductId(salesLedgerWork.getSalesLedgerProductId())
+ .salesLedgerProductId((long)salesLedgerWork.getSalesLedgerProductId())
.schedulingUserId(sysUser.getUserId())
.schedulingUserName(sysUser.getNickName())
.finishedNum(productionReportDto.getFinishedNum())
@@ -74,6 +84,20 @@
.process(salesLedgerWork.getProcess())
.schedulingDate(LocalDate.parse(productionReportDto.getSchedulingDate(), DateTimeFormatter.ISO_LOCAL_DATE));
salesLedgerProductionAccountingMapper.insert(builder.build());
+ // 鐢熶骇鎶ュ伐鎴愬姛 -> 鍏ュ簱
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ ProcurementAddDto procurementRecordOutAdd = new ProcurementAddDto();
+ procurementRecordOutAdd.setType(2);
+ procurementRecordOutAdd.setTypeName("鐢熶骇鍏ュ簱");
+ procurementRecordOutAdd.setNickName(loginUser.getNickName());
+ List<Details> details = new ArrayList<>();
+ Details details1 = new Details();
+ details1.setInboundQuantity(productionReportDto.getFinishedNum());
+ details1.setId(Integer.parseInt(salesLedgerWork.getSalesLedgerProductId().toString()));
+ details.add(details1);
+ procurementRecordOutAdd.setDetails(details);
+ procurementRecordService.add(procurementRecordOutAdd);
+
return 0;
}
diff --git a/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml b/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
index c378c6a..58fbaa2 100644
--- a/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
+++ b/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
@@ -57,6 +57,9 @@
<if test="req.supplierName != null and req.supplierName != ''">
and t3.supplier_name like concat('%',#{req.supplierName},'%')
</if>
+ <if test="req.type != null and req.type != ''">
+ and t1.type = #{req.type}
+ </if>
<if test="req.timeStr != null and req.timeStr != ''">
and t1.create_time like concat('%',#{req.timeStr},'%')
</if>
@@ -116,6 +119,9 @@
<if test="req.supplierName != null and req.supplierName != ''">
and t3.supplier_name like concat('%',#{req.supplierName},'%')
</if>
+ <if test="req.type != null and req.type != ''">
+ and t1.type = #{req.type}
+ </if>
<if test="req.timeStr != null and req.timeStr != ''">
and t1.create_time like concat('%',#{req.timeStr},'%')
</if>
diff --git a/src/main/resources/mapper/production/SalesLedgerWorkMapper.xml b/src/main/resources/mapper/production/SalesLedgerWorkMapper.xml
index 41cbe07..87ede93 100644
--- a/src/main/resources/mapper/production/SalesLedgerWorkMapper.xml
+++ b/src/main/resources/mapper/production/SalesLedgerWorkMapper.xml
@@ -13,6 +13,9 @@
t4.finished_num,
t4.work_hours,
t4.process,
+ t4.loss,
+ t4.type,
+ t4.remark,
T1.sales_contract_no,
T1.customer_contract_no,
T1.project_name,
--
Gitblit v1.9.3